Hidden Markov Models
마르코프 모델을 통해 특정 타임 스탬프 t
가 주어졌을 때 그 시점의 랜덤 변수의 값을 빠르게 계산할 수 있다. 초깃값과 트랜지션 모델만 주어진다면 단순 연산의 반복이기 때문이다. 하지만 연산 도중 트랜지션 모델에 영향을 미칠 변수가 생긴다면 어떻게 해야 할까?
히든 마르코프 모델(hidden Markov models
)을 통해 각 타임 스탬프의 에비던스 관측값을 얻을 수 있다. 이 에비던스가 각 상태 노드(즉 랜덤 변수의 타임 스탬프 t
에서의 값)에 얼마나 영향을 미치는지 알 수 있다.
마르코프 모델이 각 상태에서의 랜덤 변수만을 필요로 했다면, 히든 마르코프 모델은 그 타임 스탬프에서의 랜덤 변수를 가리키는 에비던스 변수를 가진다.
다음은 각 타임 스탬프에서의 날씨 값인 상태 변수 W(state variables
)와 이에 대한 에비던스 변수 F(evidence variable
)로 표현된 히든 마르코프 모델이다.
이때 W는 타임 스탬프 t=i
에서 날씨가 어떨지 확률적으로 보여주는 일종의 믿음(belief
)으로부터 값이 구성되었다. 그렇기 때문에 이 믿음이야말로 에비던스와 조건부 확률 관계가 있다.
F1⊥W0∣W1
∀i=2,...,n;Wi⊥W0,...,Wi−2,F1,...,Fi−1∣Wi−1
∀i=2,...,n;Fi⊥W0,...,Wi−1,F1,...,Fi−1∣Wi
마르코프 모델과 마찬가지로 히든 마르코프 모델 역시 트랜지션 모델 Pr(Wi+1∣Wi)이 특정 타임 스탬프에서 수렴하리라는, 정상(stationary
) 특성을 가지는데, Pr(Fi∣Wi) 또한 그렇다. 이 같은 확률 변수(상태 변수를 기반으로 한 에비던스 변수 조건부 확률)을 특히 센서 모델(sensor model
)이라고 부른다.
센서 모델을 기존의 초깃값 확률 분포, 트랜지션 모델에 추가해서 빌리프 분포를 정의할 수 있다. 이때 빌리프 분포란 타임 스탬프 t=i
까지 모두 모은 에비던스가 있을 때 상태 변수 값이 나올 조건부 확률이다.
B(Wi)=Pr(Wi∣f1,...,fi)
t=i
에서의 에비던스 fi를 쓰지 않을 때의 빌리프 분포 B′(Wi)는 다음과 같다.
B′(Wi)=Pr(Wi∣f1,...,fi−1)
일반적으로 에비던스를 e라고 적고, t=1
부터 t=i
까지의 모든 에비던스를 이렇게 표현하자.
e1:t=e1,...,et
이 방식으로 B′(Wi)=Pr(Wi∣f1,...,fi−1)을 B′(Wi)=Pr(Wi∣f1:(i−1))로 축약할 수 있다.
The Forward Algorithm
B(Wi)와 B′(Wi+1)를 미니-포워드 알고리즘에서 사용한 업데이트 규칙을 통해 합계(marginalization
)를 내보자. 두 빌리프 분포의 차이점은 B(Wi)은 t=i
, B′(Wi+1)은 t=i+1
이 에비던스 f1:i를 가졌을 때 어떤 조건부 확률을 가지느냐다.
B′(Wi+1)=Pr(Wi+1∣f1,...,fi)=wi∑Pr(Wi+1,wi∣f1,...,fi)=wi∑Pr(Wi+1∣wi,f1,...,fi)Pr(wi∣f1,...,fi)=wi∑Pr(Wi+1∣wi)B(wi)
t=i+1까지의 에비던스가 주어질 때 빌리프 분포 B(Wi+1)은 다음과 같다.
B(Wi+1)=Pr(Wi+1∣f1,...,fi+1)=Pr(fi+1∣f1,...,fi)Pr(Wi+1,fi+1∣f1,...,fi)
베이즈 규칙과 체인 룰을 통해 fi+1을 붙일 수 있었는데, Pr(Wi+1,fi+1∣f1,...,fi)가 B(Wi+1) 값을 결정하는 핵심적인 요소다.
그리고 Pr(Wi+1,fi+1∣f1,...,fi)을 Wi+1을 기준으로 분리하면 Pr(fi+1∣Wi+1,f1,...,fi)Pr(Wi+1∣f1,...,fi)이다. 그런데 히든 마르코브 모델에서 에비던스 f는 다른 에비던스가 아니라 W의 영향만을 받는다.
따라서 Pr(fi+1∣Wi+1,f1,...,fi)은 Pr(fi+1∣Wi+1)와 같다. Pr(Wi+1∣f1,...,fi)가 B′(Wi+1)의 정의라는 점에서 다시 이 표현은 Pr(fi+1∣Wi+1)B′(Wi+1)로 축약된다. B′(Wi+1)를 앞에서 재정의한 식으로 표현해서 정리해보자.
B(Wi+1)∝Pr(fi+1∣Wi+1)wi∑Pr(Wi+1∣wi)B(wi)
t=i+1
단계의 빌리프 분포는 t=i
단계의 빌리프 분포를 기반으로 구할 수 있고, 이 반복적인 연산을 포워드 알고리즘(forward algorithm
)이라고 한다.
포워드 알고리즘은 두 가지 단계를 통해 구한다.
-
시간에 따른 업데이트 time elapse update
: 타임 스탬프 t
에 따라 업데이트한다. B(Wi)로부터 B′(Wi+1)를 결정한다고도 볼 수 있다. 이때 주어지는 에비던스는 f1:i로 같고 t=i
만 t+i+1
로 달라지기 때문이다.
-
관측값에 따른 업데이트 observation update
: 에비던스 fi+1가 추가된 업데이트 방식이다. B′(Wi+1)로부터 B(Wi)를 구하는 것이다. 타임 스탬프는 달라지지 않는다.
먼저 타임 스탬프에 따른 업데이트를 한 뒤 얻은 B′(Wi+1)을 통해 나머지를 구하며, 이 업데이트가 번갈아 적용된다.
위 분포가 주어질 때 빌리프 분포를 구해보자.
B′(W1=sun)=w0∑Pr(W1=sun∣w0)B(w0)=Pr(W1=sun∣W0=sun)B(W0=sun)+Pr(W1=sun∣W0=rain)B(W0=rain)=0.6∗0.8+0.1∗0.2=0.5
B′(W1=rain)=w0∑Pr(W1=rain∣w0)B(w0)=Pr(W1=rain∣W0=sun)B(W0=sun)+Pr(W1=rain∣W0=rain)B(W0=rain)=0.4∗0.8+0.9∗0.2=0.5
이 빌리프 분포가 비례할 부분을 구해보자.
B(W1=sun)∝Pr(F1=good∣W1=sun)B′(W1=sun)=0.8∗0.5=0.4
B(W1=rain)∝Pr(F1=good∣W1=rain)B′(W1=rain)=0.3∗0.5=0.15
두 합계인 0.55로 B(W1)를 마지널라이즈한다.
B(W1=sun)=0.4/0.55=118
B(W1=rain)=0.15/0.55=113
에비던스 관측값이 반영되자 날씨가 맑을 때 확률이 증가했고 흐릴 확률이 낮아졌음을 알 수 있다.