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. JavaScript 简写技巧

    1. 声明变量 //普通写法 let x; let y = 20; //简写 let x, y = 20; 2. 给多个变量赋值 //普通写法 let a, b, c; a = 5; b = 8; c ...

  2. python工业互联网应用实战13—基于selenium的功能测试

    本章节我们再来说说测试,单元测试和功能测试.单元测试我们在数据验证章节简单提过了,本章我们进一步如何用单元测试来测试view的功能代码:同时,也涉及一下基于selenium的功能测试做法.笔者过去的项 ...

  3. 机器学习03-sklearn.LinearRegression 源码学习

    在上次的代码重写中使用了sklearn.LinearRegression 类进行了线性回归之后猜测其使用的是常用的梯度下降+反向传播算法实现,所以今天来学习它的源码实现.但是在看到源码的一瞬间突然有种 ...

  4. SpringCloud-微服务架构编码构建

    SpringCloud Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线).分布式系统的协调导致了样板模式, ...

  5. hdu4849 最短路

    题意:       让你求0到所有点最短路中对m取余最小的那个数. 思路:       简单题,直接根据题目给的公式把z求出来,然后建边,然后最短路,然后枚举每一个点对m取余记录最小,然后输出答案,然 ...

  6. 工具tip

    1 postman: chrome的插件,模拟http的get.post等各种请求 2 010: 二进制文件查看,支持很多文件格式和强大的脚本:010 Editor体验 3 BeyondCompare ...

  7. Windows 2003 Server远程代码执行漏洞集合

    目录 MS08-067 CVE-2017-7269 MS08-067 发布日期:2008/10/22 针对端口:139.445 漏洞等级:高危 漏洞影响:服务器服务中的漏洞可能允许远程执行代码 受影响 ...

  8. Windows Pe 第三章 PE头文件-EX-相关编程-2(RVA_FOA转换)

    RVA-FOA之间转换 1.首先PE头加载到内存之后是和文件头内容一样的,就算是偏移不同,一个是磁盘扇区大小(400H)另一个是内存页大小(1000H),但是因为两个都是开头位置,所以相同. 2.看下 ...

  9. Windows核心编程 第七章 线程的调度、优先级和亲缘性(下)

    7.6 运用结构环境 现在应该懂得环境结构在线程调度中所起的重要作用了.环境结构使得系统能够记住线程的状态,这样,当下次线程拥有可以运行的C P U时,它就能够找到它上次中断运行的地方. 知道这样低层 ...

  10. 预防NSA勒索病毒攻击脚本

    预防445端口勒索病毒修复脚本 直接复制下去,创建一个文件,名字随意后缀是.bat,然后双击就可以了(如果提示拒绝访问,就直接右键管理员,尤其是Win8 Win10). :+添加关键注册表以及停掉并且 ...