新浪博客

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

2010-12-27 15:07阅读:
很久之前的东西了,但鉴于在用的大学教材也有70年代的,何况发端总是一样的,把这篇译文贴出来,许能慰藉如那时的我的状态的人们。
仅翻译了 An introduction to hidden Markov models 的概述和定义部分。
---------------------------------
原文:Rabiner L.An introduction to hidden Markov models[J].IEEE ASSP Magazine,1986,3(1):4—8.
隐马尔可夫模型(HMM)导论 <wbr> <wbr>原文及翻译
隐马尔可夫模型(HMM)导论 <wbr> <wbr>原文及翻译

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

隐马尔可夫模型导论

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

概述

假设你面临如下问题。一个真实世界中的过程产生一系列可观测的符号。符号可以是离散的(扔硬币实验的结果、从一个有限字母表中选出的字符、从密码表中选出的量化矢量等)或连续的(语音样本、自相关向量、线性预测系数向量等)。你的任务是建立一个信号模型,解释和描述这些观测符号的出现。如果这样一个信号模型可得,那么它之后就可用于识别或辨认其它观测数据序列。
攻克这样一个问题,必须做出一些在信号与系统理论指导下的基本决定。例如,必须决定这些模型的形式,线性或非线性,时变或时不变,确定或随机。根据这些决定,以及其他信号处理的注意事项,一些可能的信号模型得以构造。
为确定思想,把一个纯正弦波作为模型。如果有理由相信,观测符号是从纯正弦波而来,那么所有需测的值为振幅、频率、也可能包括相位,则可得出解释观测符号的精确模型。
下面考虑一种稍复杂些的信号——即噪声中嵌入的正弦波。信号的噪音部分使建模问题更加复杂,因为为了正确估计正弦波参数(振幅、频率、相位),必须考虑到噪声部分的特点。
在以上例子中,已经假定信号的正弦部分是平稳的——即不随时间变化的。这未必是一个可实现的假设。例如,如果未知过程产生了变化幅度的正弦波,那么显然是一个非线性模型,比如振幅调制,可能更为适合。同样,如果假设是正弦波的频率而不是振幅是变化的,那么频率调制模式可能是最合适的。

线性系统模型

以上例子包含的概念在经典通信理论中已经得到很好的研究。但现实世界中过程的变化和种类不止如此。线性系统模型把观测符号作为由一个适当信源激励线性系统得到的输出,为信号建模构成另一系列重要的过程,并已被证明适用于各种各样的应用。例如,语音信号的“瞬时”片段,可以作为基本由一个单位频谱包络构成的适当信源激励全极点滤波器得到的输出而有效建模。于是在这种情况下,信号建模技术涉及到线性滤波器系数的确定,在某些情况下则是激励参数。显然,其他类型的频谱分析也归为这一类。
可以通过允许滤波器系数或激励参数时变,进一步将信号的时间变化转换成线性系统模型。事际上,不考虑这种时间变化,许多现实世界的过程就不能被有效建模。语音信号是这种过程的一个例子。有几种方法来解决时变信号的建模问题。
如上所述,在“瞬时”期间,一些物理信号,如语音,可以作为一个有适当激励的简单线性时不变系统有效建模。
标明过程随时间变化的性质的最简方法是,把它看做更小的“瞬时”片段的直接串联,每个片段单独由一个线性系统模型表示。换言之,整个模型是符号的同步序列,模型中每个符号是表示过程中一个小片段的线性系统模型。在某种意义上,这种方法是把观测信号用信号自身的代表值(或这些信号某些适当的平均数集,如果有多种观测值的话)建模。

时变过程

用上述办法建模时变过程,是假定每个这样的观测瞬时片段是一个单位的预先选定的区间。然而总的来说,并不存在一个确切的步骤决定该是哪些单位时间,既使时不变假设成立,又使瞬时线性系统模型(以及串联模式)有意义。在大多数物理系统中,瞬时区间被经验性地确定。当然在很多过程中,人们既不预期过程的属性随每个单位分析区间同步改变,除某些情况也没观测到每个单位间的剧烈变化。对相邻瞬时模型和时间变化处理之间的关系不作进一步假设,作为观测信号中的“典型”现象,多多少少是上述直接串联技术的主要特征。这种信号建模的模板方法,已被证明相当有用,并已成为各种各样的语音识别系统的基础。
在这一点上,有一个很好的怀疑理由,上述方法虽有用,却不一定是最有效的技术(在计算、存储、参数等方面),只要涉及到代表值。许多真实世界的过程似乎明显表现为相对连续的变化;除了轻微的波动,过程的属性通常是平稳持续的,在一定的时期内(或若干上述区间单位),再在某些情况下,改变(逐步或快速)为另一种属性。如果可以先确定这些表现相对平稳的片段,更有效建模的机会就可被利用,某种意义上它倾向于假定每个平稳期内的时间变化是统计学上的。在信号的每个平稳、或者说表现良好的部分内,利用一种常见的瞬时模型可得到更有效的代表值,以及这样的一个片段如何演变为下一个的一些表征。这就是隐马尔可夫模型(HMM)的由来。显然,必须解决三个问题:1)如何确定这些平稳的、或者说表现特殊的片段,2)如何描述这些片段“连续”演变的性质,以及3)应为这些片段选择何样典型或共同的瞬时时间模型。隐马尔可夫模型在概率统计的框架下成功地处理了这些问题。
本文的目的就是解释何为隐马尔可夫模型、为什么它适用于某类问题、以及如何实际使用它。在下一节中,通过一些简单的掷硬币的例子来说明隐马尔可夫模型,并概述与建模技术相关的三个基本问题。然后在第三节中讨论如何解决这些问题。不会将一般性讨论引向任何一个具体问题,但在本文的最后将借几个语音识别的例子说明HMM如何使用。

隐马尔可夫模型定义

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

掷硬币的例子

为理解HMM的含义,考虑如下简单例子。你在一个有遮挡(比如窗帘)的房间里,看不到它后面发生了什么。在遮挡的另一侧,有人在用一个(或多个)硬币做投掷实验。这个人不会告诉你他具体在做什么;他只告诉你每次扔硬币的结果。这样就有一系列隐藏的硬币投掷实验,而你只观测到这些扔硬币的结果,也就是说
O = H H T HTTHHT
O1O2O3…………OT
其中H代表正面,T代表反面。
隐马尔可夫模型(HMM)导论 <wbr> <wbr>原文及翻译
给出以上实验后,问题就是如何建立一个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可能无法统计上地、可靠地不同。

我的更多文章

下载客户端阅读体验更佳

APP专享