네이버 부스트캠프/LEVEL-2

[부스트캠프][WK06 / Day27] RNN, LSTM, and GRU 2

1. 강의 내용

LSTM and GRU (주재걸 교수님)

1) LSTM (Long Short-Term Memory)

LSTM은 기존의 RNN이 가지던 문제인 gradient vanishing, exploding 문제를 해결하고 long term dependency 문제를 개선한 모델입니다. cell state 정보를 다른 변형없이 지나가도록 하며 위의 문제들을 해결합니다.

 

위에서 $C_t$는 완성된 정보를 담고있으며, $h_t$는 $C_t$를 한 번 더 가공해 해당 timestep에서 노출할 필요가 있는 정보만 남긴 filtering된 벡터입니다.

 


LSTM의 내부구조는 이렇게 되어있으며 이에대한 설명은 [부스트캠프][WK02 / Day9] Recurrent Neural Networks 에 정리해 두었습니다.

  • 추가설명: Output gate에서 cell state가 tanh를 지나온 값과 output gate의 $o_t$가 곱해지면서 t시점의 hidden state가 되며, 이 state는 결과 값에 영향을 주게 됩니다. 이 $h_t$는 현재 타임 스텝에서 예측값을 내기 위해 output에 들어가는 정보와 예측에 직접적으로 필요한 데이터만 포함하고 있습니다.

2) GRU(Gated Recurrent Unit)


LSTM에서 가지고 있던 cell state vector와 hidden state vector를 일원화해 $h_t$만이 존재합니다. 또한 t시점에서의 hidden state를 구할 때, LSTM과 다르게 input gate만을 사용하며 forget gate 대신 1-input gate 값을 활용합니다. 결국 두 정보 $h_t$와 $\tilde{h_t}$ 간의 가중평균을 내는 형태로 계산됩니다.

3) Backpropagation in LSTM/GRU


cell state vector가 업데이트되는 과정이 RNN의 $W_{hh}$ 행렬을 계속해서 곱해주는 연산이 아니라 전 timestep의 cell state vector에 그때그때 다른 값인 forget gate값을 곱하고 필요로 하는 정보를 곱셈이 아닌 덧셈으로 만들어주어 gradient vanishing, exploding 문제가 해결됩니다.


2. 과제 수행 과정 / 결과물 정리


3. 피어세션 정리

https://www.notion.so/9-8-0bff0de3a62d400d9176b5eb6047ec11


4. 학습 회고

level 1 u-stage에서 한 번 공부했던 LSTM과 GRU에 대해 더 자세히 들었습니다. 알고 있다고 생각했지만 복습할 때 마다 새로운 관점으로 보게 되는 것 같습니다. 오늘부터 피어세션 조와 함께 p-stage에 대비해서 'Dacon 뉴스 토픽 분류 AI 경진대회'를 연습해보기로 하였습니다.

 

시각화 강의를 마무리 하였습니다. Matplotlib Theme을 커스터마이징 하는 방식과 비정형 데이터를 시각화하는 방법에 대해 들었는데, 지금까지 아무 생각없이 사용하던 워드클라우드가 시각화하기에 적합한 방식이 아닌 것 같다는 시각이 이해가 되면서도 충격적이었습니다.