/ DATA

합성곱 신경망 기초 4(가중치 초기화, Weight Initialization)

CNN 강좌는 여러 절로 구성되어 있습니다.

가중치 초기화


가중치가 중요한 이유

  • Overfitting-Underfitting 문제가 발생해 제대로 학습이 되지 않을 수 있다.
  • 그래디언트 손실(Vanishing Gradient)와 폭주(Exploding)문제가 발생한다.
  • 지역 최적화(Local Optimization)에 실패해 Local mnimum에 수렴하기도 한다.
  • 즉, 같은 모델을 훈련시키더라도 가중치가 어떤 초기 값을 갖느냐에 따라서 모델 훈련 결과가 달라진다. 0
  • 가중치 값이 0일 경우, 학습이 불가능하다.
  • 가중치 값을 같은 값으로 할 경우, 1개 신경망에 학습시키는 것과 동일
  • 평균 0 ,1보다 작은 표준편차 분포를 사용한다.

1) Sigmoid, 정규분포

4

  • 표준편차가 크기 때문에 학습이 반복될 수록 0,1로 치우치는 문제가 발생

2) 1)에서 표준편차를 줄였을 경우 5

  • Sigmoid 그래디언트 최댓값이 0.25이므로 현상을 완화할 수는 있지만 0.5로 몰리는 현상

“더 나은 방법을 찾아보자”

LeCun Initialization

  • CNN LeNet 창시자 LeCun이 도입
  • 정규분포, Uniform 분포를 따르는 방법 2가지가 있다.

6

Xavier Initialization

  • 이전 노드와 다음 노드 개수에 의존하는 방법
  • 비선형함수(ex. sigmoid, tanh)에서 효과적인 결과

7

He Initialization

  • Relu 활성화 함수 사용시, Xavier 설정이 비효율적인 결과를 가져온다.(평균, 표준편차 0으로 수렴)
  • 최근 대부분 모델에서 He 초기화를 사용한다.

8

⭐️ 최근 Deep CNN 모델들은 Gaussian Distribution 초기화 방법 사용


참조 문헌 https://kharshit.github.io/blog/2018/12/28/why-batch-normalization https://reniew.github.io/13/
https://wooono.tistory.com/227