이번 시간에는 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"이라고 부르며, 다른 다양한 함수들이 존재한다.
왜 이런 함수를 사용해야하고 어떤 역할을 하는지 이해하는 것이 중요할 것 같다.
'딥러닝 > 모두를 위한 딥러닝 시즌1' 카테고리의 다른 글
[모두를 위한 딥러닝 시즌1] Lec10-03. Dropout과 앙상블 (3) | 2024.02.10 |
---|---|
[모두를 위한 딥러닝 시즌1] Lec10-02. Weight 초기화 (3) | 2024.02.10 |
[모두를 위한 딥러닝 시즌1] Lec09. XOR 문제 딥러닝으로 풀기 (1) | 2024.02.10 |
[모두를 위한 딥러닝 시즌1] Lec08. 딥러닝: 시작과 XOR 문제, Back-propagation (2) | 2024.02.10 |
[모두를 위한 딥러닝 시즌1] Lec07-2. Training/Testing 데이터 셋 (2) | 2024.02.08 |