Day 32 - 딥러닝 > LSTM

2022. 11. 23. 18:24Python

이번 글에서는 딥러닝 알고리즘 중 LSTM에 대해 정리할 것이다.

LSTM은 주로 자연어를 다룰 때 사용한다. 문장을 만들기 위해서는 다음에 올 단어 뿐 아니라 그 뒤에 올 단어를 예측해야 하는데, 이를 위해서는 모델을 반복 호출하여 여러 차례 단어를 출력해야 하고 이를 수행하는 모델이 LSTM이다.

LSTM은 게이트를 이용해 이전 은닉 상태를 현재의 입력에 반영하는 알고리즘으로, RNN의 단점을 극복하기 위해 장기 기억을 위한 셀 상태를 추가하여 각각의 게이트(망각 게이트, 입력 게이트, 출력 게이트)를 통해 이전 시점의 은닉 상태를 현 시점에 반영한다.

  • 망각 게이트: 셀 상태에 저장된 과거의 정보를 사용할 것인지 여부를 결정한다.
  • 입력 게이트: 셀 상태에 현재 정보를 덮어쓸 것인지 결정한다.
  • 출력 게이트: 셀 상태와 현재 정보를 합쳐 가중치를 결정한다.

LSTM의 장점은 순서가 있는 데이터를 다룰 때 사용가능 하다는 점과 RNN보다 나은 성능을 보여준다는 점이 있다. 반면, 입출력 관계가 복잡하고 과거의 정보가 흐려진다는 단점이 있다.

 

LSTM 실습 Link: https://colab.research.google.com/drive/1G_FtM8nAwsfpzhYmZ0Ozfmb0GF_aTOch

 

Google Colaboratory Notebook

Run, share, and edit Python notebooks

colab.research.google.com