LSTM

minjun·2022년 3월 17일
0

NLP

목록 보기
5/5

LSTM

cell state로 이전단계의 정보의 소실이나 변형을 줄임
출처 : http://colah.github.io/posts/2015-08-Understanding-LSTMs/

ct,ht=LSTM(xt,ct1,ht1)c_t, h_t = LSTM(x_t, c_{t-1}, h_{t-1})
LSTM은 현재 time step의 xtx_t 와 이전 time step의 ct1,ht1c_{t-1}, h_{t-1}를 입력으로 받아서 ct,htc_t, h_t를 출력한다.
cell state가 핵심정보를 담고있다.
hidden state는 ctc_t를 한번 더 가공하여 그 time step에서 노출 할 필요가 있는 정보만을 남긴, 필터링이 된 정보이다.

LSTM gate

LSTM은 4개의 gate가 있다.
gate들은 어느정도의 정보가 cell state에 따라올지 조절해준다.

  • f: Forget gate, 이전 cell state의 벡터를 얼마나 가져올지 조절, sigmoid사용
  • i: Input gate, Gate gate를 얼마나 가져갈지 조절, sigmoid 사용
  • g: Gate gate, ht1×xth_{t-1} \times x_t 를 이전 cell state에 더해줌, tanh 사용
  • o: output gate, hth_t를 만들때 얼마나 가져갈지를 조절, sigmoid 사용

출처 : http://colah.github.io/posts/2015-08-Understanding-LSTMs/

LSTM 연산


W : shape (4h,(x+h))(4h,(x+h))
input (xt+ht1x_t + h_{t-1}) : shape (1,(x+h))(1,(x+h))

W의 행이 4h인 이유는 W가 gate마다 존재해서 그렇다(Wf,Wi,Wg,WoW_f, W_i, W_g, W_o)
input을 transpose하여 W와 행렬곱을 수행한다.

profile
자라나라 머리머리

1개의 댓글

comment-user-thumbnail
2022년 3월 18일

깔끔하게 잘 설명되어 있네요 ! 👍

답글 달기