HMM

设隐藏状态序列,及其状态值的集合,Z 为离散型随机变量,有 m 种取值
Z=z1,z2...zT,Q={q1,q2,...qm}
设观测序列,及其观测值的集合
X=x1,x2,...xT,V={v1,v2,...vT}
模型表示:
θ=(A,B,π)
- 其中 A 为状态转移矩阵,其维度为 (m×m)
A=[aij],aij=P(zt+1=qj∣zt=qi)
aij 表示 t 时刻,当前隐藏状态 zt 转换为下一个隐藏状态 zt+1 的概率
B=[bj(k)],bj(k)=P(xt=vk∣zt=qj)
bj(k) 表示 t 时刻,当前观测值 xt 由当前隐藏值 zt 转换而来的概率
-
π 表示 Z 的初始概率分布,即 zt 取到 πm 的概率,其维度为 (1×m)
π=[π1,π2,π3,...,πm]
其中 π1+π2+π3+...+πm=1
两个假设
P(zt+1∣z1,z2,..zt,x1,x2,...xt)=P(zt+1∣zt)
t+1 时刻的隐藏状态的生成只和 t 时刻的隐藏状态有关
P(xt∣z1,z2,..zt,x1,x2,...xt)=P(xt∣zt)
t 时刻的观测状态的生成,只和 t 时刻的隐藏状态有关
三个问题
-
Evaluation:Given λ ,求 P(O∣λ),使用 Forward−Backward 算法
-
Learning:$ \lambda_{MLE} = argmax P(O|\lambda)$,EM 算法
-
Decoding:I^=argmaxP(I∣O,λ)
问题 ①:已知 (π, A, B),求 Z,viterbi 算法
已知观测状态和 θ ,求使得目标概率 $ P(Z|X,\theta )$ 最大的隐藏状态序列 Z
目标概率表示为
P(Z∣X,θ)=P(z1=q1)⋅P(z2=q2∣z1=q1)⋅P(x1=v1∣z1=q1)×...×P(zt=qt)⋅P(zt+1=qt+1∣zt=qt)⋅P(xt=vt∣zt=qt)
需要求隐藏状态序列 $ Z$ ,使用枚举的方法,有 t 个隐藏状态,每个隐藏状态有 m 中取值,算法的时间复杂度为 O(mt) 是无法求解的
动态规划
我们可以把 Z 及其所有取值列出来,Z 取值的最优组合可以看成是从 z1 到 zk 走过的分数最高的路径,并且 zk 取到 qi

那么δk+1(j) 可以表示成,
δk+1(j)=max{δk(1)+logP(zk+1=qj∣zk=q1)+logP(xk+1∣zk+1=qj)...}
δk+1(j)=max⎩⎪⎪⎪⎨⎪⎪⎪⎧δk(1)+logP(zk+1=qj∣zk=q1)+logP(xk+1∣zk+1=qj)δk(2)+logP(zk+1=qj∣zk=q2)+logP(xk+1∣zk+1=qj)...δk(m)+logP(zk+1=qj∣zk=qm)+logP(xk+1∣zk+1=qj)
最后可得
δk+1(j)=imax[δk+1(i)+logP(zk+1=qj∣zk=qi)+logP(xk+1∣zk+1=qj)]
待續。。。