[강의 리뷰]CS231N lecture 10 RNN 후기

이윤석·2021년 9월 6일
0

[TODO] 강의노트와 필기를 추가해야함.

RNN의 문제점을 해결하기 위해 LSTM을 고안하는 과정 속에서 내가 느낀 점

  • 모델에서 대표하는 식에 대한 직관적인 이해가 필요하다.
    • RNN의 기본식에 대해서 먼저 대략적인 이해가 필요하다.
      - 식1 : ht=tanh(Whhht1+Wxhxt)h_{t}=tanh(W_{hh}h_{t-1}+W_{xh}x_{t}), 식2 : yt=Whyhty_{t}=W_{hy}h_{t}
      - 식1의 경우 W, h 와의 관계와 식이 어떤 이유로 도출된 것인지에 대한 이해가 필요하다.
    • RNN의 문제는 출력의 길이가 긴 경우, 앞 쪽의 정보들이 뒤로 갈수록 옅어지는 것이다.
    • LSTM
      • 식1 : ct=fct1+igc_{t}=f\odot c_{t-1} + i \odot g, 식2 : ht=otanh(ct)h_{t}=o \odot tanh(c_{t})
      • 정보들에 대해서 계속 머금고 있는 항을 추가해야한다(cell state : i(input gate),f(forget gate),o(output gate),g).
      • [직관적 해석] cell state 를 통해서 기존 정보들을 계속 갖고 있는다. 식1에서 cell state 와 input 을 gate 출력 값(0부터 1사이 소수)을 통해 반영 여부를 결정하여 더하여 다음 hidden state를 업데이트 한다.

    새로운 모델을 고안하는 과정은 결국 기존 모델의 문제점을 해결할 수 있는 방법을 고안해서 추가하거나 변경하는 것(직관적 해석이 우선적으로 필요)

  • 기존 모델을 기반으로 새로운 모델을 만들거나 수정을 할 때, 기존의 연산이나 메모리를 해치지 않을 수 있으면 않는 방향으로 가야한다.
    - RNN의 기존 틀을 따르되, 정보가 소실되는 것을 줄이기 위해서 기존 정보들을 머금고 있는 cell state를 추가한 것 처럼...
    - 연산 자체도 크게 늘지 않고 오히려 줄었다고 볼 수 있다. cell state는 hidden state와 동일한 사이즈로 생성이 되고, 연산이 matrix multiplication이 아닌 element-wise multiplication으로 연산을 하므로, 전체적인 연산속도는 기존 것보다 느리지 않다. parameter는 줄어들기 때문에 메모리도 더 효율적으로 쓰는 방향으로 새로운 모델을 만든 셈이다.
profile
Be Smart with 성실한 호기심

0개의 댓글