본문 바로가기
인공지능/기초

LSTM & GRU

by 태현IT 2024. 5. 7.

LSTM (Long Short Term Memory)

출처 : https://colah.github.io/posts/2015-08-Understanding-LSTMs/

LSTM은 Hochreiter & Schmidhuber (1997)  에서 처음 소개되었다. RNN에서 발생할 수 있는 Vanishing Gradient Problem을 해결하기 위해 Cell gate를 활용한다. 이는 장기기억 즉, 과거의 먼 시점의 input을 기억할 수 있도록 한다.

RNN은 총 2개의 input, hidden state $h_{t-1}$ 과 현재 시점의 input $X_t$ 를 활용하지만

LSTM은 이전 시점에서 오는 hidden state $h_{t-1}$ , Cell state $C_{t-1}$ 그리고 현재 시점의 input $X_t$ 총 3개를 Input으로 활용한다.

 

LSTM의 단게별 설명

Forget gate layer Input gate layer
sigmoid $\sigma$ 를 활용하여 hidden state $h_{t-1}$ 과 Input $x_t$ 의 비율을 0~1 사이로 조정한다. 0은 모두 잊어버리게(forget) 1은 모두 활용하도록한다. 현재의 Cell state 값에 얼마나 저장할 지를 정한다.
sigmoid $\sigma$ 는 어떤 값이 얼마나 업데이트 될 지 정한다.
tanh 는 $\widetilde{C_t}$ state에 더해질 수 있는 새로운 후보 값을 만들어낸다.
$f_t = \sigma (W_f \cdot [h_{t-1}, x_t]+b_f)$ $i_t = \sigma(W_i \cdot[h_{t-1}, x_t] + b_i)$
$\widetilde{C}_t = tanh(W_C \cdot[h_{t-1}, x_t] + b_C)$

 

 

 

Update Output gate
LSTM의 존재 이유. 앞에서 언급했듯이 더 이전의 state 정보를 유지할 수 있게 한다. Linear Interaction만을 적용시킨 것이 특징이다. 

해당 과정에서는 과거의 Cell state를 업데이트 한다. Forget gate에서 얼마나 버릴 지, Input gate에서 얼마나 더할 지 정해졌기 때문에
update 과정에서 계산을 통해 이를 Cell state 업데이트 한다.
어떤 출력값을 출력할 지 정하는 과정. Cell state를 기반으로 정해지며, Cell state를 tanh 를 통과시켜 -1 ~ 1 사이의 값을 가지게 하고, 
sigmoid를 통과한 값과 곱한다.

$h_t$ 는 다음 시점와 output으로 출력되게 된다.
$C_t = f_t \ast C_{t-1} + i_t \ast \widetilde{C}_t$ $o_t = \sigma (W_o \cdot [h_{t-1}, x_t] + b_o)$
$h_t = o_t \ast tanh(C_t)$

 

 

반응형

GRU(Gated Recurrent Unit)

이런 LSTM을 개량해서 Cho, et al. (2014) 에서 GRU(Gated Recurrent Unit)를 발표하였다. forget gate와 input gate를 통합하여 update gate를 만들어 내었다.

$z_t = \sigma (W_z \cdot [h_{t-1}, x_t])$

$r_t = \sigma (W_r \cdot [h_{t-1}, x_t])$

$\widetilde{h}_t = tanh(W \cdot [r_t \ast h_{t-1}, x_t])$

$h_t = (1-z_t) \ast h_{t-1} + z_t \ast \widetilde{h}_t$

 

반응형

'인공지능 > 기초' 카테고리의 다른 글

(Scaled) Dot-Product Attention  (0) 2024.04.28
Sequence-to-sequence(seq2seq) & Teacher-forcing  (0) 2024.04.27
Applications of RNNs  (0) 2024.03.23
Recurrent Neural Network  (2) 2024.03.23