728x90

1. Weight Initialization 방법

표준편차

표준편차가 1인 정규 분포로 가중치를 초기화한다면 시그모이드 함수를 사용한다는 가정 하에 미분값이 0에 가까워져 0과 1에 데이터가 치우쳐 분포하게 된다. 이때 발생하는 문제는 역전파의 기울기가 작아지다 결국 사라질 것이라는 것이다. 이를 기울기 소실 문제라 한다. 층을 깊게하는 딥러닝에서는 특히나 심각한 문제라고 할 수 있다.

 

표준편차가 0.01인 정규 분포로 가중치를 초기화한다면 0과 1로 데이터가 치우쳐지진 않으므로 기울기 소실 문제는 발생하지 않는다. 다만 활성화의 값들이 가운데로 치우치게 된다. 이는 표현력 관점에서 성능이 안좋다는 의미이다. 이렇게 된다면 뉴런을 여러 개 둔 의미가 사라진다는 것이다.

 

각 층의 활성화값이 적당히 골고루 분포되어야 효율적인 신경망 값이 이뤄지기 때문에 치우친 데이터가 흐르면 기울기 소실이나 표현력 제한 문제에 빠져 원활한 학습을 기대하기가 어렵다.

 

Xavier 초깃값

밑바닥부터 시작하는 딥러닝1 p.206

일반적인 딥러닝 프레임워크들이 표준적으로 이용중으로, 앞 계층의 노드가 n개라면 표준편차가 $\frac{1}{\sqrt n}$인 분포를 사용한다.

Xavier 초깃값을 사용하면 앞 층의 노드가 많을수록 대상 노드의 초깃값을 설정하는 가중치가 좁게 퍼진다.

층이 깊어지면서 형태가 다수 일그러지지만 단순히 표준 편차가 1, 0.01인 정규 분포로의 초기화보다는 넓게 분포된다.

시그모이드 함수의 표현력도 제한받지 않고 대체로 학습이 효율적으로 이뤄진다.

시그모이드 함수 대신 tanh(hyperbolic tangent)함수를 이용해 일그러진 형태의 개선 가능하다.

tanh 함수도 시그모이드와 같이 S자 곡선 함수이다. 다만 시그모이드 함수가 (0, 0.5)에서 대칭인 반면 tanh 함수는 원점에서 대칭이다. 활성화 함수로는 원점 대칭인 tanh 함수가 보다 바람직하다 알려졌다.

 

He 초깃값

Xavier 초깃값은 활성화 함수가 선형인 것을 전제로 하였었다. 시그모이드 함수와 하이퍼볼릭 탄젠트 함수가 좌우 대칭이므로 중앙 부근이 선형인 함수로 볼 수가 있어 Xavier가 사용되었다.

한편 비선형 활성화 함수인 ReLU 사용 시에는 이에 특화된 초깃값 사용이 권장된다. 그것이 바로 He 초깃값이다.

He 초깃값은 앞 계층의 노드가 n개일 때, 표준편차가 $\sqrt \frac{2}{n}$인 정규분포를 사용한다.

Xavier초깃값($\sqrt{\frac{1}{n}}$) 이었던 것을 떠올리면 이보다 $\sqrt{2}$ 배 커진 것이다.

ReLU는 음의 영역이 모두 0이라서, 보다 넓게 분포시키기 위해 2배의 계수가 필요하다고 직관적으로 해석할 수 있다.

 

아래는 표준편차가 0.01인 정규분포/Xavier초깃값/ReLU전용 He 초깃값일 때의 실험 결과이다.

밑바닥부터 시작하는 딥러닝1 p.208

정리

  • std = 0.01
    • 신경망에 아주 작은 데이터(매우 작은 값을 가지는 데이터 x의 분포가 큼)가 흐름 → 역전파 때 가중치의 기울기 역시 작아진단 의미
  • Xavier
    • 층이 깊어지면서 활성화값들의 치우침이 조금씩 커지고, 학습할 때 기울기 소실 문제도 일으킴
  • He
    • 층이 깊어져도 분포가 균일하게 유지, 역전파 때도 적절한 값이 나올 것으로 기대

 

2. 어떤 방법을 많이 사용하나?

  • 활성화 함수로 ReLU 사용 → He 초깃값
  • 활성화 함수로 sigmoid, tanh 사용 → Xavier초깃값
  • 활성화 함수로 ReLU를 사용할 때 Xavier초깃값을 사용해도 학습이 잘 이루어지나, He초깃값이 더 빨리 학습이 이뤄진다.

 

 

 


참고 : 밑바닥부터 딥러닝1

728x90