왜 RNN, LSTM, GRU에선 ReLU를 안 쓰고, LSTM에선 Sigmoid, Tanh를 사용할까?

RNN, LSTM, GRU를 보다보면 좀 특이한 게 있다.
분명 gradient vanishing 문제를 줄일 수 있는 활성화 함수가 ReLU인데 왜 여기선 Sigmoid, Tanh를 쓰고 있는 것일까?
ReLU

ReLU는 x > 0일 때 기울기가 1이기 때문에 층을 깊게 쌓아도 gradient가 빠르게 0으로 죽지 않는다는 것이 장점이다. 때문에 CNN이나 MLP에서 층을 깊이 쌓았을 때 gradient vanishing 문제를 완화한다.
RNN
하지만 RNN은 층을 깊게 쌓은 것과 다르게 같은 가중치를 시간 축으로 계속 반복 적용한다.

CNN이나 MLP에서 층을 깊게 쌓으면 층마다 다른 가중치를 가지고 역전파할 때 기울기가 서로 다른 가중치 행렬들의 곱이 된다. 이때 ReLU를 사용하면 양수 영역에서 미분이 1이 되기 때문에 각 층의 활성화가 기울기를 0으로 줄이지 않고 gradient vanishing 문제가 완화되는 것이다.
이와 반대로 RNN에서는 시간마다 같은 가중치를 사용한다. 때문에 역전파를 할 때 같은 가중치 행렬을 여러 번 곱하게 되어버린다.
즉, Feed-forward는 각 층이 다르기 때문에 값이 계속 달라지면서 적당히 섞여 gradient vanishing을 완화할 수 있지만 RNN은 한 행렬을 계속 거듭제곱하기 때문에 소실 또는 폭발이 훨씬 더 쉽게 누적되는 것이다.
때문에 ReLU를 사용하면 gradient exploding 문제를 해결하지 못한다. 또한 다른 활성화 함수보다 gradient exploding 이 좀 더 잘 일어나게 만드는데 그 이유는 다음과 같다. ReLU 함수를 보면 음수 영역에서 0이지만, 양수 입력은 제한 없이 그대로 통과한다. 만약 RNN의 hidden state가 양수로 유지되면 계속 ReLU를 거치면서 커질 수 있게 되는 것이다.
그럼 Sigmoid, Tanh는 무슨 차이가 있을까?
tanh를 사용하면 활성화 함수를 거쳤을 때 출력이 -1부터 1까지로 hidden state를 강제 제한하여 gradient exploding 문제를 방지할 수 있게 된다. 또한 sigmoid의 경우도 0~1 사이로 게이트의 출력값을 제한한다.
그렇다면 sigmoid와 tanh는 gradient vanishing 문제를 직접 해결하는 것일까?
그것은 아니다. 오히려 두 함수 모두 입력이 너무 커지면 활성화 함수의 기울기가 0에 가까워져 gradient vanishing 문제가 오히려 발생할 수 있다. 때문에 RNN에서 long term dependency 문제가 발생한 것이다. LSTM과 GRU에서는 활성화 함수가 gradient vanishing 문제를 직접 해결하지 않고 게이트과 cell state를 설계함으로써 gradient vanishing 문제를 완화하였다.
의미적인 부분에서도 sigmoid와 tanh가 적합하다.
가장 먼저 sigmoid의 경우 출력이 항상 양수 0~1 이기 때문에 게이트에 적합하다. 게이트에서는 정보를 얼마나 통과시킬지에 대한 것을 결정하는데 이때 sigmoid를 거치면서 이걸 확률처럼 해석할 수 있게 되기 때문이다.
tanh의 경우 출력이 -1~1로 중심이 0이기 때문에 hidden state를 표현할 때 양수, 음수 방향 모두 적용이 가능하다. hidden state는 네트워크가 현재까지 입력에서 학습한 context나 memory를 담고 있기 때문에 양수는 어떤 것에 대한 강한 영향, 음수는 그것의 반대를 나타내는 식으로 해석할 수 있다. 때문에 0을 기준으로 긍정적이고, 부정적인 정보를 동시에 표현할 수 있어 위와 같이 해석할 수 있게 된다.
'헷개정 - 헷갈리는 개념 정리' 카테고리의 다른 글
| stemming, lemmatization (0) | 2025.10.24 |
|---|---|
| Word2Vec (0) | 2025.10.05 |
| Focal loss는 object detection에만 사용될 수 있을까? (1) | 2025.09.26 |
| U-Net이 왜 성능이 좋을까? (0) | 2025.09.26 |
| CNN은 시각 데이터 처리에만 사용이 가능한 네트워크일까? (0) | 2025.09.26 |