隐马尔可夫模型-概率计算算法

上一篇博客简单介绍了隐马尔科夫模型算法的基本思想,但是没有介绍计算如何区计算它的状态转移概率矩阵,观测概率矩阵和初始状态概率向量如何计算,这节我们就来谈谈。
给出之前讲过的所有状态的集合Q,和所有可能的观测的集合V,状态序列I,和观测序列O的符号表示:


对于状态转移矩阵A和观测概率矩阵B,和初始状态概率向量C有


所以对于我们的问题来说,当我们得到A,B,C后,如果我们需要得到一个T的观测序列,则需要以下步骤:

  1. 首先需要又C来产生一个初始状态i(t),t=1
  2. 然后通过B得到当前状态对应的观测记过o(t)
  3. 然后,通过A得到下一个时间的状态i(t+1)
  4. 返回第二步,不断重复,直到t=T

隐马尔科夫模型有三个基本问题,也是我们在应用中最常用到的
(1)概率计算问题:给定已知的模型参数Z=(A,B,C),和观测序列O,求在模型Z条件下观测序列O出现的概率P(O|Z)
(2)学习问题,这个应该是我们碰到最多的,已知观测序列O,求模型Z=(A,B,C)使P(O|Z)最大。
(3)预测问题,也称解码问题,已知模型Z和观测序列O求给定观测序列对应最大概率的状态序列,即求最大的P(I|O)

对于第一问,我们可以采用直接计算法
直接计算法:给定模型Z和长度为T观测序列O,计算观测序列O出现的概率P(O|Z),可以求出所有可能的长度为T的状态序列I,求他们的P(O|I,Z),然后求和。
直接计算法的思路就是,整个过程是未知的,我们不知道在模型Z的限制下是哪个I产生了O,每个可能的I都是有可能产生O的,所以我们就求所有可能与O对应的I的联合概率之和。
数学公式表达如下:


我觉得上面这个计算公式明显计算量太大,是O(TN^T)阶的,如果我们的序列长度为十,序列状态集合N=20,那么我们的计算量将达到就能达到万亿的计算量。

这里在介绍一个前向算法,求解给定Z,O下的P(O|Z)

前向算法的思路就是,对于观测序列的第一个结果o(1),我们知道,他可能由所有可能的状态生成,即N个,那么我们现在如果要求在o(1)的基础上o(2)发生的概率那么不就是N可能生成o(1)的状态概率之和在生成N可能生成o(2)的状态概率之和。不断递归下去,就可以求解o(T)。

隐马尔可夫模型-概率计算算法相关推荐

  1. 隐马尔科夫模型-前向算法

    转载自  隐马尔科夫模型-前向算法 隐马尔科夫模型-前向算法 在该篇文章中讲了隐马尔科夫模型(HMM)一基本模型与三个基本问题 隐马尔科夫模型-基本模型与三个基本问题,这篇文章总结一下隐马尔科夫链(H ...

  2. 隐马尔可夫模型之Baum-Welch算法详解

    隐马尔可夫模型之Baum-Welch算法详解 前言 在上篇博文中,我们学习了隐马尔可夫模型的概率计算问题和预测问题,但正当要准备理解学习问题时,发现学习问题中需要EM算法的相关知识,因此,上一周转而学 ...

  3. 隐马尔科夫模型之Baum-Wech算法

    隐马尔科夫模型之Baum-Wech算法 https://blog.csdn.net/u014688145/article/details/53046765 Baum-Wech算法之EM算法 https ...

  4. 隐马尔科夫模型C#语言算法实现

    开发工具: Visual Studio v2010 .NET Framework 4 Client Profile 版本历史: V1.1 2011年06月09日 修正UMDHMM在Baum-Welch ...

  5. 隐马尔科夫模型c#语言算法实现,HMM学习最佳范例四:隐马尔科夫模型

    四.隐马尔科夫模型(Hidden Markov Models) 1.定义(Definition of a hidden Markov model) 一个隐马尔科夫模型是一个三元组(pi, A, B). ...

  6. 隐马尔科夫模型及Viterbi算法的应用

    作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4335810.html 一个例子: 韦小宝使用骰子进行游戏,他有两种骰子一种正常的骰子,还有一 ...

  7. 隐马尔可夫模型维特比算法与前向算法区别

    个人总结,与大家分享,若有疑问,欢迎提出

  8. 隐马尔可夫模型-三个盒子颜色序列概率计算问题

    HMM案例 假设有3个盒子,每个盒子里都装有红.白两种颜色的球.按照下面的方法抽球,产生一个球的颜色的观测序列:开始,以概率T随机选取1个盒子,从这个盒子里以概率B随机抽出1个球,记录其颜色后,放回; ...

  9. 机器学习知识点(二十四)隐马尔可夫模型HMM维特比Viterbi算法Java实现

    1.隐马尔可夫模型HMM    学习算法,看中文不如看英文,中文喜欢描述的很高深.    http://www.comp.leeds.ac.uk/roger/HiddenMarkovModels/ht ...

最新文章

  1. UVALive2678:Subsequence
  2. ecshop订单-》待付款,待发货,待收货,收货确认
  3. ASP.NET MVC随想录——漫谈OWIN
  4. 3/5 MySQL入门总结:数据库(DATABASE)操作
  5. mysql牵引例子_MySQL学习06(事务和索引)
  6. GO国内镜像加速模块下载
  7. 数据可视化及数据保存
  8. Chrome 开发工具 (Chrome Developer Tools):Network Panel说明
  9. 「干货」不逼自己一下不知道自己多牛逼[python篇]
  10. Ubuntu Linux服务器安装Hadoop并配置伪分布式
  11. MFC 消息映射表和虚函数实现消息映射到底谁的效率高
  12. Python读写Excel简单案例及调试说明文档
  13. JAVA多用户商城系统源码
  14. macOS 10.10 u盘安装win7
  15. matlab抠图数据,MATLAB抠图
  16. 怎么把html的网页做成视频,html5网页中怎么加入视频?怎么为网页添加视频?
  17. win10 查看计算机名称与用户名称
  18. RecyclerView添加头部
  19. 女程序员,作程序员还是作女人?
  20. 52ypay comsubmit php,Hack易支付平台 - 一站式免签约支付方案-Hack易支付

热门文章

  1. 台式电脑鼠标怎么选?
  2. tomcat日志分析工具awstats配置
  3. 大数据技术概述与入门
  4. mysql 1433端口映射_内网渗透-1433端口渗透过程
  5. windows server 2016搭建WDS和WSUS服务
  6. 自制Console线(已测试CISCO3560可用)
  7. py几局代码能写出九九乘法表_Python 九九乘法表
  8. 趣评行业 | 第十期:区块链大事件,看这一篇就够了!
  9. 如何保持旺盛的精力 张锡纯的“元气诠” 关于静坐 修行的方法
  10. 编辑线上NG,使用ipconfig /flushdns 清除系统DNS缓存