전공/딥러닝

[DL] LSTM(Long Short-Term Memory), GRU(Gated Recurrent Unit) 알아보기

mhiiii 2024. 12. 12. 13:30
728x90

LSTM

전통적인 RNN(Vanila RNN)의 단점을 보완

 

은닉층의 메모리 셀에 입력 게이트, 망각 게이트, 출력 게이트를 추가하여

불필요한 기억을 지우고, 기억해야할 것들을 정함

RNN과 다른 점

  • 은닉 상태(hidden state)를 계산하는 식이 전통적인 RNN보다 조금 더 복잡
  • 셀 상태(cell state)라는 값을 추가
  • 게이트 사용 

 

셀 상태(cell state)

 

 t시점의 셀 상태를 $C_t$로 표현

 

셀 상태는 위의 그림에서 왼쪽에서 오른쪽으로 가는 굵은 선

 

셀 상태 또한 이전에 배운 은닉 상태처럼 이전 시점의 셀 상태가 다음 시점의 셀 상태를 구하기 위한 입력으로서 사용

 

은닉 상태값과 셀 상태값을 구하기 위해서 새로 추가 된 3개의 게이트를 사용

삭제 게이트, 입력 게이트, 출력 게이트라고 부르며 이 3개의 게이트에는 공통적으로 시그모이드 함수가 존재

 

시그모이드 함수를 지나면 0과 1사이의 값이 나오게 되는데 이 값들을 가지고 게이트를 조절

 

1) 입력 게이트

 

입력 게이트는 현재 정보를 기억하기 위한 게이트

$i_{t}=σ(W_{xi}x_{t}+W_{hi}h_{t-1}+b_{i})$

$g_{t}=tanh(W_{xg}x_{t}+W_{hg}h_{t-1}+b_{g})$

 

$i_t$는

$\sigma$(현재 시점 t의 $x$값과 입력게이트로 이어지는 가중치 $W_{xi}$를 곱한 값 +

                이전 시점 t-1의 은닉 상태가 입력 게이트로 이어지는 가중치 $W_{hi}$를 곱한 값) 

 

$g_t$는

tanh(현재 시점 t의 $x$값과 입력 게이트로 이어지는 가중치 $W_{xg}$를 곱한 값

                이전 시점 t-1의 은닉 상태가 입력 게이트로 이어지는 가중치 $W_{hg}$를 곱한 값)

 

$i_t$ = [0,1]

$g_t$ = [-1,1]

 

이 두 개의 값을 가지고 이번에 선택된 기억할 정보의 양을 정하게 됨

 

2) 삭제 게이트

 

삭제 게이트는 기억을 삭제하기 위한 게이트

$f_{t}=σ(W_{xf}x_{t}+W_{hf}h_{t-1}+b_{f})$

 

현재 시점 t의 x값과 이전 시점 t-1의 은닉 상태가 시그모이드 함수를 지나게 됨

 

시그모이드 함수를 지나면 0과 1 사이의 값이 나오게 되는데, 이 값이 곧 삭제 과정을 거친 정보의 양

 

0에 가까울수록 정보가 많이 삭제된 것이고 1에 가까울수록 정보를 온전히 기억한 것

 

3) 셀 상태(장기 상태)

 

 

$C_{t}=f_{t}∘C_{t-1}+i_{t}∘g_{t}$

 

입력 게이트에서 구한 $i_t, gt_$ 이 두 개의 값에 대해서 원소별 곱(entrywise product)을 진행

이번에 선택된 기억할 값을 의미

 

더보기

원소별 곱(entrywise product)

 

같은 크기의 두 행렬이 있을 때 같은 위치의 성분끼리 곱하는 것

입력 게이트에서 선택된 기억을 삭제 게이트의 결과값과 더함

이 값을 현재 시점 t의 셀 상태라고 하며, 이 값은 다음 t+1 시점의 LSTM 셀로 넘겨짐

 

4) 출력 게이트와 은닉 상태(단기 상태)

 

출력 게이트는 현재 은닉 상태($)를 결정하는 중요한 역할

 

 

$o_{t}=σ(W_{xo}x_{t}+W_{ho}h_{t-1}+b_{o})$

$h_{t}=o_{t}∘tanh(c_{t})$

 

출력 게이트는 현재 시점 t의 x값과 이전 시점 t-1의 은닉 상태가 시그모이드 함수를 지난 값 

 

은닉 상태는 장기 상태의 값이 하이퍼볼릭탄젠트 함수를 지나 -1과 1사이의 값

해당 값은 출력 게이트의 값과 연산되면서, 값이 걸러지는 효과가 발생

 

값이 걸러진다? 

 

$o_t$가 0에 가까우면 $tanh(c_t)$가 거의 제거된 상태로, 은닉 상태에 영향을 미치지 않게 됨

 

$o_t$가 1에 가까우면 $tanh(c_t)$가 그대로 은닉 상태로 전달됨 

 

즉, $o_t$가 필터 역할을 하게 됨 

 


GRU

LSTM에서는 출력, 입력, 삭제 게이트라는 3개의 게이트가 존재

 

GRU에서는 업데이트 게이트와 리셋 게이트 두 가지 게이트만을 사용

 

1) 업데이트 게이트( $z_t$ )

 

$h_t$에서 $z_t$가 0에 가까우면 현재 입력의 정보가 새롭게 반영됨 

 

$h_t$에서 $z_t$가 1에 가까우면  이전 상태 ($h_{t-1}$)의 정보가 유지 

 

2) 리셋 게이트($r_t$)

 

에 가까우면 이전 상태 ($h_{t-1}$)의 정보가 무시되고 입력에 더 영향을 받게 됨 

 

References

https://wikidocs.net/60762

 

07-02 LSTM과 GRU

바닐라 아이스크림이 가장 기본적인 맛을 가진 아이스크림인 것처럼, 앞서 배운 RNN을 가장 단순한 형태의 RNN이라고 하여 바닐라 RNN(Vanilla RNN)이라고 합니다. (…

wikidocs.net

 

728x90