Deep Learning Basics Lecture7: Recurrent Neural Networks

2023. 1. 6. 23:02BOOTCAMP/boostcamp AI Tech Pre-Course

Sequential Model

  • Naive sequence model

input xt-2 -> xt-1 -> xt

p(xt|xt-1, xt-2,...) <- The number of inputs varies. Fix the past timespan: 과거 한 개만 보는 것, 현재는 과거 다음 이전을 디펜던트 한다.

  • 시퀀셜 데이터는 길이가 언제 끝날지 알 수가 없어서 몇 개의 음절과 이미지가 주어질지 모른다.
  • 가장 기본적인 시퀀셜 모델은 입력이 들어왔을 때, 다음을 예측해보는 것.
  • 10개의 입력이 있으면 첫 번째 입력은 그 자체, 두 번째는 첫 번째, 세 번째는 첫 번째와 두 번째.
    • Markov model(first-order autoregressive model) Easy to express the joint distribution! -> 많은 정보를 버릴 수밖에 없다.
  • Latent autoregressive model

Output yt-2 yt-1. yt

Hidden state ht-2. ->. ht-1. ->. ht

Input xt-2 xt-1 xt

중간의 히든 스테이트가 과거의 정보를 요약하고, 다음을 히든 스테이트에 의하여 과거 이전의 스테이트가 아니라 과거의 정보를 요약한 히든 스테이트라 한다.

 

x = p(xt|ht) <- summary of the past

Recurrent Neural Network

  • 자기 자신으로 돌아가는 구조가 있다.
  • 시간 순으로 푸는데, T에서 보는 것은 T-1에서 본 것이며, x1 -> h1이 되는 등의 모습이다.
  • 굉장히 많은 파라미터가 셰어 하는 인풋의 위치가 큰 네트워크가 된다.
  • 큰 단점은 Short-term dependencies 
  •   - 계속 취합되기에 과거의 정보가 미래까지 남기가 힘들다.   - 한참 멀리있는 정보를 고려하기 어렵다.
  • 단점을 해결하기 위해 Long-term dependencies가 나왔다.

Long short Term Memory

  • input -> previous hidden state -> Previous cell state -> Next hidden state -> Next cell state -> Output(hidden state)
  • Core idea: cell state는 요약하는데, 컨베이너 벨트가 있다고 할 때 어떤 정보가 유용하고, 유용하지 않은지 전달하는 역할. 어떤 것을 넣고, 뺄지 조작한다.
  • Forget Gate: Decide which information to throw away
  • Input Gate: Decide which information to store in the cell state

이전의 셀 스테이트와 지금의 셀 스테이트를 합쳐서 업데이트시킨다.

  • Update cell: Update the cell state.
  • Output Gate: Make output using the updated cell state.

이전까지 들어온 정보(input)를 현재의 입력으로 지울지, 새롭게 쓸지, 이를 취합할지(Update) 또 한 번 취합한 것을 빼낼지(Output)

 

Gated Recurrent Unit

  • Simpler architecture with two gates(reset gate and update gate).
  • No cell state, just hidden state.

요즘엔 transformer로 많이 쓴다.