Worth spreading

Initial value (초기값) 을 모두 0으로 준다면? 본문

ABCD/Deep Learning

Initial value (초기값) 을 모두 0으로 준다면?

annual 2017. 7. 31. 12:59

 뉴럴넷(Neural net)에서 가중치(weight)의 초기값 설정은 아주 중요하다.


실제로 뉴럴넷의 성패가 초기값에 의해 갈리는 경우가 종종 있다.



그렇다면 초기값을 모두 0으로 주면 어떨까? 결론부터 이야기하자면 이는 좋은 아이디어가 아니다.


그렇다면 가중치의 초기값을 모두 0으로 주면 안되는 이유는 무엇일까? (정확히는 가중치를 균일한 값으로 설정하면 안 된다.)


그 이유는 오차역전파법(Back propagation)에서 모든 가중치의 값이 똑같이 갱신되기 때문이다.


순전파(forward prop.)시에 같은 값들(0)이 전달되면 역전파(backwards prop.) 때도 역시 같은 값들로 갱신된다.


이는 가중치를 여러 개 갖는 의미를 사라지게 한다. 


이렇게 '가중치가 고르게 되어버리는 상황'을 막으려면 초기값을 무작위로 설정해야 한다.



An extract from '밑바닥부터 시작하는 딥러닝(O'REILLY)'

'ABCD > Deep Learning' 카테고리의 다른 글

Image inpainting with GAN [논문참조]  (0) 2018.06.26
cost를 구할 때 log를 쓰는 이유는?  (0) 2017.07.19
Comments