저번 글에는 vanishing gradient 에 대해서 작성하였다.
이번 글에서는 기존 Vanila RNN 에서의 문제점이었던 기울기 소실, 정보 소실에 문제를 보완하고자 강의에서 소개한 LSTM RNN에 대해서 이야기 하려고 한다.
결국 단순한 RNN은 많은 timesteps을 거치게 되면 정보를 보존하는 것이 어렵다.
hidden state에 지속적으로 재사용/재작성 하기 때문에 그렇다. 그렇다면 이런 정보를 기억할 수 있는 memory를 넣어주면 되는 것 아닐까?
LSTMs
LSTM은 Long Short-Term Memory의 줄임말로 LSTM이라 하면 LSTM을 적용한 RNN 을 생각하자. LSTM은 hidden state $h^{(t)}$ 와 cell state인 $c^{(t)}$로 이루어진다.
LSTM에서 Cell은 장기 정보(Long-term information)을 저장한다. 이렇게 하여 LSTM은 Cell로부터 정보를 읽고, 지우고(망각), 쓰기가 가능하다. CS224n 강의에서는 개념적으로는 컴퓨터 RAM 과 비슷하다고 말한다.
LSTM에서 어떤 정보를 지우고/쓰고/읽을지 결정하는 것은 세개의 gates에 의해서 결정된다. 보통 아래의 특징을 가진다.
- length $n$ vector
- 각 timestep, gates의 각 element는 opened (1), closed (0), 혹은 그 사이의 값을 가질 수 있음
- gate는 동적(dynamic)으로 현재 context에 따라 값이 계산됨
input 과 outputdl 이 있을때 아래와 같이 표기할 수 있다.

이런 게이트를 통해서 새로운 셀 컨텐츠인 New cell content와 cell state, hidden state를 뽑아낸다.

위의 사항을 시각화하면 아래와 같다.


LSTM에서 결국 $c^{(t})$를 얻기 위한 forget gate와 input gate의 + 연산이 LSTM의 secret 이라고 한다. 왜냐면 이는 LSTM 아키텍처가 많은 timestep을 거쳐도 RNN의 정보가 손실되지 않기 때문이다.
만약 forget gate가 1로 설정되어 있고 input gate가 0으로 되어있다면 해당 셀의 정보는 무기한으로 보존된다.
하지만 반대로 vanila RNN은 hidden state의 정보를 보존하는 반복 가중 행렬 $W_h$ 학습하는 것이 더 어렵다.
하지만 이렇게 좋은 LSTM도 Vanishing/exploding gradient가 없다고 보장할 수는 없다고 한다. 그래도 훨씬더 긴 long distance dependency에 잘 학습한다고 한다.
참고문헌
Learning to forget: continual prediction with LSTM: https://ieeexplore.ieee.org/document/818041
Long Short-Term Memory: https://www.bioinf.jku.at/publications/older/2604.pdf
'AI,ML' 카테고리의 다른 글
| HeteroFL: Computation And Communication Efficient Federated Learning For Heterogeneous Clients (1) | 2024.12.02 |
|---|---|
| NLP - [4] Seq2Seq, Attention (0) | 2024.09.24 |
| NLP - [2] Language Model, RNN - (3) (0) | 2024.07.21 |
| NLP - [2] Language Model, RNN - (2) (0) | 2024.06.21 |
| NLP - [2] Language Model, RNN - (1) (1) | 2024.06.17 |