RNN을 알아보기 전 시퀀스 데이터에 대한 이해가 필요하다.
소리, 문자열, 주가 등의 데이터를 의미한다.
시계열(time-series)데이터는 시간 순서에 따라 나열되므로 순서가 중요한 데이터이다.
시퀀스 데이터는 독립동등분포(i.i.d.)가정을 잘 위배하기 때문에 순서를 바꾸거나 과거 정보에 손실이 발생하면 데이터의 확률분포도 바뀌게 된다.
이전 시퀀스의 정보를 통해 앞으로 발생할 데이터의 확률분포를 다루기 위해 조건부확률을 이용할 수 있다.
이전 시간의 베이즈 정리에 따라 아래와 같이 정리 할 수 있다.
위 조건부확률은 과거의 모든 데이터를 사용하지만 실제 분석 시 모든 데이터가 필요한 것은 아니다.
위에서 보다시피 조건부모델로 시퀀스 데이터를 다룰때는 가변적이기 때문에 가변 데이터를 다룰 수 있는 모델이 필요하다.
혹은 고정된 길이 만큼 시퀀스만 사용하는 경우 AR(Autoregressive Model)이라고 부른다.
또 다른 방법으로 바로 직전의 정보을 제외한 나머지 정보들을 라는 잠재변수로 인코딩하여 활용하는 잠재 AR모델이 있다.
과거의 정보들을 적절하게 인코딩 하는 방법론
가장 기본적인 RNN 모형은 MLP와 유사한 모양이다.
가장 큰 차이점은 아래와 같다.
RNN의 역전파는 잠재변수의 연결그래프에 따라 순차적으로 계산하게 된다.
BPTT를 통해 RNN의 가중치행렬의 미분을 계산해보면 아래와 같다.
위의 식에서는 미분값이 계속 곱해지게 되는 것을 볼 수 있다. 시퀀스의 길이가 길어질수록 매우 불안정한 값을 같을 확률이 높다. 예를들어 1보다 작은값이 곱해지면 매우 작아지고, 1보다 큰값이 곱해지면 매우 커질 수 있다.
시퀀스 길이가 길어지는 경우 BPTT를 통한 역전파 알고리즘의 계산이 불안정하여 길이를 끊는 것이 필요하다. 이것을 truncated BPTT라고 한다.
이런 문제들 때문에 Vanilla RNN보다 LSTM, GRU와 같은 모델이 등장했다.