RNN 첫걸음

pseeej·2021년 8월 8일
0

AI_Mathematics

목록 보기
9/9
post-thumbnail

Sequence 데이터 이해하기

  • 소리, 문자열, 주가등의 데이터를 시퀀스 데이터로 분류
  • 시퀀스 데이터는 독립동등분포(i.i.d) 가정을 잘 위배하기 때문에, 순서를 바꾸거나 과거 정보에 손실이 발생하면 데이터의 확률분포도 바뀜
    - 개가 사람을 물었다 / 사람이 개를 물었다

Sequence 데이터 다루기

  • 이전 시퀀스의 정보를 가지고 앞으로 발생할 데이터의 확률분포를 다루기 위해 조건부확률 이용

    - 조건부확률은 과거의 모든 정보를 사용하지만, 시퀀스 데이터를 분석할 때 모든 과거 정보들이 필요한 것은 아님
  • 시퀀스 데이터를 다루기 위해서는 길이가 가변적인 데이터를 다룰 수 있는 모델이 필요
  • 고정된 길이 τ만큼의 시퀀스만 사용하는 경우, AR(τ), 자가회귀모델 (Autoregressive Model)
  • 바로 이전 정보를 제외한 나머지 정보들을 H_t라는 잠재변수로 인코딩해서 활용하는 잠재 AR모델 이용
    - 잠재변수 H_t를 신경망을 통해 반복해서 사용하여 시퀀스 데이터의 패턴을 학습하는 모델을 RNN

Recurrent Neural Network을 이해하기

  • 가장 기본적인 RNN 모형은 MLP(Multi Level Perception)와 유사한 모양
  • RNN은 이전 순서의 잠재변수와 현재의 입력을 활용하여 모델링

    - 이 모델은 과거의 정보를 다룰 수 없음. 현재 시점만 가지고 예측을 해야 하기 때문
    - 잠재변수인 H_t 복제하여 다음 순서의 잠재변수 인코딩하는데 사용
  • RNN의 역전파는 잠재변수의 연결그래프에 따라 순차적으로 계산 (Backpropagation Through Time, BPTT)

BPTT (BackPropagation Throuth Time)

  • BPTT를 통해 RNN의 가중치행렬의 미분 계산

    - 시퀀스 길이가 길어질수록 표시된 항 불안정해짐

기울기 소실의 해결책?

  • 시퀀스 길이가 길어지는 경우 BPTT를 통한 역전파 알고리즘의 계산이 불안정해지므로, 길이를 끊는 것이 필요. 이것을 truncated BPTT
    -미래의 정보들 중에서 몇 개는 끊고, 과거의 정보에 해당하는 block 나눠서 back propagation 수행
  • 이런 문제들 때문에 Vanilla RNN은 길이가 긴 시퀀스 처리에 문제
    - 해결 위해 등장한 RNN 네트워크가 LSTM과 GRU
profile
세진니의 눈물 가득 블로그

0개의 댓글