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. matlab数值类型

    matlab数值类型 数值类型的分类 整数类型    整数类型有8种.上面的数字为其内存大小,如:int8,整数所占内存大小为8个字节.除了int64 和 uint64不能进行数值运算之外都可以. 类 ...

  2. 序列化 pickle模块

    1. pickle 简介 2. pickle 核心函数 3. pickle 高级 -- 复杂对象 1. 持久化与 pickle 简介 1.1 什么是持久化? 持久化的基本思想很简单.假定有一个 Pyt ...

  3. python 函数基本内容

    1.什么是函数? 函数就是盛放代码的容器,把实现某一功能的一组代码丢到一个函数中就做成了一个小工具具备某一功能的工具->函数事先准备工具的过程->函数的定义遇到应用场景拿来就用->函 ...

  4. 趁五一撸个纯Flutter版的心情日记App

    前言 最近真的是太忙了,只能趁着五一期间把之前Android版的心情日记App移植到Flutter平台,并且已经上架华为应用市场以及苹果App Store. 整体框架沿用了两个星期,用Flutter撸 ...

  5. 04- cookie与缓存技术

    什么是cookie 定义:Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术.Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一 ...

  6. windows黑窗口命令笔记

    windows有个黑窗口,吃惊吧!意外吧!! 哈哈,我是真的有些吃惊的!! nslookup ipconfig /all ipconfig /flushdns windows 声音修复 windows ...

  7. hdu1337 水题

    题意:       给你n个格子,每个格子初始状态都是1,然后这样变化1 2 3...n,2 4 6 ... n, 3 6 9 ....n ,...n;如果是1变成0,如果是0变成1,问经过n次变换之 ...

  8. Python脚本爬取网站美女照片

    上次无意之中看到一个网站,里面全是美女的照片,我就心想,哪天有时间了得把这网站的所有美女照片都得爬下来.今天有时间,写了点代码,爬去了网站的所有照片.附上战果!图片实在是太多了,爬半个多小时 先附上所 ...

  9. UVA11384正整数序列(把123..变成0的最小步数)

    题意:      给定一个正整数n,你的任务是最少的操作次数把序列1 2 3 4 5...n中所有的数字都变成0,每次操作可以从序列中选择一个活多个整数,同时减去一个相同的正整数,比如 1 2 3可以 ...

  10. Windows PE导出表编程2(重组导出表函数地址)

    本次要做的尝试是通过修改导出表的函数地址,实现程序功能的更改,实现这个最大的限制就是堆栈平衡问题. 先写一个DLL和EXE为了测试. DLL代码如下: 这样的话有两个导出函数(我们假设是一个密码验证之 ...