수학/딥러닝 이론

[딥러닝] 1. 가중치의 초깃값 - 초깃값을 0으로 하면?

AI 꿈나무 2020. 10. 2. 21:19
반응형

사이토고키의 <밑바닥부터 시작하는 딥러닝>을 공부하고 정리해보았습니다.

 


가중치의 초깃값

 신경망 학습에서 특히 중요한 것이 가중치의 초깃값입니다.

 

 가중치의 초깃값을 무엇으로 설정하느냐가 신경망 학습의 성패가 가르는 일이 자주 있습니다.

 

 권장 초깃값에 대해 알아보고 실험을 통해 실제로 신경망 학습이 신속하게 이뤄지는 모습을 확인하겠습니다.

 

초깃값을 0으로 하면?

 오버피팅을 억제해 범용 성능을 높이는 테크닉인 가중치 감소(weight decay) 기법을 알아보겠습니다.

 가중치 감소는 간단히 말하면 가중치 매개변수의 값이 작아지도록 학습하는 방법입니다.

 가중치 값을 작게 하여 오버피팅이 일어나지 않게 하는 것입니다.

 

 가중치를 작게 만들고 싶으면 초깃값도 최대한 작은 값에서 시작해야 합니다.

 그렇다면 가중치의 초깃값을 모두 0으로 설정하면 어떨까요?

 이는 나쁜 아이디어입니다. 가중치 초깃값을 0으로 하면 학습이 올바로 이뤄지지 않습니다.

 

 초깃값을 모두 0으로 설정하면 안 되는 이유(가중치를 균일한 값으로 설정해도 안됩니다.)오차역전파법에서 모든 가중치의 값이 똑같이 갱신되기 때문입니다.

 

 예를 들어 2층 신경망에서 첫 번째와 두 번째 층의 가중치가 0이라고 가정하겠습니다.

 그럼 순전파 때는 입력층의 가중치가 0이기 때문에 두 번째 층의 뉴런에 모두 같은 값이 전달됩니다.

 두 번째 층의 모든 뉴런에 같은 값이 입력된다는 것은 역전파 때 두 번째 층의 가중치가 모두 똑같이 갱신된다는 말입니다.

 그래서 가중치들은 같은 초깃값에서 시작하고 갱신을 거쳐도 여전히 같은 값을 유지하는 것입니다. 이는 가중치를 여러 개 갖는 의미를 사라지게 합니다.

 

 '가중치가 고르게 되어버리는 상황'을 막으려면(정확히는 가중치의 대칭적인 구조를 무너뜨리려면) 초깃값을 무작위로 설정해야 합니다.

반응형