RNN은 Recurrent Neural Network의 약자로, 순서가 존재하는 데이터를 학습 및 예측할 때 사용할 수 있습니다. 앞에서 넘어온 정보와, 지금 상태에서의 input을 함께 접목하여 그에 맞는 output을 출력하고 다음 상태의 input 과 다시 연산을 합니다.

하지만, 데이터의 길이가 길어질수록 Vanishing 문제가 발생하여 (반복된 연산으로 데이터 끝단에서는 그 정보량이 희미해집니다.) 장기간의 패턴을 학습할 수 없다는 문제가 있습니다. 예를들어서, 아래 그림 왼쪽에서와 같이 비교적 짧은 문장에서는 RNN이 잘 작동하지만, 오른쪽과 같이 문장이 길어지고 예측해야 할 단어와 근거가 되는 단
어 사이의 거리가 멀어진다면 정보량이 사라져 전달이 안되어 성능이 떨어지게 됩니다.


LSTM이란, Long Short Term Memory 의 약자로 RNN의 단점인 Data가 길수록 끝단에서 정보가 사라지는 문제를 해결한 알고리즘 입니다. LSTM은 Long term 과 Short term 으로 나누어 Two Track 으로 진행하게 됩니다. (RNN은 One Track)

LSTM의 핵심적인 개념은 Cell state 입니다. 위그림에서 상단에 수평하게 뻗는 라인을 말합니다. Cell state의 역할은 정보량의 손실을 최소화 하면서 데이터 끝단까지 정보를 들고 가는 역할을 합니다.
LSTM은 4개의 게이트로 구성되어 있습니다.
첫번째는 앞에서 넘어온 Cell state를 얼마나 버릴지를 결정하는 forget gate 입니다. 현재상태에서 들어온 input 값과 앞에서 넘어온 정보의 조합은 sigmoid 함수를 통과한 후 Cell state에 곱해주게 됨으로써 정보량을 완전히 버리거나, 완전히 들고갈 수 있습니다.

두번째는 Cell state에 새로운 정보를 얼마나 추가할 지를 결정해주는 input gate 입니다. 마찬가지로 앞에서 넘어온 데이터와 현 상태에서 들어온 input data가 sigmoid와 tanh 함수를 거친 후 곱한 값을 Cell state에 더해줌으로써 Cell state에 새로운 정보를 추가할 수 있게 됩니다.

이렇게 업데이트가 끝난 Cell state는 데이터 끝단까지 이 과정을 거치면서 이어나가게 됩니다.

Cell state는 다음 상태로 넘어가는것과 동시에 현재 상태의 Output을 출력할때에도 역할을 하게 됩니다. 이를 output gate 라고 합니다.

위의 단계를 종합하여 RNN과 비교해 쉽게 말하자면, RNN의 One Track이 갖는 Vanishing 문제를 해결하기 위해 LSTM은 RNN의 Track에 Long Term 으로 들고가는 라인을 추가한 것입니다. 이를 Cell state라고 하며 데이터의 인자들을 지나갈 때마다 정보량을 조금씩 버리고 더하고 출력연산에 영향을 미치며 데이터 끝단까지 이어나가는 역할 입니다.
LSTM은 단순히 시계열, 문자열 데이터에만 적용가능한 것은 아닙니다. 예를 들어, 손글씨 이미지의 픽셀 순서에도 활성화 되는 순서가 있듯이 이미지 데이터도 처리할 수 있습니다.
다음은 RNN과 LSTM의 Backpropagation 과정을 살펴보며 Vanishing 문제를 살펴 보겠습니다.

딥러닝이 떠오른 가장 큰 이유는 Backpropagation을 통한 가중치 업데이트의 속도가 빨라졌기 때문입니다. RNN의 Backpropagation 과정을 살펴보면, 위의 그림에서 오른쪽 상단의 출력물 y4에서 출발하여, 왼쪽의 가중치 W를 업데이트 하는 과정까지 너무 많은 tanh' 곱셈의 연산이 이어집니다. 거의 이 과정은 1보다 작은 값들의 곱셈으로 이어지고 연산이 길어짐에 따라 0으로 수렴하는 문제를 갖게 됩니다.

반면에 LSTM의 Backpropagation 과정은 Cell State를 통해 이뤄지기 때문에 Vanishing 문제가 현저히 줄어듭니다.

LSTM은 RNN에 비해 구조상 Cell state를 통해 먼 거리까지 정보를 보존하며 들고갈 수 있습니다. forget gate의 활성화 함수는 sigmoid이고 forget gate 출력값이 1이면 모든 정보를 들고갈 수 있기 때문입니다.
<출처 : 인하대학교 최원익 교수님, 데이터사이언스 강의노트 중 발췌>