1. Structure Of Hidden Markov Model
다음과 같은 확률 구조를 가정해보자
- ${X_n}$ is markov chain
- $P_{ij}$ is transient probability of ${X_n }$
- $P_i = P(X_1 = i)$ for $i \geq 0$ (Initial Probability)
- $Y_n \sim P(Y_n \mid X_n)$ (Emission Probability)
- $Y_n$은 관측되지만 $X_n$은 관측되지 못한채로 남는다. (Hidden States)
이러한 구조를 Hidden Markov Model 이라고 부른다.
기본적으로 시간의 흐름에 따라 겉으로 드러나지 않는 $X_n$이 중심이 되어서 변화를 하고 각 시점마다 $X_n$에 따른 Signal 혹은 부산물 $Y_n$을 관측할 수 있게 된다.
이러한 구조를 어떠한 사례에 적용할 수 있을까?
예를 들어 주식시장을 생각해볼 수 있다. 주가는 언제나 흔들리지만, Hidden States가 업 모멘텀인지, 다운 모멘텀 인지로 설정하면 업 모멘텀일때 Gaussian Process로 증가, 다운 모멘텀일때는 감소로 생각한다면, 주가의 추세에 대한 상태 예측이 가능 할 것이다.
그외에도 히든 마르코프 체인을 이용하여 Single-molecule kinetic analysis, Cryptanalysis, Speech Recognition 등을 할 수 있다고 한다.
히든 마르코프 체인은 다이나믹 베이지안 네트워크의 일종이라고 말한다. 베이지안 네트워크에 대해서 자세히 배우지 않아서 정확한 맥락파악은 힘들지만 베이지안 네트워크에서 사용하는 Connection이 조건부 확률 $p(X_2 \mid X_1)$을 이용한다는 것을 생각하면 히든 마르코프 체인의 구조를 네트워크화해서 인식 할 수 있을 것 같다
2. Estimation of Hidden Markov Model
여기서 우리의 주 관심사는 기저에 깔려있는 Markov Chain의 State인 $\textbf{X}_n = {X_1,X_2,…,X_n}$를 예측해보는 것일 것이다. 따라서 궁금한 것은 관측 값하에서의 Hidden States의 확률$p(\textbf{X}_n \mid \textbf{Y}_n)$이다.
Markov Chain의 구조적 특징
우선 HMM 구조의 중요한 특징을 짚고 넘어가자
- $X_n$은 마르코프 체인을 따른다. 따라서 n 시점의 Process에 영향을 미치는 것은 오직 n-1 시점의 States 뿐이다. 따라서 $p(X_n \mid X_{n-1})$만 알고 있으면 된다.
- $Y_n$은 $X_n$에만 영향을 받는 구조이다. 따라서 $p(Y_n \mid X_n)$만 알고있으면 된다.
- 그러나 전체적인 구조는 베이지안 룰을 따른다. $X_n$을 모수, $Y_n$을 Data라고 생각한다면 베이즈룰을 이용해서 다음과 같이 도식화 할 수 있다.
$p(\theta \mid D) \propto p(D \mid \theta)p(\theta)$
$p(X_n \mid Y_n) \propto p(Y_n \mid X_n)p(X_n)$
- 여기서 $p(X_n)$가 마르코프 체인을 따른다는 것을 생각하면 정보를 하나 더 추가해서 더 신빙성있는 Prior를 만들 수가 있다. 따라서 다음과 같이 Prior를 설정할 수 있다.
$p(X_n)\equiv p(X_n\mid X_{n-1})$
- 따라서 $X_{n-1}$이 known이라는 전제 하에서 Bayesian Estimator를 하면 다음과 같은 식이 도출된다.
$p(X_n \mid Y_n) = p(X_n \mid X_{n-1})p(Y_n \mid X_n)$
HMM 구조 해석
Hidden Markov Chain에서는 우리가 찾고 싶어하는 $\textbf{X}_n = (X_1,X_2,…,X_n)$을 $p(\textbf{X}_n \mid \textbf{S}_n)$를 최대화하는 $\textbf{X}_n$조합을 찾음으로써 추정한다.
이는 일종의 잠재변수 라고 생각을 해주면 베이즈 룰을 이용하여 다음과 같은 수식을 성립시킬 수 있다.
$p(\textbf{X}_n \mid \textbf{Y}_n) \propto p(\textbf{Y}_n \mid \textbf{X}_n)p(\textbf{X}_n)$
$= p(Y_1 \mid X_1)p(Y_2 \mid X_2)…p(Y_n \mid X_n)p(X_1)p(X_2 \mid X_1) …p(X_n \mid X_{n-1})$
이러한 등호가 성립하는 이유는 Signal이 도출되는 과정을 생각해보면, $Y_m$을 예측하는 데에는 $X_m$이 sufficient함을 추론할 수 있고, Markov Chain의 정의를 생각해보면 $X_m$을 예측하는 데에는 $X_{m-1}$이 sufficient함을 추론할 수 있기 때문이다.
위의 수식은 또다시 다음과 같이 정의할 수 있다.
$= p(X_1)p(Y_1 \mid X_1) \cdot p(X_2 \mid X_1) p(Y_2 \mid X_2) … p(X_n \mid X_{n-1}) p(Y_n \mid X_n)$
$=g_1(X_1) g_2(X_1,X_2)g_3(X_2,X_3),…,g_n(X_{n-1},X_n)$
위의 $g()$함수는 아래와 같은 정의가 적용된 것이다.
$g_m(X_{m-1},X_m) \equiv p(X_m \mid X_{m-1})p(Y_m \mid X_m)$
이 $g$함수가 의미하는 바는 $X_{m-1} $이 fix되었을 때 $X_m$의 Bayesian Density라고 해석할 수 있다. 즉 앞서서 서술한 구조를 그대로 가진다고 말 할 수 있다.
이에 대해서 Latent Variable에 대한 추정은 Markov Chain의 성질을 함께 이용하여 Sequential 하게 추정을 해나간다고 해석할 수 있다. 예컨데, t=1에서 우선 추정을 하고, 그 결과물로 t=2시점을 추정, 그 결과물로 t=3시점을 추정해나가는 방식이다.
좀 더 구체적인 추정방식에 대해서는 다음에 직접 구현을 한 후 포스팅 해보겠다.
3. HMM의 구조적 확장
베이즈 통계학을 계속해서 공부해왔는데, 지금까지 생각하기에 베이즈 통계의 가장 큰 장점은 구조적인 유연성에 있는 것 같다. 구조를 만들고 분포를 가정한 다음 데이터를 흘려보내면 적절한 추론이 가능해진다. 통계적 분포는 데이터의 형태마다 다양하게 만들어져 왔기 때문에 데이터에 따른 적용도 범용성 있게 가능하다.
따라서 HMM에서도 이러한 장점을 도입해볼 수 있다.
- 다양한 Y의 형태에 적용가능한 모델
예를 들어 Y가 범주형 자료로 관측된다고 생각해보자. 그 경우에는 $Y_n \mid X_n \sim Multinomial(1,\pi(X_n))$이라고 두고 문제를 해결할 수 있다. $p(Y_n\mid \pi(X_n))$을 categorical 분포에서 도출할 수 있기 때문이다.
다른 예시로 Y가 여러개의 속성을 가지는 벡터로 관측된다고 된다고 생각해보자. 그 경우에는 $Y_n \mid X_n \sim MultiNormal(\mu(X_n),\sigma(X_n))$라고 설정하고 문제를 풀어낼 수 있다.
- Hierachical Model 구조화
여기에 더해 States $X_n$이 $Y_n$을 Generate하는 방식에서 모수를 단순히 고정된 함수를 사용하는 것이 아니라 또 다른 층을 만들어서 적용을 해줄 수 도 있다. 즉, Hierachical한 모델링도 만들어 줄 수 있다.
예를 들어 $Y_n \mid \pi_n \sim Multinomial(\pi_n)$ , $\pi_n \sim Diri(X_n)$의 방식으로 층을 둔 마르코프 체인 모델을 만들 수가 있다.
계층구조 모델링의 힘은 앞서서 베이지안 모델링을 만들 때 여러모로 체험해보았다. HMM에서도 비슷한 일을 할 수 있다는 것은 분명한 장점이 될 것이다.
- 추가적인 연구
지금까지의 HMM은 States pool이 Discrete 했기 때문에 $p(X_n =i \mid X_{n-1}=j)$를 케이스 분류를 통해 행렬로써 관리가 가능했다. 이를 Transition Probability Matrix 혹은 Markov Matrix라고 부른다. 앞으로는 State가 Continuous한 경우도 연구되고 있다고 한다. 이에 대한 구체적인 예시는 Linear Dunamic System이라고 한다.
히든 마르코프 체인은 일종의 Generative Model이라고 말 할 수 있다. 최근 머신러닝에서 활발하게 다뤄지고 있는 분야의 일종이고, GAN이나 VAE가 그 예시라고 말 할 수 있다. HMM의 경우는 이들에 비해 좀 더 단순하긴 하지만 유사한 지평을 열어줄 것이라고 생각된다.