머신러닝, 딥러닝 ML, DL/이론

[Deep Learning] LSTM 개념 정리

킹남지 2021. 8. 13. 18:30
반응형

전 포스팅에서 RNN에 관한 기본적인 내용을 정리하고, 마지막에는 문제점까지 알아봤습니다.

https://kingnamji.tistory.com/26

 

[Deep Learning] RNN 개념 정리

순환 신경망이라고 부르는 RNN에 대한 내용을 정리해보겠습니다. RNN RNN은 Recurrent Neural Network의 줄임말로, 순환하는 신경망이라고 직역할 수 있습니다. (Recursive Neural Network, 재귀 신경망과는 다른.

kingnamji.tistory.com

 

이번에는 LSTM(long short-term memory)에 대해 정리해보겠습니다.

 

 

LSTM의 구조

아래의 그림은 RNN과 LSTM의 구조를 나타냅니다.

위는 RNN, 아래는 LSTM

 

RNN은 하나의 hidden state만을 갖고있습니다.

 

LSTM은

1. RNN의 hidden state에 cell state가 추가됐습니다. ( hidden state = $h_t$, cell state =  $c_t$ )

2. 3개의 게이트 구조, 입력 게이트(input gate, $i_t$), 망각 게이트(forget gate, $f_t$), 출력 게이트(output gate, $o_t$)가 추가됐습니다.

 

수식

LSTM의 수식을 보겠습니다.

$\sigma$는 시그모이드 함수를 나타냅니다.

$\odot$은 elementwise product를 뜻하는, 아다마르 곱(Hadamard product) 연산자입니다.

 

 

Forget Gate

forget gate

forget gate, $f_t$ 는 과거의 정보를 잊기 위한 게이트입니다.

직전의 hidden state $h_{t-1}$과 입력 $x_t$를 입력 받고, 시그모이드 함수를 취해준 값이 forget gate의 출력입니다.

시그모이드 함수의 출력은 0~1로 값이 0에 가까울수록 이전 정보를 잊고, 1에 가까울 수록 이전 정보를 많이 기억합니다.

 

 

Input Gate

input gate

input gate는  현재의 정보를 기억하기 위한 게이트입니다.

위의 그림에서는 $h_{t-1}$과 $x_t$를 마찬가지로 입력받고 각각 시그모이드와 하이퍼볼릭탄젠트를 취해줍니다.

시그모이드의 출력 0~1 값은 input gate의 역할을, tanh의 출력 -1~1 값은 현재 cell state를 나타냅니다.

 

Cell State Update

Cell State

Cell state의 update 과정입니다. 

(1) 이전의 cell state 값과 얼마나 잊을지를 정해줄 forget gate의 출력값을 원소별 곱셈 연산

(2) 현재의 cell state 값과 얼마나 기억할지를 정해줄 input gate의 출력값을 원소별 곱셈 연산해 더한 값으로 update 됩니다.

 

 

Output Gate

output gate

output gate는 update된 cell state의 정보를 얼마나 다음 hidden state에 반영할지를 정해줍니다.

hidden state의 값은 tanh를 취한 cell state의 값과 얼마나 반영할지를 정해줄 output gate 출력 값의 원소별 곱셈으로 계산됩니다.

 

 

LSTM Network는 이렇게 정보를 얼마나 반영하고, 잊을지를 학습합니다.

구조나 수식이 RNN보다 복잡하고, 어렵지만 한번 이해해보시길 바랍니다.

 

읽어주셔서 감사합니다. ^^

 

 

[참고자료]

[1] http://colah.github.io/posts/2015-08-Understanding-LSTMs/

[2] https://www.youtube.com/watch?v=6niqTuYFZLQ 

반응형