본문 바로가기
ML

RNN, LSTM ?

by 나른한 사람 2021. 8. 16.

RNN (Recurrent Neural Network)

RNN의 구조

  • 이름에서 알 수 있듯이 순환적 구조를 가지고 있다. 따라서 이전의 정보를 완전히 잃지 않고 이어나갈 수 있다.
  • 연속적인 데이터나 시계열 데이터에 주로 사용된다.
  • $ h_{t} = tanh(W_{h}h_{t-1} + W_{x}x_{t} + b) $
  • $ y_{t} = W_{y}h_{t} $
  • tanh 함수의 문제로 gradient vanishing 문제 발생할 수 있음 ( 멀리 떨어진 정보 소실될 수 있음 )

LSTM (Long Short Term Memory Network)

LSTM의 구조

  • RNN의 한 종류.
  • LSTM의 핵심 아이디어는 "cell state"이다. 위 그림에서 가장 윗쪽의 수평선에 해당한다.
  • cell state와 연산을 하기 위한 삭제 게이트, 입력 게이트, 출력 게이트가 존재한다.

Forget gate

LSTM-forget gate

  • 이전으로부터 받은 정보중에서 어떤 정보를 버릴 것인지를 정한다. 이는 sigmoid layer를 거쳐서 받은 0~1 사이의 값을 cell state에 전달함으로써 정해진다.
  • 값이 1이면 모든 정보를 보존, 0이면 모두 버리는것이 된다.

Input gate

LSTM-input gate

  • 마찬가지로 sigmoid layer로 이번에는 어떤 새로운 정보를 저장할 것인지를 정한다. 이 값이 0이면 아무런 값도 업데이트 하지 않는다.
  • tanh layer에서는 위와 같은 수식으로 새로운 $ \widetilde C_t $를 생성한다.

Cell 상태 업데이트

LSTM-update cell state

  • forget gate에서는 이전의 정보를, input gate에서는 새로운 정보를 얼마나 반영할지 정한다.

Output gate

LSTM-output gate

  • sigmoid layer를 거쳐서 cell state의 어떤 정보를 output으로 내보낼지 결정한다. sigmoid를 통해 나온 값이 0에 가까우면 정보를 잃고 반대라면 유지한다.
  • cell state는 tanh layer를 거쳐서 -1 ~ 1 사이의 값을 가지게 되고, sigmoid layer를 통해 나온 값과 곱해준다.

'ML' 카테고리의 다른 글

Basic RNN/LSTM cell implementation  (0) 2021.09.10
seq2seq + attention 이란?  (0) 2021.08.17
[Tensorflow 2.x] 기초  (0) 2021.08.13
AutoEncoder  (0) 2021.07.28
[정리] DeepFM: A Factorization-Machine based Neural Network for CTR Prediction  (0) 2021.04.17

댓글