RNN 첫걸음

김선재·2021년 12월 21일
0

AI Tech

목록 보기
6/8
post-thumbnail

시퀀스 데이터 이해하기

  • 소리, 문자열, 주가 등의 데이터를 시퀀스( sequence ) 데이터로 분류
  • 시계열( time-series ) 데이터는 시간 순서에 따라 나열된 데이터로 시퀀스 데이터에 속한다
  • 시퀀스 데이터는 독립동등분포( i.i.d. ) 가정을 잘 위배하기 때문에 순서를 바꾸거나 과거 정보에 손실이 발생하면 데이터의 확률분포도 바뀌게 된다
    • 과거 정보 또는 앞뒤 맥락 없이 미래를 예측하거나 문장을 완성하는 건 불가능
  • 이전 시퀀스의 정보를 가지고 앞으로 발생할 데이터의 확률분포를 다루기 위해 조건부확률을 이용할 수 있다
    • 이전에 배운 베이즈 법칙을 사용

P(X1,...,Xt)=P(Xt  X1,...,Xt1)P(X1,...,Xt1)P(X_1, ..., X_t) = P(X_t\ |\ X_1, ..., X_t-1)P(X_1, ..., X_t-1)
= P(Xt  X1,...,Xt1)P(Xt1  X1,...,Xt2)×P(X1,...,Xt2)P(X_t\ |\ X_1, ..., X_t-1)P(X_t-1\ |\ X_1, ..., X_t-2) \times P(X_1, ..., X_t-2)
= s=1tP(Xs  XS1,...,X1)\prod_{s=1}^t P(X_s\ |\ X_{S-1}, ..., X_1)

  • XtP(Xt  Xt1,...,X1)X_t \sim P(X_t\ |\ X_{t-1}, ..., X_1)
  • 시퀀스 데이터를 다루기 위해선 길이가 가변적인 데이터를 다룰 수 있는 모델이 필요
    • 고정된 길이 τ\tau 만큼의 시퀀스만 사용하는 경우 AR(τ)AR(\tau) ( Autoregressive model ) 자기회귀모델이라고 부른다
    • 또 다른 방법은 바로 이전 정보를 제외한 나머지 정보들을 HtH_t라는 잠재변수로 인코딩해서 활용되는 잠재 AR 모델
    • 잠재변수 HtH_t를 신경망을 통해 반복해서 사용하여 시퀀스 데이터의 패턴을 학습하는 모델이 RNN

RNN( Recurrent Neural Network ) 이해하기

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

    O=HW(2)+b(2)O = HW^{(2)} + b^{(2)}
    H=σ(XW(1)+b(1))H = \sigma(XW^{(1)} + b^{(1)})

    • H : 잠재변수
    • `σ\sigma : 활성화함수
    • W : 가중치행렬
    • b : bias

💡 이 모델은 과거의 정보를 다룰 수 없다

  • RNN은 이전 순서의 잠재변수와 현재의 입력을 활용하여 모델링한다

    Ot=HtW(2)+b(2)O_t = H_tW^{(2)} + b^{(2)}
    Ht=σ(XtWX(1)+Ht1WH(1)+b(1))H_t = \sigma(X_tW_X^{(1)} + H_{t-1}W_H^{(1)} + b^{(1)})

    • 잠재변수인 HtH_t를 복제해서 다음 순서의 잠재변수를 인코딩하는데 사용
  • RNN의 역전파는 잠재변수의 연결그래프에 따라 순차적으로 계산

    • 이를 Backpropagation Through Time( BPTT ) 이라 하며 RNN의 역전파 방법

BPTT

  • BPTT를 통해 RNN의 가중치행렬의 미분을 계산해보면 아래와 같이 미분의 곱으로 이루어진 항이 계산된다
  • 시퀀스 길이가 길어지는 경우 BPTT를 통한 역전파 알고리즘의 계산이 불안정해지므로 길이를 끊는 것이 필요
    • 이를 truncated BPTT라 부른다
    • 이런 문제들 때문에 Vanilla RNN은 길이가 긴 시퀀스를 처리하는데 문제가 있다
    • 이를 해결하기 위해 등장한 RNN 네트워크가 LSTMGRU이다
profile
data science!!, data analyst!! ///// hello world

0개의 댓글