29장 State Space Models

State Space Model (SSM) 한 마디 요약 : 전체 시스템을 관측하는 것이 불가능하기에 시간에 따라서 Markov Process 를 가지며 변하는 Hidden State 을 모델링 해주며 각각의 Hidden State 에 해당되는 Output 까지 고려해줍니다.

29.1 Introduction

Notations :

  • zt∈RNz:\boldsymbol{z}_t \in \mathbb{R}^{N_z} : Hidden States
  • ut∈RNu:\boldsymbol{u}_t \in \mathbb{R}^{N_u} : Optional Observed Inputs
  • yt∈RNy:\boldsymbol{y}_t \in \mathbb{R}^{N_y} : Observed Outputs
  • f:\boldsymbol f : Transition Function
  • qt:\boldsymbol q_t : Process Noise
  • h:\boldsymbol h : Observation Function
  • rt:\boldsymbol r_t : Observation Noise

SSM : Probabilistic Model for Sequences with a Latent Markov State.

zt=f(zt−1,ut,qt)yt=h(zt,ut,y1:t−1,rt)\begin{aligned} \boldsymbol{z}_t & =\boldsymbol{f}\left(\boldsymbol{z}_{t-1}, \boldsymbol{u}_t, \boldsymbol{q}_t\right) \\ \boldsymbol{y}_t & =\boldsymbol{h}\left(\boldsymbol{z}_t, \boldsymbol{u}_t, \boldsymbol{y}_{1: t-1}, \boldsymbol{r}_t\right) \end{aligned}

위를 만족한다면 SSM 이라고 부를 수가 있습니다.

그러면 우리가 관심있는 두 변수는 사실 zt,yt\boldsymbol z_t, \boldsymbol y_t 이며 이들을 확률변수로 바라본다면, 다음과 같은 Probabilistic Model 으로 표현해줄 수도 있습니다.

  • p(zt∣zt−1,ut)=p(zt∣f(zt−1,ut)):p\left(\boldsymbol{z}_t \mid \boldsymbol{z}_{t-1}, \boldsymbol{u}_t\right) =p\left(\boldsymbol{z}_t \mid \boldsymbol{f}\left(\boldsymbol{z}_{t-1}, \boldsymbol{u}_t\right)\right) : Transition Model
  • p(yt∣zt,ut,y1:t−1)=p(yt∣h(zt,ut,y1:t−1)):p\left(\boldsymbol{y}_t \mid \boldsymbol{z}_t, \boldsymbol{u}_t, \boldsymbol{y}_{1: t-1}\right) =p\left(\boldsymbol{y}_t \mid \boldsymbol{h}\left(\boldsymbol{z}_t, \boldsymbol{u}_t, \boldsymbol{y}_{1: t-1}\right)\right) : Observation Model

가장 General 한 케이스로 Joint Probability 를 그려준다면 다음과 같습니다.

p(y1:T,z1:T∣u1:T)=[p(z1∣u1)∏t=2Tp(zt∣zt−1,ut)][∏t=1Tp(yt∣zt,ut,y1:t−1)]p\left(\boldsymbol{y}_{1: T}, \boldsymbol{z}_{1: T} \mid \boldsymbol{u}_{1: T}\right)=\left[p\left(\boldsymbol{z}_1 \mid \boldsymbol{u}_1\right) \prod_{t=2}^T p\left(\boldsymbol{z}_t \mid \boldsymbol{z}_{t-1}, \boldsymbol{u}_t\right)\right]\left[\prod_{t=1}^T p\left(\boldsymbol{y}_t \mid \boldsymbol{z}_t, \boldsymbol{u}_t, \boldsymbol{y}_{1: t-1}\right)\right]

이것을 활용시켜서 저희가 더 흔히 알고 있는 모델들로 적용시키는 것이 가능합니다.

예시로 yty_t 가 yt−1,zty_{t-1}, z_t  에만 의존한다면 Autoregressive Model 이 되며, 이는 다음과 같이 모델해줄 수 있습니다.

p(y1:T,z1:T∣u1:T)=[p(z1∣u1)∏t=2Tp(zt∣zt−1,ut)][∏t=1Tp(yt∣yt−1,zt,ut)]p\left(\boldsymbol{y}_{1: T}, \boldsymbol{z}_{1: T} \mid \boldsymbol{u}_{1: T}\right)=\left[p\left(\boldsymbol{z}_1 \mid \boldsymbol{u}_1\right) \prod_{t=2}^T p\left(\boldsymbol{z}_t \mid \boldsymbol{z}_{t-1}, \boldsymbol{u}_t\right)\right]\left[\prod_{t=1}^T p\left(\boldsymbol{y}_t \mid \boldsymbol{y}_{t-1}, \boldsymbol{z}_t, \boldsymbol{u}_t\right)\right]

반면에 Input utu_t 가 없다고 가정한다면 다음과 같이 나옵니다.

p(y1:T,z1:T)=[p(z1)∏t=2Tp(zt∣zt−1)][∏t=1Tp(yt∣zt)]p\left(\boldsymbol{y}_{1: T}, \boldsymbol{z}_{1: T}\right)=\left[p\left(\boldsymbol{z}_1\right) \prod_{t=2}^T p\left(\boldsymbol{z}_t \mid \boldsymbol{z}_{t-1}\right)\right]\left[\prod_{t=1}^T p\left(\boldsymbol{y}_t \mid \boldsymbol{z}_t\right)\right]

29.2 Hidden Markov Models (HMMs)

HMM 도 SSM 으로 바라볼 수 있으며, 이것은 Hidden State 들이 Discrete 한 경우를 의미합니다.

  • zt∈{1,⋯ ,K}:z_t \in \{1,\cdots, K\} :  Latents
  • p(z1=j)=πj:p(z_1 = j) =\pi_j : Initial State Distribution
  • p(zt=j∣zt−1=i)=Aij:p\left(z_t=j \mid z_{t-1}=i\right)=A_{i j} : Transition Model
  • p(yt=k∣zt=j)=yjk:p\left(y_t=k \mid z_t=j\right)=y_{j k} : Observation Model

    예시로 DD Discrete Observation 중 하나면 p(yt∣zt=j)=∏d=1DCat⁡(ytd∣yd,j,:)p\left(\boldsymbol{y}_t \mid z_t=j\right)=\prod_{d=1}^D \operatorname{Cat}\left(y_{t d} \mid \boldsymbol{y}_{d, j,:}\right)

GMM-HMM

반면에 Observation 은 사실 Continuous 가 될 수도 있기에 Continuous 이면 정규분포로 세팅하는 경우도 있습니다.

p(yt∣zt=j)=∑k=1MwjkN(yt∣μjk,Σjk)p\left(\boldsymbol{y}_t \mid z_t=j\right)=\sum_{k=1}^M w_{j k} \mathcal{N}\left(\boldsymbol{y}_t \mid \boldsymbol{\mu}_{j k}, \boldsymbol{\Sigma}_{j k}\right)

The Parameters of Gaussian are time-invariant, and are trained.
Above is also called GMM-HMM.

HMM with 5 Hidden States, and 2D-Gaussian Observation Model.

Left : HMM with 5 Hidden States, Right : 똑같은 HMM, 근데 Hidden State 이 이제는 색깔로 표현. y 축의 경우 y_1 과 y_2 값들을 의미하는 듯하며 두 개의 변수를 하나의 축으로 둔 것 같음.

GPT 5’s Annotation (많이 틀리긴 함)

Autoregressive HMM

Autoregressive-HMM 의 경우에는 기본적인 HMM 의 경우 ztz_t 가 주어졌다면 yt,yt−1,⋯y_t, y_{t-1}, \cdots 끼리는 Conditionally Independent 하다는 가정이 있으며, Autoregressive 한 케이스에서는 그와는 반대로 yty_t 가 yt−1,zty_{t-1}, z_t 에 대해서 의존합니다.

예시로 Continuous 한 데이터에 대해서는 Observation Model 을 정규분포로 가정할 수 있습니다.

p(yt∣yt−1,zt=j,θ)=N(yt∣Ejyt−1+μj,Σj)p\left(\boldsymbol{y}_t \mid \boldsymbol{y}_{t-1}, z_t=j, \boldsymbol{\theta}\right)=\mathcal{N}\left(\boldsymbol{y}_t \mid \mathbf{E}_j \boldsymbol{y}_{t-1}+\boldsymbol{\mu}_j, \boldsymbol{\Sigma}_j\right)

Ej\mathbf E_j 가 여기에서 유일한 차이점인데 이게 해주는 것은 yt−1\boldsymbol y_{t-1} 의 점을 tt 시점의 분포로 바꿔줄 수 있다는 점입니다. 이게 없다면 그저 GMM-HMM 과 똑같아버려집니다.

각 Point (y1,y2)(y_1, y_2) 마다 Arrow 가 있으며, 각각의 화살표는 다음 Step 의 Mean 을 가르키고 있습니다. 구체적으로 각각의 화살표는 (Ejy+μj)−y\left(E_j y+\mu_j\right)-y 를 의미합니다.

결론적으로는 Standard HMM 에서는 yty_t 끼리 Correlation 이 없지만, AR-HMM 에서는 이를 모델링 해주고 있다 정도로 마무리 지을 수가 있습니다.

29.3 HMM Applications

Example 1

데이터가 Fig 29.6(a) 에 보이시는 바와 같이 구성이 되어 있으며, 이것을 Fig 29.7 에 보이시는 바와 같이 State 들을 여러개로 쪼개서 SSM Model 을 Fit 시킬 수 있습니다. 특이하게도 44 이후로는 다 똑같은 값들을 예측합니다.

  • Specific Details :
    z1∼ Categorical ({14,14,14,14})zt∣zt−1∼Categorical⁡({p if zt=zt−11−p4−1 otherwise })\begin{aligned}z_1 & \sim \text { Categorical }\left(\left\{\frac{1}{4}, \frac{1}{4}, \frac{1}{4}, \frac{1}{4}\right\}\right) \\z_t \mid z_{t-1} & \sim \operatorname{Categorical}\left(\left\{\begin{array}{cc}p & \text { if } z_t=z_{t-1} \\\frac{1-p}{4-1} & \text { otherwise }\end{array}\right\}\right)\end{aligned}

Example 2

Protein Alignment 에도 사용이 가능합니다.

29.4 Parameter Learning

29.4.1 EM-Algorithm

p(y1:T,z1:T∣θ)=[p(z1∣π)][∏t=2Tp(zt∣zt−1,A)][∏t=1Tp(yt∣zt,B)]=[∏k=1KπkI(z1=k)][∏t=2T∏j=1K∏k=1KAjkI(zt−1=j,zt=k)][∏t=1T∏k=1Kp(yt∣Bk)I(zt=k)]=πz1(∏t=2TAzt−1zt)(∏t=1Tp(yt∣zt;B))\begin{aligned}p\left(\boldsymbol{y}_{1: T}, \boldsymbol{z}_{1: T} \mid \boldsymbol{\theta}\right) & =\left[p\left(z_1 \mid \boldsymbol{\pi}\right)\right]\left[\prod_{t=2}^T p\left(z_t \mid z_{t-1}, \mathbf{A}\right)\right]\left[\prod_{t=1}^T p\left(\boldsymbol{y}_t \mid z_t, \mathbf{B}\right)\right] \\& =\left[\prod_{k=1}^K \pi_k^{\mathbb{I}\left(z_1=k\right)}\right]\left[\prod_{t=2}^T \prod_{j=1}^K \prod_{k=1}^K A_{j k}^{\mathbb{I}\left(z_{t-1}=j, z_t=k\right)}\right]\left[\prod_{t=1}^T \prod_{k=1}^K p\left(\boldsymbol{y}_t \mid \mathbf{B}_k\right)^{\mathbb{I}\left(z_t=k\right)}\right] \\ &= \pi_{z_1}\left(\prod_{t=2}^T A_{z_{t-1} z_t}\right)\left(\prod_{t=1}^T p\left(y_t \mid z_t ; B\right)\right) \end{aligned}

EM 의 목적 : Maximize log⁡pθ(y1:T)\log p_\theta(y_{1:T}) where θ=(π,A,B)\theta = (\pi, A, B) when z1:Tz_{1:T} are Hidden.

E-Step :

Compute Expected Statistics Under θold\boldsymbol \theta^{\text{old}}

  • State Marginal : γn,t(j)≜p(zt=j∣yn,1:Tn,θold )\gamma_{n, t}(j) \triangleq p\left(z_t=j \mid \boldsymbol{y}_{n, 1: T_n}, \boldsymbol{\theta}^{\text {old }}\right)
  • Transition Marginal : ξn,t(j,k)≜p(zt−1=j,zt=k∣yn,1:Tn,θold )\xi_{n, t}(j, k) \triangleq p\left(z_{t-1}=j, z_t=k \mid \boldsymbol{y}_{n, 1: T_n}, \boldsymbol{\theta}^{\text {old }}\right)

그런 다음에 이것을 활용해서 Complete-Data Log Likelihood 를 구축하면 됩니다.

Q(θ∣θold )=Ep(z1:T∣y1:T,θold )[log⁡p(y1:T,z1:T∣θ)]Q\left(\theta \mid \theta^{\text {old }}\right)=\mathbb{E}_{p\left(z_{1: T} \mid y_{1: T}, \theta^{\text {old }}\right)}\left[\log p\left(y_{1: T}, z_{1: T} \mid \theta\right)\right]

여기에서 γ\gamma 그리고 ξ\xi 들을 이용한다면 다음과 같이 Decompose 시킬 수 있습니다.

Q(θ∣θold )=∑jγ1(j)log⁡πj+∑t=2T∑i,jξt(i,j)log⁡Aij+∑t=1T∑jγt(j)log⁡p(yt∣zt=j;B).\begin{aligned}Q\left(\theta \mid \theta^{\text {old }}\right)= & \sum_j \gamma_1(j) \log \pi_j \\& +\sum_{t=2}^T \sum_{i, j} \xi_t(i, j) \log A_{i j} \\& +\sum_{t=1}^T \sum_j \gamma_t(j) \log p\left(y_t \mid z_t=j ; B\right) .\end{aligned}

M-Step :

Maximize Each parameter (π,A,B)(\pi, A, B) based off of the likelihood we got in the E-Step, but with the constraints ∑jπj=1,∑jAij=1\sum_j \pi_j = 1, \sum_j A_{ij} = 1.

우선은 π:\pi :

πjnew =∑nγn,1(j)∑n1\pi_j^{\text {new }}=\frac{\sum_n \gamma_{n, 1}(j)}{\sum_n 1}

다음으로는 A:A:

Nij=∑n∑t=2Tnξn,t(i,j),Ni=∑jNij=∑n∑t=2Tnγn,t−1(i).N_{i j}=\sum_n \sum_{t=2}^{T_n} \xi_{n, t}(i, j), \quad N_i=\sum_j N_{i j}=\sum_n \sum_{t=2}^{T_n} \gamma_{n, t-1}(i) .
Aijnew=NijNi.A_{i j}^{n e w}=\frac{N_{i j}}{N_i .}

마지막으로 B:B :

Cjv=∑n∑tγn,t(j)1[yn,t=v],Nj=∑n∑tγn,t(j)C_{j v}=\sum_n \sum_t \gamma_{n, t}(j) \mathbf{1}\left[y_{n, t}=v\right], \quad N_j=\sum_n \sum_t \gamma_{n, t}(j)
Bjvnew =CjvNjB_{j v}^{\text {new }}=\frac{C_{j v}}{N_j}

E-Step 과 M-Step 을 반복시키면 EM-Algorithm 이 됩니다.

요즘 안 사용하는 이유? Scaling Issue…

SGD 으로도 똑같은 것을 할 수가 있다 →\rightarrow 29.4.2 내용.

29.4.4 Bayesian HMM’s

정말로 별거가 아니라 이제는 θ=(π,A,B)\theta = (\pi, A, B)  들도 확률변수로 바라본다는 것이 끝인 내용.

log⁡p(θ,D)=log⁡p(θ)+∑n=1Nlog⁡p(y1:T,n∣θ)\log p(\boldsymbol{\theta}, \mathcal{D})=\log p(\boldsymbol{\theta})+\sum_{n=1}^N \log p\left(\boldsymbol{y}_{1: T, n} \mid \boldsymbol{\theta}\right)

보통은 다음과 같은 Prior 들을 사용한다고 합니다 (Conjugate Priors, when Posterior and Prior follow the same Distribution).

Dirichlet 분포를 Prior 으로 자주 사용하는 이유?

확률벡터 π=(π1,⋯ ,πK)\pi = (\pi_1, \cdots, \pi_K) 위의 분포가 Dirichlet 분포이며, 왜 특별하냐면 우리의 데이터 개수를 α\alpha 에 반영시킬 수 있기 때문이다. 일종의 Pseudo-Histogram 으로 생각.

f(x1,…,xK;α1,…,αK)=1 B(α)∏i=1Kxiαi−1f\left(x_1, \ldots, x_K ; \alpha_1, \ldots, \alpha_K\right)=\frac{1}{\mathrm{~B}(\boldsymbol{\alpha})} \prod_{i=1}^K x_i^{\alpha_i-1}

결론적으로는 Bayesian HMM 에서는 Dirichlet Prior 를 많이 사용하며, 이것을 사용하는 이유로는 데이터를 보고 난 다음에 Category 들에 대한 Histogram 으로 그려줄 수 있기 때문이다.

29.5 HMMs : Generalizations

  • Hidden Semi-Markov Model (HSMM)
    • Standard HMM 에서는 State ii 에 dd Steps 만큼 남아있을 확률 p(di=d)p(d_i = d) 이 Geometric, 즉 Memoryless 하게 구성이 됩니다.
    • 이러한 Duration dtd_t 까지 고려해주는 것이 HSMM 입니다.
    • Why Semi-Markov? 이제는 Hidden 이 State 자체에서만 Markov 한게 아니기에.
  • Hierarchical HMMs (HHMM)
    • State 자체를 Sub-HMM 으로 바라보는 개념.
    • Phone : Basic unit of sound in a spoken language
      • Words →\rightarrow Sequence of Phones
      • Each Phone →\rightarrow Sequence of Sub-Phones
  • Factorial HMMs (FHMM)
    • p(z1:T1:M,y1:T)=∏m=1Mp(z1(m))∏t>2p(zt(m)∣zt−1(m))∏t=1Tp(yt∣zt(1),…,zt(M))p\left(\mathbf{z}_{1: T}^{1: M}, y_{1: T}\right)=\prod_{m=1}^M p\left(z_1^{(m)}\right) \prod_{t>2} p\left(z_t^{(m)} \mid z_{t-1}^{(m)}\right) \prod_{t=1}^T p\left(y_t \mid z_t^{(1)}, \ldots, z_t^{(M)}\right)
    • State 1 개를 Chain (Factor) 으로 바라보는 것.
  • Coupled HMMs
    • FHMM 에서의 Chain 들이 서로에게 이제는 영향을 끼친다.

여기까지가

29.6 Linear Dynamical Systems (LDS)

이 장에서는 구체적으로 Linear-Gaussian State-Space Model (LG-SSM), a.k.a LDS 에 대해서 다룹니다.

LG-SSM 이기 위해서는,

  • Transition Function f\boldsymbol f + Observation Function h\boldsymbol h 들이 Linear 할 때.
  • Process Noise qt\boldsymbol q_t + Observation Noise rt\boldsymbol r_t 들이 Gaussian 일 때.

이며 그래프 모델 자체는 우측과 같습니다.

정의 자체는 그래서 다음과 같이 해줄 수가 있습니다.

p(zt∣zt−1,ut)=N(zt∣Ftzt−1+Btut+bt,Qt)p(yt∣zt,ut)=N(yt∣Htzt+Dtut+dt,Rt)\begin{aligned}p\left(\boldsymbol{z}_t \mid \boldsymbol{z}_{t-1}, \boldsymbol{u}_t\right) & =\mathcal{N}\left(\boldsymbol{z}_t \mid \mathbf{F}_t \boldsymbol{z}_{t-1}+\mathbf{B}_t \boldsymbol{u}_t+\boldsymbol{b}_t, \mathbf{Q}_t\right) \\p\left(\boldsymbol{y}_t \mid \boldsymbol{z}_t, \boldsymbol{u}_t\right) & =\mathcal{N}\left(\boldsymbol{y}_t \mid \mathbf{H}_t \boldsymbol{z}_t+\mathbf{D}_t \boldsymbol{u}_t+\boldsymbol{d}_t, \mathbf{R}_t\right)\end{aligned}

Bias 가 없고 Input 이 없다면 모델은 다음과 같이 Simplify 됩니다.

p(zt∣zt−1)=N(zt∣Ftzt−1,Qt)p(yt∣zt)=N(yt∣Htzt,Rt)\begin{aligned}p\left(\boldsymbol{z}_t \mid \boldsymbol{z}_{t-1}\right) & =\mathcal{N}\left(\boldsymbol{z}_t \mid \mathbf{F}_t \boldsymbol{z}_{t-1}, \mathbf{Q}_t\right) \\p\left(\boldsymbol{y}_t \mid \boldsymbol{z}_t\right) & =\mathcal{N}\left(\boldsymbol{y}_t \mid \mathbf{H}_t \boldsymbol{z}_t, \mathbf{R}_t\right)\end{aligned}

그러면 이것을 방정식으로 다음과 같이 적어줄 수 있게 됩니다.

zt=Ftzt−1+qtyt=Htzt+rt\begin{aligned}\boldsymbol{z}_t & =\mathbf{F}_t \boldsymbol{z}_{t-1}+\boldsymbol{q}_t \\\boldsymbol{y}_t & =\mathbf{H}_t \boldsymbol{z}_t+\boldsymbol{r}_t\end{aligned}
  • qt∼N(0,Qt):\boldsymbol{q}_t \sim \mathcal{N}\left(\mathbf{0}, \mathbf{Q}_t\right) : Process Noise
  • rt∼N(0,Rt):\boldsymbol{r}_t \sim \mathcal{N}\left(\mathbf{0}, \mathbf{R}_t\right) : Observation Noise

여기에서 저희의 파라미터들은 그러면 다음과 같습니다 (보통은 tt 에 의존하지 않는다는 가정이긴 함).

θt=(Ft,Ht,Bt,Dt,Qt,Rt)\boldsymbol{\theta}_t=\left(\mathbf{F}_t, \mathbf{H}_t, \mathbf{B}_t, \mathbf{D}_t, \mathbf{Q}_t, \mathbf{R}_t\right)

얘네들도 똑같이 학습시켜주면 됩니다.

29.7 LDS: Applications

29.7.1 Object Tracking

2차원에서 놀고 있는 Object 을 생각해보겠습니다. 이때 Position 이 (ut,vt)(u_t, v_t) 그리고 Velocity 를 (u˙t,v˙t)\left(\dot{u}_t,\dot{v}_t\right) 으로 두면 State at time tt 를 zt=(utvtu˙tv˙t)\boldsymbol{z}_t=\left(\begin{array}{llll}u_t & v_t & \dot{u}_t & \dot{v}_t\end{array}\right) 으로 둘 수가 있습니다.

Discrete Time 만 고려하면 Discrete Time SSM 은 다음과 같습니다.

(utvtu˙tv˙t)⏟zt=(10Δ0010Δ00100001)⏟F(ut−1vt−1u˙t−1v˙t−1)⏟zt−1+qt\underbrace{\left(\begin{array}{c}u_t \\v_t \\\dot{u}_t \\\dot{v}_t\end{array}\right)}_{\boldsymbol{z}_t}=\underbrace{\left(\begin{array}{cccc}1 & 0 & \Delta & 0 \\0 & 1 & 0 & \Delta \\0 & 0 & 1 & 0 \\0 & 0 & 0 & 1\end{array}\right)}_{\mathbf{F}} \underbrace{\left(\begin{array}{c}u_{t-1} \\v_{t-1} \\\dot{u}_{t-1} \\\dot{v}_{t-1}\end{array}\right)}_{\boldsymbol{z}_{t-1}}+\boldsymbol{q}_t
  • Δ:\Delta : Step Size between Consecutive Discrete Measurement Times
  • qt∼N(0,Q):\boldsymbol{q}_t \sim \mathcal{N}(\mathbf{0}, \mathbf{Q}) : Process Noise
  • Noise Covariance Matrix Q:\mathbf Q :
    Q=(q1Δ330q1Δ2200q2Δ330q2Δ22q1Δ220q1Δ00q2Δ220q2Δ)\mathbf{Q}=\left(\begin{array}{cccc}\frac{q_1 \Delta^3}{3} & 0 & \frac{q_1 \Delta^2}{2} & 0 \\0 & \frac{q_2 \Delta^3}{3} & 0 & \frac{q_2 \Delta^2}{2} \\\frac{q_1 \Delta^2}{2} & 0 & q_1 \Delta & 0 \\0 & \frac{q_2 \Delta^2}{2} & 0 & q_2 \Delta\end{array}\right)

해석 :

  • Position 부분에만 Δ\Delta 가 Velocity 와 함께 직접적으로 더해지며 이는 Velocity 가 Position 에 관한 함수가 아니기에.
  • qt\boldsymbol q_t 부분에 Δ\Delta 가 들어가며, 이는 Random Acceleration 이 Position + Velocity 에 어떤 영향을 끼치는지 관련이다.
    • 우하단 : Velocity 는 Acceleration 한 번 적분한 것이기에 Velocity Variance 는 시간에 따라서 Linear 하다.
    • 좌상단 : Position 은 Acceleration 두 번 적분한 것이기에 Position Variance 는 시간에 따라서 Cubic 하다.
    • Off-Diagonals : Position 과 Velocity 의 Covariance 부분, 시간에 따라서 Quadratic 하다.

이러한 세팅에서 Location 을 관측한다고 해보자. 이때 Location 에 대한 Gaussian Noise 까지 있다고 하면, 다음과 같이 Observation Model 을 구축할 수가 있다.

(y1,ty2,t)⏟yt=(10000010)⏟H(utu˙tvtv˙t)⏟zt+rt\underbrace{\binom{y_{1, t}}{y_{2, t}}}_{\boldsymbol{y}_t}=\underbrace{\left(\begin{array}{llll}1 & 0 & 0 & 0 \\0 & 0 & 1 & 0\end{array}\right)}_{\mathbf{H}} \underbrace{\left(\begin{array}{l}u_t \\\dot{u}_t \\v_t \\\dot{v}_t\end{array}\right)}_{\boldsymbol{z}_t}+\boldsymbol{r}_t
  • rt∼N(0,R):\boldsymbol{r}_t \sim \mathcal{N}(\mathbf{0}, \mathbf{R}) : Observation Noise

이것의 움직임을 (a), Kalman Filter 을 통해서 p(zt∣y1:t,θ)p(\boldsymbol z_t \mid \boldsymbol y_{1:t}, \boldsymbol \theta) 을 구하면 (b) 와 같이, 그리고 Kalman Smoother 까지 활용해서 구하면 (c) 와 같이 나옵니다.

29.8 LDS: Parameter Learning

  • EM
  • Bayesian LDS

29.9 Switching Linear Dynamical Systems (SLDS)

Discrete Mode 가 있으며 이에 해당되는 Continuous R.V 들이 존재.

비유를 하자면 자동차가 상하좌우로 갈지에 대한 Mode mtm_t 가 있는데 이에 관한 실제 Kinematics ztz_t 가 Mode 에 의해서 모델이 된다.

p(mt=k∣mt−1=j)=Ajkp(zt∣zt−1,mt=k,ut)=N(zt∣Fkzt−1+Bkut+bk,Qk)p(yt∣zt,mt=k,ut)=N(yt∣Hkzt+Dkut+dk,Rk)\begin{aligned}p\left(m_t=k \mid m_{t-1}=j\right) & =A_{j k} \\p\left(\boldsymbol{z}_t \mid \boldsymbol{z}_{t-1}, m_t=k, \boldsymbol{u}_t\right) & =\mathcal{N}\left(\boldsymbol{z}_t \mid \mathbf{F}_k \boldsymbol{z}_{t-1}+\mathbf{B}_k \boldsymbol{u}_t+\boldsymbol{b}_k, \mathbf{Q}_k\right) \\p\left(\boldsymbol{y}_t \mid \boldsymbol{z}_t, m_t=k, \boldsymbol{u}_t\right) & =\mathcal{N}\left(\boldsymbol{y}_t \mid \mathbf{H}_k \boldsymbol{z}_t+\mathbf{D}_k \boldsymbol{u}_t+\boldsymbol{d}_k, \mathbf{R}_k\right)\end{aligned}

실제 Moving Object 에 이것을 적용시키면 다음과 같이 나온다.

29.10 Nonlinear SSMs

이제는 SSM 들의 Transition / Observation Function 들이 비선형이라는 가정이 들어갑니다. 보통은 그래서 가우시안으로 둘 수가 있으며, General 하게는 다음과 같습니다.

zt=f(zt−1,ut)+qtqt∼N(0,Qt)yt=h(zt,ut)+rtrt∼N(0,Rt)\begin{aligned}\boldsymbol{z}_t & =\boldsymbol{f}\left(\boldsymbol{z}_{t-1}, \boldsymbol{u}_t\right)+\boldsymbol{q}_t \\\boldsymbol{q}_t & \sim \mathcal{N}\left(\mathbf{0}, \mathbf{Q}_t\right) \\\boldsymbol{y}_t & =\boldsymbol{h}\left(\boldsymbol{z}_t, \boldsymbol{u}_t\right)+\boldsymbol{r}_t \\\boldsymbol{r}_t & \sim \mathcal{N}\left(\mathbf{0}, \mathbf{R}_t\right)\end{aligned}

위의 가우시안 세팅이 아닌 Non-Gaussian 으로 두게 된다면 Non-Gaussian SSM (NSSM) 이 됩니다.

  • Neuroscience 에t서 Neural Spike Train 모델링하는데 사용.
  • 금융에서 Log-Return 을 모델링하는데에 사용.

29.12 Structural Time Series Models

그냥 말 그대로 SSM 을 시계열에 대해서 적용시킨 것이 끝!

Step 1 :

  • Specify Components for SSM
    • Local Level
    • Local Linear Trend
    • Seasonality
    • 등등

Step 2 :

  • 무엇을 배울지 고른다.
    • Level Noise
    • Slope Noise
    • Seasonality Noise

Step 3 :

  • Fit Parameters
    • Kalman Filtering 을 통해서 파라미터 구함.
    • Kalman Smoothing 도 사용 가능!

Step 4 :

  • Forecast
    • 예측을 해준다.

결과 예시들 :

29.13 Deep SSMs

Dynamics & Observation Model 을 Non-linear 한 DNN 으로 가정하게 되는 SSM 을 Deep SSM 이라고 부른다.

애초에 Deep SSM 의 아이디어는 Posterior over Latent 를 구하는게 사실상 불가능하다고 말한다.

p(z1:T∣x1:T)=∏t=1Tp(zt∣zt−1,x1:T)=∏t=1Tp(zt∣zt−1,̸x1:t−1,xt:T)p\left(\boldsymbol{z}_{1: T} \mid \boldsymbol{x}_{1: T}\right)=\prod_{t=1}^T p\left(\boldsymbol{z}_t \mid \boldsymbol{z}_{t-1}, \boldsymbol{x}_{1: T}\right)=\prod_{t=1}^T p\left(\boldsymbol{z}_t \mid \boldsymbol{z}_{t-1}, \not{\boldsymbol{x}_{1: t-1}}, \boldsymbol{x}_{t: T}\right)

그렇기에 우리는 다른 분포 qq 으로 이것을 근사시켜야 된다고 말하며, 이런 면에서 VAE 에서의 아이디어와 비슷한 것 같다.

그럼 보통 어떻게 사용이 될까? qq 의 선택이 보통은 Gaussian 이기에 Neural Network 보고 μ,Σ\mu, \Sigma 만 뱉게끔 학습을 보통은 시킨다.

이것 이외에도 Recurrent SSM, Variational RNN 도 있지만 굳이 다루지는 않겠습니다.