understanding LSTM Networks

|

원문

RNN의 Long-term dependencies 문제

RNN의 식을 간단히 살펴보자

hidden state를 거치는데, $h_{t}$와 $x_{t}$에 $\tanh$를 한 녀석이 들어가기 때문에, 한참 뒤의 output에 반영이 되기에 어렵다. 물론 이론상으로는 long-term dependency를 잘 핸들하도록 파라미터 튜닝을 잘 하면 된다고 하지만 그래도 어렵다.

RNN-longtermdependencies.png

LSTM Networks

이를 해결하기 위해 LSTM이라는 RNN의 변형이 나오게 된다. 기존의 RNN과 비교를 해보자. LSTM3-SimpleRNN.png LSTM3-chain.png

간단히 그림으로만 봐도, 윗쪽 라인은 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

이제 이를 내보낸다. 식만 써놓자..