隐马尔可夫模型详细推导
隐马尔可夫模型简介
1.隐马尔可夫模型简介
模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。
隐马尔可夫模型是由初始概率分布,状态转移概率分布以及观测概率分布确定。
设Q是所有可能状态的集合,V是所有可能的观测的集合
I是长度为T的状态序列,O是对应的观测序列。
B是观测概率矩阵:
π是初始状态概率向量,
隐马尔可夫模型是由状态转移概率矩阵A,观测矩阵B,初始状态概率向量π决定,也称为隐马尔可夫模型三要素。
注意:隐马尔可夫模型做了两个基本假设:
(1)齐次马尔可夫性假设:假设隐藏的马尔可夫链在任意时刻的状态只依赖于前一时刻的状态,与其他时刻状态和观测无关。
观测独立性假设,假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测及状态无关。
隐马尔可夫模型举例
2.隐马尔可夫模型举例
参考李航老师书中盒子和球模型
隐马尔可夫三个基本问题及推导
3.隐马尔可夫三个基本问题推导
1)概率计算问题:给定模型λ和观测序列O,计算在模型λ下观测序列O出现的概率P(O|λ)
2)学习问题:给定观测序列,估计模型参数λ,使得观测序列O出现的概率最大P(O|λ)。
3)预测问题:给定观测序列和模型,找出给定观测序列下条件概率P(I|O)最大的状态序列
(1)概率计算问题:
前向算法和后向算法。
提一点:隐马尔可夫模型属于生成式模型,通过对联合概率分布P(O,I|λ)进行建模,最终学习到使P(O|λ)最大的模型参数。
给定隐马模型λ,定义到t时刻部分观测序列为o1,o2,…ot,且状态为qi的概率为前向概率,即:
则:
后向算法:
后向概率:
给定隐马尔可夫模型λ,定义在t时刻状态为qi的条件下,从t+1到T的部分观测序列为ot+1,ot+2,…oT的概率为后向概率。
则:
首先规定
则
按照前向概率和后向概率的定义
(2)学习问题:
隐马尔可夫模型的学习根据训练数据是包括观测序列和对应的状态序列还是只有观测序列,可以分别由监督学习和无监督学习来实现。
监督学习方法:
假设给定训练数据包含S个长度相同的观测序列和对应的状态序列{(O1,I1),(O2,I2),…,(Os,Is)},
采用极大似然估计得到模型参数πi,aij,bj(k)
对这里的极大似然估计做下补充推导:
无监督学习方法:
Baum-Welch算法
假设给定训练数据只有S个长度为T的观测序列{O1,O2,…,Os},而没有状态序列,要学习模型参数。将状态序列当作隐变量来处理。采用EM算法。
联合概率分布为P(O,I|λ)
由
则
分别对以上三项进行极大化
(3)预测问题:
采用viterbi算法
维特比算法采用动态规划求解隐马模型预测问题,通过动态规划求概率最大路径。这时一条路径对应一个状态序列
首先找出最优子结构:
定义两个变量
定义在时刻t状态为i的所有单个路径(i1,i2,…it)的概率最大值
隐马尔可夫模型应用领域
4.隐马尔可夫模型应用
词性标注,命名实体识别,分词
以分词为例:
隐马尔可夫模型通过将字在字串中进行序列标注来实现分词任务的,即:每个字在构造一个特定的词语时都占据着一个确定的构词位置(即词位),比如规定每个字最多只有四个构词位置:B(词首),M(词中),E(词尾),S(单独成词),那么比如如下句子的分词结果就可以这样表示:
北京/欢迎/你
北/B京/E/欢/B迎/E/你/S
分词属于第三个问题:预测问题
给定观测序列的条件下,求使得P(I|O)最大的状态序列。
由
故
预测问题采用viterbi算法
参考文献
[1].李航.《统计学习方法》