몽이몽이몽몽이의 블로그

ReLu(Rectified Linear Unit) 본문

Deep Learining/Activation Function

ReLu(Rectified Linear Unit)

몽이몽이몽몽이 2016.10.03 18:40

ReLu(Rectified Linear Unit)



  ReLu는 Rectified Linear Unit의 약자로 해석해보면 정류한 선형 유닛이라고 해석할 수 있다. ReLu를 Activation function이 발표된지는 오래되었다. ReLu는 Nature지에 Hahnloser가 발표한 dynamical network에서 처음 소개되었다. 그러나 현재처럼 Neural Network에서 주된 activation function으로 사용된지는 오래되지 않았다. 


  Neural Network를 처음배울 때 activation function으로 sigmoid function을 사용한다. sigmoid function이 연속이여서 미분가능한점과 0과 1사이의 값을 가진다는 점 그리고 0에서 1로 변하는 점이 가파르기 때문에 사용해왔다. 그러나 기존에 사용하던 Simgoid fucntion을 ReLu가 대체하게 된 이유 중 가장 큰 것이 Gradient Vanishing 문제이다. Simgoid function은 0에서 1사이의 값을 가지는데 gradient descent를 사용해 Backpropagation 수행시 layer를 지나면서 gradient를 계속 곱하므로 gradient는 0으로 수렴하게 된다. 따라서 layer가 많아지면 잘 작동하지 않게 된다.


따라서 이러한 문제를 해결하기위해 ReLu를 새로운 activation function을 사용한다. ReLu는 입력값이 0보다 작으면 0이고 0보다 크면 입력값 그대로를 내보낸다. 





이러한 ReLu가 가지는 이점은 다음과 같다.


1. Sparse activation : 0이하의 입력에 대해 0을 출력함으로 부분적으로 활성화 시킬수 있다.

2. Efficient gradient propagtion : gradient의 vanishing이 없으며 gradient가 exploding 되지 않는다.

3. Efficient computation : 선형함수이므로 미분 계산이 매우 간단하다.

4. Scale-invariant : 


참고자료 
http://blog.naver.com/PostView.nhn?blogId=zzing0907&logNo=220693996517

※. ReLu의 코드구현은 위 그대로 구현하면 되므로 매우 쉽다. 2년 전까지만 해도 theano에서 relu function을 만들어서 써야 했었는데 지금은 모든 딥러닝 라이브러리는 relu function을 지원해주므로 그냥 사용하면 된다.


'Deep Learining > Activation Function' 카테고리의 다른 글

Softmax  (0) 2016.10.12
ReLu(Rectified Linear Unit)  (0) 2016.10.03
Activation functions  (0) 2015.09.24
0 Comments
댓글쓰기 폼