Seqeuntial한 데이터를 다루기 위한 네트워크들이 있다.
Markov model(first-order autoregressive model)
t=1∏Tp(xt∣xt−1)
입력 데이터와 이전 time step 1개만 고려해서 다음을 예측한다.
Latent autoregressive model
x^=p(xt∣ht)ht=g(ht−1,xt−1)
과거의 정보를 요약하는 hidden state(ht)와 입력 데이터를 고려해서 다음을 예측한다.
Recurrent Neural Network (RNN)
h1=ϕ(Wth0+UTx1)
h2=ϕ(WTϕ(Wth0+UTx1)+UTx2)
h3=ϕ(WTϕ(WTϕ(Wth0+UTx1)+UTx2)+UTx3)
h4=ϕ(WTϕ(WTϕ(WTϕ(Wth0+UTx1)+UTx2)+UTx3)+UTx4)
short-term dependencies한 문제가 있다.
- 과거에 얻은 정보들을 요약해서 미래에 예측할 때 고려해야 하는데 RNN은 고정된 벡터(규칙)로 계속 정보들을 취합하기 때문에 뒤로 갈수록 초기 정보들을 고려하기 힘들어진다
- hidden state에서 sigmoid를 사용하면 정보를 계속 줄이기 때문에 vanishing gradient가 발생한다
- ReLU를 사용하면 W가 양수일 때 계속 곱해지기 때문에 exploding gradient가 발생한다
- activation function을 주로 tanh를 사용한다
Long Short Term Memory (LSTM)
입력으로는 input(xt)와 previous cell state(ct−1), previous hidden state(h_{t-1}) 총 3가지를 사용해 output(ht)와 next cell state(ct), next hidden state(ht)를 출력한다. 이때 사용하는 Gate들이 있다.
Gated Recurrent Unit (GRU)
zt=σ(Wz⋅[ht−1,xt])rt=σ(Wr⋅[ht−1,xt])ht~=tanh(W⋅[rt∗ht−1,xt])ht=(1−zt)∗ht−1+zt∗ht~
Reset Gate, Update Gate 총 2개의 Gate를 가지며 hidden state(ht)가 output 역할을 해서 Output Gate가 없다.
- LSTM보다 Gate 수가 적어 파라미터 수가 적고 성능이 보다 나은 경향이 있다고 알려져 있다