티스토리 뷰

LSTM(Long Short Term Memories)

Gradient vanishing / exploding 문제 완화를위해, 

거리가 먼 과거의 정보도 잊어버리지 않도록 수식을 변형하고,

3개의 Gate를 이용해 현 단계의 인풋과 이전 메모리의 비율을 조정합니다.

 

(아래 설명 및 그림은 https://medium.datadriveninvestor.com/lstm-vs-rnn-confusion-cleared-772d43b4206f을 참조)

RNN
RNN Cell은 이전 단계의 hidden state이번 단계의 인풋을 결합하여 다음 유닛으로 전달합니다.
LSTM
LSTM에서는 Cell state와 Hidden state라는 두 개의 정보 흐름을 가지며 인풋에 따라 정보를 선택하거나 결합하여 다음 유닛으로 전달합니다.

 

⬛ LSTM 구조

* Cell StateHidden state를 두어 이전 time-step까지 쌓인 정보와 현재 인풋에서 정보를 결합

* Hidden State를 RNN에서 ouput과 같이 prediction에 활용

 

LSTM 아키텍처

 

 

 

(아래 수식 및 그림은 https://slideplayer.com/slide/16585005/을 참조)

Forget Gate Input Gate Update (cell state) Output Gate (hidden state)
어떤 정보를 버릴지 결정 새로 들어온 정보 중 어떤 정보를 얼마나 반영할지 결정 기존 정보와 새 정보의 반영 정도에 따라 업데이트 업데이트된 정보를 얼마나 반영하여 Output으로 내보낼지 결정

이전 스텝의 히든과 현재 인풋정보를 고려하여 해당 정보를 유지할 필요가 없어지면
Flush!
(마지막 씨그마 함수는 0~1
사이의 값으로 변환하는 역할)
이번 단계의 인풋과 이전 단계의 히든을 결합한 임시 cell state(Ct_tilda)

이번 단계의 인풋과 이전 단계의 히든 정보를 이용해 어떤 정보가 중요할지 조절하는 gate
(it)
Gate에 의해 조절된 이전 단계의 Cell(Ct-1)과
이번 단계의 Cell(Ct_tilda)을 결합해
현재 단계의 Cell State를 생성
Cell state 중 중요도에 따라
hidden state(=Output)로
내보냄