张芷铭的个人博客

隐马尔可夫模型(HMM)是离散状态空间模型,参数为 $(\pi,A,B)$。解决评估、学习和译码三个问题。

动态模型分类

模型状态变量特点
HMM离散
Kalman 滤波连续、线性
粒子滤波连续、非线性

HMM 假设

齐次 Markov 假设: $$p(i_{t+1}|i_t,\cdots,i_1)=p(i_{t+1}|i_t)$$

观测独立假设: $$p(o_t|i_t,\cdots,i_1)=p(o_t|i_t)$$

三个问题

问题目标算法
评估$p(O|\lambda)$前向后向
学习$\mathop{argmax}_\lambda p(O|\lambda)$EM (Baum-Welch)
译码$\mathop{argmax}_I p(I|O,\lambda)$Viterbi

前向算法

$$\alpha_t(i)=p(o_1,\cdots,o_t,i_t=q_i|\lambda)$$

递推:

$$\alpha_{t+1}(j)=\sum_{i=1}^Nb_j(o_{t+1})a_{ij}\alpha_t(i)$$

$$p(O|\lambda)=\sum_{i=1}^N\alpha_T(i)$$

后向算法

$$\beta_t(i)=p(o_{t+1},\cdots,o_T|i_t=q_i)$$

递推:

$$\beta_t(i)=\sum_{j=1}^Nb_j(o_{t+1})a_{ij}\beta_{t+1}(j)$$

Viterbi 算法

$$\delta_{t+1}(j)=\max_{1\le i\le N}\delta_t(i)a_{ij}b_j(o_{t+1})$$

$$\psi_{t+1}(j)=\mathop{argmax}{1\le i\le N}\delta_t(i)a{ij}$$

推断任务

任务公式
滤波$p(z_t|x_{1:t})=C\alpha_t(z_t)$
平滑$p(z_t|x_{1:T})=C\alpha_t(z_t)\beta_t(z_t)$
预测$p(z_{t+1}|x_{1:t})=\sum_{z_t}p(z_{t+1}|z_t)p(z_t|x_{1:t})$

Comments