본문 바로가기
딥러닝

알고리즘의 발전 - ReLU

by 미스터탁 2017. 3. 25.

기존의 인공 신경망의 단점으로 지적되는 특성이 여러가지가 있다.


크게 over fitting문제와 gradient vanishing problem가 있다.


over fitting의 경우에는 학습데이터에 너무 맞춰서 학습이 되다보니 실제데이터(test data)에는 잘 안맞는 현상을 이야기 한다.


gradient vanishing(exploding) problem은 neural network의 weight가 계속 전파 되면서 초기의 weight를 잊어버리거나(기울기가 0에 수렴하는 현상 /vanishing) 무한히 커지는 현상(exploding)을 이야기한다.


gradient vanishing(exploding) problem은 activation function과 관련이 있는데, 기존의 신경망에서 가장 기본적으로 사용하는


activation function는 sigmoid function 이다. sigmoid function 은 아래와 같은 식으로, input의 값을 0과 1사이의 값으로 변환시킨다.



우선 시그모이드는 zero-centered 함수가 아니기 때문에, input값이 모두 positive라 가정한다면 ( x >0 ), back propagation과정중에


gradient가 모두 positive하거나 negative해질 가능성이 생긴다.


(물론 tanh는 zero-centered 함수이지만, 아래의 이유때문에 똑같은 문제를 가지게 된다)



또한, back propagation으로 학습하는 과정중에 시그모이드의 미분함수가 들어가게 되는데, 아래 그래프에서 보는 것처럼 


시그모이드의 미분함수는 최대값이 0.25이고 양끝으로 갈수록 0에 가까워진다.


학습이 계속 진행되면서 gradient가 0에 수렴해질 가능성이 생기는 것이다.








기존의 인공신경망은 위에서 언급한 over-fitting 과 gradient vanishing(exploding) problem이 치명적인 결함으로 지적되어 왔었고


이를 해결하기 위해 여러 알고리즘이 발전했는데, 그중에 하나가 ReLu funciton이다


ReLu(Rectified Linear Unit) function는 0이하는 0, 0이상은 x값을 가지는 함수로 앞서 언급한 두 문제를 완화시키는데 효과적인 역할을 한다.




우선적으로, 미분 계산이 매우 간단해짐에 따라(0이하는 0, 0이상은 1), 학습속도가 빨라진다는 장점이 있다.(빠르게 수렴)


또한 sparsification이 가능해지는데 input node가 normalization이 되었다고 가정한다면 input node의 반은 0이하의 값을 가지게 될 것이고,


ReLu의 output으로 반이 0값을 가지게 됨으로써 hidden node가 sparse해지게 된다.  이런 효과는 다음에 언급할 Drop-out과 비슷한 효과를 


주게되는데, sparse한 representation는 inherent pattern(숨겨져 있는 패턴)을 찾아내는데 효율적이다. 


ReLU에서 조금더 발전된 Leaky ReLU, Parametric ReLU 도 있다.






인프런 강의 할인 쿠폰 코드입니다.

R로 하는 웹 크롤링 - 입문편(할인쿠폰코드) 236-69fc51d93a53 
https://www.inflearn.com/course/R-crawling# 

R로 하는 웹 크롤링 - 실전편 (할인쿠폰코드) 237-55c672aeb038 
https://www.inflearn.com/course/R-crawling-2# 

R로 하는 텍스트마이닝 (Top keyword부터 감성분석까지) (할인쿠폰코드) 238-c86096730061 
https://www.inflearn.com/course/R-text-mining#


R로 무작정 해보는 data science (할인쿠폰코드) 310-c6164f3d9be9 
https://www.inflearn.com/course/R-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%82%AC%EC%9D%B4%EC%96%B8%EC%8A%A4-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EC%BD%94%EB%94%A9#



[PyTorch] 쉽고 빠르게 배우는 딥러닝(할인쿠폰코드) 369-7c698142f82e

https://www.inflearn.com/course/PyTorch-%EB%94%A5%EB%9F%AC%EB%8B%9D


반응형

댓글