第五章:隐马尔可夫模型

隐马模型是一个不复杂但在NLP上最有效、快速的方法。

1.通信模型

自然语言和通信的联系是天然的,当自然语言处理问题回归到通信系统中的解码问题时,很多难题就迎刃而解了。

前面已经说了,我们把说话看作是一种编码方式,然后通过喉咙、空气传播,听到话的人的耳朵接收,再理解说的话,也就是语音识别。如果接收端是计算机,那么计算机完成的就是语音识别。我们要根据接收端的信号O1,O2,O3...来推测发送源的信号S1,S2....。我们只需从所有的源信息中找到最有可能的信号即可,也就是:

上式不易直接求出,我们利用贝叶斯公式等价成:

一旦信息产生,接收端收到的信息就不会改变了,所以我们可以把分母当成一个常数,只考虑分子,分子有两项,我们采用隐马尔可夫模型来估计。

2.隐马尔可夫模型

上面我们提到过,马尔科夫假设是指随机过程中的各个状态St的概率分布只与它的前一个状态St-1有关。

如上图,四个圈表示四个状态,每条变表示一个可能的状态转换,边上的权值是转移概率。例如m2到m3的可能性为0.6,到m4的可能性为0.4,即:

此处的概率,我们可以运行一段时间之后,通过观察得到。

而我们这里要讲的隐马尔可夫模型,其实是上述马尔可夫链的扩展,它表示:在任一时刻t的状态St是不可见的。但是隐马模型在每个时刻t会输出一个符号Ot,且Ot和St相关且仅和St相关。

基于马尔科夫假设和独立输出假设,我们可以计算出某个特定的状态序列S1,S2,S3...产生输出符号O1,O2,O3...的概率。

带入(5.2)中的分母。这样通信的解码问题就可以用隐马尔可夫模型解决了。因为通信和自然语言处理的相似性,我们可以用隐马尔可夫模型来解决。至于如何找出上式的最大值,进而识别原始句子S,则需要维特比算法(后面会有介绍)。

3.延伸阅读:隐含马尔科夫模型的训练

围绕隐马模型有三个基本问题:

1.给定模型,如何计算某个特定输出序列的概率;——解决:用Forward-Backward算法

2.给定一个模型和某个特定的输出序列,如何找到最可能产生的输出序列;——解决:维特比算法

3.给定足够靓的观测数据,如何估计隐马模型的参数。

此处,我们讨论第三个问题。

隐马尔可夫模型的参数有两类,一类是转移概率,即从一个状态转移到另一个状态的概率P(St|St-1),比如前面从m3到m2的概率;另一类是生成概率,即每个状态St产生相应输出符号Ot的概率P(Ot|St)。我们的目的就是要训练出这些参数。

在监督训练中,我们用足够的数据,进行频率估计得到参数。但是很多应用中不可能做到,或者成本非常高。因此,训练隐马尔可夫模型更使用的方式是通过大量观测信号O1,O2,O3....就能推算参数,常用的方法是鲍姆-韦尔奇算法。

一般来说,根据观察值倒推产生它的隐马模型可能会有多个值。但总有一个的可能性要比其他高。鲍姆-韦尔奇算法就是寻找这个最有可能的模型。

基本思想如下:找到一组能产生输出序列O的模型。然后在此基础上找到更好的模型。以此不断迭代知道模型质量没有明显提高为止。迭代使用EM估计,只能找到局部最优。

4.小结

隐马尔可夫模型最初应用于通信领域,继而推广到语音和语言处理中。它需要一个训练算法(鲍姆-韦尔奇算法)和使用时的解码算法(维特比算法),掌握了它们,就基本上可以使用隐马尔可夫模型了。

时间: 2024-12-16 02:30:30

第五章:隐马尔可夫模型的相关文章

统计学习方法 李航---第10章 隐马尔可夫模型

第10章隐马尔可夫模型 隐马尔可夫模型(hidden Markov model, HMM)是可用于标注问题的统计学习模型,描述由隐藏的马尔可夫链随机生成观测序列的过程,属于生成模型. 10.1 隐马尔可夫模型的基本概念 定义10.1 (隐马尔可夫模型) 隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程.隐藏的马尔可夫链随机生成的状态的序列,称为状态序列(state sequence):每个状态生成一个观

隐马尔可夫模型(五)——隐马尔可夫模型的解码问题(维特比算法)(转载)

阅读目录 HMM解码问题 维特比算法 时间复杂度 程序例证 回到顶部 HMM解码问题       给定一个观察序列O=O1O2...OT,和模型μ=(A,B,π),如何快速有效地选择在一定意义下"最优"的状态序列Q=q1q2...qT,使该状态最好地解释观察序列. 一种想法是求出每个状态的概率rt(i)最大(rt(i)=P(qt=si,O|μ)),记q't(i)=argQmax(rt(i)),但是这样做,忽略了状态之间的关系,很可能两个状态之间的概率为0,即aq't(i)q't+1(i

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

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

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

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

马尔科夫链和隐马尔可夫模型(转载)

马尔可夫模型是由Andrei A. Markov于1913年提出的 ?? 设 SS是一个由有限个状态组成的集合 S={1,2,3,-,n?1,n}S={1,2,3,-,n?1,n} 随机序列 XX 在 tt时刻所处的状态为 qtqt,其中 qt∈Sqt∈S,若有: P(qt=j|qt?1=i,qt?2=k,?)=P(qt=j|qt?1=i)P(qt=j|qt?1=i,qt?2=k,?)=P(qt=j|qt?1=i) aij≥0∑jnaij=1aij≥0∑jnaij=1 则随机序列 XX构成一个一

隐马尔可夫模型(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(三)鲍姆-韦尔奇算法求解HMM参数

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

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

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

隐马尔科夫模型(HMM)

HMM简介 HMM用于研究非确定性生成模式,HMM是一个与时间无关的模型(有待改进),并且n阶HMM模型是指下一个状态只与前n个有关,通常只研究一阶HMM模型(有待改进).从可观察的参数中确定该过程的隐含参数,然后利用这些参数来作进一步的分析,例如模式识别. 下面可以使用一个案例来解释HMM模型. 假设有三种色子,分别是标有123456的立方体.标有1234的三菱锥.标有12345678的八面体.它们分别记为D6.D4.D8,假设我们从三个色子中任意挑一个色子的概率为1/3,然后我们可以随意掷色