< 출처 >
https://colah.github.io/posts/2015-08-Understanding-LSTMs/
LSTM 에 대한 정리.
사실 여태까지 인공신경망과 CNN, RNN 등을 다루며 이미지 데이터나 기본적인 csv 데이터를 이용한 딥러닝은 어느 정도 할 수 있다고 생각한다. 또한 GAN 도 많이 친숙하다.
하지만 Time Series Data 를 다루는 모델로 ARIMA 밖에 깊이 공부해보지 못했다. 물론 ARIMA 가 중요한 모델이지만 딥러닝 모델도 좀 알아야한다고 생각이 든다. 특히 LSTM, 그리고 GRU 등의 모델이 시계열 데이터에 잘 사용된다고 들었기 때문에 이를 조금 자세히 보고 싶다.
LSTM 은 사실 RNN Recurrent Neural Network 의 한 종류이며 vanilla RNN 을 개선하기 위해 제안된 모델이다. RNN 은 회귀 인공신경망으로 시계열 데이터에 자주 사용되었지만 앞의 정보가 갈수록 유실되는 단점이 있었다. 이는 특히 중요한 부분이 문장의 앞에 있을때 큰 문제로 드러났으며 이를 '장기 의존성 문제' 라고도 칭한다.
RNN 은 크게 하나의 cell 이 있고 이 cell 에서 hyperbolic tangent activation function 을 이용한다. 하지만 LSTM 은 이 cell 에 3가지 gate 을 추가했는데 이는 각각 input gate, output gate 그리고 forget gate 이다.
input gate 은 현재 정보를 기억하기 위한 게이트이다.
output gate 은 삭제할 것을 삭제하기 위한 게이트이다.