NLP

[NLP] LSTM(Long Short-Term Memory)

파송송 2023. 5. 26. 21:10
728x90

Background

RNN은 순차적 데이터를 처리하기 위해 만들어졌지만 input의 길이가 길어지면 이전에 일어난 사건을 바탕으로 나중에 일어나는 사건을 생각하지 못한다.


LSTM(Long Short-Term Memory)

파란선이 기존의 RNN이고 주황선이 Memory cell로 LSTM에서 추가된 부분이다.

Memory cell은 gate에 의해서 제어되며 정보를 저장하거나 잊어버리는 용도로 사용된다.

  • 3개의 gate로 이루어져 있음
  • Ct(Cell State  장기상태), ht(Hidden State) 등이 존재함

Forget gate

  • \( C_{t-1} \)의 정보를 얼마나 잊을지에 관한 관계
  • sigmoid 값이 0에 가까우면 이전 상태의 정보를 잊고, 1에 가까우면 이전 상태의 정보를 기억함

Input gate

  • 현재 상태의 input(x)를 얼마나 기억할지에 대한 계산 수행
  • \( h_{t-1} \)과 input(x) 값을 sigmoid와 tanh로 보냄
  • sigmoid: 0 ~ 1 사이의 값으로 현재 input을 얼마나 기억할지 정함
  • tanh: -1 ~ 1 사이의 값으로 현재 cell state에 더할 값을 준비함

즉, sigmoid를 통해 어떤 값을 업데이트할지 정하고 tanh로 전달함


state update

  • forget gate, input gate 각각의 Hadamard product을 통해 두 값을 더한 것을 다음 상태의 cell state로 보냄
  • forget gate, input gate 둘 다 0이라면 이전 단계의 cell state 그대로 넘어옴
  • forget gate, input gate 둘다 1이라면 이전 단계의 cell state는 다 잊히고 현재 상태의 cell state가 넘어감

Output gate

  • cell state에 대한 계산이 끝났으니 output을 구함
  • Update가 완료된 cell state에 tanh를 적용하여 -1 ~ 1 사이의 값을 출력
  • 입력된 값에서 나온 sigmoid 값을 tanh에서 나온 값과 곱해서 출력함

LSTM은 RNN에 비해 많은 weights를 가지고 있어(3개의 gate와 1개의 update) RNN보다 학습시간이 오래 걸린다.


https://dgkim5360.tistory.com/entry/understanding-long-short-term-memory-lstm-kr

728x90