본문 바로가기
전공/딥러닝

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

by mhiiii 2024. 12. 12.
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