sigmoid 의 미분은 A(1-A)가 된다. 아래와 같은 그림이 되는데 문제는 오차역전파 과정에서 loss의 값이 0에 가까워 진다. 즉 파라미터 업데이트가 안되는 것과 같은 효과가 난다.
이에 대한 xavier/he initialization 을 통해 해결한다. 자세한건 박사논문 참조.
또한 sigmoid 대신 relu나 tanh 같은 activation function을 사용해도 되는데 또 편미분해야하는 문제점이 있다.
xavier/he initialization 구현한 코드는 다음과 같다.
np.random.rand 대신 randn을 사용한다.(xavier방법) 이후 np.sqrt로 다음과 같이 사용한다. ( he 방법)
'딥러닝(deep learning) > 인공신경망(Neural Network)' 카테고리의 다른 글
one hot encoding (0) | 2019.08.06 |
---|---|
real data processing (0) | 2019.08.05 |
오차 역전파의 문제 (0) | 2019.07.31 |
오차역전파 도입 (0) | 2019.07.31 |
deep_learning 최종 정리 (0) | 2019.07.29 |