关于隐马尔科夫模型

常常用于分词、词性标注、命名实体识别等问题序列标注问题。

一、什么是隐马尔科夫模型

隐马尔科夫模型是关于时序的概率模型,描述一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个状态观测而产生观测随机序列的过程。

隐藏的马尔科夫链随机生成的状态的序列,称为状态序列;每个状态生成一个观测,而由此产生的观测随机序列称为观测序列

序列的每一个位置又可以看作成一个时刻。

设Q是所有可能状态的集合,V是所有可能的观测的集合。


其中,N是可能的状态数,M是可能的观测数。

状态q是不可见的,状态v是可见的。

应用到词性标注问题时,v代表词语,是可以观测到的。q代表我们将要预测的词性(一个词可能有多个词性)是隐含的状态。

应用到分词问题,v代表词语,是可以观察的。q代表我们的标签(B,E这些标签代表一个词的开始于或者中间)。

应用到命名实体识别中,v代表词语,是可以观察的。q代表我们的标签(标签代表地点词,时间词这些)。


I是长度为T的状态序列,O是对应的观测序列。


我们可以看做是给定了一个词(O)和词性(I)的训练集,或者一个词(O)和分词标签(I)的训练集,有了训练数据,再通过训练算法就可以得到解决问题。

我们继续定义A为状态转移概率矩阵


其中


是在时刻t处于状态qi的条件下在状态t+1转移到qj的概率。B是观测概率矩阵


其中,


是在时刻t处于状态qj的情况下生成观测vk的概率(也就是所谓的“发射概率”与“生成概率”其实是一个概念

假设π是厨师概率向量:


其中,


隐马尔科夫模型由厨师状态概率向量π状态转移概率矩阵A概率预测矩阵B决定。π和A决定状态序列,B决定观测序列。因此,隐马尔科夫模型可以用三元符号表示,如下

,也成为隐马尔科夫模型三要素。

加上状态集合Q与观测序列V,构成了HMM所有需要的条件。


二、隐马尔科夫链的三个基本问题:

1.概率计算问题。

给定模型和观测序列O,计算在模型下观测序列O出现的概率。举个栗子(例子来源于网络):



用python描述这个模型,如下:


在这段代码中,start_probability(π)代表了医生对患者首次访问时HMM所处的状态的信念(他知道患者往往是健康的,所以健康比不健康大)。

      transition_probability表示基础Markov链中健康状况的变化。在这个例子中,今天只有30%的机会,如果他今天健康,病人会发烧。发射概率表示患者每天感受的可能性。如果他健康,那么有50%的机会感觉正常;如果他有发烧,那么有60%的机会感到头昏眼花。

第一个问题是求,给定模型的情况下,求某种观测序列出现的概率。


比如,给定的HMM模型参数已知,求出三天观察是(Dizzy,Cold,Normal)的概率是多少?


对应的HMM模型参数已知的意思,就是说的A,B,pi矩阵是已经知道的。


2.学习问题

已知观测序列O=(o1,o2,o3,......,or),估计模型λ参数,使得在该模型下观测序列概率最大,即最大,用极大似然估计法估计参数。

我们已经知道了观测序列是(Dizzy,Cold,Normal),需要求出HMM的参数问题(使得我们的观测序列出现概率最大)。也就是我们上面说的A,B,PI三个矩阵参数。


3.预测问题


我们知道了观测序列是(Dizzy,Cold,Normal),也知道了HMM的参数,让我们求出造成这个观测序列最有可能对应的状态序列。比如说是(Healthy,Healthy,Fever)还是(Healthy,Healthy,Healthy),等等,这里有3的3次方27种可能~

















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值