加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

隐马尔可夫模型(HMM)导论  原文及翻译

(2010-12-27 15:07:55)
标签:

隐马尔可夫

hmm

语音

识别

模型

校园

分类: 各类归结

很久之前的东西了,但鉴于在用的大学教材也有70年代的,何况发端总是一样的,把这篇译文贴出来,许能慰藉如那时的我的状态的人们。

仅翻译了 An introduction to hidden Markov models 的概述和定义部分。

---------------------------------

原文:Rabiner L.An introduction to hidden Markov models[J].IEEE ASSP Magazine,1986,3(1):4—8.

http://s6/middle/5d054effh985f1da615e5&690 原文及翻译" TITLE="隐马尔可夫模型(HMM)导论  原文及翻译" />

http://s11/middle/5d054effh985f20de25fa&690 原文及翻译" TITLE="隐马尔可夫模型(HMM)导论  原文及翻译" />

http://s2/middle/5d054effh985f2471a041&690 原文及翻译" TITLE="隐马尔可夫模型(HMM)导论  原文及翻译" />

http://s7/middle/5d054effh985f26d40de6&690 原文及翻译" TITLE="隐马尔可夫模型(HMM)导论  原文及翻译" />

http://s12/middle/5d054effh985f3125fe4b&690 原文及翻译" TITLE="隐马尔可夫模型(HMM)导论  原文及翻译" />

译文:

 

隐马尔可夫模型导论

马尔可夫链的基础理论已被数学家和工程师知晓近80年,但仅在过去十年中才被明确用于语音处理。之前基于马尔可夫链的语音模型未得到开发的一个主要原因是,缺乏一种优化马尔可夫模型参数的方法,使其符合观测到的信号图样。这种方法在20世纪60年代末被提出,并马上在一些研究机构中被用于语音处理。马尔可夫建模技术在理论和实践上的不断完善,极大地提升了这种方法,使这些模型得到了广泛应用。本篇指导性文字的目的在于给出对马尔可夫模型理论的介绍,并阐明其如何应用于语音识别问题。

概述

假设你面临如下问题。一个真实世界中的过程产生一系列可观测的符号。符号可以是离散的(扔硬币实验的结果、从一个有限字母表中选出的字符、从密码表中选出的量化矢量等)或连续的(语音样本、自相关向量、线性预测系数向量等)。你的任务是建立一个信号模型,解释和描述这些观测符号的出现。如果这样一个信号模型可得,那么它之后就可用于识别或辨认其它观测数据序列。

攻克这样一个问题,必须做出一些在信号与系统理论指导下的基本决定。例如,必须决定这些模型的形式,线性或非线性,时变或时不变,确定或随机。根据这些决定,以及其他信号处理的注意事项,一些可能的信号模型得以构造。

为确定思想,把一个纯正弦波作为模型。如果有理由相信,观测符号是从纯正弦波而来,那么所有需测的值为振幅、频率、也可能包括相位,则可得出解释观测符号的精确模型。

下面考虑一种稍复杂些的信号——即噪声中嵌入的正弦波。信号的噪音部分使建模问题更加复杂,因为为了正确估计正弦波参数(振幅、频率、相位),必须考虑到噪声部分的特点。

在以上例子中,已经假定信号的正弦部分是平稳的——即不随时间变化的。这未必是一个可实现的假设。例如,如果未知过程产生了变化幅度的正弦波,那么显然是一个非线性模型,比如振幅调制,可能更为适合。同样,如果假设是正弦波的频率而不是振幅是变化的,那么频率调制模式可能是最合适的。

线性系统模型

以上例子包含的概念在经典通信理论中已经得到很好的研究。但现实世界中过程的变化和种类不止如此。线性系统模型把观测符号作为由一个适当信源激励线性系统得到的输出,为信号建模构成另一系列重要的过程,并已被证明适用于各种各样的应用。例如,语音信号的“瞬时”片段,可以作为基本由一个单位频谱包络构成的适当信源激励全极点滤波器得到的输出而有效建模。于是在这种情况下,信号建模技术涉及到线性滤波器系数的确定,在某些情况下则是激励参数。显然,其他类型的频谱分析也归为这一类。

可以通过允许滤波器系数或激励参数时变,进一步将信号的时间变化转换成线性系统模型。事际上,不考虑这种时间变化,许多现实世界的过程就不能被有效建模。语音信号是这种过程的一个例子。有几种方法来解决时变信号的建模问题。

如上所述,在“瞬时”期间,一些物理信号,如语音,可以作为一个有适当激励的简单线性时不变系统有效建模。

标明过程随时间变化的性质的最简方法是,把它看做更小的“瞬时”片段的直接串联,每个片段单独由一个线性系统模型表示。换言之,整个模型是符号的同步序列,模型中每个符号是表示过程中一个小片段的线性系统模型。在某种意义上,这种方法是把观测信号用信号自身的代表值(或这些信号某些适当的平均数集,如果有多种观测值的话)建模。

时变过程

用上述办法建模时变过程,是假定每个这样的观测瞬时片段是一个单位的预先选定的区间。然而总的来说,并不存在一个确切的步骤决定该是哪些单位时间,既使时不变假设成立,又使瞬时线性系统模型(以及串联模式)有意义。在大多数物理系统中,瞬时区间被经验性地确定。当然在很多过程中,人们既不预期过程的属性随每个单位分析区间同步改变,除某些情况也没观测到每个单位间的剧烈变化。对相邻瞬时模型和时间变化处理之间的关系不作进一步假设,作为观测信号中的“典型”现象,多多少少是上述直接串联技术的主要特征。这种信号建模的模板方法,已被证明相当有用,并已成为各种各样的语音识别系统的基础。

在这一点上,有一个很好的怀疑理由,上述方法虽有用,却不一定是最有效的技术(在计算、存储、参数等方面),只要涉及到代表值。许多真实世界的过程似乎明显表现为相对连续的变化;除了轻微的波动,过程的属性通常是平稳持续的,在一定的时期内(或若干上述区间单位),再在某些情况下,改变(逐步或快速)为另一种属性。如果可以先确定这些表现相对平稳的片段,更有效建模的机会就可被利用,某种意义上它倾向于假定每个平稳期内的时间变化是统计学上的。在信号的每个平稳、或者说表现良好的部分内,利用一种常见的瞬时模型可得到更有效的代表值,以及这样的一个片段如何演变为下一个的一些表征。这就是隐马尔可夫模型(HMM)的由来。显然,必须解决三个问题:1)如何确定这些平稳的、或者说表现特殊的片段,2)如何描述这些片段“连续”演变的性质,以及3)应为这些片段选择何样典型或共同的瞬时时间模型。隐马尔可夫模型在概率统计的框架下成功地处理了这些问题。

本文的目的就是解释何为隐马尔可夫模型、为什么它适用于某类问题、以及如何实际使用它。在下一节中,通过一些简单的掷硬币的例子来说明隐马尔可夫模型,并概述与建模技术相关的三个基本问题。然后在第三节中讨论如何解决这些问题。不会将一般性讨论引向任何一个具体问题,但在本文的最后将借几个语音识别的例子说明HMM如何使用。

隐马尔可夫模型定义

HMM是一个双重随机过程,内在随机过程不可见(所谓“隐”),只能通过另一个产生一系列可见符号的随机过程观测到。用以下掷硬币的例子来说明HMM

掷硬币的例子

为理解HMM的含义,考虑如下简单例子。你在一个有遮挡(比如窗帘)的房间里,看不到它后面发生了什么。在遮挡的另一侧,有人在用一个(或多个)硬币做投掷实验。这个人不会告诉你他具体在做什么;他只告诉你每次扔硬币的结果。这样就有一系列隐藏的硬币投掷实验,而你只观测到这些扔硬币的结果,也就是说

O = H H T HTTHHT

O1O2O3…………OT

其中H代表正面,T代表反面。

http://s16/bmiddle/5d054effh98609447e54f&690 原文及翻译" />

给出以上实验后,问题就是如何建立一个HMM来解释观测到的这一系列正面和反面。图1a给出了一个可能的模型。它叫做“1公平硬币”模型。此模型中有两个状态,但每个状态只和正面或反面有关。观测序列独立定义状态,因此这个模型不是隐藏的。它表示了“公平掷硬币”,因为在一个正面(或反面)后出现一个正面(或反面)的概率为0.5;因此当前观测值没有倾向性。这是一个退化模型,显示了像公平掷硬币这样的独立试验怎样可解释为一系列顺序事件。当然,如果实际上在遮挡后面的那个人在独立、公平地扔一个硬币,这个模型可以很好地解释它的结果。

1b给出了可解释掷硬币观测结果序列的第二种可能的HMM。它称为“2公平硬币”模型。此模型中也有两个状态,但每个状态都不唯一与正面或反面相关。每个状态中正面(或反面)的概率为0.5。离开(或保持)每个状态的概率也是0.5。这样,在此情况下,可以将每种状态和一个公平的(无倾向)硬币相联系。虽然离开或保持每种状态的概率都是0.5,但2公平硬币模型的可观测输出序列统计值是独立于状态转移的,这一点应能令读者信服。这样的原因是,模型是隐藏的(即不知道在每次观测中具体是那个公平硬币(状态)导致了观测到的正面或反面),却本质上区别于(统计意义上)图1a1公平硬币模型。

1c1d表示了另两种可能的HMM,可解释观测到的正面反面序列。图1c的模型,称之为2倾向硬币模型,它有两个状态(对应于两个不同的的硬币)。状态1中,硬币严重倾向于出正面。状态2中,硬币严重倾向于出反面。状态转移的概率均为0.5。这个2倾向硬币模型是一个区别于以上讨论的两个模型的隐马尔可夫模型。有趣的是,读者应能使自己相信,图1cHMM观测序列在长时间统计上和图1a、图1b模型的是相同的。如果遮挡后所发生的如下所述,这个模型就非常合适。这个人有三个硬币,一个是公平的,两个如图1c描述的那样是倾向的。这两个倾向硬币分别与公平硬币的两面相关。为报告每次不可见掷硬币的结果,遮挡后的人先扔公平硬币,来决定用哪个倾向硬币,然后扔选出的那个倾向硬币从而得到结果。有了这个模型,就能考虑并解释上述微妙的特征变化(即扔倾向硬币)。

1d模型称为3倾向硬币模型,有三个状态(对应三个不同的的硬币)。状态1中硬币略倾向于出正面;状态2中硬币严重倾向于出反面;状态3中硬币略倾向于出反面。图1d中没有状态转移概率的指定值;显然由这样模型产生的观测序列,其变化严重受转移概率影响。(读者为确信这一点,可考虑两个极端的例子,即保持在状态3的概率或极大(>0.95)或极小(<0.5)。由于状态3对应的硬币严重倾向,从这两种极端情况中可得到大不相同的序列统计。)至于2倾向硬币模型,建立对应于这种模型的遮挡后真实情景,读者自己应不难得出。

从掷硬币实验如何通过HMM建模的讨论中得到几个要点。首先注意到,建模程序中最难的部分之一是,决定模型的大小(状态的个数)。没有先验信息的情况下,通常难以作出这种决定,设置最适当的模型大小前还要涉及实验和错误。以上插图中止步于3硬币模型,尽管这个模型可能还是太小了。如何确定模型中真正需要多少硬币(状态)?问题的答案涉及到一个更大的问题,即如何选择模型参数(状态转移概率、每个状态中正面和反面的概率)来优化模型,以使其最合理地解释输出观测序列。在“HMM三个问题的解决”一节中将尝试回答这些问题,这也是成功应用隐马尔可夫模型解决现实世界问题的关键。最后一点涉及观测序列的大小。如果只限于一个小的有限观测序列,就可能无法可靠地估计优化模型的参数。(考虑实际用了10个硬币却只给出一组50-100个观测值的情况。)因此在某种意义上,根据已有的模型训练数据的量,某些HMM可能无法统计上地、可靠地不同。

HMM的参数

现在解释本文讨论的这种HMM的参数及机制:

为确定想法,考虑图2的“缸球”模型。现有N个缸,每个都装满了大量彩球。球有M种可能的颜色。观测序列是这样产生的:首先从N个缸中选择一个(根据初始概率分布),从这第一个缸中选一个球,记录其颜色,放回球,然后根据当前缸对应的转移概率分布选一个新缸。这样一个典型的观测序列可能是:

http://s8/middle/5d054effh9860901208c7&690 原文及翻译" TITLE="隐马尔可夫模型(HMM)导论  原文及翻译" />

http://s7/middle/5d054effh986097b2fd46&690 原文及翻译" TITLE="隐马尔可夫模型(HMM)导论  原文及翻译" />

现在正式为离散观测结果的HMM定义以下模型符号:

 

T=观测序列长度(计时时刻总数)

N=模型中状态(缸)的数目

M=观测符号(颜色)的数目

Q={q1q2,…,qN},状态(缸)

V={v1v2,…,vM},一组离散、可能的符号观测结果(颜色)

A={aij}aij=Pr(qj at t+1| qi at t),状态转移概率分布

B={bj(k)}bj(k)=Pr(vk at t| qj at t),状态j的观测符号概率分布

π={πi},πi=Pr(qi at t=1),初始状态分布

 

利用这个模型,一个观测序列O=O1O2,…,OT产生如下:

 

1.根据初始状态分布π选择一个初始状态i1

2.t=1

3.根据符号状态it的概率分布bit(k)选择Ot

4.根据状态it的状态转移概率分布{ait it+1}选择it+1it+1=12,…,N

5.t=t+1;若t<T,返回步骤3;反之,终止程序。

 

 

集中用符号λ=(AB,π)来表示一个HMM。一个HMM的参数包括可选状态数N,离散符号数量M(本文末将简要探讨连续分布的HMM),以及三个概率分布AB、π的参数。如果尝试指出AB、π三种分布的相对重要性,那么显然大多数应用中π是最不重要的(它代表初始条件),B是最重要的(因其直接关系到观测符号)。某些问题中,分布A也是相当重要的(回想先前讨论的3倾向硬币模型),而对其它问题来说(例如孤立词的识别问题)它就不那么重要了。

HMM的三个问题

上节讨论的HMM形式给出后,要想把它应用于实际问题,有三个重要问题必须解决。问题如下:

 

问题1——给出观测序列O=O1O2,…,OT以及模型λ=(AB,π),如何计算观测序列概率Pr(O|λ)

问题2——给出观测序列O=O1O2,…,OT,如何选择一个从某种目的角度上的最优状态序列I=i1i2,…,iT

问题3——如何调整模型参数λ=(AB,π)使Pr(O|λ)最大化。

 

问题1为评价问题:给定模型及一系列观测符号,如何计算此模型产生此列观测符号的概率。这个问题也可看做:给定模型及观测序列,如何对模型“打分”或评价。后一个观点非常有用。如果考虑有几个竞争模型的情况(例如,图1中掷硬币的4个模型),解决了问题1,就能选出最匹配观测结果的模型。

问题2为得出模型隐藏部分即状态序列的问题。这是个典型的建模问题。通常尽可能用最优标准来解决这个问题。不幸的是,正如将看到的,有数个可能的最优标准可用,因而标准的选择对进一步用于发现状态序列有重要作用。得出状态序列的一个典型应用是了解模型的结构,在个别状态中获得平均统计量、变化等。

问题3为优化模型参数使之能最合理解释观测序列产生的问题。在这种情况下因其用于模型训练,故被称为序列训练。在HMM的大多数应用中,训练问题是个关键,它能使模型参数最好地适应训练观测数据——即为实际现象建立最佳模型。

为确定想法,考虑如下语音识别计划。要为V开头词汇表中的每个单词设计一个N状态的HMM。用矢量量化技术(VQ)把语音信号表示为一系列从M开头词汇VQ码表衍生而得的码表。然后开始序列训练,词汇表中的每个词都由大量重复的念出的词组成(不止一个讲话人)。用问题3的解法来为每个词的模型得到优化模型参数。为理解模型状态的物理意义,用问题2的解法将每个单词训练的序列分成部分纳入各个状态。学习的结果可使模型进一步改善。后面的章节中将讨论这个问题。识别一个未知单词最后要做的是,用问题1的解法,根据已有的测试观测序列,为每个词的模型打分,然后选出单词模型得分最高的那个词。

现在提出HMM三个基本问题的形式数学解法。此外将看到,这三个问题可通过概率框架联系在一起。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有