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
07-02 LSTM과 GRU
바닐라 아이스크림이 가장 기본적인 맛을 가진 아이스크림인 것처럼, 앞서 배운 RNN을 가장 단순한 형태의 RNN이라고 하여 바닐라 RNN(Vanilla RNN)이라고 합니다. (…
wikidocs.net
'전공 > 딥러닝' 카테고리의 다른 글
[DL] 과적합과 규제 (Overfitting, Regularization) (0) | 2024.12.12 |
---|---|
[DL] 합성곱 신경망(CNN), 합성곱과 풀링 (0) | 2024.12.12 |
[DL] 순환 신경망(Recurrent Neural Network, RNN) (0) | 2024.12.10 |
[DL] 활성화 함수(Activation Function), Sigmoid/ReLU/tanh/Leaky ReLU/GELU/ELU/SoftPlus/Swish (0) | 2024.12.05 |
[DL] 다층 퍼셉트론 (Multi-layer Perceptron, MLP)이란? (0) | 2024.12.02 |