understanding LSTM Networks
03 Mar 2017 | RNN LSTM nnRNN의 Long-term dependencies 문제
RNN의 식을 간단히 살펴보자
hidden state를 거치는데, $h_{t}$와 $x_{t}$에 $\tanh$를 한 녀석이 들어가기 때문에, 한참 뒤의 output에 반영이 되기에 어렵다. 물론 이론상으로는 long-term dependency를 잘 핸들하도록 파라미터 튜닝을 잘 하면 된다고 하지만 그래도 어렵다.
LSTM Networks
이를 해결하기 위해 LSTM이라는 RNN의 변형이 나오게 된다. 기존의 RNN과 비교를 해보자.
간단히 그림으로만 봐도, 윗쪽 라인은 non-linear한 연산이 없이 쭉 유지된다. 그렇기에 long term을 잘 유지할 수 있어보인다.
윗쪽 라인은 Cell state, 아랫쪽 라인은 output state이다.
Cell state
1번째 세로줄
처음 라인을 보면 Sigmoid연산을 하는데, 이는 0~1 사이의 값을 준다. 거기에 곱셈 연산이니까, 어느정도의 양을 계속 가져갈 것인지 정하는 구간이다.
2,3번째 세로줄
여기서는 어떤 새로운 정보를 저장할 것인지 정한다.
input gate layer($i_t$) : 값을 update할 것인지 정한다. tanh layer($\tilde{C_t}$) : 새로운 후보 값을 만든다.
최종
위의 두개를 합쳐서 Cell state가 업데이트된다.
output state
이제 이를 내보낸다. 식만 써놓자..