【开始之前】由于隐马尔可夫模型属于机器学习中比较难也比较重要的知识,所以此算法笔者将分段讲解,本文主要讲的是隐马尔可夫模型的定义以及相关例子,在后续的文章中会讲到概率计算方法如前向算法、后向算法、学习算法如Baum-Welch算法、预测算法如维特比算法,敬请期待!

目录

一、隐马尔可夫模型的定义
二、隐马尔可夫模型的例子
1、盒子和球模型
2、三骰子模型

一、隐马尔可夫模型的定义

隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列再由各个状态生成一个观测而产生观测随机序列的过程。隐藏的马尔科夫链随机生成的状态序列,成为状态序列(state sequence);每个状态生成一个观测,而由此产生的观测的随机序列,成为观测序列(observation sequence)。序列的每一个位置又可以看作是一个时刻。隐马尔可夫模型由初始概率分布、状态转移概率分布以及观测概率分布确定。
隐马尔可夫模型的形式定义如下:
设Q是所有可能的隐藏状态的集合,V是所有可能的观测状态的集合:

其中,N是可能的隐藏状态数,M是所有的可能的观察状态数。
I是长度为T的状态序列, O是对应的观察序列:

A是状态转移概率矩阵

其中:

是在时刻 t 处于状态qiq_iqi​ 的条件下在时刻 t+1 转移到状态qjq_jqj​的概率。

B是观测概率矩阵:

其中,

是在时刻 t 处于状态qiq_iqi​条件下生成观测vkv_kvk​的概率。

π是初始状态概率向量:
其中,

是时刻 t=1处于状态qiq_iqi​的概率。
隐马尔可夫模型模型,由隐藏状态初始概率分布π, 状态转移概率矩阵A和观测状态概率矩阵B决定。\pi和A决定状态序列,B决定观测序列。因此,隐马尔可夫模型 λ\lambdaλ 可以用三元符号表示,即

二、隐马尔可夫模型的例子

1、盒子和球模型

假设有4个盒子,每个盒子都装有红、白两种颜色的球,盒子里的红、白球数由下表给出。

按照下面的方法抽球,产生一个球的颜色的观测序列:
(1)开始,从4个盒子里以等概率随机选取1个盒子,从这个盒子里随机抽取一个球,记录其颜色后,放回;
(2)然后,从当前盒子转移到下一个盒子,规则是:如果当前盒子是盒子1,那么下一个盒子一定是盒子2;如果当前盒子是盒子2或3,那么分别以概率0.4和0.6转移到左边或右边的盒子;如果当前是盒子4,那么各以0.5的概率停留在盒子4或转移到盒子3;
(3)确定转移的盒子后,再从这个盒子里随机抽出1个球,记录其颜色,放回:
(4)如此下去,重复进行5次,得到一个球的颜色的观测序列: O = (红,红,白,白,红)

在这个过程中,观察者只能观测到球的颜色的序列,观测不到球是从哪一个盒子取出的,即观察不到盒子的序列。
在这个例子中有两个随机序列,一个是盒子的序列(状态序列),一个是球的颜色的观测序列(观测序列)。前者是隐藏的,只有后者是可观测的。这是一个隐马尔可夫模型的例子。根据所给条件,可以明确状态集合、观测集合、序列长度以及模型的三要素。

盒子对应状态,状态的集合是: Q = {盒子1,盒子2,盒子3,盒子4 } , N = 4

球的颜色对应观测。观测的集合是: V = {红 , 白} ,M = 2

状态序列和观测序列长度T = 5.

初始概率分布为

状态转移概率分布为

观测概率分布为

2、三骰子模型

假设我手里有三个不同的骰子,第一个骰子是我们平常见的骰子(称这个骰子为D6),6个面,每个面(1,2,3,4,5,6)出现的概率是1/6。第二个骰子是个四面体(称这个骰子为D4),每个面(1,2,3,4)出现的概率是1/4。第三个骰子有八个面(称这个骰子为D8),每个面(1,2,3,4,5,6,7,8)出现的概率是1/8。

假设我们开始掷骰子,我们先从三个骰子里挑一个,挑到每一个骰子的概率都是1/3。然后我们掷骰子,得到一个数字,1,2,3,4,5,6,7,8中的一个。不停的重复上述过程,我们会得到一串数字,每个数字都是1,2,3,4,5,6,7,8中的一个。例如我们可能得到这么一串数字(掷骰子10次):1 6 3 5 2 7 3 5 2 4

这串数字叫做可见状态链。但是在隐马尔可夫模型中,我们不仅仅有这么一串可见状态链,还有一串隐含状态链。在这个例子里,这串隐含状态链就是你用的骰子的序列。比如,隐含状态链有可能是:D6 D8 D8 D6 D4 D8 D6 D6 D4 D8

一般来说,HMM中说到的马尔可夫链其实是指隐含状态链,因为隐含状态(骰子)之间存在转换概率(transition probability)。在我们这个例子里,D6的下一个状态是D4,D6,D8的概率都是1/3。D4,D8的下一个状态是D4,D6,D8的转换概率也都一样是1/3。这样设定是为了最开始容易说清楚,但是我们其实是可以随意设定转换概率的。比如,我们可以这样定义,D6后面不能接D4,D6后面是D6的概率是0.9,是D8的概率是0.1。这样就是一个新的HMM

同样的,尽管可见状态之间没有转换概率,但是隐含状态和可见状态之间有一个概率叫做输出概率(emission probability)。就我们的例子来说,六面骰(D6)产生1的输出概率是1/6。产生2,3,4,5,6的概率也都是1/6。我们同样可以对输出概率进行其他定义。比如,我有一个被赌场动过手脚的六面骰子,掷出来是1的概率更大,是1/2,掷出来是2,3,4,5,6的概率是1/10。

隐含状态转换关系示意图如下:

所以有:
转换概率即为状态转移矩阵A

这里我们假设D4,D6,D8后面跟随任意一种筛子的概率相同,都是1/3。(实际问题中可以定义为不同概率,如D4后面出现D4,D6,D8的概率分别为1/,6,2/6,3/6)

输出概率即为观测概率矩阵B

初始状态概率向量π

机器学习——HMM(隐马尔可夫模型的基本概念)(一)相关推荐

  1. 【机器学习】隐马尔可夫模型及其三个基本问题(四)状态序列预测算法及python实现

    [机器学习]隐马尔可夫模型及其三个基本问题(四)状态序列预测算法及python实现 一.维特比算法 二.python实现 参考资料 隐马尔可夫模型状态序列预测问题是指给定模型 λ=[A,B,∏]\la ...

  2. 【机器学习】隐马尔可夫模型及其三个基本问题(三)模型参数学习算法及python实现

    [机器学习]隐马尔可夫模型及其三个基本问题(三)模型参数学习算法及python实现 一.一些概率与期望值的计算 二.非监督学习方法(Baum-Welch算法) 三.python实现 隐马尔可夫模型参数 ...

  3. 【机器学习】隐马尔可夫模型及其三个基本问题(二)观测序列概率计算算法及python实现

    [机器学习]隐马尔可夫模型及其三个基本问题(二)观测序列概率计算算法及python实现 一.前向算法 二.后向算法 三.前向-后向算法的python实现 参考资料 隐马尔可夫(HMM)模型的第一个基本 ...

  4. 【机器学习】隐马尔可夫模型及其三个基本问题(一)

    [机器学习]隐马尔可夫模型及其三个基本问题(一) HMM模型 1.HMM模型概述 2.HMM的三个基本问题 3.HMM问题实例 参考资料 隐马尔可夫模型(Hidden Markov Model,HMM ...

  5. NLP基础 : HMM 隐马尔可夫模型

    Hidden Markov Model, HMM 隐马尔可夫模型,是一种描述隐性变量(状态)和显性变量(观测状态)之间关系的模型.该模型遵循两个假设,隐性状态i只取决于前一个隐性状态i-1,而与其他先 ...

  6. 李航《统计学习方法》之HMM隐马尔可夫模型

    李航<统计学习方法>之HMM隐马尔可夫模型 文章目录 前言 一.基本概念 1.语言描述: 2.符号表示 3.基本假设 4.例子 5.隐马尔可夫模型解决的三个基本问题 二.概率计算算法 1. ...

  7. HMM隐马尔科夫模型(附维特比代码)

    背景知识:马尔科夫模型 1 马尔科夫的局限性 在一些情况下,我们并不能直接得到观测的结果,比如在天气系统中,我们不能直接得到天气的状态,但是我们有一堆蚂蚁,可以从蚂蚁的行为状态找到天气变化的关系规律. ...

  8. 【机器学习基础】数学推导+纯Python实现机器学习算法24:HMM隐马尔可夫模型

    Python机器学习算法实现 Author:louwill Machine Learning Lab HMM(Hidden Markov Model)也就是隐马尔可夫模型,是一种由隐藏的马尔可夫链随机 ...

  9. 机器学习-- > 隐马尔科夫模型(HMM)

    博客内容将首发在微信公众号"跟我一起读论文啦啦",上面会定期分享机器学习.深度学习.数据挖掘.自然语言处理等高质量论文,欢迎关注! 本篇博文将详细总结隐马模型相关知识,理解该模型有 ...

最新文章

  1. 【MyBatis】MyBatis自动生成代码之查询爬坑记
  2. 推荐一个免费的屏幕取色器,鼠标放到的位置自动显示RGB
  3. .net core针对async ()=的安全处理
  4. 算法--Hash算法及其应用场所
  5. FTP协议、电子邮件系统、Telnet远程控制
  6. 自定义控件添加属性_|AutoCAD LT 2019 Mac自定义功能区的方法
  7. unity+百度定位
  8. [设计模式-创建型]单态(Singleton)
  9. SQL中Case的使用方法(上篇)
  10. 火力发电计算机控制参数详细过程,火力发电过程
  11. Leetcode 惊现马化腾每天刷题 ? 为啥大佬都这么努力!
  12. asp.net 视频教程
  13. 苹果手机微信怎么接龙_微信又更新了:群接龙怎么玩?文件如何备份?怎么发高清大视频?...
  14. win10 此电脑中【设备和驱动器】位置出现空白图标
  15. 大学计算机实践教程在线阅读,第一部分 实验免费阅读_大学计算机基础实践教程免费全文_百度阅读...
  16. 贾扬清:从授之以鱼到授之以data,人工智能如何重塑传统软件行业
  17. 安卓领域高质量公众号推荐
  18. Android宠物领养救助系统app毕业设计
  19. linux下实现dlna识别当前音频格式,如何将实时音频流设置为DLNA兼容设备?
  20. wifi搜索不到连接不上的问题(企业局域网wifi)

热门文章

  1. GreenDao2.2升级GreenDao3.0的适配之路
  2. Angularjs总结(一)表单验证
  3. SQL Server内存架构基础
  4. python java正则表达式_java 正则表达式
  5. 如何判断mysql主从延迟_【转】MySQL主从延迟如何解决
  6. 详解linux运维工程师入门级必备技能
  7. 队列的基本操作c语言代码大全,数据结构――队列(循环队列)的基本操作(实现链队列逐一取出c语言代码)...
  8. 三维点云学习(3)2- K-Means
  9. Android分贝开发
  10. python读usb_使用Python来操作Microchip安全芯片