머신러닝/딥러닝

가중치 초기화

haong_ 2022. 7. 3. 23:38

기울기 소실

신경망의 역전파 과정에서 출력층과 멀어질 수록 기울기 값이 매우 작아지는(0에 가깝게) 것을 말한다. 
시그모이드 함수는 미분을 했을경우 기울기가 0~0.25 사이의 값을 갖게 되는데 1이하의 값을 계속해서 곱하게 되면 값이 점점 작아져 결국 0에 수렴하게 될 것이다. 그래서 신경망이 깊어질수록 기울기가 소실되어 가중치 업데이트가 잘 이루어지지 않는다.  

가중치 초기화 Weight initialization

위에서 언급한 신경망의 문제인 기울기 소실/폭발의 문제를 해결하기 위한 방법 중 하나이다. 초기 가중치는 중요한 파라미터 중 하나로 시작점을 어디로 잡느냐에 따라 학습이 어느 방향으로 나아가게 될지 결정한다. 모든 weigth를 같은 값으로 설정한다면 역전파 시 모두 같이 업데이트가 되어 학습을 진행하는 의미가 없을 것이다. 학습을 진행하면서 활성화 값들이 치우치지 않고 비교적 고르게 분포하게 만들기 위해 가중치 초기값 설정을 한다. 

Xavier Initialization

앞 계층의 노드가 n 일때 표준편차가 1/√n 인 분포로 가중치를 초기화 하는 방법이다. 층마다 노드 개수를 다르게 설정하더라도 이에 맞게 가중치가 초기화 되기 때문에 고정된 표준편차를 사용하는 것보다 훨씬 robust하다. 사비에르 함수는 sigmoid나 tanh에서 효과적이지만 relu에서는 출력 값이 0으로 수렴하는 현상을 발생시키기 때문에 다른 초기화 방법을 사용해야한다.

He Initialization

He는 표준편차가 2/√n 인 정규분포로 초기화한다. relu 함수에 같이 사용하며 각 층에서 균일한 분포를 보여준다.