隐马可夫模型:探索看不到的世界的数学工具

这篇要讨论的可不是哲学议题,而是希望以一个“数学工具”的角度来看隐马可夫模型(Hidden Markov Model, HMM)是什么,它的背后假设、长处与限制,以理解这样的工具可以拿来做什么用,而不是只与特定的应用绑在一起。

隐马可夫模型?隐藏的马可夫模型?

隐马可夫模型是机器学习(Machine Learning)领域中常常用到的理论模型,从语音识别(Speech Recognition)、手势辨识(gesture recognition),到生物信息学(Bioinformatics)里的种种应用,都可以见到这个工具的身影。

既然名字里有“马可夫”,想当然,这又是一个马可夫模型(Markov model)的延伸。马可夫模型所描述的,是一连串事件接续发生的机率:

马可夫链,通俗地说,就是同类型的事件(不同的状态)依序发生的机率,举例来说,假设天气有三种状态:晴天、阴天跟雨天。如果昨天是雨天,那么今天是雨天的机率,会跟昨天是晴天而今天是雨天的机率有所不同,这是因为我们相信天气现象在时间上有某种连续性,前面发生的状态会影响到后面发生的状态,而马可夫模型就是描述这种前后关系的数学语言。

而隐马可夫模型,顾名思义的,就是有什么东西“隐藏”起来了。我们沿用之前天气的例子,假设我因为脚受伤,必须住在一个房间里,看不到外面的天气(这听起来不太合理,但是大家理解意思就好),但是我可以看到我隔壁房间的室友每天从事的运动:跑步、健身操或是游泳三者之一。

如果把室友每天从事的运动项目记录下来,就是他“运动”这个事件的马可夫链,这是我可以观察的到的现象。然后,我又依照过去的经验,知悉在每种天气状况下,他从事各项运动的机率,那么我是不是可以透过我的观察和知识,去推测每天的天气?

在这个例子里,有两个事件的序列:一个是我观察得到的,室友每天所从事的运动项目;另一个是我看不到的,也就是对我来说是隐藏的,外面每天的天气。由于我知悉这两个马可夫链之间的关系,所以我便可以由其中一个马可夫链的状态,去预测另一个马可夫链的状态。而隐马可夫模型,便是描述这样的两个序列的关系的统计模型。

简单的说,隐马可夫模型提供了一套数学的理论以及工具,让我们可以利用看得到的连续现象去探究、预测另一个看不到的连续现象。

当然,这里的看不到并不表示真的无从观察,以前面所举的例子来说,我在脚没受伤的时候,还是可以到外面去观察天气的,只是在某个特定的条件之下,天气对我来说被隐藏起来了。


柏拉图的洞穴预言(Allegory of Cave),讲的是“我们看到的世界”跟“真实的世界”的关系,恰好可以用来比喻一下隐马可夫模型的作用。

语音识别离不开隐马可夫模型

我们还可以进一步用语音识别当做例子,来说明HMM的用处。

在语言学上,我们可以把人说话发出的声音分成各种音节(syllable),所以理论上,我们如果有一段录音,只要能分辨每一个音节发的音是哪些元音与子音,就能够把这个人讲的话辨识成文字。

任何理论上可行的事情,必然伴随着实务上的困难。这种音节对应的工作看似容易,但是实际上会遇到很多模棱两可的情况。以中文为例,两个三声的字连着念,前面的会读成二声,加上同音字、破声字,同字的语音与读音…等等,都增加了分辨过程的难度。

那么,HMM 是怎么跑进来的呢?试想,语音是一连串的音节,而我们想要辨识成的文字,则是一连串的字;对语音识别系统而言,语音这个音节序列是看得到的讯号,而系统想要做的是推测出与其相对应的,看不到的文字序列,所以正好是 HMM 所模拟的状况。

隐马可夫模型在语音识别的的应用,大抵始于1970年代晚期的 IBM 计划(Jelinek),时至今日,我们生活中可以看到的各种语音识别系统,例如Apple 的siri,Google的voice search,微软前不久在北京展示的中英同步口译,背后都是以HMM作为基础技术。

隐马可夫模型:生物信息学、股票价格预测都有应用

生物信息学(bioinformatics)是另一个大量使用到 HMM 的领域,从DNA 序列的比对到演化历程的推论,只要是跟基因序列有关的,几乎都看得到 HMM 的应用。以DNA定序为例,一段采集到的DNA序列,包含了外显子(exon)和内隐子(intron)两种段落,两者在细胞复制上有不同的功能,但都是由众多的基因(gene,有A、T、C、G 4种)排列成的序列,因此在一串看得到的基因序列中,要如何标记出哪一段是外显子,哪一段又是内隐子,这些看不到的段落,也是HMM可以发挥作用之处。简单的说,外显子和内隐子各自包含 A、T、C、G基因的比例不同,于是我们可以利用 HMM 相关的算法,找出哪一个基因是外显子和内隐子的起点或终点。

现实中,股票的价格变化也是一个序列,这是另一个充满经济诱因的预测目标,想当然耳的,也有不少人把 HMM 运用在预测股价的状态上,不过文献就不如前述两个领域那么丰富了。

隐马可夫模型当然也有它使用上的限制。例如,观测与模拟的现象必须是序列(或者该说是马可夫链),两个序列之间的关系要够明确等等,否则很容易就变成用十字螺丝起子去转六角螺丝:或许可以运作,但是结果不尽然是原本想要的。

如果有这样的数学工具,你会想要用来预测什么看不到的现象呢?

http://www.guokr.com/article/437179/

时间: 2024-10-19 20:05:31

隐马可夫模型:探索看不到的世界的数学工具的相关文章

炎热天气看书还是钓鱼?隐马尔科夫模型教你预测!

高温天气与行为概率 夏季是一年最热的时候,气温普遍偏高,一般把日最高气温达到35℃以上的天气叫作高温天气,但是一般情况下高温天气分为两类.  (1)干热型高温.一般是指气温较高.太阳辐射强而且空气的湿度较小的高温天气.  (2)闷热型高温.一般是指水汽丰富,但是气温相对而言并不算太高,给人感受闷热.  小张在不同类型下的高温天气下会有不同的行为,但是归纳起来为主要为散步.垂钓.看书三类,分别在干热型高温和闷热型高温下对应行为的概率见下表.  假设干热型高温和闷热型高温之间会进行相互转变,每天可能

一文搞懂HMM(隐马尔可夫模型)

本文转自于:http://www.cnblogs.com/skyme/p/4651331.html 隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程.其难点是从可观察的参数中确定该过程的隐含参数.然后利用这些参数来作进一步的分析,例如模式识别. 是在被建模的系统被认为是一个马尔可夫过程与未观测到的(隐藏的)的状态的统计马尔可夫模型. 下面用一个简单的例子来阐述: 假设我手里有三个不同的骰子.第一个骰子是我们平常见的骰子(称这

隐马尔可夫模型(HMM:Hidden Markov Models)

理论部分转载自:http://blog.csdn.net/likelet/article/details/7056068 手动计算例子转载自:http://blog.sina.com.cn/s/blog_953f8a550100zh35.html 隐马尔可夫模型 (Hidden Markov Model,HMM) 最初由 L. E. Baum 和其它一些学者发表在一系列的统计学论文中,随后在语言识别,自然语言处理以及生物信息等领域体现了很大的价值.平时,经常能接触到涉及 HMM 的相关文章,一直

统计学习方法笔记 -- 隐马尔可夫模型

参考,隐马尔可夫模型(HMM)攻略 首先看看确定的状态序列,这种状态序列中状态的变化是确定的,比如 红绿灯,一定是绿灯->红灯->黄灯,这样的状态序列 当然也有些不确定状态序列,比如 天气,今天是晴天,你不能确定明天也一定是晴天或雨天 于是我们用概率来表示这种不确定性,称为马尔可夫过程 (Markov Process),马尔可夫过程的阶数表示当前状态依赖于过去几个状态,出于简单考虑往往用一阶马尔可夫过程,即当前状态仅仅取决于前一个状态. 马尔可夫过程,由状态集合,初始状态和状态转移矩阵组成,

隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数

隐马尔科夫模型HMM(一)HMM模型 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数(TODO) 隐马尔科夫模型HMM(四)维特比算法解码隐藏状态序列(TODO) 在本篇我们会讨论HMM模型参数求解的问题,这个问题在HMM三个问题里算是最复杂的.在研究这个问题之前,建议先阅读这个系列的前两篇以熟悉HMM模型和HMM的前向后向算法,以及EM算法原理总结,这些在本篇里会用到.在李航的<统计学习方法>中,这个算法的讲解只考虑了单个观测

基于隐马尔可夫模型的有监督词性标注

代码下载:基于隐马尔可夫模型的有监督词性标注 词性标注(Part-of-Speech tagging 或 POS tagging)是指对于句子中的每个词都指派一个合适的词性,也就是要确定每个词是名词.动词.形容词或其他词性的过程,又称词类标注或者简称标注.词性标注是自然语言处理中的一项基础任务,在语音识别.信息检索及自然语言处理的许多领域都发挥着重要的作用. 词性标注本质上是一个分类问题,对于句子中的每一个单词W,找到一个合适的词类类别T,也就是词性标记,不过词性标注考虑的是整体标记的好坏,既整

图解隐马尔科夫模型【会其意】

隐马尔可夫(HMM)好讲,简单易懂不好讲.少写公式.霍金曾经说过,你多写一个公式,就会少一半的读者.所以时间简史这本关于物理的书和麦当娜关于性的书卖的一样好.我会效仿这一做法,写最通俗易懂的答案. 还是用最经典的例子,掷骰子.假设我手里有三个不同的骰子.第一个骰子是我们平常见的骰子(称这个骰子为D6),6个面,每个面(1,2,3,4,5,6)出现的概率是1/6.第二个骰子是个四面体(称这个骰子为D4),每个面(1,2,3,4)出现的概率是1/4.第三个骰子有八个面(称这个骰子为D8),每个面(1

隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率

隐马尔科夫模型HMM(一)HMM模型 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数(TODO) 隐马尔科夫模型HMM(四)维特比算法解码隐藏状态序列(TODO) 在隐马尔科夫模型HMM(一)HMM模型中,我们讲到了HMM模型的基础知识和HMM的三个基本问题,本篇我们就关注于HMM第一个基本问题的解决方法,即已知模型和观测序列,求观测序列出现的概率. 1. 回顾HMM问题一:求观测序列的概率 首先我们回顾下HMM模型的问题一.这个

隐马尔可夫模型

原文链接:http://www.cnblogs.com/zhangchaoyang/articles/2219571.html 此外,http://www.leexiang.com/hidden-markov-model 写的也很清楚明了. HMM介绍 Hidden Markov Models是一种统计信号处理方法,模型中包含2个序列和3个矩阵:状态序列S.观察序列O.初始状态矩阵P.状态转移矩阵A.混淆矩阵B.举个例子来说明. 你一个异地的朋友只做三种活动:散步.看书.做清洁.每天只做一种活动