1.定义
隐马尔可夫模型(Hidden Markov model, HMM)是一种结构最简单的动态贝叶斯网的生成模型,它也是一种著名的有向图模型。
上述过程概率同贝叶斯网,表示如下:
$$P = P(D6) \times P(1 | D6) \times P(D8 | D6) \times P(6 | D8) \times P(D8 | D8) \times P(3 | D8)$$
隐马尔可夫模型由初始状态概率向量C,状态转移概率矩阵A和观测概率矩阵B决定,C和A决定状态序列,B决定观测序列,因此隐马尔可夫模型可以用三元符号表示为:
$$\lambda = \{ A, B,C \}$$
HMM基于以下两个假设:
- 一阶马尔可夫性假设,即假设隐藏的马尔可夫链在任意时刻t的状态只依赖于其前一时刻的状态,与其它时刻的状态及观测无关,也与时刻t无关,即:$$p(i_t|i_{t-1},o_{i-1},...,i_1,o_1) = p(i_t|i_{t-1})$$
- 观测独立性假设,即假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测及状态无关:$$p(o_t|i_T,o_T,i_{T-1},o_{T-1},...,i_{t+1},o_{t+1},i_t,o_t,...,i_1,o_1)=p(o_t|i_t)$$
2.HMM解决的三种问题
(1) 概率计算问题:给定模型$\lambda=(A,B,C)$和观测序列O=$(o_1,o_2,...,o_T)$,计算在该模型下观测序列O出现的概率$P(O|\lambda)$。
(2) 学习问题:一直观测序列$O=(o_1,o_2,...,o_T)$,估计模型$\lambda=(A,B,C)$参数,使得在该模型下观测序列概率$P(O|\lambda)$最大,即用极大似然估计的方法估计参数。
(3) 预测问题:也称为解码的问题,已知模型$\lambda=(A,B,C)$和观测序列$O=(o_1,o_2,...,o_T)$,求对给定观测序列条件概率$P(I|O)$最大的状态序列$I = (i_1,i_2,...,i_T)$,即给定观测序列,求最有可能的对应的状态序列(如序列标注问题)。
3.前向算法
前向概率(解决问题1):在给定隐马尔科夫模型$\lambda$,定义到时刻t部分观测序列为$o_1,o_2,...,o_t$且状态为$q_i$的概率为前向概率,其中N为状态个数,记为:
$$\alpha_t(i) = P(o_1,o_2,...,o_t,i_t=q_i|\lambda)$$
可以根据数据对前向概率公式进行递推,并最终得到观测序列概率$P(O|\lambda)$,对应第一种问题. 前向概率算法就是根据前向概率递推公式进行计算的,输入为隐马尔可夫模型和观测序列,输出的结果为序列概率$P(O|\lambda)$ 。计算的步骤为:
(1) 根据前向概率公式,先设定$t = 1$的初值:
$$\alpha_1(i) = c_ib_i(o_1), \quad i = 1, 2, ..., N$$
(2) 根据前向概率公式对前向概率进行递推,因此对t=1,2,...,T-1有:
$$\alpha_{t+1}(i) =[\sum_{j=1}^{N}\alpha_t(j)a_{j_i}]b_i(o_{t+1}), \quad i = 1, 2, ..., N$$
(3) 最后对所有的前向概率进行求和得到最终的结果,即为:
$$P(O|\lambda) = \sum_{i=1}^N\alpha_T(i)$$
(1) 是初始时刻的状态 $i_1 = q_1$ 和观测 $o_1$ 的联合概率。
(2)是前向概率的递推公式,计算到时刻 $t+1$ 部分观测序列为 $o_1,o_2,...,o_t,o_{t+1}$ 且在时刻 $t+1$ 处于状态 $q_i$ 的前向概率。如上图所示,既然 $\alpha_t(j)$ 是得到时刻t观测到 $o_1,o_2,...,o_t$ 并在时刻 $t$ 处于状态的 $q_j$ 前向概率,那么 $\alpha_t(j)a_{ji}$ 就是到时刻 $t$ 观测到 $o_1,o_2,...,o_t$ 并在是时刻 $t$ 处于 $q_j$ 状态而在时刻 $t+1$ 到达 $q_i$ 状态的联合概率。对于这个乘积在时刻 $t$ 的所有可能的N个状态求和,其结果就是到时刻 $t$ 观测为$o_1,o_2,...,o_t$,并在时刻 $t+1$ 处于状态 $q_i$ 的联合概率。
(3)累加计算出 $P(O|\lambda)$ 的结果。
4. 计算观察序列对应某一状态序列的概率
(解决问题3)模型$\lambda$,观察序列$O$,假设对应状态序列为$Q$,计算该状态序列存在的可能性:
(注意与$P(O|\lambda)$的区别,在计算过程汇总一般使用Viterbi算法将时间复杂度从$O(N^T)$降为$O(N^2T)$)
5. 模型参数学习
解决问题2
5.1 有监督学习——从已标注语料中学习
最大似然估计
有监督的学习较为容易,直接根据标注语料计数可直接获得。
5.2 无监督学习——Welch-Baum算法
目标:找到使得训练数据存在概率最大化的模型
基本思想:随机给出模型参数的初始化值,得到最初的模型$\lambda_0$,然后利用初始模型$\lambda_0$得到某一状态转移到另一状态的期望次数,然后利用期望次数对模型进行重新估计,由此得到模型$\lambda_1$,如此循环迭代,重新估计,直至模型参数收敛(模型最优)。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。