Sequential Models - RNN

yst3147·2022년 2월 20일
0

공부 내용

  • Sequential Model
  • Recurrent Neural Network
  • Long Short Term Memory

Sequential Model

  • Sequential Data를 처리하는 모델
  • sequential Data는 길이(차원)를 알 수 없으므로 FC layer나 Cnn을 사용할 수 없음
    -> 입력의 길이와 상관없이 동작할 수 있는 모델 구현 필요

Naive sequence model

  • 기본적인 sequential model
  • 입력이 들어왔을 때 다음 번 입력에 대한 예측을 함
  • t시점에서는 이전 시점들의 입력을 고려(1부터 t-1까지)
    -> 고려해야 할 과거의 정보량(The number of inputs varies) 점점 늘어남

Autoregressive model

  • past timespan r을 고정하여 t 시점에서 과거의 입력 r개만 고려함
    -> 훨씬 계산이 쉬워짐

Markov model(first-order autoregressive model)

  • 현재는 바로 전 과거에만 dependent하다고 가정
    -> 많은 정보를 버릴 수 밖에 없는 단점
  • joint distribution을 표현하기 쉽다는 장점을 가짐

Latent autoregressive model

  • 중간에 hidden state가 들어감
    -> hidden state가 과거의 정보를 요약
  • 다음번 state는 이전 hidden state 하나에 dependent

Recurrent Neural Network

  • Sequential Model의 방법론을 이용하여 구현한 Neural Network
  • 자기 자신으로 돌아오는 순환 구조 존재
    -> 입력 xtx_t 뿐만 아니라 이전 cell state에도 dependent

  • 시간 순서대로 풀어서 그릴 수 있다.
    -> 입력이 많은 fc layer처럼 표현된다.

Short vs Long term dependencies

  • RNN은 과거의 정보들을 계속해서 취합한다.
  • 거리가 가까운 과거의 정보는 그래도 고려가 잘 되는 편
  • 거리가 먼 과거의 정보는 무시되는 경향이 있음(RNN의 단점)
  • Long term dependencies 문제를 해결하기 위해 LSTM 등장

Vanishing / exploding gradient

  • RNN은 계속 중첩되는 구조를 가진다.
  • 계속해서 똑같은 Weight를 곱하고 nonlinear를 통과시켜야 한다.
    • sigmoid 사용 시 : gradient vanishing 문제 발생 -> 값이 의미가 없어짐
    • relu 사용 시 : gradient exploding 문제 발생 -> 값이 폭발적으로 증가

Long Short Term Memory

Core Idea

  • 중간에 흘러가는 Cell state가 핵심 아이디어
    -> 유용한 정보와 유용하지 않은 정보를 조작해서 다음으로 넘김

기본 구조

  • Input XtX_t
  • Output (hidden state) hth_t
  • cell state
  • hidden state
  • forget gate
  • input gate
  • update cell
  • output gate

Forget Gate

  • 어떤 정보를 버릴 지 결정하는 gate
  • sigmoid activation function 사용 (0 ~ 1 사이 값)
  • ftf_t는 어떤 정보를 살리고 버릴 지 결정

Input Gate

  • cell state에 어떤 정보를 저장할 지 말지 결정하는 gate
  • iti_t : cell state에 올리고자 하는 정보
  • Ct~\tilde{C_t} : cell state에 올릴 정보 후보

Update Cell

  • CtC_tCt~\tilde{C_t}를 잘 섞어서 cell state 업데이트
    -> 버릴 정보는 버리고 올릴 정보는 올린다.
  • ftf_t * Ct1C_{t-1} 활용 버릴 정보는 버림
  • iti_tCt~\tilde{C_t} 활용 올릴 정보를 올림

Output Gate

  • updated cell state 조작해서 어떤 값을 밖으로 내보낼지 결정하는 gate
    -> oto_t 와 updated cell state CtC_t을 element-wise multiplication

Gated Recurrent Unit(GRU)

  • reset gate와 update gate 두 gate로 이루어진 simpler architecture
  • LSTM보다 성능 높은 경우 꽤 많이 있다

LSTM과 차이점

  • output gate가 없음 -> 파라미터가 적어짐
  • cell state 없이 hidden state만 존재

0개의 댓글