[AI Math] RNN

hyunsooo·2022년 9월 23일
0

RNN을 알아보기 전 시퀀스 데이터에 대한 이해가 필요하다.

시퀀스(sequence) 데이터

  • 소리, 문자열, 주가 등의 데이터를 의미한다.

  • 시계열(time-series)데이터는 시간 순서에 따라 나열되므로 순서가 중요한 데이터이다.

  • 시퀀스 데이터는 독립동등분포(i.i.d.)가정을 잘 위배하기 때문에 순서를 바꾸거나 과거 정보에 손실이 발생하면 데이터의 확률분포도 바뀌게 된다.

  • 이전 시퀀스의 정보를 통해 앞으로 발생할 데이터의 확률분포를 다루기 위해 조건부확률을 이용할 수 있다.

  • 이전 시간의 베이즈 정리에 따라 아래와 같이 정리 할 수 있다.

P(X1,...,Xt)=P(A,Xt)=P(XtA)P(A)=P(XtX1,...,Xt1)P(X1,...,Xt1)=P(XtX1,...,Xt1)P(Xt1x1,...,Xt2=Πs=1tP(XsXs1,..,X1)P(X_1,...,X_t) = P(A,X_t) = P(X_t|A)P(A)\\ =P(X_t|X_1,...,X_{t-1})P(X_1,...,X_{t-1})\\ =P(X_t|X_1,...,X_{t-1})P(X_{t-1}|x_1,...,X_{t-2}\\ =\Pi_{s=1}^tP(X_s|X_{s-1},..,X_1)
  • 위 조건부확률은 과거의 모든 데이터를 사용하지만 실제 분석 시 모든 데이터가 필요한 것은 아니다.

  • 위에서 보다시피 조건부모델로 시퀀스 데이터를 다룰때는 가변적이기 때문에 가변 데이터를 다룰 수 있는 모델이 필요하다.

  • 혹은 고정된 길이 τ\tau만큼 시퀀스만 사용하는 경우 AR(Autoregressive Model)이라고 부른다.

  • 또 다른 방법으로 바로 직전의 정보Xt1X_{t-1}을 제외한 나머지 정보들을 HtH_t라는 잠재변수로 인코딩하여 활용하는 잠재 AR모델이 있다.

XtP(XtXt1,Ht)X_t \sim P(X_t | X_{t-1}, H_{t})

Recureent Neural Network

  • 과거의 정보들을 적절하게 인코딩 하는 방법론

  • 가장 기본적인 RNN 모형은 MLP와 유사한 모양이다.

  • 가장 큰 차이점은 아래와 같다.

    Ot=HtW(2)+b(2)Ht=σ(XtWX(1)+Ht1WH(1)+b(1))O_t = H_tW^{(2)}+b^{(2)} H_t = \sigma(X_tW_X^{(1)}+H_{t-1}W_H^{(1)}+b^{(1)})
    • 이전의 정보Ht1H_{t-1}을 사용하여 새로운 가중치WH(1)W_H^{(1)}을 이용하여 시퀀스 데이터를 다룬다.
    • 마찬가지로 잠재변수 HtH_t를 복제하여 다음 순서의 잠재변수를 인코딩하는데 사용한다.

BPTT(Backpropagation Through Time)

  • RNN의 역전파는 잠재변수의 연결그래프에 따라 순차적으로 계산하게 된다.

  • BPTT를 통해 RNN의 가중치행렬의 미분을 계산해보면 아래와 같다.

whht=whf(xt,ht1,wh)+i=1t1(Πj=i+1thj1f(xj,hj1,wh))whf(xi,hi1,wh)\partial_{wh}h_t = \\ \partial_{wh}f(x_t,h_{t-1},w_h) + \sum_{i=1}^{t-1}(\Pi_{j=i+1}^t\partial_{h_{j-1}}f(x_j,h_{j-1},w_h))\partial_{wh}f(x_i,h_{i-1},w_h)
  • 위의 식에서는 미분값이 계속 곱해지게 되는 것을 볼 수 있다. 시퀀스의 길이가 길어질수록 매우 불안정한 값을 같을 확률이 높다. 예를들어 1보다 작은값이 곱해지면 매우 작아지고, 1보다 큰값이 곱해지면 매우 커질 수 있다.

  • 시퀀스 길이가 길어지는 경우 BPTT를 통한 역전파 알고리즘의 계산이 불안정하여 길이를 끊는 것이 필요하다. 이것을 truncated BPTT라고 한다.

  • 이런 문제들 때문에 Vanilla RNN보다 LSTM, GRU와 같은 모델이 등장했다.

profile
지식 공유

0개의 댓글