본문 바로가기

Learning/Optimizer

Initializer

반응형

initializer

 

딥러닝 가중치의 값을 전부 0으로 초기화하면

  • 오차역전파법에서 모든 가중치는 동일한 정도로 갱신되므로, 학습이 올바르게 이루어지지 않는다.
  • 한 layer의 모든 가중치가 똑같은 값을 가지게 되어, 여러 가중치를 둔 의미가 없게 된다.
  • 가중치를 전부 균일한 값 대신 무작위로 설정해야 한다.

은닉층의 활성화값 분포 분석

  • 은닉층의 활성화값은 적당하게 균일하게 분포해야 학습이 잘 된다.
  • 활성화값이 한쪽으로 치우쳤을 때 기울기 소실이 발생한다.
    • 기울기 소실(Gradient Vanishing): 각 층의 활성화값이 한쪽으로 치우치게 되면 역전파의 기울기값이 점점 작아지다가 사라지게 된다.
  • 활성화값이 가운데로 모이게 되면 표현력을 제한하는 문제가 생긴다.
    • 기울기 소실은 발생하지 않는다.
    • 각 가중치의 값이 다 비슷비슷하기 때문에 가중치 여러개를 써도 하나로 쓴 것과 별반 차이가 없게 된다.

권장하는 가중치 초기화 방법

  • Xavier 초기값
    • 앞 계층의 노드가 n개라면 표준편차가 1/root(n)인 정규분포에 따라 랜덤으로 초기화한다.
    • 각 층의 활성화값 분포 또한 표준편차와 비슷한 분포를 보이게 된다.
    • 활성화 함수가 선형인 것을 전제로 만들어졌다. 따라서 sigmoid, tanh 활성화 함수 등 중앙 부분이 선형에 가까운 활성화 함수 사용에 적합하다.
  • He 초기값
    • 앞 계층의 노드가 n개라면 표준편차가 2/root(n)인 정규분포에 따라 랜덤으로 초기화한다.
    • Relu 활성화 함수 사용시 사용한다.

Reference

 
  • 밑바닥부터 시작하는 딥러닝 6장

반응형

'Learning > Optimizer' 카테고리의 다른 글

Optimizer  (0) 2020.04.12
Loss Function  (0) 2020.04.12