IT Log

가중치 초기화 본문

Machine Learning

가중치 초기화

newly0513 2019. 5. 15. 19:05
728x90
반응형

초기값이 0이거나 동일한 경우

  • 모든 뉴런의 동일한 출력 값을 내보낼 것
  • 역전파 단계에서 각 뉴런이 모두 동일한 gradient 값을 가짐
  • 학습이 잘되려면 각 뉴런이 가중치에 따라 비대칭이어야 함
  • 가중치가 동일할 경우 뉴런 개수와 상관없이 하나인것처럼 작동

 

초기값이 작은 난수인 경우

  • 만약 가중치 초기값을 큰 값으로 한다면 0과 1로수렴하기 때문에 gradient vanishing이 발생
  • ReLU일 경우 절대값이 클 경우 음수일 때 dead ReLU 문제가 발생
  • 따라서, 가중치 초기값을 작게 초기화 해야 동일한 초기값을 가지지않고 램더하게 초기화
  • 일반적으로 초기값 평균 0, 표준편차 0.01인 정규분포를 따르는 값으로 랜덤하게 초기화
  • 이러한 방법도 얕은 신경망에서는 문제없으나, 깊이가 깊어질수록 문제 발생

  • 평균 0, 표준편차 1인 정규분포 따르는 값으로 랜덤하게 초기화하고 tanh를 활성화 함수로 사용 하였을 경우 출력이 -1과 1로 집중되면서 gradient vanishing문제가 발생

  • 결론적으로 작은 난수로 초기화하는 방법 또한 DNN에서는 적합하지 않다고 할 수 있음

 

 

Xavier 초기화

  • 활성화 함수가 선형이라고 가정
  • sigmoid, tanh의 경우 좌우대칭이며, 가운데 부분이 선형인 함수
  • 이러한 가정을 토대로 sigmoid 활성화 함수에서의 Xavier initalization 식은 아래와 같다

  • tanh 활성화 함수에 xavier 초기값을 설정했을 때

 

He 초기화

  • Xavier 초기값은 ReLU 활성화 함수에서는 깊이가 깊어질수록 치우침 현상 발생

  • ReLU에 적합한 초기값에 대한 식은 아래와 같다

  • 식을 보면 결과적으로 Xavier초기값 식에서 √2를 곱함
  • 깊이가 깊어져도 값이 고르게 분포되어짐

 

출처: https://excelsior-cjh.tistory.com/177 [EXCELSIOR]

 

728x90
반응형
Comments