RNN - Sequential Models

RNN - Sequential Models


Sequential Model

1️⃣ 기본 sequence model

image.png

이전 데이터를 가지고 다음 데이터를 예측 해 보자. 시간이 지날수록 고려해야 할 과거의 변수들이 계속 늘어 난다.


2️⃣ Autoregressive model

image.png

고정된 시간 만큼만 과거의 데이터를 본다.



3️⃣ Markov model(first-order autoregressive model)

image.png

내 현재는 바로 전 과거에만 영향이 있다고 생각. 이러면 많은 정보를 버릴 수 밖에 없다. 가장 간단하게 생각할 수 있다.



4️⃣ Latent autoregressive model

image.png

이 모델은 Hidden state가 추가 되었다. 이 값은 과거의 정보가 요약되어 있는 값으로 과거의 정보를 고려하는 방식이다.



RNN(Recurrent Neural Network)

image.png

이렇게 연결하면 입력이 많아지면 많은 hidden layer가 존재하는 MLP모형이 된다.


Short-term dependencies

image.png

여기서 또 다른 문제는 과거의 정보가 취합되어 현재의 데이터에 전달이 되는데 값이 계속 취합되다 보니 먼 과거의 정보는 살아 남기 힘들게 된다. 따라서 짧은 기간의 정보는 고려가 잘 되는데 한참 멀리 있는 정보는 고려하기 힘들다.



image.png

또한 위 구조처럼 계산을 하게 되면 계속 중첩되는 구조가 되는 걸 볼 수 있다. $h_{0}$가 $h_{4}$까지 가려면 굉장히 많은 똑같은 가중치를 곱하는 일이 생기게 된다. 이렇게 되면 값의 의미가 없어지게 되거나 값이 엄청 커지게 된다.



LSTM(Long Short Term Memory)

image.png

LSTM의 구조는 위와 같다. RNN과 가장 큰 차이는 A안의 네트워크 구조이다. 저 부분 확대해서 보면 아래와 같다.

image.png

이제 한 부분씩 상세히 살펴보자.

💡 Core idea

image.png

위 라인을 컨베이어 벨트라고 생각할 수 있고, 여기서 입력값을 가지고 어떻게 조작을 잘하여 각각 위치에 추가해서 쌓는다고 생각하면 편하다.


1️⃣ Forget Gate

image.png

해당 게이트는 어떤 정보를 버릴지를 결정한다. $f_{t}$는 시그모이드 함수를 통과하므로 항상 0~1사이의 값을 가지게 된다. 이전 cell state에서 나왔던 정보 중에 무엇을 버릴지를 결정하는데 이것은 현재의 입력값 $x_{t}$와 가중치$W_{f}$를 통해서 결정하게 된다.


2️⃣ Input Gate

image.png

cell state에서 필요한 정보를 올릴지를 결정하는 Gate이다. 여기서 -1 ~ +1로 정규화된 $\tilde{C}_{t}$를 만들게 된다. $\tilde{C}_{t}$는 현재 정보이전 출력값을 가지고 만들어지는 cell state 예비군인 것이다. 이전에 취합했던 cell state와 현재정보와 이전 output으로 얻어지는 $\tilde{C}_{t}$(예비군)을 잘 섞어서 새로운 cell state에 올리게 된다.


3️⃣ Update cell

image.png

해당 게이트는 이전 게이트들에서 얻어진 값을 Update한다.


4️⃣ Output Gate

image.png

업데이트된 cell state를 가지고 output를 한번더 조작하여 내보낸다.



GRU(Gated Recurrent Unit)

image.png

reset gateupdate gate로 2개의 게이트를 가진 간단한 구조이다. cell state가 없고 바로 hidden state이다. 2개의 게이트를 가지고 LSTM과 비슷한 작동을 한다.

'AI > 이론' 카테고리의 다른 글

Bag of Words  (0) 2021.02.15
Word Embedding  (0) 2021.02.15
Generative Model  (0) 2021.02.05
Transformer - Sequential Models  (0) 2021.02.04
RNN 맛보기  (0) 2021.02.04
Computer Vision Applications  (0) 2021.02.03
CNN - 1x1 Convolution  (0) 2021.02.03
CNN - Convolution  (0) 2021.02.03

+ Recent posts