Skip to content

LSTM #
Find similar titles

Structured data

Category
Algorithm

LSTM 이란? #

LSTM (Long Short Term Memory)는 기존의 RNN이 출력과 먼 위치에 있는 정보를 기억할 수 없다는 단점을 보완하여 장/단기 기억을 가능하게 설계한 신경망의 구조를 말합니다. 주로 시계열 처리나, 자연어 처리에 사용됩니다.

LSTM 구조 및 수식 #

기본 RNN 구조 #

RNN (Recurrent neural network)는 Input x가 들어가면 여러 번의 순환을 거처 output인 y가 나오는 구조입니다. 이전 단계에서 얻은 정보가 지속할 수 있도록 체인과 같은 구조로 이루어져 있습니다. tanh layer를 모듈로 사용합니다.

Image

Image

RNN은 BPTT(BackPropagation Through Time) 역전파 방식을 사용합니다

Image

해당 방식은 모든 타임 스텝마다 처음부터 끝까지 역전파를 하게 되는데, 타임 스텝이 크면 매우 깊은 네트워크가 되며 이러한 네트워크는 Gradient vanishing / exploding 문제를 일으키게 됩니다. 또한, 장기간의 패턴을 학습할 수 없다는 문제가 있습니다. 이를 해결하기 위해 장기간의 메모리를 가질 수 있는 LSTM 셀이 제안되었습니다.

LSTM cell #

LSTM도 RNN과 같은 체인 구조로 되어 있지만, 반복 모듈은 단순한 한 개의 tanh layer가 아닌 4개의 layer가 서로 정보를 주고받는 구조로 되어 있습니다. LSTM 셀에서는 상태(state)가 크게 두 개의 벡터로 나누어집니다. ht를 단기 상태(short-term state),  ct를 장기 상태(long-term state)라고 볼 수 있습니다.

Image

1. Cell state #

Cell state는 정보가 바뀌지 않고 그대로 흐르도록 하는 역할입니다.

Image

2. Forget gate #

Forget gate는 cell state에서 sigmoid layer를 거쳐 어떤 정보를 버릴 것인지 정합니다.

Image

3. Input gate #

Input gate는 앞으로 들어오는 새로운 정보 중 어떤 것을 cell state에 저장할 것인지를 정합니다. 먼저 sigmoid layer를 거처 어떤 값을 업데이트할 것인지를 정한 후 tanh layer에서 새로운 후보 Vector를 만듭니다.

Image

4. Cell state update #

이전 gate에서 버릴 정보들과 업데이트할 정보들을 정했다면, Cell state update 과정에서 업데이트를 진행합니다.

Image

5. Output gate #

Output gate는 어떤 정보를 output으로 내보낼지 정하게 됩니다. 먼저 sigmoid layer에 input data를 넣어 output 정보를 정한 후 Cell state를 tanh layer에 넣어 sigmoid layer의 output과 곱하여 output으로 내보냅니다.

Image

Reference #

0.0.1_20210630_7_v33