HMM隐马尔可夫模型学习总结

  1. 介绍

  1. HMM在实际应用中主要用来解决3类问题。

1.评估问题(概率计算问题)

即给定观测序列 O=O1O2…Ot和模型参数λ=(A,B,π),怎样有效计算这一观测序列出现的概率P(O|λ)

2.预测问题 (也称解码问题)

即给定观测序列 O=O1O2…Ot和模型参数λ=(A,B,π),怎样寻找满足这种观察序列意义上最优的隐含状态序列S

3.学习问题。

HMM的模型参数λ=(A,B,π)未知,如何求出这3个参数以使观测序列O=O1O2…Ot的概率尽可能的大,可以使用极大似然估计参数(EM算法)

4.个人理解

通过Baum-Welch训练HMM模型,然后输入需要判断的数据通过前向后向算法计算确定属于哪个模型,最后通过viterbi解码隐含状态序列 

  1. 前向算法

  • 问题:给定观察值序列O=o1,…,oT以及一个模型λ=(π,A,B ) 时产生出O的概率P(O|λ)

  • 前向向量定义:at(i) = P(o1 o2 …ot,qt=i|λ)

  • 前向算法过程如下:

1)初始化:a1(i) = πibi(O1), 1≤i≤N

2)递推:

,1≤j≤N,1≤t≤T-1

t+1时刻状态j的概率值为t时刻每一个状态的概率值与其对应转移函数相乘的累积和再与观察值概率相乘

3)终止:

其中:


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 

  • 下面解释这个算法:

该图为初始状态,输出观察值为O1 ,图中显示3个状态对应算法初始化公式,而该序列观察值所得概率为:

     P(O1|= π1b1(O1)+π2b2(O1)+π3b3(O1)=α1(1)+α1(2)+α1(3)

该图为一次递推过程,输出观察值为O1 O2,图中O2对应的状态1的概率是通过O1对应的3个状态通过递推公式求得,该结果为:

P(O1 O2,q21|= α1(1)a11b1(O2)+ α1(2)a21b1(O2)+ α1(3)a31b1(O3)

以此类推可以得到P(o1 o2 …ot|λ)

  • 前向算法计算P(O|M)过程:

step1 α1(1) =π1b1(red)=0.2*0.5=0.1

α1(2)=π2b2(red)==0.4*0.4=0.16

α1(3)=π3b3(red)==0.4*0.7=0.21

step2α2(1)=α1(1)a11b1(white)+α1(2)a21b1(white)+α1(3)a31b1(white)

...

step3:P(O|M) = α4(1)+α4(2)+α4(3)

前向算法实现代码参考此链接:

http://blog.csdn.net/u011930705/article/details/77372820 

  1. 后向算法

  • 后向向量定义:βt(i) = P(ot+1 ot+2 …ot+T |qt=i,λ)

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜欢编程的网管

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值