He 초기화 방법은 활성화 함수로 ReLU를 쓸 때 활성화 결괏값들이 한쪽으로 치우치는 문제를 해결하기 위해 나온 방법이다. He 초기화 방법은 앞 레이어의 노드가 n개일 때 표준 편차가 \sqrt{2} / \sqrt{n}2/n인 분포를 사용하는 것이다. 즉 표준 정규 분포를 입력 개수 절반의 제곱근으로 나누어주면 된다. Xavier 초기화 방법은 표준 편차가 1 / \sqrt{n}1/n이라고 한다. ReLU는 음의 영역에 대한 함숫값이 0이라서 더 넓게 분포시키기 위해 \sqrt{2}2배의 계수가 필요하다고 이해할 수 있다. import numpy as np from visual import * np.random.seed(100) def relu(x): result = np.maximum(0,x..
가중치 초기화의 문제를 해결하기 위해 나온 방법 중 하나인 Xavier 초기화 방법은 현재 일반적인 딥러닝 프레임워크들이 표준적으로 이용하고 있다. Xavier 초기화 방법은 앞 레이어의 노드가 n개일 때 표준 편차가 1 / \sqrt{n}1/n인 분포를 사용하는 것이다. 즉 표준 정규 분포를 입력 개수의 제곱근으로 나누어주면 된다. 따라서 Xavier 초기화 방법을 사용하면 앞 레이어의 노드가 많을수록 다음 레이어의 노드의 초깃값으로 사용하는 가중치가 좁게 퍼진다. import numpy as np from visual import * np.random.seed(100) def sigmoid(x): result = 1 / (1 + np.exp(-x)) return result def relu(x): ..
가중치 초기화 문제는 활성화 함수의 입력값이 너무 커지거나 작아지지 않게 만들어주려는 것이 핵심이다. 초기화 설정 문제 해결을 위한 Naive한 방법으론 평균이 0, 표준 편차가 1인 표준 정규 분포를 이용해 초기화하는 방법과 평균이 0, 표준 편차가 0.01인 정규분포로 초기화하는 방법이 있다. 이번 실습에서는 각 방법으로 가중치를 초기화 해보고, 각 경우에 활성화 결괏값들의 분포가 어떻게 변화하는지 확인해자. 실습을 마치고 나면 왜 Naive한 방식으로 가중치를 초기화 해서는 안되는지 알 수 있다. 표준 정규 분포(평균이 0, 표준 편차가 1인 정규 분포)를 따르는 무작위 데이터를 만들기 위한 함수/라이브러리 x = np.random.randn(50,20) : 표준 정규 분포를 따르는 무작위 데이터는..