LSTM 이란?

김동우·2022년 12월 13일

LSTM은 RNN의 한 종류로, RNN의 장기 의존성 문제(long-term dependencies)를 해결하기 위해서 나온 모델입니다. 따라서 직전 데이터 뿐만 아니라, 좀 더 거시적으로 과거 데이터를 고려하여 미래 데이터를 예측하기 위해 나온 모델입니다.

RNN?

RNN은 신경망(Neural Network)의 일종입니다. 일반적인 신경망을 Feed-forward neural networks(FFNets)라고 하는데요.
FFNets에서는 데이터를 입력하면 입력층에서 은닉층까지 연산이 차근차근 진행되고 출력이 나가게 됩니다. 이 과정에서 입력 데이터는 모든 노드를 딱 한 번씩만 지나가게 됩니다. 데이터가 노드를 한 번만 지나가게 된다는 것은 데이터의 순서 즉 시간적인 측면을 고려하지 않는 구조라는 의미입니다. 데이터들의 시간 순서를 무시하고 현재 주어진 데이터를 통해서 독립적으로 학습을 합니다.
하지만 RNN의 경우는 은닉층의 결과가 다시 같은 은닉층의 입력으로 들어가도록 연결되어 있습니다. 이런 특성이 RNN이 순서 또는 시간이라는 측면을 고려할 수 있는 특징을 가져다주게 됩니다. RNN에서 Recurrent는 '반복되는, 되풀이되는'이라는 의미를 가지고 있는데 이 이름은 은닉층의 결과가 다시 은닉층으로 들어가게 되는 특성에서 나온 듯 합니다.


위의 그림과 같이 모든 RNN은 Neural Network 모듈을 반복시키는 체인과 같은 형태를 하고 있습니다. 기본적으로 RNN에서는 이렇게 반복되는 간단한 구조를 가지고 있습니다.

LSTM도 똑같이 체인 구조를 가지고 있지만, 4개의 Layer가 특별한 방식으로 서로 정보를 주고 받도록 되어있습니다.
이제 LSTM의 핵심 아이디어를 설명해 드리겠습니다.

위 그림과 같이 총 6개의 파라미터와 4개의 게이트로 이루어져 있습니다.

Cell State


LSTM의 핵심 부분입니다. 모듈 그림 위에서 수평으로 이어진 윗 선에 해당합니다. Cell State는 컨베이어 벨트와 같아서 작은 linear interaction만을 적용시키면서 전체 체인을 계속 구동 시킵니다. 정보가 전혀 바뀌지 않고 그대로만 흐르게 하는 부분입니다. 또한 State가 꽤 오래 경과하더라도 Gradient가 잘 전파 됩니다. 그리고 Gate라고 불리는 구조에 의해서 정보가 추가되거나 제거 되며, Gate는 Training을 통해서 어떤 정보를 유지하고 버릴지 학습합니다.

Forget Gate


이 Gate는 과거의 정보를 버릴지 말지 결정하는 과정입니다. 이 결정은 Sigmoid layer에 의해서 결정이 됩니다. 이 과정에서는 과 를 받아서 0과 1 사이의 값을 에 보내줍니다. 그 값이 1이면 "모든 정보를 보존해라"가 되고, 0이면 "죄다 갖다 버려라"가 됩니다.

Input Gate


이 Gate는 현재 정보를 기억하기 위한 게이트 입니다. 현재의 Cell state 값에 얼마나 더할지 말지를 정하는 역할입니다.

Update


과거 Cell State를 새로운 State로 업데이트 하는 과정입니다. Forget Gate를 통해서 얼마나 버릴지, Input Gate에서 얼마나 더할지를 정했으므로 이 Update과정에서 계산을 해서 Cell State로 업데이트를 해줍니다.

Output Gate


어떤 출력값을 출력할지 결정하는 과정으로 최종적으로 얻어진 Cell State 값을 얼마나 빼낼지 결정하는 역할을 해줍니다.

profile
안녕하세요

0개의 댓글