隐马尔可夫模型原理部分可以概括为三句话:一个定义、两个假设、三个问题
HMM是一个五元组(Y,X,π,A,B),其中Y是状态(输出)的集合,X是观察值(输入)集合,π是初始状态的概率,A是状态转移概率矩阵,B是输出观察值概率矩阵。
1.定义
隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态的序列,再由各个状态随机生成一个观测而产生观测的序列的过程。
隐马尔可夫模型是一个生成模型,表示状态序列和观测序列的联合分布,但是状态序列是隐藏的,不可观测的。
隐马尔可夫模型可以用于标注,这时状态对应着标记。标注问题是给定观测序列预测其对应的标记序列。
隐马尔可夫模型由初始状态概率向量π、状态转移概率矩阵A和观测概率矩阵B决定。
下面是一个例子,帮助理解隐马尔可夫模型的一些概念。
2.基本假设
定义I是长度为T的状态序列,O是对应的观测序列,如下所示:
(1)齐次马尔可夫性假设,即假设隐藏的马尔可夫链在任意时刻t的状态只依赖于前一时刻的转态,与其他时刻的状态及观测无关,也与时刻t无关。
(2)观测独立性假设,即假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测与状态无关。
3.基本问题
隐马尔可夫模型有3个基本问题:
(1)概率计算问题。给定模型=(A,B,π)和观测序列,计算在模型下观测序列O出现的概率P(O|)。
(2)学习问题。已知观测序列,估计模型 = (A,B,π)参数,使得在模型下观测序列概率P(O|)最大,即用极大似然估计的方法估计参数。
(3)预测问题,也是解码(decoding)问题。已知模型=(A,B,π)和观测序列,求给定观测序列条件概率P(I|O)最大的状态序列。即给定观测序列,求最可能的对应的状态序列。
下面对这三个基本问题进行详细地介绍:
4.概率计算问题
(1)前向算法
(2)后向算法
5.学习算法
非监督学习算法:Baum-Welch(也就是EM算法)
Baum-Welch算法
其中:
6.预测算法
维特比(Viterbi)算法实际使用动态规划解隐马尔科夫模型预测问题,即用动态规划求概率最大路径(最优路径)。这时一条路径对应着一个状态序列。
隐马尔可夫模型有诸多的实际应用,比如PageRank、词性标注、命名实体识别等,刚兴趣的读者可以自行阅读相关论文。
参考文献
(1)《统计学习方法》