선형역학계(Linear Dynamical Systems)

2021. 8. 17. 13:53Bayesian

728x90

이번 글에서는 잠재 변수가 시간적인 순서를 따라 나타나는 경우를 모델링하는 선형 역학계에 대해 알아보겠습니다.

[관련 글] 가우시안 혼합모델의 확장(Extention of Gaussian Mixture), 확률적 주성분 분석(Probabilistic PCA),2. 마르코프 체인(Markov Chain)


관찰된 변수의 분포를 더 다양하게 만들기 위해 잠재 변수를 도입하는 모델은 많이 사용되어 왔습니다.

예를 들어서, 이산형 잠재 변수를 사용하는 모델은 가우시안 혼합 모델과 은닉 마르코프 모델(Hidden Markov Models)이 있고, 연속형 잠재 변수를 사용하는 모델은 확률적 주성분 분석 모델이 있습니다.

한편, 우리가 시간을 다루는 모델을 생각해볼 때, 시간 사이에 종속성이 있을 수도 있고, 관측된 변수에 대해 중요한 시간(time-point)과 덜 중요한 시간이 있을 수 있습니다. 

연속형 잠재변수를 사용하는 확률적 주성분 분석 모델은 기본적으로 잠재 변수를 독립이라고 가정하기 때문에 앞서 말한 시간적 특성을 가지는 경우에 적절하지 못할 수 있습니다.

따라서 시간적 특성을 다룰 수 있는 연속형 잠재변수를 사용하는 모델이 필요한데, 그것을 다루는 모델이 선형 역학계입니다.

선형 역학계에서는 잠재 변수를 연속형으로 가정하고, 이 변수들 간의 관계를 마르코프 체인으로 가정하여 시간적 특성을 고려할 수 있도록 하였습니다.


잠재 변수의 상태와 관측된 변수를 선형 가우시안(linear-Gaussian)으로 가정하면 다음과 같이 나타낼 수 있습니다.

$\begin {align} &z_n~=~\textbf {A} z_{n-1} + \textbf {w}_n \\ &x_n = \textbf {C} z_n + \textbf {v}_n \\ &z_1 = \mu_0 + \textbf {u}  \\ &\textbf {w} \sim N(\textbf {w}|0, \Gamma) \\ &\textbf {v} \sim N(\textbf {v}|0, \Sigma) \\ &\textbf {u} \sim N(\textbf {u} | 0, V_0) \end {align}$

$\begin {align} &p(z_1)=N(z_1|\mu_0,~V_0) \\ &p(z_n|z_{n-1})~=~N(z_n|\textbf {A} z_{n-1},~\Gamma) \\ &p(x_n|z_n)~=~N(x_n|\textbf {C} z_n,~\Sigma) \\ &p(z_n|x_1,\dots, x_n)=N(z_n|\mu_n,~V_n) \end {align}$

또한 위와 같이 잠재 변수와 관찰된 변수에 모두 가우시안 분포를 가정하는 경우, Kalman filter라고 합니다.

위의 과정을 통해 만들어진 변수를 이용한 선형 역학계의 추론 순서를 나타내면 다음과 같습니다.

1. $\hat {\alpha}(z_{n-1}) = p(z_{n-1}|x_1,\dots, x_{n-1})$ 계산

2. 전이 확률(Transition Prob) $p(z_n|z_{n-1})$을 이용하여 현재의 잠재 변수 상태 $\textrm {z}_n = \displaystyle \int {\hat {\alpha}(z_{n-1})p(z_n|z_{n-1})~\textrm {dz}_{n-1}}$ 계산

3. 갱신된 잠재 변수의 상태를 이용하여 현재 상태 $p(x_n|z_n)$를 갱신

4. 1. 번으로 돌아가 과정을 반복


Kalman filter는 현재의 위치 값(관측된 변수$\textbf {x}$)을 잠재 변수를 통해 보정한 다음 새로운 위치에 대한 예측값을 내놓기 때문에 객체 추적에 많이 활용되는 알고리즘입니다. 이 과정을 그림으로 나타내면 다음과 같습니다. 

가장 왼쪽의 파란색 그래프는 $\hat {\alpha}(z_{n-1})$에 해당하고, 중간의 붉은색 그래프는 전이 확률을 활용하여 갱신한 $p(z_n|x_1,\dots, x_{n-1})=\int {\hat {\alpha}(z_{n-1})p(z_n|z_{n-1})~\textrm {dz}_{n-1}}$에 해당합니다. 가장 오른쪽의 초록색 그래프는 갱신된 $z_n$을 활용하여 만든 $p(x_n|z_n)$에 해당하고, 파란색 그래프는 갱신된 $x_n$을 활용하여 계산한 $p(z_n|x_1,\dots, x_n)$에 해당합니다. 

가장 왼쪽의 $p(z_n|x_1,\dots, x_{n-1})$의 그래프와 비교해보면 가장 오른쪽의 $p(z_n|x_1,\dots, x_n)$는 왼쪽으로 약간 보정된 모습을 볼 수 있습니다.

[출처] BISHOP, Christopher M. Pattern recognition. Machine learning, 2006, 128.9.