Initial value of weight

가중치의 초깃값

가중치 감소weight decay

가중치 감소는 가중치 매개변수의 값이 작아지도록 학습하여 오버피팅이 일어나지 않게 하는 것이다. 만약 가중치를 모두 0 (또는 균일한 값)으로 설정하면 오차역전파법에서 모든 가중치의 값이 똑같이 갱신되기에 학습이 올바로 이뤄지지 않는다. 만약 가중치가 모두 0이라면 순전파 때는 입력층의 가중치가 0이기 때문에 다음 뉴런에 모두 같은 값이 전달되며 이는 역전파 때 두 번째 층의 가중치가 모두 똑같이 갱신된다는 말이다. 따라서 가중치가 고르게 되어버리는 (가중치의 대칭적인 구조를 무너뜨리려면) 초깃값을 무작위로 설정해야한다.

활성화 값 분포

은닉층의 활성화값의 분포를 관찰하면 중요한 정보를 얻을 수 있다. 무작위로 생성한 입력 데이터에 표준편차가 1인 정규분포를 이용하는 시그모이드 함수를 이용하면, 각 층의 활성화값들이 0과 1에 치우쳐진 U자 형태를 이룬다. 여기에서 사용한 시그모이드 함수는 출력이 0 또는 1에 가까워지면 그 미분은 0에 다가간다. 따라서 역전파의 기울기 값이 점점 작아지다가 사라지며 이를 기울기 소실Gradient Vanishing라고 한다. 만약 가중치의 표준편차를 0.01로 바꾸면 0.5 부근에 활성화값이 집중되는데, 이는 기울기 소실 문제를 발생시키지는 않지만, 표현력 관점에서는 큰 문제라고 볼 수 있다. 다수의 뉴런이 거의 같은 값을 출력하고 있으니 뉴런을 여러개 둔 의미가 없어진다는 의미이다. 정리하자면 뉴런 100개가 거의 같은 값을 출력한다면 뉴런 1개짜리와 별반 다를게 없다는 것이다. 따라서 활성화값들이 치우치면 표현력을 제한한다는 관점에서 문제가 된다.

Xavier 초기값

자비에르 글로로트와 요슈아 벤지오는 각 층의 활성화값들을 광범위하게 분포시킬 목적으로 가중치의 적절한 분포를 찾고자 했다. 그리고 앞 계층의 노드가 $n$개라면 표준편차가 $\frac{1}{\sqrt n}$인 분포를 사용하면 된다는 결론을 이끌었고, 이 초기값을 Xavier 초기값이라고 한다 Xavier 초기값을 이용하면 층이 깊어지면서 형태가 다소 일그러지지만 뒤집어진 U자의 형태를 이루며 이전의 방식보다는 확실하게 넓게 분포됨을 알 수 있다. 또한 각 층에 흐르는 데이터는 적당히 퍼져 있으므로, 시그모이드 함수의 표현력도 제한받지 않고 학습이 효율적으로 이뤄지는 것을 기대할 수 있다.

tanh 함수

Xavier 초기값을 이용하면 층을 넘어갈 수록 모양이 일그러지는데 이 때는 활성화 함수로 시그모이드가 아닌 쌍곡선 함수 tanh함수를 이용하면 개선된다. 시그모이드 함수와 같은 ’S’자 모양 곡선 함수이지만, tanh는 (0, 0), sigmoid는 (0, 0.5)에서 대칭인 곡선이며, 활성화 함수로는 원점에서 대칭인 함수가 바람직하다고 알려져있다.

ReLU의 초깃값

Xavier 초깃값은 활성화 함수가 선형인 것을 전제로 이끈 결과이며, 시그모이드와 tanh 함수는 좌우 대칭이라 중앙 부근이 선형인 함수로 볼 수 있다. 그러나 ReLU는 ReLU에 특화된 초깃값을 이용할 것을 권장하며, 이 특화된 초깃값을 He 초깃값이라고 한다. He 초깃값은 앞 계층의 노드가 $n$개일 때, 표준편차가 $\sqrt \frac{2}{n}$인 정규 분포를 사용한다. Xavier 초깃값과 다른 이유는 ReLU는 음의 영역이 0이라서 더 넓게 분포시키기 위해 2배의 계수가 필요하다고 해석할 수 있다.

결론

실제로 Xavier 초깃값 결과를 보면 층이 깊어지면서 치우침이 조금씩 커진다. 실제로 층이 깊어지면 활성화값들의 치우침도 커지고, 학습할 때 ‘기울기 소실’ 문제를 일으킨다. 그러나 He 초깃값은 모든 층에서 균일하게 분포되었고, 층이 깊어져도 분포가 균일하게 유지되기에 역전파 때도 적절한 값이 나올것으로 기대할 수 있다.

He Xavier
ReLU Sigmoid, tanh …



Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • [CS231n]Exercise1.5 - Features
  • [CS231n]Exercise1.4 - Two Layer Net
  • [CS231n]Exercise1.3 - Softmax
  • [CS231n]Exercise1.2 - Support Vector Machine