隐马尔科夫模型

1、马尔科夫过程

    马尔可夫过程的定义:
⑴设  是一个随机过程,如果在  在  时刻所处的状态为已知时,与它在时刻  之前所处的状态无关,则称具有马尔可夫性。 
⑵设  的状态空间为S,如果对于任意的n≧2,任意的  ,在条件  下,X(tn)的条件分布函数恰好等于在条件  下的条件分布函数,即

则称 为马尔可夫过程。

2、马尔科夫链

     马尔可夫链(Markov Chain),描述了一种状态序列,其每个状态值取决于前面有限个状态。马尔可夫链是具有马尔可夫性质的随机变量的一个数列。这些变量的范围,即它们所有可能取值的集合,被称为“状态空间”,而  的值则是在时间n的状态。如果  对于过去状态的条件概率分布仅是  的一个函数,则
    这里x为过程中的某个状态。上面这个恒等式可以被看作是马尔可夫性质。

3、马尔科夫模型

    隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数。然后利用这些参数来作进一步的分析,例如模式识别。
    隐马尔可夫模型是马尔可夫链的一种,它的状态不能直接观察到,但能通过观测向量序列观察到,每个观测向量都是通过某些概率密度分布表现为各种状态,每一个观测向量是由一个具有相应概率密度分布的状态序列产生。所以,隐马尔可夫模型是一个双重随机过程----具有一定状态数的隐马尔可夫链和显示随机函数集。自20世纪80年代以来,HMM被应用于语音识别,取得重大成功。到了90年代,HMM还被引入计算机文字识别和移动通信核心技术“多用户的检测”。HMM在生物信息科学、故障诊断等领域也开始得到应用。

数学之美3–隐含马尔科夫模型在语言处理中的应用

此博文包含图片 (2009-02-18 13:04:02)转载▼
标签: google黑板报 数学之美 数学模型 马尔科夫模型 it
2006年4月17日 上午 08:01:00
发表者:吴军,Google 研究员

前言:隐含马尔可夫模型是一个数学模型,到目前为之,它一直被认为是实现快速精确的语音识别系统的最成功的方法。复杂的语音识别问题通过隐含马尔可夫模型能非常简单地被表述、解决,让我不由由衷地感叹数学模型之妙。

自 然语言是人类交流信息的工具。很多自然语言处理问题都可以等同于通信系统中的解码问题 – 一个人根据接收到的信息,去猜测发话人要表达的意思。这其实就象通信中,我们根据接收端收到的信号去分析、理解、还原发送端传送过来的信息。以下该图就表 示了一个典型的通信系统:

数学之美3–隐含马尔科夫模型在语言处理中的应用

其中 s1,s2,s3…表示信息源发出的信号。o1, o2, o3 … 是接受器接收到的信号。通信中的解码就是根据接收到的信号 o1, o2, o3 …还原出发送的信号 s1,s2,s3…。

其 实我们平时在说话时,脑子就是一个信息源。我们的喉咙(声带),空气,就是如电线和光缆般的信道。听众耳朵的就是接收端,而听到的声音就是传送过来的信 号。根据声学信号来推测说话者的意思,就是语音识别。这样说来,如果接收端是一台计算机而不是人的话,那么计算机要做的就是语音的自动识别。同样,在计算 机中,如果我们要根据接收到的英语信息,推测说话者的汉语意思,就是机器翻译; 如果我们要根据带有拼写错误的语句推测说话者想表达的正确意思,那就是自动纠错。

那么怎么根据接收到的信息来推测说话者想表达的意思呢?我们可以利用叫做”隐含马尔可夫模型” (Hidden Markov Model)来解决这些问题。以语音识别为例,当我们观测到语音信号 o1,o2,o3 时,我们要根据这组信号推测出发送的句子 s1,s2,s3。显然,我们应该在所有可能的句子中找最有可能性的一个。用数学语言来描述,就是在已知 o1,o2,o3,…的情况下,求使得条件概率
P (s1,s2,s3,…|o1,o2,o3….) 达到最大值的那个句子 s1,s2,s3,…

当然,上面的概率不容易直接求出,于是我们可以间接地计算它。利用贝叶斯公式并且省掉一个常数项,可以把上述公式等价变换成

P(o1,o2,o3,…|s1,s2,s3….) * P(s1,s2,s3,…)
其中
P(o1,o2,o3,…|s1,s2,s3….) 表示某句话 s1,s2,s3…被读成 o1,o2,o3,…的可能性, 而
P(s1,s2,s3,…) 表示字串 s1,s2,s3,…本身能够成为一个合乎情理的句子的可能性,所以这个公式的意义是用发送信号为 s1,s2,s3…这个数列的可能性乘以 s1,s2,s3…本身可以一个句子的可能性,得出概率。

(读者读到这里也许会问,你现在是不是把问题变得更复杂了,因为公式越写越长了。别着急,我们现在就来简化这个问题。)我们在这里做两个假设:

第一,s1,s2,s3,… 是一个马尔可夫链,也就是说,si 只由 si-1 决定 (详见系列一);
第二, 第 i 时刻的接收信号 oi 只由发送信号 si 决定(又称为独立输出假设, 即 P(o1,o2,o3,…|s1,s2,s3….) = P(o1|s1) * P(o2|s2)*P(o3|s3)…。
那么我们就可以很容易利用算法 Viterbi 找出上面式子的最大值,进而找出要识别的句子 s1,s2,s3,…。

满足上述两个假设的模型就叫隐含马尔可夫模型。我们之所以用”隐含”这个词,是因为状态 s1,s2,s3,…是无法直接观测到的。

隐 含马尔可夫模型的应用远不只在语音识别中。在上面的公式中,如果我们把 s1,s2,s3,…当成中文,把 o1,o2,o3,…当成对应的英文,那么我们就能利用这个模型解决机器翻译问题; 如果我们把 o1,o2,o3,…当成扫描文字得到的图像特征,就能利用这个模型解决印刷体和手写体的识别。

P (o1,o2,o3,…|s1,s2,s3….) 根据应用的不同而又不同的名称,在语音识别中它被称为”声学模型” (Acoustic Model), 在机器翻译中是”翻译模型” (Translation Model) 而在拼写校正中是”纠错模型” (Correction Model)。 而P (s1,s2,s3,…) 就是我们在系列一中提到的语言模型。

在利用隐含马尔可夫模型解决语言处理问题前,先要进行模型的训练。 常用的训练方法由伯姆(Baum)在60年代提出的,并以他的名字命名。隐含马尔可夫模型在处理语言问题早期的成功应用是语音识别。七十年代,当时 IBM 的 Fred Jelinek (贾里尼克) 和卡内基·梅隆大学的 Jim and Janet Baker (贝克夫妇, 李开复的师兄师姐) 分别独立地提出用隐含马尔可夫模型来识别语音,语音识别的错误率相比人工智能和模式匹配等方法降低了三倍 (从 30% 到 10%)。 八十年代李开复博士坚持采用隐含马尔可夫模型的框架, 成功地开发了世界上第一个大词汇量连续语音识别系统 Sphinx。

我 最早接触到隐含马尔可夫模型是几乎二十年前的事。那时在《随机过程》(清华”著名”的一门课)里学到这个模型,但当时实在想不出 它有什么实际用途。几年后,我在清华跟随王作英教授学习、研究语音识别时,他给了我几十篇文献。 我印象最深的就是贾里尼克和李开复的文章,它们的核心思想就是隐含马尔可夫模型。复杂的语音识别问题居然能如此简单地被表述、解决,我由衷地感叹数学模型 之妙。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值