隐马尔可夫模型导论《A tutorial of hidden markov models and selected applications in speech recognition》

《A tutorial of hidden markov models and selected applications in speech recognition》

——Lawrence R. Rabiner
虽然马尔可夫、隐马尔科夫模型的统计方法在20世纪60年代末和70年代初被首次引入和研究,但在最近几年却越来越流行。出现这种情况有两个重要原因。首先,该模型具有非常丰富的数学结构,因此可以形成广泛应用的理论基础。其次,如果应用得当,这些模型在几个不同的重要应用中都能很好地发挥作用(泛化能力强)。本文试图全面、系统地回顾这类统计模型的理论方面,并说明它们是如何应用于语音机器识别中的选定问题的。

1 Introduction

真实世界的过程通常产生可观察到的输出,这些可以被描述为信号。信号在本质上可以是离散的(例如,来自有限字母表的字符,来自代码本的量化向量,等等),或者在本质上是连续的(例如,语音样本,测量的温度,音乐,等等)。信号源可以是平稳的(即,它的组织特性不随时间而变化),或非平稳的(即,信号性质随时间而变化)。信号可以是纯的(即,完全来自单一信号源)或可被其他信号源(例如噪音)或传输失真、混响等破坏。
一个基本的问题是用信号模型来描述这些真实世界的信号。人们对应用信号模型感兴趣有几个原因。首先,信号模型可以为一个信号处理系统的理论描述提供依据,该系统可以对信号进行处理,从而提供所需的输出量。例如,如果我们有兴趣增强一个被噪声和传输失真破坏的语音信号,我们可以使用信号模型来设计一个系统,可以有效地消除噪声和消除传输失真。信号模型之所以重要的第二个原因是,它们可以让我们从信号源(即,即产生信号的真实世界过程)中学习到很多知识,而不必需要一个实际信号源。特别是当从实际信号源获取信号的成本很高时,这个特性尤其重要。
在这种情况下,有了一个好的信号模型,我们可以模拟源并通过模拟尽可能多地学习。最后,信号模型之所以重要,最重要的原因是它们在实践中往往非常有效,使我们能够以一个有效的方式实现重要的实际系统。如预测系统,识别系统等。
对于使用哪种类型的信号模型来表征给定信号的特性,有几种可能的选择。从广义上讲,可以将信号模型的类型分为确定性模型和统计模型两类。确定性模型通常利用信号的某些已知特性,例如,信号是正弦波,或指数的和,等等。在这些情况下,信号模型的说明通常是直接的;所需要做的就是确定(估计)信号模型参数的值(例如,振幅、频率、正弦波相位、信号的振幅和速率等)。第二类广义信号模型是一组统计模型,在这些模型中,人们试图只描述信号的统计特性。此类统计模型的例子包括高斯过程、泊松过程、马尔可夫过程和隐马尔可夫过程等。统计模型的基本假设是,信号可以很好地描述为一个参数随机过程,并且随机过程的参数可以以一种精确的、定义良好的方式确定(估计)。
在语音处理领域,确定性模型和随机信号模型都取得了良好的应用效果。在本文中,我们将严格关注一种随机信号模型,即隐马尔可夫模型(HMM)。我们将首先回顾马尔可夫链的理论,然后用几个简单的例子将其推广到隐马尔可夫模型。然后我们将重点放在HMM设计的三个基本问题上,(注释:将隐马尔可夫模型的理论方面描述为解决三个基本问题的想法是由IDA(国防分析研究所)的Jack Ferguson提出的,他在演讲和写作中介绍了隐马尔可夫模型。)即:给定一个特定HMM的观测序列的概率(或可能性)的评估;确定模型状态的最佳序列;调整模型参数,以便最好地解释观测到的信号。我们将证明,一旦解决了这三个基本问题,我们就可以将HMMs应用到语音识别中的选定问题。
隐马尔可夫模型理论及其在语音识别中的应用都不是新的。在20世纪60年代末和70年代初,Baum和他的同事[1]-[5]在一系列经典论文中发表了这一基本理论,并被CMU的Baker(6)和IBM的Jelinek及其同事在70年代应用于语音处理。然而,HMMs理论在语音处理领域的广泛理解和应用是近几年才出现的。出现这种情况有几个原因。首先,隐马尔可夫模型的基本理论发表在数学期刊上,这些期刊通常不为研究语音处理问题的工程师所阅读。第二个原因是,该理论最初在语音处理方面的应用并没有为大多数读者提供足够的教程材料来理解该理论并将其应用到自己的研究中。因此,在[14]-[19]中有几篇导论,为许多研究实验室在单独的语音处理应用程序中使用HMMs提供了足够的细节。本教程旨在概述HMMs的基本理论(由Baum和他的同事提出),提供该理论实现方法的实际细节,并描述该理论在语音识别中的一些应用。本文结合了许多原始资料来源的结果,希望为进一步研究这一迷人领域所需的背景知识提供一个单一的资料来源。
本文的组织结构如下。在第二节中,我们回顾了离散马尔可夫链理论,并展示了如何有效地使用隐状态的概念,其中观测是状态的概率函数。我们用两个简单的例子来说明这个理论,即抛硬币和经典的瓮中球系统。在第三节中,我们讨论了HMMs的三个基本问题,并给出了解决这些问题的几种实用技术。在第四部分中,我们讨论了已经研究过的各种类型的HMMs,包括遍历模型和左右模型。在本节中,我们还讨论了各种模型的特征,包括观测密度函数的形式、状态持续时间密度以及选择最优HMM参数值的最优准则。在第五节中,我们讨论了在对HMMs进行推断时出现的问题,包括缩放、初始参数估计、模型大小、模型形式、丢失的数据和多个观测序列等。在第六节中,我们描述了一个使用HMM思想实现的孤立单词语音识别器,并展示了它与其他实现相比的性能。在七节中,我们将第六节中提出的思想扩展到根据词汇表中每个单词的HMMs连接重新编码一串口语单词的问题。在VIl部分,我们简要地概述了HMM的思想是如何应用于大型词汇语音识别器的。第九部分我们总结了全文讨论的观点。

2 离散马尔可夫过程

考虑这样一个系统,它可以在任何时候被描述为处于一组N种不同状态(S1, S2 .,SN)中的一种,如图1所示(为简单起见,其中N = 5)。在离散时间下,系统根据一组与状态相关的概率经历状态变化(可能回到相同的状态)。我们将与状态变化相关的时间瞬间表示为t= 1,2…,我们将t时刻的实际状态表示为qt。通常,对上述系统的完整概率描述需要指定当前状态(t时刻)以及所有之前的状态。对于离散的一阶马尔可夫链的特殊情况,这种概率描述被截断为当前状态和上一个状态,即,Pq = Slq-1-S qt-2 = Sk。. .]= Aq: = S qt-1 = SJ。(1)
此外,我们只考虑(1)的右边与时间无关的那些过程,从而得到状态转移概率aij的集合在这里插入图片描述
状态转移概率具有以下性质:隐马尔可夫模型导论《A tutorial of hidden markov models and selected applications in speech recognition》_第1张图片因为它们服从标准随机约束。
上述随机过程可以称为可观察的马尔可夫模型,因为该过程的输出是每个时刻的状态集,其中每个状态对应一个实际(可观察)事件。请考虑一个简单的三状态马尔可夫天气模型。我们假设一天有一次(例如中午),天气是下面中的一种状态:
1:下雨or下雪
2:多云
3:晴天
我们假设第t天的天气特征是上述三种状态中的一种,状态转移概率矩阵a为:
隐马尔可夫模型导论《A tutorial of hidden markov models and selected applications in speech recognition》_第2张图片
假设第一天(t = 1)的天气是晴天(状态3),我们可以问这样一个问题:接下来7天的天气是“sun-sun-rain-rain-sun-cloud -sun”的概率(根据模型)是多少?描述为,我们将观察序列O定义为O={S3, S3, S3, S1, S1, S3, S2, S3}对应于t= 1,2,…,我们想要确定O的概率,给定模型。这个概率可以表示(和计算)为:
隐马尔可夫模型导论《A tutorial of hidden markov models and selected applications in speech recognition》_第3张图片
我们使用注释(4)来表示初始状态概率。
在这里插入图片描述
我们可以问的另一个有趣的问题(并使用模型来回答)是:如果模型处于已知状态,那么它在该状态下精确停留 d 天的概率是多少?这个概率可以用观测序列的概率来计算:
在这里插入图片描述
考虑到以上模型,也就是:
在这里插入图片描述
pi(d)是状态i持续时间d的(离散)概率密度函数,这种指数持续时间密度是状态持续时间在马尔可夫链中的特征。根据pi(d),我们可以很容易地计算出一种状态下的期望观测次数(持续时间),条件是从该状态开始。隐马尔可夫模型导论《A tutorial of hidden markov models and selected applications in speech recognition》_第4张图片
因此,根据模型,预计连续晴天天数为1/(0.2)= 5;多云时为2.5;下雨时是1.67。

A.扩展到隐马尔科夫

到目前为止,我们已经考虑了马尔可夫模型,其中每个状态对应于一个可观察(物理)事件。这个模型限制性太强,不能适用于许多感兴趣的问题。在本节中,我们扩展了马尔可夫模型的概念,包括观察状态是一个概率函数的情况,即得到的模型是一个双重嵌入的随机过程,其潜在的随机过程是不可观测的(它是隐藏的),但只能通过产生观测序列的另一组随机过程来观测。为了解决这个问题,请考虑下面这个简单的抛硬币游戏模型。
抛硬币模型:假设以下场景。你在一间有屏障(如窗帘)的房间里,透过它你看不见正在发生什么。在另一边是一个人,他正在进行抛硬币(或多枚硬币)的实验。另一个人不会告诉你他到底在做什么;他只会告诉你每次抛硬币的结果。在此基础上,利用一系列正面和反面组成的观察序列,进行了一系列的隐藏硬币抛掷实验;例如,一个典型的观测序列是
隐马尔可夫模型导论《A tutorial of hidden markov models and selected applications in speech recognition》_第5张图片
考虑到上面的场景,我们感兴趣的问题是如何构建HMM来解释(建模)观察到的正面和反面序列。我们面临的第一个问题是决定模型中的状态对应于什么,然后决定模型中应该有多少状态。一种可能的选择是假设只有一枚有偏差的硬币被抛出。在这种情况下,我们可以用一个两状态模型来评估,其中每个状态对应硬币的正面或反面。该模型如图2(a)所示。在这种情况下,马尔可夫模型是可观察到的,对于模型的完整说明,唯一的问题是确定偏差的最佳值(即,例如,正面朝上的概率)。有趣的是,与图2(a)等价的HMM将是退化的1态模型,其中状态对应于单偏硬币。
图2(b)给出了第二种隐马尔可夫模型来解释抛硬币结果的观测序列。在这种情况下,模型中有两种状态,每种状态对应于投掷的不同的、有偏差的硬币。每个状态由正反面的概率分布状态间的状态转移矩阵表示。这个物理模型解释了如何选择状态转换的物理机制本身可以是一组独立的抛硬币游戏,或者其他一些概率问题。
图2©给出了第三种隐马尔可夫模型来解释抛硬币结果的观测序列。该模型对应于使用3个偏置硬币,并根据概率事件从3个偏置硬币中进行选择。隐马尔可夫模型导论《A tutorial of hidden markov models and selected applications in speech recognition》_第6张图片

B.HMM原理

上面的例子让我们很好地了解了什么是HMM,以及如何将它应用到一些简单的场景。现在我们正式定义HMM的原理,并解释模型如何生成观察序列。HMM的特点是:

  1. N,模型中的状态数。虽然状态是隐藏的,但是对于许多实际应用程序来说,模型的状态或状态集往往具有一些物理意义。因此,在抛硬币实验中,每个状态对应一个不同的偏置硬币。一般来说,状态是相互联系的,任何状态都可以从任何其他状态到达(例如遍历模型);然而,我们将在本文的后面看到,状态之间的其他可能的相互联系常常是令人感兴趣的。我们用S= {S1, S2, …, SN}表示一个特定状态, t时刻的状态为qt.
  2. M,每个状态的不同观测符号个数,如,离散字母表大小。在抛硬币实验中,观察符号仅仅是正面或反面。我们用V={v1, V2,,,Vм}表示一组观测符号。
  3. 状态转移概率分布A ={aii}其中
    在这里插入图片描述
    对于一个任何状态可以在一个步骤内到达任何其他状态的特殊情况,我们有aij> 0,对于所有的i,j。对于其他类型的HMMs,我们有一个aij= 0对于一个或多个(i, i)对。
  4. 状态j下观测的符号状态分布B={bj(k)}
    在这里插入图片描述
  5. 初始状态分布:
    在这里插入图片描述
    给定适当的N、M、A、B和初始值,隐马尔可夫模型可用于生成观察序列
    O=O1 O2 …Oт (10)
C.HMMs的三个基本问题

根据上一节的HMM形式,必须解决三个基本问题,才能使模型在实际应用中有用。这些问题如下:
问题1): 给定观测序列O=O1 O2 …Oт,模型r=(A, B, Π),我们如何有效地计算P(O|r),给定模型下观测序列的概率?
问题2):给定观测序列O=O1 O2 …Oт,以及模型A,我们如何选择一个对应的状态序列Q =q1 q2…qt在某种意义上的最优解。
问题3):我们如何调整模型参数入= (A, B,т),使得P(O|r)最大化。

你可能感兴趣的:(隐马尔可夫模型导论《A tutorial of hidden markov models and selected applications in speech recognition》)