HMM

HMM

HMM

设隐藏状态序列,及其状态值的集合,ZZ 为离散型随机变量,有 mm 种取值
Z=z1,z2...zT,Q={q1,q2,...qm} Z=z_1,z_2...z_T, Q=\{q_1, q_2,...q_m\}
设观测序列,及其观测值的集合
X=x1,x2,...xT,V={v1,v2,...vT} X = x_1, x_2,...x_T,V=\{v_1, v_2,...v_T\}

模型表示:
θ=(A,B,π) \theta = (A,B, \pi)

  • 其中 AA 为状态转移矩阵,其维度为 (m×m)(m\times m)

A=[aij],aij=P(zt+1=qjzt=qi) A = [a_{ij}],a_{ij} = P(z_{t+1}=q_j|z_t=q_i)
aija_{ij} 表示 tt 时刻,当前隐藏状态 ztz_t 转换为下一个隐藏状态 zt+1z_{t+1} 的概率

  • BB 为 生成矩阵

B=[bj(k)],bj(k)=P(xt=vkzt=qj) B = [b_j(k)],b_j(k) = P(x_t=v_k|z_t=q_j)
bj(k)b_j(k) 表示 tt 时刻,当前观测值 xtx_t 由当前隐藏值 ztz_t 转换而来的概率

  • π\pi 表示 ZZ 的初始概率分布,即 ztz_t 取到 πm\pi _{m} 的概率,其维度为 (1×m)(1 \times m)

π=[π1,π2,π3,...,πm] \pi = [\pi _1, \pi _2, \pi _3, ..., \pi _m]

其中 π1+π2+π3+...+πm=1\pi _1+ \pi _2+ \pi _3+ ...+ \pi _m = 1

两个假设

  • 齐次马尔科夫假设

P(zt+1z1,z2,..zt,x1,x2,...xt)=P(zt+1zt) P(z_{t+1}|z_1, z_2,..z_t,x_1,x_2,...x_t) = P(z_{t+1}|z_t)

t+1t+1 时刻的隐藏状态的生成只和 tt 时刻的隐藏状态有关

  • 观测独立性假设

P(xtz1,z2,..zt,x1,x2,...xt)=P(xtzt) P(x_t|z_1, z_2,..z_t,x_1,x_2,...x_t) = P(x_t|z_t)

tt 时刻的观测状态的生成,只和 tt 时刻的隐藏状态有关

三个问题

  • Evaluation:Given λ\lambda ,求 P(Oλ)P(O|\lambda),使用 ForwardBackwardForward-Backward 算法

  • Learning:$ \lambda_{MLE} = argmax P(O|\lambda)$,EM 算法

  • Decoding:I^=argmaxP(IO,λ)\hat{I} = argmax P(I|O,\lambda)

问题 ①:已知 (π\pi, A, B),求 ZZ,viterbi 算法

已知观测状态和 θ\theta ,求使得目标概率 $ P(Z|X,\theta )$ 最大的隐藏状态序列 ZZ

目标概率表示为
P(ZX,θ)=P(z1=q1)P(z2=q2z1=q1)P(x1=v1z1=q1)×...×P(zt=qt)P(zt+1=qt+1zt=qt)P(xt=vtzt=qt) P(Z|X,\theta ) = P(z_1=q_1) \cdot P(z_2=q_2|z_1=q_1) \cdot P(x_1=v_1|z_1=q_1)\times ...\\ \times P(z_t=q_t) \cdot P(z_{t+1}=q_{t+1}|z_t=q_t) \cdot P(x_t=v_t|z_t=q_t)
需要求隐藏状态序列 $ Z$ ,使用枚举的方法,有 tt 个隐藏状态,每个隐藏状态有 mm 中取值,算法的时间复杂度为 O(mt)O(m^t) 是无法求解的

动态规划

我们可以把 Z 及其所有取值列出来,Z 取值的最优组合可以看成是从 z1z_1zkz_k 走过的分数最高的路径,并且 zkz_k 取到 qiq_i

HMM

那么δk+1(j)\delta _{k+1} (j) 可以表示成,

δk+1(j)=max{δk(1)+logP(zk+1=qjzk=q1)+logP(xk+1zk+1=qj)...} \delta _{k+1} (j) = max\Big\{\delta_k(1) + logP(z_{k+1}=q_j|z_k=q_1)+logP(x_{k+1}|z_{k+1}=q_j) ...\Big\}

δk+1(j)=max{δk(1)+logP(zk+1=qjzk=q1)+logP(xk+1zk+1=qj)δk(2)+logP(zk+1=qjzk=q2)+logP(xk+1zk+1=qj)...δk(m)+logP(zk+1=qjzk=qm)+logP(xk+1zk+1=qj) \delta _{k+1} (j) =max \begin{cases} \delta_k(1) + logP(z_{k+1}=q_j|z_k=q_1)+logP(x_{k+1}|z_{k+1}=q_j) \\ \delta_k(2) + logP(z_{k+1}=q_j|z_k=q_2)+logP(x_{k+1}|z_{k+1}=q_j) \\ ... \\ \delta_k(m) + logP(z_{k+1}=q_j|z_k=q_m)+logP(x_{k+1}|z_{k+1}=q_j) \end{cases}

最后可得
δk+1(j)=miax[δk+1(i)+logP(zk+1=qjzk=qi)+logP(xk+1zk+1=qj)] \delta _{k+1} (j) = \underset{i}max \Big[ \delta _{k+1} (i)+logP(z_{k+1}=q_j|z_k=q_i)+logP(x_{k+1}|z_{k+1}=q_j)\Big ]

待續。。。