Sequential Model
-
sqeuntial data를 처리하는데 있어서 가장 큰 어려움은 우리가 결국 얻고 싶은 것은 하나의 label 혹은 정보인데, sequential data는 길이를 알 수 없으므로, 받아들여야 하는 입력의 차원을 알 수 없는 것이다. input의 입력을 알 수 없으므로 여태까지 배워왔던 CNN과 같은 network들을 사용할 수 없다.
-
sqeuntial data는 독립동등분포의 가정을 잘 위배하기 때문에 순서를 바꾸거나, 과거 정보에 손실이 발생하면 데이터의 확률분포도 바뀌게 된다. 따라서, 인위적으로 순서 혹은 위치는 매우 조심히 조작해야 한다.
-
조건부확률을 이용해 이전 시퀀스의 정보를 가지고 앞으로 발생할 데이터의 확률분포를 다룰 수 있다.
P(X1,...,Xt)=P(Xt∣X1,...,Xt−1)P(X1,...,Xt−1)
=P(Xt∣X1,...,Xt−1)P(Xt−1∣X1,...,Xt−2)×P(X1,...,Xt−2)
=s=1∏tP(Xs∣Xs−1,...,X1)
AR(Auto regression) model
- 위의 조건부 확률분포의 데이터 길이는 시점마다 다르기 때문에, 이러한 가변적인 데이터를 다룰 수 있는 모델과 방법론이 필요하다.
- 시퀀스 데이터를 분석할 때 모든 과거 정보들을 필요한 것은 아니기 때문에, 초기 시점부터의 모든 정보를 다 사용하는 것이 아닌 고정 시점인 ∗∗τ∗∗만큼의 시점만 사용하는 모델을 사용한다.
- 즉, 고정된 ∗∗τ∗∗개의 정보를 활용하여 시퀀스 데이터를 분석하는 모델을 AR(auto regression model) 자기회귀 모델이라 한다.
잠재 AR model
- 문제에 따라서는 길이가 짧은 τ 혹은 먼 과거의 τ의 정보가 필요한 경우가 있다.
- 이러한 경우에 바로 이전 시점의 정보를 제외한 나머지를 잠재변수 Ht로 인코딩 하여 활용하는 것이 잠재 AR 모델이다.
- 잠재 AR 모델은 과거의 모든 정보를 활용해 예측할 수 있으며, 가변적인 데이터 문제를 고정된 길이의 문제로 바꿀 수 있는 장점이 있다.
RNN
- 잠재 AR model에서 과거의 데이터들을 어떻게 잠재변수로 인코딩할지에 대한 문제를 해결하기 위해 등장한 것이 RNN이다.
- 기본적인 RNN 모형은 MLP와 유사한 모양이다.
O=HW(2)+b(2)
H=σ(XW(1)+b(1))
H : 잠재변수
σ : 활성화함수
XW : 가중치행렬
b : bias
-
위 모델은 현재의 정보만을 사용하기 때문에 과거의 정보를 다룰 수 없다.
-
RNN은 이전 순서의 잠재변수와 현재의 입력을 활용하여 모델링한다.
-
이 모델에서는 입력 데이터부터 선형모델을 통해 잠재변수로 인코딩하는 WX(1)과 이전시점의 잠재변수로 부터 정보를 받아 현재시점의 잠재변수로 인코딩 해주는 WH(1) 그리고 이러한 잠재변수들을 다시 출력으로 만들어주는 W(2) 라는 총 3개의 잠재변수가 나타난다.
-
이러한 가중치 행렬들은 시점 t에 따라 변하지 않으며, 시점 t에 영향을 받는 것은 오로지 잠재변수와 입력데이터 뿐이다.
-
RNN의 순전파
RNN의 역전파
- BPTT(Backpropagation Through Time)
- RNN의 역전파는 잠재변수들의 연결그래프에 따라 순차적으로 계산한다.
- X1 시점부터 Xt 시점까지 예측이 이뤄진 후 맨 마지막 시점부터의 gradient가 다시 타고 올라와서 과거까지 흐르는 방법이 BPTT라 부르는 역전파 방법이다.
- BPTT를 통해 가중치 행렬의 미분을 계산하면 잠재 변수에 대한 미분이 곱해져서 더해지는데 이 항은 시퀀스 길이가 길어질수록 미분 값이 엄청 작아지거나 커질 확률이 높아 불안해지기 쉽다.
- Truncated BPTT
- BPTT에는 gradient 값이 0으로 가는 gradient vanishing 문제가 나타날 수 있는데, 이러한 경우 과거의 정보가 유실될 수 있다.
- 이러한 기울기 소실의 문제점을 해결하기 위해 BPTT의 모든 시점을 계산하는 것이 아닌 미래의 정보들 중에 몇 개는 끊고 오로지 과거의 정보들에 해당하는 몇 개의 블럭을 나눠서 역전파를 계산하는 truncated BPTT라는 방식을 사용한다.
- 하지만, 이 방식이 완전한 해결이 되지는 않는다.
- 따라서, 기울기 소실의 문제로 기본적인 RNN은 잘 사용하지 않으며, 길이가 긴 시퀀스를 처리할 때는 GRU, LSTM과 같은 RNN을 사용한다.