[딥러닝] LSTM

sykim·2023년 8월 1일

딥러닝

목록 보기
3/3

LSTM 이란?

Long Short-Term Memory의 앞 글자만 따온 것으로 RNN의 단점을 보완하기 위해 만들어진 모델이다.

RNN의 단점?


RNN 그림을 보면 상태 hh는 시간이 지나며 계속해서 v라는 가중치가 곱해진다. 그러면 2가지 문제점이 발생할 수 있다.

  • exploding gradient(기울기 폭발): v1v\ge1 이라면 hh\infin 또는 Nan이 되어버림
  • vanishing gradient(기울기 소실): v<1v<1 이라면 hh는 0이 되어버림. 0의 의미가 학습이 잘되어서 종료된건지 기울기 소실로 인한 학습 도중 판별이 어렵다.

위의 해결책으로 gradient clippping(gradient의 상하한선 제한을 걸어둠)이 있으나 근본적인 문제 해결은 불가능하다.

따라서 학습 중에 기울기 흐름이 폭발/소실하지 않게 제어가 가능한 모델인LSTM이 개발된 것이다.

LSTM

다음 그림이 LSTM의 구조이다.

LSTM이 RNN보다 추가적으로 더 사용하는 것을 LSTM이 학습하는 과정을 통해 살펴보자면

  1. Forget gate(그림에서는 FtF_t): 새로운 입력과 이전 상태를 참조해서 정보를 얼마의 비율로 잊어버릴지 결정한다.

  2. Input gate(그림에서는 ItI_t): 새로운 입력과 이전 상태를 참조해서 어떤 정보를 얼마나 활용할지를 결정한다.

  3. Cell state update(그림에서는 CtC_t)

    • LSTM에서는 hidden state와 cell state라는 2개의 상태가 존재한다.
    • Forget gate가 버린 정보와 Input gate가 사용할 것으로 결정된 정보가 Cell state에 모두 저장되고 이것이 반영되게 업데이트 해 주는 과정이다.
  4. Output gate(그림에서는 OtO_t) 위의 과정에서 도출된 정보를 모두 결합하여 다음 상태를 결정한다.

profile
배움을 기록하는 습관 들이기

0개의 댓글