딥러닝/모두를 위한 딥러닝 시즌1

[모두를 위한 딥러닝 시즌1] Lec10-01. ReLU activation function

CoGam 2024. 2. 10. 18:08
728x90

이번 시간에는 ReLU에 대해서 알아본다.

 

ReLU가 뭔지 그리고 왜 사용하는지 알아야하는데, 

이것을 위해서는 역전파 시 발생했던 문제에 대해서 알아야한다.

 

 

갑자기 cost와 accuracy 그래프가 나와서 당황했을 수도 있겠다.

우리가 배운대로 multi layer 모델을 사용했을 때의 결과이다.

 

무엇인가 이상하다.

cost는 갑자기 0이 되었고, 

accuracy도 이상한 움직임을 보인다.

 

즉 제대로 결과가 나오지 않은 것이다.

 

이런 현상은 우리가 만든 모델을 좀 더 구체적으로 생각해보면 된다.

 

 

Backpropagation을 진행할 때 chain rule을 기반으로 계산을 했었다.

또한 그 안에서 sigmoid 계산으로 0~1 사이의 값으로 바꿔주는 과정이 있었다.

 

즉, 층이 늘어날수록 chain rule을 계산할 때 0과 1 사이의 값이 계속해서 곱해지는 것이다.

 

층이 많아진다면 (최악의 경우 그냥 무한이라고 생각해보면), 

앞쪽 층으로 역전파를 진행할수록 그 값이 0이 될 것이다.

손실을 줄이도록 업데이트가 일어나지 않는다고 볼 수 있다.

 

 

 

전에 역전파를 배울 때 이야기했던 바로 그 문제이다.

Vanishing gradient 라고 불린다.

(점차 앞쪽 층이 흐려진다는 의미)

 

 

 

단연 이 문제의 원인은 Sigmoid 함수였다.

그래서 연구자들은 다른 모델을 생각해내고, 그것이 바로 ReLU 이다.

 

Sigmoid 함수와 다르게 0 ~ 1 사이의 값이 나오는 것이 아니라 

linear 한 그래프가 같이 있기에, 0 ~ 무한 의 값이 나오게 된다.

 

따라서 vanishing gradient 문제가 해소될 수 있다.

 

 

ReLU를 이용해서 모델을 만들고 cost를 구해보면 원만하게 cost가 

감소되는 이상적인 그래프가 나옴을 알 수 있다.

 

 

이러한 역할을 해주는 함수들을 모두 

"Activation function"이라고 부르며, 다른 다양한 함수들이 존재한다.

 

왜 이런 함수를 사용해야하고 어떤 역할을 하는지 이해하는 것이 중요할 것 같다.

반응형