隐马尔科夫模型HMM
2017-04-01 14:40
288 查看
本文主要参考李航老师的《统计学习方法》,推导严谨,书中有例子可以帮助理解,本文只给出了HMM的一些关键公式,推导过程并未提及,若读者有兴趣,可以寻得老师的书一看,若本文写的有不妥之处,欢迎指正。
隐马尔科夫模型的定义:隐马尔科夫模型是关于时序的概率模型,描述由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。隐藏的马尔科夫链随机生成的状态的序列,成为状态序列(state sequence);每个状态生成一个观测,而由此产生的观测的随机序列,成为观测序列(observation
sequence)。序列的每一个位置又可以看做是一个时刻。
隐马尔科夫模型介绍:
设所有可能的状态的集合为Q,所有可能的观测的集合为V,记作Q={q1,q2,...,qN},V={v1,v2,...,vM},其中N表示可能的状态数,M表示可能的观测数。将长度为T的状态序列记为I,对应的观测序列记为O,则I ={i1,i2,...,iT},O={o1,o2,...,oT}
初始概率分布π、状态转移概率分布A和观测概率分布B三个参数决定一个隐马尔科夫模型。
其中:
表示在时刻t=1处于状态qi的概率
表示在时刻t处于状态qi的条件下在时刻t+1转移到状态qj的概率
表示在时刻t处于状态qj的条件下生成观测vk的概率
图1:隐马尔科夫模型示意图
HMM作了两个基本假设:
1、其次马尔科夫模型:即隐藏的马尔科夫链在任意时刻t的状态与其他时刻的状态及观测是无关的,也与时刻t无关,仅依赖与前一时刻的状态
2、观测独立性假设,即任意时刻的观测与其他观测即状态无关,只依赖与该时刻的隐马尔科夫链的状态
HMM训练-模型学习:
1、观测序列概率的前向算法
前向概率:给定HMM的λ,定义时刻t部分观测序列为o1,o2,...,ot,且状态为qi的概率成为前向概率
输入:隐马尔科夫模型λ ,观测序列o;
输出:观测序列P(O|λ )
注意:模型学习时A、B、π为随机生成的初值,HMM对初值敏感,为前向概率
2、观测序列概率的后向算法
后向概率:给定HMM的λ ,定义时刻t部分状态为qi的条件下,从t+1到T的部分观测序列为Ot+1,Ot+2,...,OT的概率为后向概率,记作:
输入:隐马尔科夫模型λ ,观测序列O
输出:观测序列概率P(O|λ )
注意:模型学习时,A、B、π为随机生成的初值,HMM对初值敏感,为后向概率
3、利用前向概率和后向概率,可以得到关于单个状态和两个状态概率的计算公式
(1)给定模型λ 和观测O,在时刻t处于qi的概率,记作:
可以通过前向后向概率计算:
由前向概率和后向概率定义可知
于是
(2)给定模型λ 和观测O,在时刻t处于qi且在时刻t+1处于状态qj的概率,记作:
可以通过前向后向概率计算:
而
所以
(3)将
和
对时刻t求和,可以得到一些有用的期望值:
a)在观测O下状态i出现的期望值:
b)在观测O下由状态i转移的期望值:
c)在观测O下由状态i转移到状态j的期望值
HMM训练-模型学习
Baum-Welch算法:
输入:观测序列O=(o1,o2,...,ot);
输出:隐马尔科夫模型参数
相关文章推荐
- 隐马尔科夫模型HMM自学(1)
- 隐马尔科夫模型(HMM)及其扩展
- 隐马尔科夫模型(HMM)及其扩展
- 简单而又神奇的隐马尔科夫模型(HMM)
- 隐马尔科夫模型(HMM)及其扩展
- HMM隐马尔科夫模型
- HMM(隐马尔科夫模型)学习一
- 隐马尔科夫模型HMM学习最佳范例
- 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数
- 隐马尔科夫模型HMM自学 (2)
- 自然语言处理1-马尔科夫链和隐马尔科夫模型(HMM)
- HMM 隐马尔科夫模型
- 隐马尔科夫模型HMM
- 隐马尔科夫模型(HMM)详解
- HMM隐马尔科夫模型
- HMM(隐马尔科夫模型)学习二
- 隐马尔科夫模型HMM
- 隐马尔科夫模型HMM
- 隐马尔科夫模型HMM自学 (3)
- 自然语言处理2-隐马尔科夫模型(HMM)-forward algorithm(前向算法)和Viterbi(维特比算法)