IT Log
가중치 초기화 본문
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
반응형
'Machine Learning' 카테고리의 다른 글
CNN (Convolutional Neural Network) (0) | 2019.05.15 |
---|---|
오차역전파 (Backpropagation) (0) | 2019.05.15 |
다층 퍼셉트론 (Multi Layer Perceptron) (0) | 2019.05.15 |
활성화 함수 (activation function) (0) | 2019.05.15 |
경사하강법 (Gradient decent) (0) | 2019.05.15 |
Comments