隐马尔科夫模型学习总结.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={s

1,s

2

,s

3

,…,s

n

},而处于媒介另一端的观

测者观测到的序列是O={o

1,o

2

,o

3

,…,o

m

}。对于观测者来说,他接收到序列O的

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

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

P(S|O)=P(s1,s2,s3,…,s n|o1,o2,o3,…,o m)

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

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

s1,s2,s3,…,s n=argmax

all s1,s2,s3,…,s n

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

P (S |O )=P(o 1,o 2,o 3,…,o m |s 1,s 2,s 3,…,s n )∙P(s 1,s 2,s 3,…,s n )

P(o 1,o 2,o 3,…,o m ) (1.2)

由于我们要求的是能够使猜测到的S 序列是合乎情理的可能性最大,所以说比较的是不同的S 序列,而与已经观测到的O 序列无关,所以由式1.1和1.2可得:

s 1,s 2,s 3,…,s n =argmax all s 1,s 2,s 3,…,s n

P(o 1,o 2,o 3,…,o m |s 1,s 2,s 3,…,s n )P(s 1,s 2,s 3,…,s n ) (1.3)

2、 隐马尔科夫模型简介

2.1 马尔科夫假设

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

P (s 1,s 2,s 3,…,s n )=∏P(s t |s t−1)n t

(2.1) 2.2 独立输出假设

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

P (o 1,o 2,o 3,…,o m |s 1,s 2,s 3,…,s n )=∏P(o t |s t )n t

(2.2) 由式1.3,2.1,2.2可得:

s 1,s 2,s 3,…,s n =argmax all s 1,s 2,s 3,…,s n P (o 1,o 2,o 3,…,o m |s 1,s 2,s 3,…,s n )P (s 1,s 2,s 3,…,s n ) =∏P(s t |s t−1)P(o t |s t )n

t

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

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

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

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

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

相关文档
最新文档