brunch

매거진 Neural Net

You can make anything
by writing

C.S.Lewis

by 태하 Mar 07. 2020

#1 Dying ReLU

ReLU Function이 가진 한계이자 장점

* 본 포스팅은 개인적인 정리노트입니다. 틀렸거나 이해가 안가는 부분은 꼭 피드백 부탁드립니다.



- IDEA


BackPropagation 은 체인룰에 의해 기울기를 역으로 계산하면서 오차에 대한 weight 값의 영향력에 비례해서 weight를 수정해주겠다는 방식이다. 이런 Sigmoid Function은 출력값이 0 과 1 사이다. 신경망이 깊어지면 깊어질수록 거듭되는 BackPropagation에 의해 출력값은 누적으로 곱해지는데 0과 1사이의 수가 곱해지다보면 0으로 수렴하게 되니 가중치의 영향력 비교가 힘들어 진다는 뜻이다. 이런 현상을 Vanishing Gradient 현상이라고 한다.


Sigmoid Function 의 가장 큰 문제로서 나타나는 것이 기울기 사라짐 현상 즉 Vanishing Gradient 문제인데, 이 해결방안으로서 가장 보편적으로 거론되는 것이 Rectified Function (ReLU Function)이다. 이 함수는 음수가 들어오면 무조건 0을, 양수는 그대로 출력하는 성질을 가진다. 이는 Vanishing Gradient 문제를 해결할 뿐 아니라 미분계산이 훨씬 간편해지는 결과를 낳아 그만큼 학습속도도 빨라진다.


Sigmoid Function에서는 ForwardPropagation 과정에서 어떤 뉴런의 input 으로 아주 큰 음수값이 들어왔다고 하자. 해당 뉴런은 BackPropagation 시 0에 가까운 수를 가중치에 곱하게 되는데, 그렇다해도 전과 후 뉴런의 상황에 따라 가중합은 다시 커질 수 있다. Weight을 계속해서 수정할 수 있다는 뜻이다.


이와달리 ReLU에서는 ForwardPropagation 과정에서 어떤 뉴런에서든 음수값이 한 번 들어왔다하면 BackPropagation 시에 0이라는 real value가 가중치에 곱해지면서 해당 노드가 통째로 죽어버린다. 이를 Dying ReLU 현상이라고 하는데, 그렇다면 이 위험해 보이는 현상이 학습에 전혀 문제가 되지 않는다는 말인가?


(* Dying ReLU 현상에 관한 더 자세한 설명은 아래 링크를 참조바랍니다.)

https://datascience.stackexchange.com/questions/5706/what-is-the-dying-relu-problem-in-neural-networks



- Problem


(* 효과적인 이해를 위해 Wx+b (x>0) ReLU Fucntion을 활성화함수로 가지는 뉴런이 deep 하게 이어지는 상황을 가정합니다.)


Bias 로 Large negative term이 학습되는 상황에서는 Dying ReLU가 큰 문제로 이어질 가능성이 매우 높다. 지나치게 많은 노드가 통째로 죽어버릴 것이기 때문이다. ( ** Bias term 을 없애면 안돼나요? - 모든 데이터 평면들이 원점을 지나게 만든다는 것은 당연히 학습데이터의 overfitting 또는 underfitting을 발생시킬 것이다.) 


그러니 Bias로 0 (혹은 0에 가까운 작은 값)을 주는 보편적인 상황을 살펴보자. Weight을 random하게 주더라도 이는 여전히 이론적으로 4-50%의 노드를 죽이는 것과 마찬가지이다. 하지만 학습 결과는 성공적이다.(!)


그렇다면 weight을 초기화할 때 오직 양수 값을 쓰거나 0 부터 1 사이의 정규화된 값을 씀으로써 정확도를 훨씬 높일 수 있지 않을까. 하지만 weight을 양수로 초기화 했을 때 오히려 학습 정확도에 차이가 거의 없음을 목격했고 음수일 때의 output을 보완한 Leaky ReLU Function 을 써도 세션 실행시 정확도 차이가 그렇게 크지 않았다. 즉 ReLU Function에서 우려했던 Dying ReLU 현상이 학습 정확도에 드라마틱한 영향을 미치지 못한다는 뜻으로 해석된다.



- SOLUTION


그 이유에 대한 답을 찾아보다가 의외의 사실을 발견했다. Dying ReLU 현상이 오히려 뉴럴넷에 대해서 ReLU가 가지는 큰 강점으로 작용한다는 것이다. "Sparse representation"을 부여하기 때문이다. 풀어서 이야기하면 sparsity(희소성)를 창출하는 일반화(regularization) 경향을 증가시킨다는 뜻이다.(논문을 번역하다보니 어째 이말이 더 어렵다..) 아무튼 아래 논문을 읽어보면 sparsity가 높아질수록 inherent pattern(숨겨져 있는 패턴)을 찾아내는데 유용하다고 되어있다.


아는 데까지 설명하자면 데이터의 overfitting을 방지해주기 위해 특정 weight을 작게 줌으로써 Cost 함수의 기울기를 펴는 것(flatten)이 일반화라고만 알고 있다. 즉 ReLU Function의 random weight이 노드를 죽이는 현상이 거시적 관점에서는 일종의 일반화 방식(Sparsity-Inducing Regularization)으로써 작용한다 는 뜻이다. 말하자면 node들을 솎아서 사용함으로써 network의 상관성을 줄임여 Overfiting을 방지하는 Drop-out 과 비슷한 역할을 하는 것이다. (실제로 Drop-out을 구현 할때에는 drop-out 확률 만큼 random하게 노드를 선택해 그 노드들은 0을 곱해주는 식으로 연산이 진행된다니 비슷한 원리가 아닐 수 없다.)


Softplus함수 - 이미지출처 구글

구체적인 예를 들어 설명해보자. 0에서의 비선형성(hard linearity)이 hard saturation을 초래하여 optimization을 방해하지는 않을까? 아래 논문에서 언급된 Softplus 함수 (log(1+e^x)로 정의)를 가지고 와 설명해보겠다. 그림에서 볼 수 있듯 ReLU함수의 부드러운(differentiable) 버전이라고 볼 수 있다. 이 함수는 ReLU에 비해 sparsity는 낮지만 hard saturation point가 없어 optimization이 더 잘 될 것이라고 예측된다. 하지만 실제로는 반대로 학습이 더 잘 이루어지지 않는다. 즉 linearity 보다 sparsity가 optimization에 더 크게 작용한다는 뜻으로 추측할 수 있다.


그 이유로써 이 논문에는 희소성에 대한 네 가지 구체적 장점이 제시된다. 해석을 해도 말이 너무 어려워 잘 이해는 안되므로 인용만하고 넘어가겠다...

https://www.utc.fr/~bordesan/dokuwiki/_media/en/glorot10nipsworkshop.pdf

    Information disentangling. One of the claimed objectives of deep learning algorithms (Bengio, 2009) is to disentangle the factors explaining the variations in the data. A dense representation is highly entangled because almost any change in the input modifies most of the entries in the representation vector. Instead, if a representation is both sparse and robust to small input changes, the set of non-zero features is almost always roughly conserved by small changes of the input. 
    Efficient variable-size representation. Different inputs may contain different amounts of information and would be more conveniently represented using a variable-size data-structure, which is common in computer representations of information. Varying the number of active neurons allows a model to control the effective dimensionality of the representation for a given input and the required precision.  
    Linear separability. Sparse representations are also more likely to be linearly separable, or more easily separable with less non-linear machinery, simply because the information is represented in a high-dimensional space. Besides, this can reflect the original data format. In text-related applications for instance, the original raw data is already very sparse.  
    Distributed but sparse. Dense distributed representations are the richest representations, being potentially exponentially more efficient than purely local ones (Bengio, 2009). Sparse representations’ efficiency is still exponentially greater, with the power of the exponent being the number of non-zero features. They may represent a good trade-off with respect to the above criteria.



- SUMMARY


물론 Dying ReLU 문제는 ReLU Function이 가지고 있는 큰 문제이지만 신경망이 Deep and wide 한 상황(!)에서 보면 그것은 오히려 Regularization을 돕는 효과만 준다. 즉 충분한 Epoch만 주어진다면 정확도에는 문제가 없는 것으로 예상된다. 미묘한 수치이기는 하나 그 Node들을 살려 놓았을 때 학습 정확도를 높이는 것에 도움이 되기 때문에, 현재 PReLU(가장 성능이 좋다고 알려짐), Leaky ReLU, SELU, Thresholded ReLU 등의 다양한 Activation Function이 개발되어 있다.


하지만 Deep learning의 묘미가 그러하듯, 역시나 ReLU Function의 Sparsity-inducing Regularization이 숨겨진 패턴을 더 잘 학습하여 정확도에 더 크게 기여할 수 있으므로 특정 한 Function이 항상 더 나은 성능을 보장하는 것은 아닐 수 밖에 없다는 사실을 기억하자.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari