NN for XOR
앞에서 우리는 activation function으로 sigmoid 를 썼다.(activation function은 일정이상값이 되면 activation이 되도록 하는 거기 때문에 activation function이라고 부른당.)
Vanishing gradient
backpropgation은 vanishing gradient 문제를 가지고 있당. 2~3단 까지는 괜찮았지만, ㅠㅠ
sigmoid는 1보다 작은 값을 항상 내놓기 때문에 layer가 많아 지면 많아질 수록 input에 대해 0.00000......이런식으로 값이 작아져 결과에 미치는 영향이 작아져버린다.
출처: https://t1.daumcdn.net/cfile/tistory/22293C50579F7BBF13
그래서 sigmoid 대신에 ReLU(Rectified Linear Unit)를 사용하게 된다.
ReLU는 sigmoid와 달리 activation function이 0<= 의 값을 갖게 된다.
(이것이 의미하는것은!!!!!!!!!! 이제 1000점 맞은애를 굳이 다시 1안에 가둘필요없이 1000은 1000 잘했어 1000점이다 하면 된다는것이다.)
이렇게 되면 vanishing gradient의 문제가 해결되기 때문에, Neural Network에서는 ReLU를 사용하게 된다.
단, 한가지 주의해야될 점은 마지막에는 0~1값으로 나와야 하기 때문에 sigmoid를 이용해야 된다는 점이다.
ReLU말고도, 여러가지 버전들이 있다.
tanh는 0을 중심으로 만든거!
'Study > 모두를 위한 딥러닝 시즌1' 카테고리의 다른 글
Lec10-4: 레고처럼 네트웍 모듈을 쌓기! (0) | 2018.05.28 |
---|---|
Lec10-2, 3: Weight 초기화 잘해보자/ Dropout, model 앙상블 (0) | 2018.05.23 |
Lec 09 - XOR 문제를 풀자 (0) | 2018.05.17 |
Lec 08 - 딥러닝의 기본 개념: 시작과 XOR 문제, back-propagation과 deep! (0) | 2018.05.15 |
Lec 07-2 - Training/Testing data set (0) | 2018.05.15 |
댓글