基础数学课15-马尔科夫模型

我们研究了多元文法模型,但如果每个状态之间的转移是按照一定的概率进行的,就需要用到隐马尔科夫模型。

之前我们说过,语言模型中有一个马尔科夫假设,其中说,每个词的出现概率和前一个或多个词有关。如果是每个状态的出现概率只和前一个状态有关,这就被称为一阶马尔科夫模型或者马尔科夫链。

最简单的马尔科夫链可以形容为如下

整体的状态转移如下表。

这里我们使用单词来替代上下状态

这里从学校转移到我的概率基本上就是0

那么隐马尔科夫模型就可以给语言识别进行使用。除此之外,在Google公司内部,还有着一个PageRank的链接分析算法,也是基于马尔科夫链。也就是冲浪者从某张页面触发,会从这个页面中的链接选择一个作为下一步的目标,理论上,可以永不停歇的冲浪,一直从图中走下去。

而随机访问中,越是频繁访问的链接,越是重要,所以越有概率被缓存或者打广告。

那么PageRank和马尔科夫链有什么关系,

这里首先是一个web的拓扑图,在这个图上,和马尔科夫的状态转换类似。

在PageRank算法中,假设每个网页的出度都是一定的,比如1/3或者1/2,下个页面从这个页面转移过去的概率只和当前页面有关。满足了基本的一阶马尔科夫假设,除此外PageRank在标准的马尔科夫链之中引入了随机的跳转操作,也就是跳出马尔科夫链。最终形成了一个标准的公式

其中pi 表示第i个页面,mi是pi的入链集合,pi 表示第j个页面,PR(pj)是表示网页的pj的PageRank得分。L(pj)网页pj的出链接数量

除此外 a是用户不进行跳转的概率,N是网页数量。

除此外,我们还可以应用其到语音识别的过程

其主要利用的点是,语言的状态转换是具有概率的。

最经典的案例就是语音识别,利用概率来对语言进行识别的过程。

我们可以将每个等待识别的词来对应马尔科夫的一个状态。

虽然词有发音,但是对应的单词是哪个,计算机无法很好的准确确定,因为在人类语言中具有同音字。

比如,我要等你吗? 这里的吗,机器就需要知道是吗 还是妈

对于这种情况,就需要机器通过上下文进行推断。

这里就好比,机器知道某些信息,但是对于另一些信息并不知道,这些另一部分的信息就是实际该选择的字段。

其中x1 x2 x3是隐藏层

A12 a23是从状态x1 到 状态x2 到x3 的的概率

B11 并是从状态x3到y3的输出概率。

那么这个最终结果的得出,由一系列的条件概率决定的,具体的公式为

这里为了方便理解,我拿一个例子举例。

比如如下的发音

Xiang mu kai fa shi jian

那么这个词组的的状态转移图可能如下

其可能包含 项目 开发 时间 这三个单词,其状态转移图如下

也有可能是 橡木 开发 事件

图示

描述已自动生成

对于项目 开发 时间这个概率

我们可以选取 b中几率最大的事件和a中进行计算,带入上述的公式

文本, 信件

描述已自动生成

而 橡木 开发 时间则是类似

这种情况下,虽然单词识别得分相同,但是对于转换的概率来说,项目转开发的可能性更高。所以更加适合项目开发时间,这就是隐藏的状态层起到了关键的作用。

那么我们总结一下,马尔科夫模型考虑了n个状态之间的转换。其主要是根据每种状态及其之间的转换概率,求出出现的可能性,但是现实的场景更加复杂,观测到的不是状态本身,而是状态按照一定概率产生的输出。针对这种情况,隐马尔科夫提出了两层模型,也即为考虑状态转换的概率和状态产生输出的可能性。从而为语音识别提供了方案。

发表评论

邮箱地址不会被公开。 必填项已用*标注