LSTM이 나오게 된 배경은 RNN이 Long Term Memory를 가지지 못하기 때문에 등장하게 되었다.
LSTM은 Hidden Layer를 계산하기 위한 한 가지 다른 방식에 불과하다. 또한 LSTM도 RNN의 일종이며, Gate 개념을 추가하여 Vanishing Gradient Problem 문제 또한 해결하였다.

RNN구조와 LSTM 구조
Long Short-Term Memory (LSTM)

- Cell State: $C_t$
- Hidden State: $h_t$
- Gate (Input | output | forget)
LSTM은 다음 3가지의 구성 요소를 가지고 있다.
Forget Gate

-
Kyungwoo is …., Taehee is … and ????(his or her) state is.. ⇒ 다음 문장에서 his가 들어갈 것인지, her이 들어갈 것인지 맞춰야하는데, 보통 Taehee를 가르킬 확률이 크다.
- 다음 문제를 풀기 위해서는 Kyungwoo라는 정보가 삭제되기를 원함 (필요없어도 된다. 까먹어도 된다.) ⇒ Forget
- $f_t = \sigma(W_f[h_{t-1},x_t] + b_f)$, $[H_{t-1},x_t]$는 두 개의 정보를 Concat 한다는 의미이다. $f_t$ (Forget Gate)
- $\sigma$ (시그모이드) 함수로 마지막에 처리하였기에 0~1사이에 존재한다.
- 1: Completely keep this (끝까지 지켜야하는 정보)
- 0: Completely get rid of this (필요없어도 되는, 까먹어도 되는 정보)
- 과거의 $h_{t-1}$히든 스테이트와 현재의 인풋값 $x_t$이 결합되어 계산됨.
- Forget은 이전 정보를 잊어버리도록 돕는 역할을 한다.
- $C_t = f_tC_{t-1}+ i_t\hat{C_t}$
- $f_tC_{t-1}$은 과거의 정보를 얼마나 $f_t$ 만큼 가져갈 것인가?
- 0이면 과거의 데이터를 잊는다.
- 1이면 과거의 정보를 그대로 반영한다.
Input Gate

-
Kyungwoo is …., Taehee is … and ????(His or her) state is ….
- 우리는 새로운 객체의 성별 정보에 대해서 추가하기를 원함 (여기서 새로운 객체는 Taehee 이다.
- Taehee: she / Actor / …
-
$C_t = f_tC_{t-1}+ i_t\hat{C_t}$, $\hat{C_t}$는 후보군이다. 과거에 만들어진거와 지금 만들어진 Cell state 후보군을 통해 현재의 Cell State를 만듦.
- $i_t: \sigma(W_i[h_{t-1},x_t] + b_i)$
- $\hat{C_t}: tanh(W_c[h_{t-1},x_t] +b_c)$: 지금의 새로운 Cell State를 만듦
Output Gate

- $h_t = o_t *tanh(C_t)$
- $o_t = \sigma{(W_o[h_{t-1},x_t + b_o)}$
Variants of LSTM (GRU): Gated Recurrent Unit
