http://futurelab.creatorlink.net/
idea:
hidden layer를 많이 쌓을수록 hidden layer마다 non-linear activation이 필요.
non- linear activation을 해줄때마다 sigmoid를 쓰면
Backpropagation시 chain rule에 의해 0에 가까운 s(z)*(1-s(z)) 값이 계속 곱해짐.
그렇게 되면 gradient가 0에 가까워지고, gradient descent에서 gradient 방향으로 parameter를 update했는데, gradient가 0이 나오면 update가 불가하다.
-> gradient 값이 0에 가까워져 parameter update가 불가능해지는 현상을 "Vanishing Gradient"라고 함
sigmoid : 0< g(z) <1
-장점 : binary classification의 output layer라는 특수한 상황에 적합
-단점 : g'(z)가 0에 가까운 구간이 많아, gradient descent의 속도가 저하된다.
tach(hyperbilic tangent) : -1 < g(z) < 1
-장점 : sigmoid보다는 vanishing gradient가 덜하다
-단점 : 여전히 vanishing gradient문제를 해결하지 못함
ReLU : g(z)=z*I(z>0)
-장점 : sigmoid, tanh의 vanishing gradient문제 해결
-단점 : 그래도 절반이 gradient가 0 (dying ReLU현상)
(g'(z)=1 인 구간이 절반이다)
Leaky ReLU : gradient가 0인 구간이 없다.
-장점 : dying ReLU현상 해결
output layer의 activation function
-binary classification : sigmoid
-multi-class classification : softmax
activation이 non-linear해야 하는 이유
-> linear activation만 n번 해주는 것은 결국 linear activation을 한 번 해주는 거나 마찬가지가 된다.
즉, hidden layer를 아무리 깊게 여러개 쌓아도 의미가 없게 된다.
zero initialization은 row symmetric이 된다는 문제점이 있다. 따라서, randomgkrp initialization을 해준다.