Recurrent Neural Networks

pseeej·2021년 8월 15일
0

DL_Basic

목록 보기
6/6
post-thumbnail

Sequential Model

Sequential Model

Naive Sequence Model

  • 입력이 여러 개 들어왔을 때 다음 번 입력에 대한 예측 가능
  • 과거에 고려해야 하는 정보량이 점점 늘어가게 됨
  • 대표적인 예시로는 Language Model

Autoregressive Model

  • 과거의 몇 개만 참고함 → 계산 쉬워짐

Markov Model (first-order autoregressive model)

  • 내가 가정할 때를 기준
  • 나의 현재는 직전 과거에만 dependent
  • 내일 수능의 결과는 전날 공부한 것에만 dependent한 것이 아님...

Latent Autoregressive Model

  • 중간에 hidden state가 하나 들어가있음
  • hidden state : 과거의 정보 summarize 하고 있음
  • 다음 번의 time step은 hidden state 하나에만 의존

Recurrent Nerual Network

Recurrent Neural Network

  • 자기 자신으로 다시 돌아오는 구조
    - xtx_t, 그리고 이전의(t-1) cell state에 dependent
  • timespan을 fix하고 이것을 unroll하게 될 경우 각각의 network parameter가 share하는, input의 위치가 큰 network 하나가 됨

Short-term dependencies

  • 과거에 얻어진 정보들이 summarize해서 미래에 고려해야하나, 과거에 있던 정보들이 살아있기 어려움

Long-term dependencies

  • short-term dependencies의 단점 해결 위해 나옴
  • 단계가 진행될수록 중첩되는 구조
  • activation function이 sigmoid인 경우, vanishing의 문제
  • 					ReLu인 경우, **exploding gradient**의 문제 (학습이 안 됨)

Long Short Term Memory

Recurrent Neural Network

  • tanh(x)를 이용한 RNN 구조
  1. x에 network 통과하면서 weight 곱하기
  2. 이전에서 나온 cell state를 합쳐서 concatenate 수행
  3. network 통과하면서 weight 다시 곱하기
  4. (non-linear)인 hyperbolic tangent함수 통과
  5. 이제 다시 다음 번 test에 들어감

Long Short Term Memory

  • Core idea : 어떤 정보가 유용하고, 어떤 정보가 유용하지 않은지를 잘 조합해서 gate를 통해 다음 state로 넘겨줌
  • Input : 이전의 출력값 (previous hidden state), 밖으로 나가지 않는 previous cell state, 현재의 time step T
  • Previous hidden state
  • Previous cell state : 내부에서만 흐름. t+1개의 정보를 다 취합해서 summarize
  • Next cell state
  • Next hidden state
  • Output (hidden state) : 이걸 이용해서 다음 번 단어의 분포 찾음
  • Forget Gate :
    어떤 걸 버리고 어떤 걸 살릴지 결정
    이전의 output과 현재의 입력을 조합함
    activation function으로 sigmoid 사용하기 때문에 항상 0에서 1 사이의 값
  • Input Gate:
    받은 정보 중에 어떤 정보를 올릴지 말지 결정
    CtC_t : 현재 정보와 이전 출력값을 가지고 만들어지는 cell state 예비 모임
  • Update Cell:
    지금까지의 time cell summarize 수행
    버릴 건 버려지고, 필요한 것만 올려지는 gate 통과한 data 대상
  • Output Gate:
    update된 cell state를 이용하여 output 만들어냄
    어떤 값을 받고 내보낼지 결정

Gate Recurrent Unit

  • 2개의 gate(reset gate, update gate)를 사용함으로써, 더 simple
  • cell state가 없고, hidden state만 사용
    - hidden state가 곧 cell state이기 때문에, output gate가 필요 없어짐
profile
세진니의 눈물 가득 블로그

0개의 댓글