떼닝로그

RNN 기초 본문

Boostcamp AI Tech/AI Mathematics

RNN 기초

떼닝 2022. 6. 21. 05:37

Sequence 데이터 이해하기

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

Sequence 데이터 다루기

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

Recurrent Neural Network을 이해하기

  • 가장 기본적인 RNN 모형은 MLP(Multi Level Perception)와 유사한 모양
  • RNN은 이전 순서의 잠재변수와 현재의 입력을 활용하여 모델링
  • 이 모델은 과거의 정보를 다룰 수 없음. 현재 시점만 가지고 예측을 해야 하기 때문
    RNN 이해하기. 오른쪽의 화살표들은 gradient 전달 경로. 파란색이 순전파, 빨간색이 역전파 나타냄
     
  • \(t\)에 따라서 변하는 것 : 잠재변수, 입력 data. RNN의 가중치 행렬은 \(t\)에 따라 변화하지 않음
  • \(W^2\) : 출력으로 만들어주는 가중치 행렬
  • \(W^1_X\) : 입력으로부터 전달하게 되는 가중치 행렬
  • \(W^1_H\) : 이전 잠재변수로부터 정보 전달받음
  • 잠재변수인 \(H_t\) 복제하여 다음 순서의 잠재변수 인코딩하는데 사용
  • RNN의 역전파는 잠재변수의 연결그래프에 따라 순차적으로 계산 (Backpropagation Through Time, BPTT)

BPTT (BackPropagation Throughout Time)

  • BPTT를 통해 RNN의 가중치행렬의 미분 계산
  • 시퀀스 길이가 길어질수록 표시된 항 불안정해짐

기울기 소실의 해결책?

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

GRU, LSTM

'Boostcamp AI Tech > AI Mathematics' 카테고리의 다른 글

CNN 기초  (0) 2022.06.18
베이즈 통계학  (0) 2022.06.17
통계학 기초  (0) 2022.06.17
확률론 기초  (0) 2022.06.16
딥러닝 학습방법 이해하기  (0) 2022.06.16
Comments