반응형


LONG SHORT-TERM MEMORY(LSTM) 

RNN의 전설을 쓴 논문 LSTM이다. 1997년에 어떻게 이런 구조를 고안해내셨는지 놀라운 따름이다.비록 1997년에 연구되었지만, 아직까지도 시계열 분석등에 종종 사용되고 있는 LSTM 논문을 리뷰해보자.원문 논문은 32장인데다가, 예전 논문이라 그런지 지금 나오는 논문과는 전개 방식이나 다루는 관련연구가 너무 달라서 개인적으로 이해하는데 굉장히 어려웠다.

https://youtu.be/cs3tSnAsyRs

Idea Factory KAIST에 올라와있는 강의를 보면서 이해하니까 논문 본문이 술술 읽히는 느낌이었다.너무 좋은 강의해주신 조재영님께 감사의 말씀을 올린다.

 

 

 

Abstract


  • 기존 Vanilla RNN은 Time Interval이 큰 데이터에 대한 지식을 잘 저장하지 못하는 한계점이 존재한다.

  • 이러한 한계점은 Error back flow(back propagation)과정이 정보를 충분히 전달하지 못하기 때문이고, 수 많은 Layer를 지나면서 Weight가 Vanishing 되기 때문이다.

  • 본 논문에서는 이러한 문제점을 해결할 수 있는 novel, efficient gradient-based method인 LSTM(Long Short-Term Memory)를 제안한다.

  • LSTM에서는 특정 정보가 Gradient에 안좋은 영향을 미치지 않는 한, 약 1000번의 time step 이상의 interval에도 정보를 소실하지 않고 효과적으로 정보를 전달할 수 있다.

  • 본 논문에서는 인위적으로 만들어낸 다양한 패턴들에 대해서 LSTM을 적용시켜 RTRL, BPTT, Recurrent Cascade-Correlation, Elman nets, Neural Sequence Chnking등과 비교해보았으며, 실험을 통해 LSTM의 우수함을 입증하였다.
  • 단순히 성능 지표만 높을 뿐 아니라, 기존 RNN류 모델들이 풀지 못했던 Long Time Lag Task에서 최초로 성공을 거두었다고한다.

 

Long Short-Term Memory(LSTM)


  • LSTM Cell의 구조는 위와 같다.

  • 기존 Vanilla RNN이 hidden state만을 사용하던 것과 달리, LSTM에서는 Cell State라는 새로운 Flow를 도입하였다. 이는 마치 컨베이어 벨트처럼 이전에 입력됐던 정보들을 전달해주는 역할을 한다.

  • 이전 Cell에서 넘어온 hidden state에 대해서 과거의 정보중 어느 것을 Cell State에 반영할 것인지를 정하는 Forget Gate(불필요한 정보를 잊는다는 의미), 현재 입력된 정보를 얼마나 Cell State에 반영할 것인지를 정하는 Input Gate, 다음 Cell에 전달할 hidden state 값에 Cell State를 얼마나 반영할 것인지를 정하는 Output Gate로 구성된다.

Forget Gate

 

  • 과거에서 넘어온 정보 중, 불필요하다고 여겨지는 데이터들을 삭제해주는 역할을 한다.

  • 정확히는 삭제라기보다는, Sigmoid 함수를 통해 얻어진 0~1 사이의 가중치를 곱해줘서 학습을 하면서 상대적으로 중요한 정보에는 높은 가중치를, Gradient 갱신에 별로 좋지 않은 영향을 끼치는 정보에 대해서는 낮은 가중치를 가지게 한다.

  • 즉 Neural Network를 학습하여 얻어진 W_f(Weight of Forget Gate)와 B_f(Bias of Forget Gate)를 바탕으로 0에 가까운 값이 나오면 정보를 버리는 효과, 아예 0이 되면 삭제 반대로 1에 가까울 수록 정보 보존, 1일 경우 데이터 그대로 전달의 역할을 함으로써 Cell을 지나면서도 계속적으로 유의미한 데이터들은 Cell State Flow에 보존되도록 한다.

 

Input Gate

 

  • 현재의 입력값 X_t와 이전 hidden state를 적절히 사용하여 현재 Cell의 Local State를 얻어내고, 이를 Global Cell State에 얼마나 반영할지를 결정하는 게이트이다.

  • 마찬가지로 Sigmoid 함수를 사용하므로, 현재 시점에서 얻은 정보가 큰 효용가치가 있을 경우 Cell State에 많이 반영하고, 별로 의미가 없는 데이터일 경우에는 0에 가까운 가중치를 줘서 반영을 최소화한다.

  • 이후, 과거 hidden state에서 적절히 forget이 이루어진 cell state와, 현재 cell에서 얻을 수 있는 새로운 데이터를 반영한 cell state를 더해서 최종적인 global cell state를 update하게 된다.

 

Output Gate

  • 최종적으로 얻어진 Cell State 값에서 어느정도를 취해서 Hidden State로 전달할 것인지를 정하는 마지막 Gate이다.

  • 여기서 최종적으로 얻어진 h_t를 바탕으로 다음 셀에서는 C_t+1을 구하게 된다.

 

 

Conclusion


  • 본 논문은 기존 Vanilla RNN이 가지는 문제점인 Long-term dependencies를 효과적으로 해결할 수 있는 LSTM 방식을 제안한다.

  • LSTM은 Cell State 개념을 도입하여 과거의 데이터를 유지하면서도 불필요한 데이터는 Forget Gate를 통해 삭제하여 Gradient Update에 최적의 상태를 유지한다.

  • 기존 RNN 방식 대비 정확도를 크게 향상시킬 수 있었으며, Long Time Lack Task의 경우 기존 RNN 모델들이 해결하지 못했던 문제를 해결할 수 있었다.
반응형
블로그 이미지

Hyunsoo Luke HA

석사를 마치고 현재는 Upstage에서 전문연구요원으로 활동중인 AI 개발자의 삽질 일지입니다! 이해한 내용을 정리하는 용도로 만들었으니, 틀린 내용이 있으면 자유롭게 의견 남겨주세요!

,