- Weight 초기화 잘해보자
- How to solve?
- Activation functions and initailization on CIFAR-10
- Still in Research
- Conclusion
Weight 초기화 잘해보자
문제 해결법으로 2가지 있다.
-
ReLU를 사용한다.
-
Weight의 초기값을 제대로 적용시키자.
그런데 ReLU를 사용할 때
돌릴 때 마다 결과값이 다르다.
W를 초기화할 때
[ -1 ~ 1 ] 랜덤값을 줬기 때문이다.
그러면 초기값을 0으로 주자 !
그러면 어떤 문제가 생길까?
여기서 x는 input값이기 때문에 0이 아닐수도 일수도 있다.
그런데 W를 0으로 초기화해줬기 때문에
그림의 좌상단 x쪽 부분의 미분 영역을 보면
W
가 chain rule을 할 때 사용이 된다.
x라는 값과 상관없이
기울기가 0이된다.
그렇게 되면
그 뒤에 있는 모든 기울기가 0
이 된다.
Q. 왜 뒤에 있는 모든 기울기가 0이 될까?
다음과 같이 구성되어 있다 가정해보자.
그러면
\( \frac{df}{dy} \) = \( \frac{df}{dx} \) * \( \frac{dx}{dy} \)
그런데 여기서
\( \frac{df}{dx} \)의 값이 0 이라는 것을 알 수 있다.
그렇기 때문에
뒤에 있는 모든 기울기는 자연스레 0이된다.
How to solve?
-
우리는 초기값을 굉장히 잘 똑똑하게 초기화 해줘야한다.
-
RBM 알고리즘을 사용하지 않아도 된다.
-
Xavier initialization
: 2010년도 논문에서 발표- input Count와 output Count에 맞게 초기값을 셋팅해주면 된다.
-
He's initalization
: 2015년도 논문에서 발표Xavier initialization
를 수정/보완
Activation functions and initailization on CIFAR-10
Still in Research
이것 저것 실행시켜보고
가장 맞는 것을 사용하면 된다.
Conclusion
2가지 문제가 해결되었기 때문에
딥러닝을 잘 학습시킬 수 있는
모든 조건을 갖추었다.