-
가중치의 초깃값AI/밑바닥부터 시작하는 딥러닝 2024. 7. 13. 14:12
초깃값을 0으로 하면?
- 가중치 감소(weight decay): 가중치 매개변수의 값이 작아지도록 학습하는 방법으로, 가중치 값을 작게 하여 오버피팅이 일어나지 않게 한다.
- 가중치를 모두 0같은 균일한 값으로 설정하면, 오차역전파법에서 모든 가중치의 값이 똑같이 갱신되어 버린다. 그러므로 가중치 초깃값은 무작위로 설정해야 한다.
은닉층의 활성화값 분포
- 활성화함수로 시그모이드를 사용하는 5층 신경망에 가중치의 표준편차를 바꿔가며 활성화값(활성화함수 출력 데이터)을 관찰
- 가중치의 표준편차가 1일때, 각 층의 활성화값이 0과 1에 분포되었다. 출력이 0에 가까워지면 그 미분은 0에 다가간다.
- 기울기 소실(gradient vanishing): 데이터가 0과 1에 치우쳐 분포하면 역전파의 기울기 값이 점점 작아지다 사라지게 되는 문제
- 가중치의 표준편차가 0.01일때, 각 층의 활성화값이 0.5 부근에 집중되었다. 이는 '다수'의 뉴런으로서의 의미가 사라진다.(표현력 제한)
- Xavier 초깃값을 사용하면 각 층의 활성화값들을 광범위하게 분포시켜 가중치의 적절한 분포를 찾을 수 있다.
- Xavier 초깃값: 초깃값의 표준편차가 1 \over \sqrt n이 되도록 설정(n은 앞 층의 노드 수)
ReLU를 사용할 때의 가중치 초깃값
- Xavier 초깃값은 활성화 함수가 선형인 것을 전제로 만들어져 ReLU를 사용할 때에는 부적합하며, He 초깃값을 사용하는것이 적합하다.
- He 초깃값: 앞 계층의 노드가 n개일 때, 표준편차가 2 \over \sqrt n인 정규분포를 사용 (ReLU의 음의 영역이 0이기 때문에 더 넓게 분포시키기 위해 Xavier 초깃값보다 더 큰 계수가 필요)
MNIST 데이터셋으로 본 가중치 초깃값 비교
- std(표준편차) = 0.01일 때는 학습이 전혀 이루어지지 않음. 순전파 때 너무 작은 값이 흘러 역전파의 기울기도 작아졌기 때문.
- Xavier와 He 초깃값은 학습이 순조롭게 이뤄짐.'AI > 밑바닥부터 시작하는 딥러닝' 카테고리의 다른 글
CNN 합성곱 계층 (0) 2024.07.13 학습 관련 기술 정리 (0) 2024.07.13 배치 정규화 (0) 2024.07.13 매개변수 갱신 (0) 2024.07.13 역전파(Backpropagation) (0) 2024.06.12