RNN
중요개념
목표
시퀀스 데이터만이 가지는 특징과 종류, 다루는 방법, 그리고 이를 위한 RNN(Recurrent Neural Network)의 구조를 앞선 강의에서 배웠던 CNN이나 다른 MLP(Multi Layer Perceptron)와 비교하면서 공부합시다.
권고사항
RNN에서의 역전파 방법인 BPTT(Back Propagation Through Time)를 수식적으로 이해하고, 여기서 기울기 소실문제가 왜 발생할 수 있는지, 이에 대한 해결책은 어떤 것들이 있는지를 알아봅시다.
시퀀스 데이터
- 소리, 문자열, 주가 등의 데이터를 시퀀스(Sequence)데이터로 분류합니다.
- 시퀀스 데이터는 독립동등분포(i.i.d) 가정을 잘 위배하기 때문에 순서를 바꾸거나 과거 정보에 손실이 발생하면 데이터의 확률분포도 바뀌게 됩니다.
- 이전 시퀀스의 정보를 가지고 앞으로 발생할 데이터의 확률분포를 다루기 위해 조건부확률을 이용할 수 있습니다.
- 위 조건부확률은 과거의 모든 정보를 사용하지만 시퀀스 데이터를 분석할 때 모든 과거 정보들이 필요한 것은 아닙니다.
- 시퀀스 데이터를 다루기 위해선 길이가 가변적인 데이터를 다룰 수 있는 모델이 필요합니다.
- 고정된 길이 만큼의 시퀀스만 사용하는 경우 AR(Autoregressive Model) 자기회귀모델이라고 부릅니다.
- 또다른 방법은 바로 이전 정보를 제외한 나머지 정보들을 Ht라는 잠재변수로 인코딩해서 활용하는 잠재 AR 모델입니다.
- 잠재변수 Ht를 신경망을 통해 반복해서 사용하여 시퀀스 데이터의 패턴을 학습하는 모델이 RNN입니다.
Recurrent Neural Network을 이해하기
- 가장 기본적인 RNN 모형은 MLP와 유사한 모양입니다.
- RNN은 이전 순서의 잠재변수와 현재의 입력을 활용하여 모델링합니다.
- RNN의 역전파는 잠재변수의 연결그래프에 따라 순차적으로 계산합니다.
BPTT
- BPTT를 통해 RNN의 가중치행렬의 미분을 계산해보면 아래와 같이 미분의 곱으로 이루어진 항이 계산됩니다.
기울기 소실
- 시퀀스 길이가 길어지는 경우 BPTT를 통한 역전파 알고리즘의 계산이 불안정해지므로 길이를 끊는 것이 필요합니다. 이를 truncated BPTT라 부릅니다.
- 이런 문제들 때문에 Vanilla RNN은 길이가 긴 시퀀스를 처리하는데 문제가 있습니다. 이를 해결하기 위해 등장한 RNN 네트워크가 LSTM, GRU입니다.