您的位置:首页 > 其它

马尔科夫模型初探

2015-03-25 21:50 127 查看
以下是读《数学之美》中马尔科夫模型相关部分的学习笔记。

马尔科夫模型:

一句话S可以由特定序列的单词w1,w2,...,wn组成,不同序列会产生不同的句子,而产生句子S的概率可以表示为:


,注意这里w1,w2,...,wn是有序的,也就是说w1一定在w2前面。

由贝叶斯公式(链式规则)可以扩展为:


,在这里前面若干项是比较容易求出来的,但是后面的项很难求,而马尔科夫模型正是对这个链式模型的改进。即每个单词出现的概率只与它前面的单词有关,而与更前面的单词无关:



这里面的每一项都比较容易求出来,根据贝叶斯公式可得:



这个概率可以通过统计语料库中单词i和单词i-1成对出现的次数和单词i-1出现的次数来计算得到(计算这个概率又用到了大数定律)。

以上就是最简单的二元马尔科夫模型,如果某个单词出现的概率与其前面N-1个单词相关,那就是N元马尔科夫模型。一元马尔科夫模型认为每个单词出现的概率是独立的。现在最多一般做到4元模型。

有时候我们接收到的信息并不是发送的信息(纠错),或者要根据接收到的信息推断出发送信息(翻译),这时就要用到隐含马尔科夫模型。

假设信息源发出的信息为s1,s2,s3,...,而我们收到的信息为o1,o2,o3,...,我们就要根据接收的信息推断发送的信息,即求使概率

最大的s1,s2,s3,...。

还是用贝叶斯公式(非常强大!)可知:



其中

s1,s2,s3,...变成o1,o2,o3,...的可能性。假设目前处理的是一个纠错问题,用户想输入的是“连衣裙”(s),但是由于粗心打成了“练衣裙”(o),而我们接收到的就是o,现在就是想根据接收到的信息,推断出用户想真正输入的信息。而此时

就表示由“连衣裙”产生错误到“练衣裙”的可能性。

表示用户输入信息是s的可能性,

表示用户输入错误产生o的可能性。

由于o是我们接收的信息,其产的概率可以认为是一个常数而被忽略。所以可得:



这个概率的估计就可以使用隐马尔科夫模型了!

隐马尔科夫模型:

假设有一个随机序列s1,s2,s3,...,sT,如果该随机序列是可以被观察到的,那么就可以使用正常的马尔科夫模型来算出该序列出现的概率。

现在假设该序列的值是无法观测到的(隐),但是该序列中每个变量会输出一个符号oT,也就是说我们可以观测到o1,o2,o3,...oT。并且oT仅与sT相关(独立输出假设),如下图:



由独立输出假设我们可以知道:



由马尔科夫模型我们可以知道:



这时候上面的概率

就可以求了,即:



至于怎么求这个概率的最大值,据说要用到威特比算法,还没有研究。注意右边项中的每个概率的求法又会使用到贝叶斯公式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: