发表者:吴军,Google 研究员
前言:隐含马尔可夫模型是一个数学模型,到目前为之,它一直被认为是实现快速精确的语音识别系统的最成功的方法。复杂的语音识别问题通过隐含马尔可夫模型能非常简单地被表述、解决,让我不由由衷地感叹数学模型之妙。
自然语言是人类交流信息的工具。很多自然语言处理问题都可以等同于通信系统中的解码问题 -- 一个人根据接收到的信息,去猜测发话人要表达的意思。这其实就象通信中,我们根据接收端收到的信号去分析、理解、还原发送端传送过来的信息。以下该图就表示了一个典型的通信系统:
其中 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。
我最早接触到隐含马尔可夫模型是几乎二十年前的事。那时在《随机过程》(清华“著名”的一门课)里学到这个模型,但当时实在想不出它有什么实际用途。几年后,我在清华跟随王作英教授学习、研究语音识别时,他给了我几十篇文献。 我印象最深的就是贾里尼克和李开复的文章,它们的核心思想就是隐含马尔可夫模型。复杂的语音识别问题居然能如此简单地被表述、解决,我由衷地感叹数学模型之妙。
固定链接 |
分享到:
相关推荐
3. **隐含马尔可夫模型(HMM)**:HMM在语音识别和自然语言处理中有着广泛应用,用于建模序列数据,如词性标注和自动文摘。 4. **信息度量**:信息论中的熵、互信息等概念帮助我们量化信息的价值和不确定性,这对于...
【数学之美系列】是由Google研究员吴军撰写的一系列文章,主要探讨了数学在信息处理、自然语言处理(NLP)和搜索引擎技术中的应用。该系列文章涵盖了多个关键知识点,包括统计语言模型、中文分词、隐含马尔可夫模型...
在有向无环图中,隐马尔可夫模型可以表示为一系列随机变量X1, X2, X3, ..., Xn, Xn+1的链状结构。每个变量是这个链状结构的一部分,并且隐含着一个条件独立性的假设。 在此基础上,我们可以引入条件独立性声明的...
通过上述知识点的介绍,我们可以看出,《数学之美》系列不仅深入浅出地介绍了统计语言模型、中文分词及隐含马尔可夫模型等关键技术,还讨论了它们在自然语言处理领域的实际应用,为读者提供了丰富的理论知识和实践...
#### 知识点三:隐含马尔可夫模型在语言处理中的应用 隐含马尔可夫模型(HMM)是一种统计模型,常用于序列数据的建模,如语音识别和文本分析。在语言处理中,HMM通过观察序列(如单词序列)来推断隐藏的状态序列...
书中提到了“Probabilistic Models of Pronunciation and Spelling”以及“N-grams”,这些都体现了概率模型在处理发音、拼写以及统计语言模型中的应用。 知识点六:有限状态转换器(FST) 有限状态转换器是一种...
《数学之美》系列文章通过一系列具体的案例,展示了数学工具在信息检索和自然语言处理领域的应用。从统计语言模型到密码学,每一项技术都离不开数学的支持。通过对这些技术的深入了解,不仅能够提高我们解决问题的...
"人工智能-语音识别-韵律信息在汉语语音识别中的应用" 语音识别是人工智能领域中的一种关键技术,它可以使计算机识别和理解人类的语言,具有广泛的应用前景。在汉语语音识别中,韵律信息发挥着至关重要的作用,本文...
隐马尔可夫模型为序列标注问题提供了一个有效的数学框架,特别是在POS标注和NER等自然语言处理任务中,通过模型的三个基本问题——评估、解码和学习,可以对文本数据进行自动化的词性标注和实体识别。在实际应用中,...
文章的内容涉及了统计学、概率论以及机器学习中的核心概念,通过深入讨论Gamma分布、Beta分布、Dirichlet分布、MCMC、Gibbs采样、主题模型等,将LDA模型的数学原理、实现方法以及在自然语言处理中的应用以八卦的形式...
LDA是一种在自然语言处理(NLP)和文本挖掘中广泛使用的统计模型,用于发现大规模文档集或语料库中隐藏的主题信息。接下来,我将对文档内容中涉及的知识点进行详细说明。 首先,LDA数学八卦这一标题暗示了文章将...
例如,在处理中文分词时,我们首先需要定义状态集合、观测集合以及HMM模型的三个基本参数。状态集合通常是所有可能的词汇,观测集合是文本中的单个汉字或字符。通过训练和概率计算,可以预测出最有可能的分词结果。 ...
HMM(隐马尔可夫模型)是一种统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。在文档中,详细推导了HMM模型三大问题的公式,并解释了相关的概率计算方法。以下是详细的知识点介绍: 1. HMM的三个基本假设...
1. 马尔可夫假设:在自然语言处理中,马尔可夫假设是指在生成文本时,当前词出现的概率仅仅依赖于其前面的一个或多个词的概率分布,而非整个历史状态。此假设简化了模型的复杂性,便于计算。例如,在bigram模型中,...
- 隐马尔可夫模型(HMM):隐含状态组成的马尔可夫模型,用于解决一系列随机过程中的隐藏状态推断问题。 - HMM的推断:解释如何对隐马尔可夫模型进行推断。 - 过滤:在HMM中进行状态序列推断的一般方法。 - 高斯...
- 将隐马尔可夫模型应用于XML关键字查询的创新性,这为解决传统关键字搜索模型在处理XML数据时的局限性提供了一个新的思路。 - 提出了半结构化关键字查询(SSQ),这种方法不仅关注单个关键字,而且更加注重关键字...