您好,欢迎访问三七文档
隐马尔科夫模型(HMM)第一章马尔科夫模型简介我们通常都习惯寻找一个事物在一段时间里的变化规律。在很多领域我们都希望找到这个规律,比如计算机中的指令顺序,句子中的词顺序和语音中的词顺序等等。一个最适用的例子就是天气的预测。隐马尔可夫模型的理论基础是在1970年前后由Baum等人建立起来的,随后由CMU的Bakex和IBM的Jelinek等人将其应用到语音识别中。由于Bell实验室的Rabine等人在80年代中期对HMM的深入浅出的介绍,才逐渐使HMM为世界各国的研究人员所了解和熟悉,进而在信息处理领域成为一个研究热点。关于模型的建立有两种生成模式:确定性的和非确定性的。确定性的生成模式:就好比日常生活中的红绿灯,我们知道每个灯的变化规律是固定的。我们可以轻松的根据当前的灯的状态,判断出下一状态。图1.1确定性模型非确定性的生成模式:比如说天气晴、多云、和雨。与红绿灯不同,我们不能确定下一时刻的天气状态,但是我们希望能够生成一个模式来得出天气的变化规律。我们可以简单的假设当前的天气只与以前的天气情况有关,这被称为马尔科夫假设。虽然这是一个大概的估计,会丢失一些信息。但是这个方法非常适于分析。马尔科夫过程就是当前的状态只与前n个状态有关。这被称作n阶马尔科夫模型。最简单的模型就当n=1时的一阶模型。就当前的状态只与前一状态有关。(这里要注意它和确定性生成模式的区别,这里我们得到的是一个概率模型)。下图1.2是所有可能的天气转变情况:图1.2天气转变图对于有M个状态的一阶马尔科夫模型,共有M*M个状态转移。每一个状态转移都有其一定的概率,我们叫做转移概率,所有的转移概率可以用一个矩阵表示。在整个建模的过程中,我们假设这个转移矩阵是不变的。如图1.3所示:图1.3天气转变矩阵HMM是一个输出符号序列的统计模型,有N个状态S1,S2,·····SN,它按一定的周期从一个状态转移到另一个状态,每次转移时,输出一个符号。转移到哪一个状态,转移时输出什么符号,分别由状态转移概率和转移时的输出概率来决定。因为只能观测到输出符号序列,而不能观测到状态转移序列(即模型输出符号序列时,是通过了哪些状态路径,不能知道),所以称为(HMM)隐藏的马尔可夫模型。HMM是一种随机过程,它用概率统计的方法来描述语音信号的变化过程。HMM与通常的Markov链的不同之处在于其观察结果不是与状态有确定的对应关系,而是系统所处状态的概率函数,所以模型本身是隐藏的,它与观察结果之间还有一层随机的关系。HMM是对语音信号的时间序列结构建立统计模型,将之看做一个数学上的双重随机过程:一个是用具有有限状态的Markov链来模拟语音信号统计特性变化的隐含随机过程,另一个是与Markov链的每一个状态相关联的观测序列的随机过程。前者通过后者表现出来,但前者的具体参数是不可测的,只有通过观测序列的随机过程才能表现出来。HMM组成示意图,如图1.4所示。图1.4HMM组成示意图马尔科夫变换的一个实例:设有N个缸,每个缸中装有很多彩球,球的颜色由一组概率分布描述。实验进行方式如下:第一,根据初始概率分布,随机选择N个缸中的一个开始实验。第二,第二,根据缸中球颜色的概率分布,随机选择一个球,记球的颜色为O1,并把球放回缸中。第三,根据描述缸的转移的概率分布,随机选择下一口缸,重复以上步骤。最后得到一个描述球的颜色的序列O1,O2,…,称为观察值序列O。用模型五元组λ=(N,M,π,A,B)简记为:λ=(π,A,B),对于上面的例子,我们可以用下面的框图简单的把各个量的关系表示出来,如下图2.1所示:图2.1实例与马尔科夫参数对应关系参数含义实例N状态数目缸的数目M每个状态可能的观察值数目彩球颜色数目A与时间无关的状态转移概率矩阵在选定某个缸的情况下,选择另一个缸的概率B给定状态下,观察值概率分布每个缸中的颜色分布π初始状态空间的概率分布初始时选择某口缸的概率第二章马尔科夫模型解决的几个问题问题1:给定观察序列O=O1,O2,…OT,以及模型λ=(π,A,B),如何计算P(O|λ)?这类问题是假设我们有一系列的HMM模型,来描述不同的系统(比如夏天的天气变化规律和冬天的天气变化规律),我们想知道哪个系统生成观察状态序列的概率最大。反过来说,把不同季节的天气系统应用到一个给定的观察状态序列上,得到概率最大的哪个系统所对应的季节就是最有可能出现的季节。(也就是根据观察状态序列,如何判断季节)。在语音识别中也有同样的应用。解决该问题比较经典的算法是:前向-后向算法。前向---后向算法(Forward-Backward,简称为F-B算法)是用来计算给定一个观察值序列以及一个模型时,由模型λ=(π,A,B)产生出O的概率。前向算法:前向算法即按输出观察值序列的时间,从前向后递推计算输出概率。可有下面的递推公式计算得到:(1)初始化(2)递推公式(3)最后结果后向算法:与前向算法类似,后向算法即按输出观察值序列的时间,从后向前递推计算输出概率的方法。可由下面的递推公式计算得到:(1)初始化(2)递推公式(3)最后结果问题二:给定观察序列O=O1,O2,…OT以及模型λ,如何选择一个对应的状态序列S=q1,q2,…qT,使得S能够最为合理的解释观察序列O?解决该问题的经典算法:维特比(Viterbi)算法Viterbi以它的发明者名字命名,正是这样一种由动态规划的方法来寻找出现概率最大的隐藏状态序列(被称为Viterbi路径)的算法。所求的Q应当在某个准则下是“最优”的,因此也称Q为最优路径,解码问题即是确定最优路径的问题。目标:给定一个观察序ToooO21)|(MOP1)1(00)(0j)1(jitijijttobaij)()()(1Tt,,2,1)()/(NMOPT1)(NT0)(jT)(Njjtijijttobaji)()()(111,,1,TTt)1()()/(011iNiiMOP列和HMM模型,如何有效选择“最优”状态序列,以“最好地解释”观察序列。最优也就是使得该状态序列取得的概率最大。Viterbi算法可以叙述如下:(1)初始化(2)递推公式(3)最后结果在这个递推公式中,每一次使最大的状态组成的状态序列就是所求的最佳状态序列。问题3:问题3:如何调整模型参数λ=(π,A,B),使得P(O|λ)最大?解决问题3的经典方法是:Baum-Welch算法(模型训练算法)。这是最难的HMM应用。也就是根据观察序列和其代表的隐状态,生成一个三元组HMM(,A,B)。使这个三元组能够最好的描述我们所见的一个现象规律。这个算法实际上是解决HMM训练的,即HMM参数估计问题的。或者说,给定一个观察值序列,该算法能确一个λ=(π,A,B),使概率P最大。Baum-Welch算法利用递归的思想,使概率P局部放大,最后得到优化的模型参数。下面给出利用Baum-Welch算法进行HMM训练具体步骤:•1)适当地选择和的初始值。一般情况下可以按如下方式设定:a)给予从状态转移出去的每条弧相等的转移概率;b)给予每一个输出观察符号相等的输出概率初始值;并且每条弧上给予相同的输出概率距阵;1)1(00)(0j)1(j)()()(1maxtijijtitobajj)()/,(maxNMOSPTTt,,2,1Nji,,2,1,)(jtToooO,,,212)给定一个(训练)观察值符号序列,,由初始模型第三章HMM的应用应用一:人脸识别1.人脸检测(FaceDetection),就是从各种不同的场景中检测出人脸的存在并确定其位置。这方面的研究主要收光照,噪声,面部倾斜度以及各种各样的遮挡的影响。2.人脸表征(FaceRepresentation),就是在采取某种表示方法表示检测出的人脸和数据库中的已知人脸。通常的表示方法有几何特征,代数特征,固定特征模版,特征脸,云纹图等。3.人脸鉴别(FaceIdentification),就是所说的“人脸识别”,将待识别的人脸与数据库中的已知人脸比较,得出相关信。这个过程是ToooO,,,21选择适当的人脸表征方式与匹配策略。整个识别系统的构造与人脸的表征方式密切相关。4.表征姿态分析(ExpresssionGestureAnalysis),就是对待识别人脸的表情或者姿态信息进行分析,对其进行分类。采用HMM模型需要训练和识别两个部分,训练就是HMM建模过程,每个人的脸谱都有其个人特征,同一个人的脸不同拍摄条件下存在差异,但空间结构却是具有稳定的相似共性,从上到下为前额,眼睛,鼻子,嘴和下巴5部分组成。人脸的个人特征首先表现在上述组成部分形状及其相互连接关系的不同,即可用一个一维HMM模型表示,人脸5个部分几何特征对应HMM的状态序列,状态出现及其转移可用模型中概率矩阵描述。对一既定人脸,对应的HMM应当是唯一的人脸识别模型研究工作任务是通过分析已收集的人脸图像来分析和建立其HMM模型。如下图3.1所示图3.1人脸识别框图HMM建模训练和人脸识别工作流程:1.对图像进行采样,进行图像预处理2.划定在人脸区域,得到观察向量序列3.初始化HMM,确定HMM的状态数N和观察向量维数4.迭代计算初始HMM参数。首先,图像被统一分割,每部分对应HMM一个状态,然后上述的分割被Viterbi分割代替。这一过程输出是一个初始的HMM模型,用做下一步重估HMM参数输入。5.使用Baum-Welch方法对HMM模型参数进行重估。根据训练图像的观察向量,HMM参数将被调整到一个局部极大值。这个过程的输出即为人脸数据库中人脸图像最终HMM模型。应用二:语音识别隐马尔可夫模型(HMM),作为语音信号的一种统计模型,今天正在语音处理各个领域中获得广泛的应用。由于Bell实验室Rabiner等人在80年代中期对HMM的深入浅出的介绍,使HMM为世界各国从事语音信号处理的研究人员所了解和熟悉,进而成为公认的一个研究热点。近几十年来,隐马尔可夫模型技术无论在理论上或是在实践上都有了许多进展。其基本理论和各种实用算法是现代语音识别等的重要基础之一。HMM在语音识别中的应用和其他传统的模式匹配方法差不多。成功的使用HMM算法包括一下步骤:1.定义一个用来建模的L声音类的集合。例如音素或词汇,定义声音类V={v1,v2,..,v3};2.对于每一个类,积累一定量的已知的标记语音集合。3.在训练集合的基础上,解决估计问题,为每个类Vi获取一个最好的模型λi.4.在认识的过程中,对每个未知观察序列O估计Pr(O|λi)(i=1,2,…,L)),并为每个类Vi确定产生O的语音.其满足:Pr(O|λi)=Pr(O|λi)。本文将不详细地描述如何实现一个HMM识别器。感兴趣的读者可以阅读Jelinek,Bahl,Mercer(1975)及Levinson,Rabiner,Sondhi(1983)的文章。参考文献:[1]B.H.Juang,L.R.Rabiner,用隐马尔科夫进行语音识别语言语音研究所,Bell实验室MurrayHill,NJ07974[2]罗双虎,欧阳为民.基于隐Markov模型的文本分类[J].计算机工程与应用,2007,43(30):179-181.[3]胡峰松,张茂军,邹北骥等,基于HMM的单样本可变光照、姿态人脸识别[J].计算机工程与应用,2009,07.[4]张璐,一种HMM的学习方法,西南交通大学硕士论文,2007。[5]杨国亮,王志良等,基于改进MMI的HMM训练算法及其在面部表情识别中的应用,北京科技大学学报,2007,04.[6]刘正义,基于HMM的人脸检测及识别系统应用研究,西南交通大学研究生论文,2003.[7]王志堂,蔡淋波,隐马尔可夫模型(HMM)及其应用,湖南科技学报,2009.04.[7]代毅,肖国强,宋刚,隐马尔可夫后处理模型在视频人脸识别中的应用,计算机应用,2010.04[8]赵栋,基于HMM的人脸识别研究与实现,北京化工大学研究生论文,
本文标题:HMM
链接地址:https://www.777doc.com/doc-5792417 .html