隐马尔科夫模型学习总结.pdf.

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

隐马尔科夫模型学习总结

by terry__feng

隐马尔科夫模型,这个久违的老朋友。大三上学期在实验室的时候,由于实验室项目需用到语音识别,所以就使用了微软的Microsoft Speech SDK,也关注了一下语音识别的原理,其中有以HMM作为模型进行识别的。后来实验室的机器人项目中上位机的软件使用到了人脸识别的功能。实验室有关于识别的工程源代码,但是工程庞大,结构复杂,并且里面有很多没有用到的功能,并且程序经常莫名其妙的跑飞,还存在严重的内存泄露问题。所以就自己另起炉灶,重新编写上位机软件。其中的人脸识别用到的核心算法的代码就来源于这个工程。它使用到的技术不是PCA和LDA,而是HMM和DCT。那时候为了看明白HMM实现的原理,在图书馆看了关于模式识别的书,但有基本都是工程相关的,所以说原理性的知识牵扯的不多,自己也就是学习了大概,只是摸熟了里面使用到的各种牛逼的算法,比如Forward-backward,Viterbi,Baum-Welch。但是各种算法原理的理解上就差得远了。没有什么理论的基础,也不知如何学起,最终未能继续。后来又通过吴军老师的《数学之美》了解到隐马尔科夫模型在语音识别中的重要作用。

时隔快两年了,从李航博士的《统计学习方法》中又看到了HMM模型的魅影,里面对其原理进行了深刻的剖析,能够学习之内心自是欣慰至极。于是便花了几天的时间读了关于HMM的几章,现在算是有点收获,总结一下(大部分内容来自对吴军老师的《数学之美》和李航博士的《统计学习方法》的总结)。

文章主要包括信息传递模型、HMM模型简介,和对所使用的三个主要算法:前向后向算法、Baum-Welch算法和维特比算法进行了总结。由于公式比较的多……所以生成pdf版的了。

1、信息传递的模型

任何信息都是通过一定的媒介从一端传递到另一端。对于信息源的传输者来说,其所需传输的序列可假设为S={s1,s2,s3,…,sn},而处于媒介另一端的观

测者观测到的序列是O={o1,o2,o3,…,om}。对于观测者来说,他接收到序列O的目的是为了明白传输者的意图,这样才能达到信息交流的目的。也就是说,观测者能够做的事情就是使用观测到的数据(即序列O)去揣测传输者要传输的数据(即序列S)。但是仅仅根据序列O能够揣测出来的序列S的可能性太多了,哪一个猜到的序列S是我们想要的呢?

按照概率论的观点,我们可以把上面的问题建立数学模型。

P(S|O)=P(s1,s2,s3,…,sn|o1,o2,o3,…,om)

上式的意思是:对于一个给定的观测序列o1,o2,o3,…,om,它的原序列是

s1,s2,s3,…,sn的概率。然而s1,s2,s3,…,sn的可能取值有很多,究竟哪一个才是自己想要的呢?所以便有了下面的式子:

s1,s2,s3,…,sn=argmaxP(S|O) (1.1)all s1,s2,s3,…,sn

也就是说找到概率最大的原序列,或者说是最有可能的原序列。利用贝叶斯定理可以把上式转化得:

P(S|O)=P(o1,o2,o3,…,om|s1,s2,s3,…,sn)∙P(s1,s2,s3,…,sn)

P(o1,o2,o3,…,om) (1.2)

由于我们要求的是能够使猜测到的S序列是合乎情理的可能性最大,所以说比较的是不同的S序列,而与已经观测到的O序列无关,所以由式1.1和1.2可得:s1,s2,s3,…,sn=argmaxP(o1,o2,o3,…,om|s1,s2,s3,…,sn)P(s1,s2,s3,…,sn)all

s1,s2,s3,…,sn

(1.3)

2、隐马尔科夫模型简介

2.1 马尔科夫假设

对于任意的状态序列{s1,s2,s3,…,sn},它的某一状态出现的概率只与上一个状态有关。就像预报天气一样,若要预报明天的天气,就仅与今天的天气作为参考,而不考虑昨天、前天或者更早的天气情况(当然这样不合理,但是确是简化的模型),称之为马尔科夫假设。所以可以得到:

P(s1,s2,s3,…,sn)=∏n (2.1)tP(st|st−1)

2.2 独立输出假设

对于任何一个可以观测到的状态ot,它只与一个st的状态有关,而与其他的状态s无关,称之为独立输出假设。所以可以得到:

P(o1,o2,o3,…,om|s1,s2,s3,…,sn)=∏n (2.2) tP(ot|st)

由式1.3,2.1,2.2可得:

s1,s2,s3,…,sn=argmaxP(o1,o2,o3,…,om|s1,s2,s3,…,sn)P(s1,s2,s3,…,sn) all

s1,s2,s3,…,snn

=∏P(st|st−1)P(ot|st)

t

2.3 隐含马尔科夫“隐”的含义

“隐”是针对观测者来说的。因为观测真能够观测到的只有序列O,而序列S是看不到的,只能由观测值来揣测,再结合2.1和2.2所说的,所以称之为隐含马尔科夫模型。

2.4 隐含马尔科夫模型的例子

(选自李航博士的《统计学习方法》P173,稍作修改)

假设有4个盒子,Boxes={box1,box2,box3,box4},每个盒子里都装有红白两种颜色的球,Colors={color1,color2},有两个实验者A和B(假设两个实验者未曾见面,只能通过电话联系)。每个盒子里面球的个数为:

Step1:实验者A从4个盒子里面以等可能的概率随机选取1个盒子,记录其盒子s1;接着从这个盒子里抽取一个球,然后通过电话告知B所抽取的球的颜色,B 记录其颜色o1后,A将球放回原盒子中;

Step2:A从当前的盒子转移到下一个盒子,按照下面的概率矩阵转移:

st;接着从这个盒子里抽取一个球,然后通过电话告知B所抽取的球的颜色,B 记录其颜色ot后,A将球放回原盒子中; Step3:继续step2,直到记录到的球数达到n。

经过以上的三个步骤,对于A来说,得到了盒子的序列S={s1,s2,s3,…,sn};对于B 来说,得到了球的观测序列O={o1,o2,o3,…,on}。

我们现在的就假设站在B的立场上分析这个问题。我们只得到了序列O(称为观测序列),而序列S(称为状态序列)对于我们来说是不知道的,所以我们称之为隐含的。但是我们可以通过一定的模型来推断序列S的分布,继而求出最有可能的序列S,而这样的一个模型可以有很多种,但是一种简单的、容易计算的并且预测精度高的模型就非隐含马尔科夫模型莫属了。

3、隐马尔科夫模型

接下来就来总结一下关于隐马尔科夫模型的定义。

3.1 定义

相关文档
最新文档