Recurrent Neural Network

김선재·2021년 12월 25일
0

AI Tech

목록 보기
8/8
post-thumbnail

Sequential Model

  • 입력이 여러개 들어왔을 때 다음에 들어올 입력에 대해 예측을 하는 것
  • 정의상 길이가 언제 끝날지 모르기 때문에 받아들여야하는 입력의 차원을 정하기 어렵다

Autoregressive model

  • 과거 전체 데이터를 보고 예측하는 것이 아닌 몇개만 보고 예측을 하게 되는것
  • Markov model( first-order autoregressive model )
    • 직전의 데이터를 토대로 예측을 하는 것
    • 많은 정보를 버릴수 밖에 없게 된다
    • joint distribution을 표현하기 쉬워진다

Latent autoregressive model

  • 많은 데이터를 버리면 문제가 생길 수 있다
  • 중간에 Hidden state를 만들어 과거 정보를 요약해 준다

Recurrent Neural Network - RNN

  • 전단계의 값을 계속 넘겨주며 값을 추출해 준다

  • 시간 순으로 풀어놓게 되면 Fully connected Layer와 비슷하게 된다

  • Short-term dependencies

    • 과거의 내용을 요약해주며 계속해서 학습을 하게되는데 비교적 최근있었던 과거보다 오래된 과거는 특징이 잡히기 어렵다
  • Long-term dependencies

    • Short-term dependencies의 단점을 해결하기 위해 사용

Long Short Term Memory ( LSTM )

  • 기본 구조

  • Next hidden state를 통해 다음번 hidden state로 값을 넘겨 준다

  • 세 개의 게이트로 이루어져 있다

    • Forget gate
      • ft=σ(Wf[ht1,xt]+bf)f_t = \sigma(W_f [h_{t-1}, x_t] + b_f)
      • 이전에서 넘어오는 정보들 중 어떤 정보를 버릴지 결정
    • Input gate
      • it=σ(Wi[ht1,xt]+bi)i_t = \sigma(W_i[h_{t-1}, x_t] + b_i)
      • Ct=tanh(Wc[ht1,xt]+bC)C^\sim_t = tanh(W_c[h{t-1}, x_t] + b_C)
      • 이전의 정보들 중 현재 들어오는 정보 중 어떤 정보를 올려줄지 결정
    • Output gate
      • ot=σ(Wo[ht1,xt]+bo)o_t = \sigma(W_o[h_{t-1}, x_t] + b_o)
      • ht=ot×tanh(Ct)h_t = o_t \times tanh(C_t)
      • 어떤 값을 내보낼지 결정
    • Update cell
      • it=σ(Wi[ht1,xt]+bi)i_t = \sigma(W_i[h{t-1}, x_t] + b_i)
      • Ct=ft×Ct1+it×CtC_t = f_t \times C_{t-1} + i_t \times C^\sim_t
      • Input gate에서 넘겨받은 정보들 중 어떤 정보를 사용할지 결정

Gated Recurrent Unit

  • gate가 두개 밖에 없다
    • reset gate
    • update gate

  • 적은 파라미터를 통해 활용해주기 때문에 LSTM보다 성능이 좋게 나온다
profile
data science!!, data analyst!! ///// hello world

0개의 댓글