RNN (Recurrent Neural Network)
- 이름에서 알 수 있듯이 순환적 구조를 가지고 있다. 따라서 이전의 정보를 완전히 잃지 않고 이어나갈 수 있다.
- 연속적인 데이터나 시계열 데이터에 주로 사용된다.
- $ 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)
- RNN의 한 종류.
- LSTM의 핵심 아이디어는 "cell state"이다. 위 그림에서 가장 윗쪽의 수평선에 해당한다.
- cell state와 연산을 하기 위한 삭제 게이트, 입력 게이트, 출력 게이트가 존재한다.
Forget gate
- 이전으로부터 받은 정보중에서 어떤 정보를 버릴 것인지를 정한다. 이는 sigmoid layer를 거쳐서 받은 0~1 사이의 값을 cell state에 전달함으로써 정해진다.
- 값이 1이면 모든 정보를 보존, 0이면 모두 버리는것이 된다.
Input gate
- 마찬가지로 sigmoid layer로 이번에는 어떤 새로운 정보를 저장할 것인지를 정한다. 이 값이 0이면 아무런 값도 업데이트 하지 않는다.
- tanh layer에서는 위와 같은 수식으로 새로운 $ \widetilde C_t $를 생성한다.
Cell 상태 업데이트
- forget gate에서는 이전의 정보를, input gate에서는 새로운 정보를 얼마나 반영할지 정한다.
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 |
댓글