[Week 4] LSTM

혜 콩·2022년 10월 14일
0
post-thumbnail
post-custom-banner

🚩 LSTM (long short-time memory)

  • RNN의 time step 길이가 길어질수록 발생하는 gradient vanishing 등의 long term dependency 문제를 해결할 수 있는 LSTM
  • 단기 기억을 길게 기억할 수 있도록 개발한 모델
  • RNN과 달리 cell state CtC_t가 다음 time step의 입력값으로 들어간다.
    {Ct,ht}=LSTM(xt,Ct1,ht1)\{C_t, h_t\} = LSTM(x_t, C_{t-1}, h_{t-1})

sigmoid를 거쳐서 나온 i,f,o0~1 값을 가지게 되고, 다른 벡터와 sigmoid의 0 또는 1과 element-wise 곱해줌으로써 어떤 정보는 보존되고 어떤 정보는 보존되지 않는다.

  • 만약 sigmoid의 값이 0.3이고 함께 곱해지는 벡터가 5라면, 0.3*5 = 1.5로 530%의 정보만 보존
  • tanh-1 ~ 1 사이의 값으로 유의미한 정보로 변환

🍏 LSTM의 세부 동작 (forget gate, input gate, output gate)

  • input gate 쪽에는 2개의 gate가 있다. (input , gate)

🍏 LSTM의 파라미터 개수 구하기

| 은닉층은 1개이다.
| 입력(xtx_t)의 차원은 25이다.
| 은닉 상태(ht1h_{t-1})의 차원은 100이다.
| LSTM의 각 게이트는 bias를 가진다.

LSTM 입력 차원 xx 을 m, 은닉상태 차원 hh 을 n
각 4개의 gate 연산에 사용되는 파라미터는 (Wxh,Whh,biasW_{xh}, W_{hh}, bias)
WxhW_{xh} 파라미터 수 : nmn*m
WhhW_{hh} 파라미터 수 : nnn*n
biasbias 파라미터 수 : n=(1<bias>ht1)n = (1<bias>*h_{t-1})
==> 4(nm+n2+n)=50,4004(nm +n^2+n) = 50,400



🚩 GRU

Gated Recurrent Unit

  • LSTM의 모델구조를 경량화해서 더 적은 메모리와 빠른 계산 시간
  • Cell state와 hidden state를 일원화해서 hidden state만이 존재
  • LSTM에서 완전한 정보를 가지고있던 cell state와 같은 역할을 하는 통합된 hidden state 존재

  • LSTM에서 사용한 (맨 마지막 수식 c.f 부분) 수식에서 GRU는 input gate iti_t만 가져온다. ftf_t는 (1it1-i_t) 로써 사용 --> (1zt)(1-z_t) 부분

  • 덧셈 연산을 통해서 gradient들을 복사해 넘겨주므로 gradient가 손실없이 잘 전달된다. 더 긴 time step까지 gradient 전달이 가능해 long time dependency 를 더욱 줄였다.

profile
배우고 싶은게 많은 개발자📚
post-custom-banner

0개의 댓글