[AI] LSTM, GRU 이론 및 개념

[AI] LSTM, GRU 이론 및 개념

Tags
AI
Published
March 20, 2025
Author
JH
태그
종류
학문 분야

RNN의 문제점

RNN의 시퀀스가 길어질수록 역전파 알고리즘을 통해 그래디언트가 전파될 때, 기울기 소실(vanishing gradient) 문제나 기울기 폭발(exploding gradient) 문제가 발생할 수 있다. 이를 해결하기 위해, 필요한 정보는 저장하고 불필요한 정보는 제거하여 효율적으로 정보의 흐름을 관리하도록 LSTM이 등장했다.

Cell state

notion image
Cell state는 LSTM 구조에서 위와 같이 표현될 수 있으며, hidden state와 마찬가지로 이전 시점의 cell state를 다음 시점으로 넘겨준다. Cell state의 주역할은 gate들과 함께 작용하여 정보를 선택적으로 활용할 수 있게 해주는 것이다.

Forget gate

notion image
Forget gate는 과거의 정보를 기억할지 잊을지를 결정하는 단계로 전 시점의 hidden state와 현재 입력 x에 대한 연산을 진행하고 활성화 함수로 sigmoid 함수를 사용한다. sigmoid 함수는 0~1 사이의 값을 출력하므로 0에 가까울수록 많은 정보를 잊은 것이고, 1에 가까울수록 많은 정보를 기억하는 것이 된다.

Input gate

notion image
Forget gate가 과거 정보를 잊기/기억하기 위한 것이였다면 input gate는 현재 정보를 잊기/기억하기 위한 게이트다. 각 다른 가중치와 활성화 함수로 it​와 gt​를 계산한다. sigmoid 함수는 0~1 사이의 값을 갖고, tanh 함수는 -1~1 사이의 값을 가지기 때문에 0<i<1, −1<g<1을 만족하게 된다. i는 forget gate와 마찬가지로 0에 가까울수록 많은 정보를 삭제하는 것을 의미하고, g는 나중에 현재 정보를 cell state에 얼마나 더할지를 결정하게 된다.

Cell state update

notion image
앞서 과거 정보를 위해 구한 fi​와 이전 cell state를 곱한 것에 현재 정보를 위해 구한 it​와 gt​를 곱한 것을 더해줌으로서 현재 시점의 cell state를 구하게 된다. ft​∘Ct−1​의 계산을 통해 이전 시점의 cell 정보를 얼마나 유지할지를 구하고, it​∘gt​를 통해 현재 기억할 정보를 구한다. 즉, 과거에서 유지할 정보와 현재에서 유지할 정보를 더해서 현재 시점의 cell state를 update하는 것이다.

Output gate

notion image
최종적으로 우리가 구할 출력값, hidden state는 위와 같이 계산됨. 현 시점의 hidden state는 현 시점의 cell state와 함께 계산되며, 출력과 동시에 다음 셀로 전달된다.

GRU(Gated Recurrent Unit)

notion image
GRU는 기존 LSTM의 구조를 조금 더 간단하게 개선한 모델이다. LSTM과 달리 reset gate, update gate 단 2개의 gate만을 사용하며, cell state, hidden state가 합쳐져 하나의 hidden state로 표현된다.

Reset gate

Reset gate를 구하는 공식은 위 그림에서 식 (2)에 해당하며, 이전 시점의 hidden state와 현 시점의 x를 sigmoid 함수를 적용하여 구하는 방식이다. 결과값은 0~1 사이의 값을 가지며, 이전 hidden state의 값을 얼마나 활용할 것인지에 대한 정보로 해석할 수 있다. reset gate에서 나오는 값은 그대로 사용되는 것이 아니라, (3) 식에서 전 시점의 hidden state에 곱하여 활용된다.

Update gate

Update gate는 LSTM의 input, forget gate와 비슷한 역할을 하며 과거와 현재의 정보를 얼마나 반영할지 비율을 구하는 것이 핵심이다. (1) 식에서 구한 zt​는 현재 정보를 얼마나 사용할지를 반영한다. 그리고 (1−zt​)는 과거 정보에 대해서 얼마나 사용할지를 반영한다.

LSTM vs GRU?

GRU는 기존 LSTM에 비해 더 간단한 구조를 가지고 있고, 마지막 출력값에 활성화 함수를 적용시키지 않는 것이 특징이다. GRU가 LSTM과 비교해 더 우월한 성능을 가지고 있다고 할수는 없지만, 학습할 파라미터가 더 적어 학습 속도가 더 빠르다는 장점이 있다.