1、参考资料:

博客园 - 刘建平随笔:https://www.cnblogs.com/pinard/p/6945257.html

哔站up主 - 白手起家的百万富翁:https://www.bilibili.com/video/BV1DK411W7jJ?from=search&seid=2670213518419567446

哔站up主 - asia1987:https://www.bilibili.com/video/BV13C4y1W7iB/?spm_id_from=trigger_reload

2、马尔可夫模型(MM)

如下图例子1:先玩-->再吃-->再睡,就是一条马尔科夫链,是可观测到的,我们可以直接求解这条马尔科夫链的概率

如下图例子2:天气情况是可观测的,已知晴天、多云、雨天之间的转换概率,如果今天是晴天,就可以推断出明天各种天气的概率,同样后天的天气可以由明天的天气进行计算。

 3、隐马尔可夫模型(HMM)

如下图例子2变形:天气情况是不可观测的(即隐藏状态),但我们发现水藻的干燥与否和天气有关,而水藻又是可观测的,我们可以通过水藻来推测这三天的天气情况。

从上面的例子我们不难看出:隐马尔可夫模型是根据我们可见的东西(水藻)去推测我们真正想要的东西(天气)。

4、HMM五元组、三要素

  • 观测序列-O (水藻状态,可观测)               (序列长度:任意)
  • (隐藏)状态序列-I (天气状态,不可观测)     (序列长度:任意,目前看下来其长度同观测序列)
  • 初始状态概率向量-Π                              (向量大小:(1*N)T)
  • 状态转移概率矩阵-A                              (矩阵大小:状态N*状态N)
  • 观测状态概率矩阵-B (也叫发射矩阵B)        (矩阵大小:状态N*观测M)

其中后三项为HMM的三要素:λ=(Π,A,B)

 5、HMM两个基本假设

  • 齐次马尔可夫性假设(一阶马尔可夫假设):当前时刻隐藏状态,只依赖于一时刻隐藏状态,与其它时刻状态和观测值都是无关的。
  • 观测独立性假设(隐藏状态假设):当前时刻观测值,只依赖于当前时刻隐藏状态,与其它时刻状态和观测值都是无关的。

PS:还有一种说法,多了一个转换函数稳定性假设。

6、应用HMM来求解的三个基本问题

  • 概率计算:给定模型λ=(π,A,B)和观测序列O,求观测序列O出现的概率。           (前向-后向算法)
  • 解码问题:给定模型λ=(π,A,B)和观测序列O,求概率最大的隐藏状态序列I。      (viterbi算法)
  • 学习问题:给定观测序列O,求观测序列O概率最大时模型λ=(π,A,B)的参数。   (极大似然估计算法)

7、实例一

有三个骰子(D4四面体,D6六面体,D8八面体),每个面都写有一个数字(如下图),进行有放回的抽样。

由上可知:观测值是骰子上的数字,有8种,即M=8;隐藏状态是几面体骰子,有3种,即N=3;

按照HMM五元组:

  • 在完成一轮有放回抽样,我们可以得到一个观测序列O如下
  • 隐藏状态序列 I 未知,待求
  • 初始状态概率向量π如下,一般平均初始化
  • 状态转移概率矩阵A如下,一般经验、统计得到
  • 观测概率分布矩阵B如下,一般经验或按照实际情况计算得到

8、实例二

股市有三种隐藏状态(牛市、熊市、横盘),有三种观测状态(上涨、下跌、不变),HMM五元组如下图。

从马尔可夫模型(Markov Model)到隐马尔可夫模型(Hidden Markov Model)的更多相关文章

  1. NLP —— 图模型(一)隐马尔可夫模型(Hidden Markov model,HMM)

    本文简单整理了以下内容: (一)贝叶斯网(Bayesian networks,有向图模型)简单回顾 (二)隐马尔可夫模型(Hidden Markov model,HMM) 写着写着还是写成了很规整的样 ...

  2. 无法将类型“System.Collections.Generic.IEnumerable<EmailSystem.Model.TemplateInfo>”隐式转换为“System.Collections.Generic.List<EmailSystem.Model.TemplateInf

    List<Model.Template> templateList = templateBLL.RecommendTemplateByOrder(modelEbay); List<M ...

  3. 隐马尔科夫模型 HMM(Hidden Markov Model)

    本科阶段学了三四遍的HMM,机器学习课,自然语言处理课,中文信息处理课:如今学研究生的自然语言处理,又碰见了这个老熟人: 虽多次碰到,但总觉得一知半解,对其了解不够全面,借着这次的机会,我想要直接搞定 ...

  4. 隐马尔科夫模型(hidden Markov Model)

    万事开头难啊,刚开头确实不知道该怎么写才能比较有水平,这篇博客可能会比较长,隐马尔科夫模型将会从以下几个方面进行叙述:1 隐马尔科夫模型的概率计算法  2 隐马尔科夫模型的学习算法 3 隐马尔科夫模型 ...

  5. 转:隐马尔可夫模型(HMM)攻略

    隐马尔可夫模型 (Hidden Markov Model,HMM) 最初由 L. E. Baum 和其它一些学者发表在一系列的统计学论文中,随后在语言识别,自然语言处理以及生物信息等领域体现了很大的价 ...

  6. 隐马尔可夫模型(HMM)

    转自:http://blog.csdn.net/likelet/article/details/7056068 隐马尔可夫模型 (Hidden Markov Model,HMM) 最初由 L. E. ...

  7. 隐马尔可夫模型(HMM)攻略

    隐马尔可夫模型 (Hidden Markov Model,HMM) 最初由 L. E. Baum 和其它一些学者发表在一系列的统计学论文中,随后在语言识别,自然语言处理以及生物信息等领域体现了很大的价 ...

  8. 隐马尔可夫模型(HMM)

    隐马尔可夫模型 (Hidden Markov Model,HMM) 最初由 L. E. Baum 和其它一些学者发表在一系列的统计学论文中,随后在语言识别,自然语言处理以及生物信息等领域体现了很大的价 ...

  9. HMM:隐马尔可夫模型HMM

    http://blog.csdn.net/pipisorry/article/details/50722178 隐马尔可夫模型 隐马尔可夫模型(Hidden Markov Model,HMM)是统计模 ...

随机推荐

  1. Java基础练习——读心术(扑克牌魔术——21张扑克牌)

    Java基础练习--读心术(扑克牌魔术--21张扑克牌) 用到了Scanner,for循环,if-else语句,集合,线程的Thread.sleep()方法 话不多说,直接上代码!

  2. matlab帮助文档

    matlab的纯文本帮助命令有多种,help.lookfor.which.doc.get.type等 help命令  help命令用来查询一个函数的使用方式. help fun %fun是函数名称   ...

  3. odoo字段属性列举

    罗列一些Odoo中的字段属性,基本包含大部分的属性. 常用字段属性 平平无奇常用字段属性 string:字段的标题,在UI视图标签中使用.它是可选项,如未设置,会通过首字母大写及将空格替换成为下划线来 ...

  4. 一文抽丝剥茧带你掌握复杂Gremlin查询的调试方法

    摘要:Gremlin是图数据库查询使用最普遍的基础查询语言.Gremlin的图灵完备性,使其能够编写非常复杂的查询语句.对于复杂的问题,我们该如何编写一个复杂的查询?以及我们该如何理解已有的复杂查询? ...

  5. hdu2594 简单KMP

    题意:      给你两个串,问你s1的前缀和s2的后缀最长公共部分是多少. 思路:      根据KMP的匹配形式,我们求出s1的next,然后用s1去匹配s2,输出当匹配到s2的最后一个的时候的匹 ...

  6. 逆向 stdio.h 函数库 fseek 函数(调试版本)

    0x01 fseek 函数 函数原型:int fseek(FILE *stream, long int offset, int whence) 函数功能:设置流 stream 的文件位置为给定的偏移 ...

  7. C#-几个STL相关

    C#结构体排序 1................................................. 声明 struct data { public string A; public ...

  8. Win64 驱动内核编程-16.WFP网络监控驱动(防火墙)

    WFP驱动监控网络 WFP 是微软推出来替代 TDI HOOK.NDIS HOOK 等拦截网络通信的方案,WFP 的框架非常庞大,在 RING3 和 RING0 各有一套类似的函数,令人兴奋的是,即使 ...

  9. vue的快速入门【IDEA版本】

    和vscode相比,使用IDEA进行前端开发并没有那么容易,需要先进行配置 . 安装vue插件,重启idea 鼠标右键添加vue component 点击 file 打开设置 settings,展开 ...

  10. Redis中几种数据类型的基本操作指令

    Redis基本指令 单线程+多路IO复用技术 1. Key 指令 作用 keys * 查看当前库所有键 exists <key> 判断此键是否存在 type <key> 查看键 ...