LSTM

임광영·2022년 8월 13일
0

DeepLearning

목록 보기
9/18

일반적인 RNN을 Vanilla RNN이라 함.
Vanilla RNN의 한계를 극복하기 위해 LSTM이 탄생.


Limit of Vanilla RNN

Vanilla RNN은 이전 시점의 출력 벡터에 의존적.
타임 스텝이 길어질 수록 초기의 정보가 뒤로 충분히 전달되지 못하는 gradient vanishing 현상 발생.
초기의 정보가 중요할 경우 문제 발생.
이를 장기 의존성 문제 (the problem of Long-Term Dependencies)라 함.


Architecture

은닉측의 메모리 셀에 Input gate, Forget gate, Output gate를 추가하여 불필요한 정보를 삭제하고 중요한 정보를 기억.
이를 위해 셀 상태 (CtC_t)를 추가.
이러한 LSTM은 RNN과 비교하여 긴 시퀀스의 입력 처리에 탁월.

Concept
wxi, wxg, wxf wxow_{xi},\ w_{xg},\ w_{xf}\ w_{xo} : xtx_t에 관한 gate에서의 가중치
whi, whg, whf, whow_{hi},\ w_{hg},\ w_{hf},\ w_{ho} : ht1h_{t-1}에 관한 gate에서의 가중치

bi, bg, bf, bob_i,\ b_g,\ b_f,\ b_o : bias


Input Gate

Input gate는 현재 정보를 기억.

it=σ(wxixt+whiht1+bi)[0,1]i_t=\sigma(w_{xi}x_t+w_{hi}h_{t-1}+b_i)\in[0,1]
gt=tanh(wxgxt+whght1+bg)[1,1]g_t=tanh(w_{xg}x_t+w_{hg}h_{t-1}+b_g)\in[-1,1]

it, gti_t,\ g_t로 기억할 정보의 양을 정함.


Forget Gate

Forget gate는 기억을 삭제.

ft=σ(wxfxt+whfht1+bf)[0,1]f_t=\sigma(w_{xf}x_t+w_{hf}h_{t-1}+b_f)\in[0,1]

0에 가까울수록 많은 기억 삭제, 1에 가까울수록 기억 보존.


Cell State CtC_t

Ct=ftCt1+itgtC_t=f_t\circ C_{t-1}+i_t\circ g_t

itgti_t\circ g_t : 기억할 정보의 양

Forget Gate ft=0f_t=0
t1t-1 시점의 셀 상태 Ct1C_{t-1}의 영향력은 0.
즉, Ct=itgt.C_t=i_t\circ g_t.
Input gate의 결과가 tt 시점의 셀 상태.
\Leftrightarrow Open input gate, Close forget gate.

Input Gate itgt=0i_t\circ g_t=0
t1t-1 시점의 셀 상태 Ct1C_{t-1}의 영향력에만 의존.
즉, Ct=FtCt1.C_t=F_t\circ C_{t-1}.
t1t-1 시점의 결과가 tt 시점의 셀 상태.
\Leftrightarrow Open forget gate, Close input gate.

Open gate는 tt 시점의 입력의 양을, Forget gate는 t1t-1 시점의 입력의 양을 반영.


Output Gate

ot=σ(wxoxt+whoht1+bo)[0,1]o_t=\sigma(w_{xo}x_t+w_{ho}h_{t-1}+b_o)\in[0,1]
ht=ottanh(Ct)[1,1]h_t=o_t\circ tanh(C_t)\in[-1,1]

tt 시점의 은식 상태를 결정.


Reference
2) 장단기 메모리(Long Short-Term Memory, LSTM)

0개의 댓글