转自 吴军 google
其实我们平时在说话时,脑子就是一个信息源。我们的喉咙(声带),空气,就是如电线和光缆般的信道。听众耳朵的就是接收端,而听到的声音就是传送过来的信号。根据声学信号来推测说话者的意思,就是语音识别。这样说来,如果接收端是一台计算机而不是人的话,那么计算机要做的就是语音的自动识别。同样,在计算机中,如果我们要根据接收到的英语信息,推测说话者的汉语意思,就是机器翻译; 如果我们要根据带有拼写错误的语句推测说话者想表达的正确意思,那就是自动纠错。
那么怎么根据接收到的信息来推测说话者想表达的意思呢?我们可以利用叫做“隐含马尔可夫模型”(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。
分享到:
相关推荐
马可夫链matlab源代码基科夫球 棒球击球顺序优化的马尔可夫链模型 棒球比赛的马尔可夫链模拟,输出给定阵容每场比赛的预期得分,可用于击球顺序优化或比较各种阵容的预期得分输出。 本代码修订了“Markov Chain ...
该软件包含了论文中常用的,传统马尔科夫链与空间马尔可夫链,准备好数据即可一键生成结果,方便快捷。资源中是软件的文档。
马可夫链
实验室马可夫链-不一致
探讨了高阶马尔可夫链模型中周期对极限分布的影响, 分析了高阶模型中多步转移概率矩阵的连通性与链的平稳分布的关系, 证明了高阶马尔可夫链平稳分布的存在性与唯一性条件...
马可夫链matlab源代码
马可夫链matlab源代码OMC 包:降水的发生马尔可夫链模型 OMC 包由两个 Matlab 函数组成:OMC_fit 和 OMC_sim,用于模拟每日降水的发生和强度。 发生遵循可变阶马尔可夫链,强度遵循伽马-伽马混合模型。 该方法遵循...
马可夫链matlab源代码显着性检测通过吸收马尔可夫链与学习转移概率 通过具有学习转移概率的吸收马尔可夫链进行显着性检测(包括代码和映射) 代码来自 Lihe Zhang、Jianwu Ai、Bowen Jiang、Huchuan Lu 和 Xikuui Li...
markov过程 概率分布 马可夫链 概念及应用举例
马可夫链matlab源代码基于准生死 (QBD) 过程的 5G vRAN 控制器模型 此存储库包含适用于 5G vRAN 架构的灵活功能拆分控制器的模型实现。 存储库分为事件驱动模拟器和理论模型的实现。 一旦正在进行的论文完成,将很快...
马可夫链matlab源代码概述 在此存储库中,您将找到适用于 Java、Python、MATLAB、R、Android 和 Hadoop 的 pcStream 算法的实现。 我们建议使用 R 的源代码,因为它具有最新的功能并且组织良好。 什么是pcStream? ...
马可夫链matlab源代码多层/网络分析源 表中的内容 会议会谈 Ginestra Bianconi @ 复杂网络 2017 - Santo Fortunato @ 复杂网络 2017 - , 里昂 在宾厄姆顿大学复杂系统集体动力学中心, Bratislav Misic,麦吉尔大学 ...
马可夫链matlab源代码伯努利擦除信道远程估计 该存储库包含通过伯努利擦除通道连接的两个代理进行远程估计的代码。 我们已经考虑了两种源模型,模型 A 和模型 B。 模型A:具有可数状态空间的对称标量生死马尔可夫链...
报价制作人这是一个Django网络应用程序,可让您使用用于创建生成器的简单UI创建markov链生成器。安装要安装依赖项,请运行pip install -r requirements.txt 用法赶紧跑python manage.py makemigrationspython manage...
本论文主要探讨了共享单车的分配与调度,主要运用马可夫链,题目来自2017年数创杯C题
机器学习思维导图,贝叶斯网络,卷积神经网络与计算机视觉,隐马可夫链,聚类算法,特征工程,多算法组合与模型最优
关于隐马可夫模型的概述,有关搜索和语音识别的基础
马可夫