马尔可夫模型(Markov Model)是一种统计模型,广泛应用在语音识别,词性自动标注,音字转换,概率文法等各个自然语言处理等应用领域。经过长期发展,尤其是在语音识别中的成功应用,使它成为一种通用的统计工具。

有时候,数学就是这么强大,数学家就是这么富于创造力。很多人觉得马尔科夫不好理解,今天先对马尔科夫模型做一个5分钟快速入门,希望对新手有帮助!

一、马尔科夫模型

包括我自己,很多人都不喜欢理论公式。可是,马尔科夫链作为数学分支随机过程的产物,理论部分这里不得不简单提一下。作为数学专业出身的我自己深知数学理论的严谨与描述事物的美妙。

随机过程最早是用于统计物理学的数学方法,研究空间粒子的随机运动。后来这门科学蓬勃发展,随机过程应用的领域越来越广。这里介绍随机过程的一种——马尔科夫链模型。

马尔科夫的无后效性:系统在t>t0时刻所处的状态与系统在t0时刻以前的状态无关,这就是马尔科夫性或者无后效性。

马尔科夫模型具体公式描述如下

有随机过程{Xn,n为整数},对于任意n和I0,I1,In,满足条件概率:

5分钟学会马尔科夫模型_马尔可夫模型

就称为马尔科夫链。

但凡学过概率论的对这个条件概率应该都能看懂吧!

二、举例说明

下面是一个马尔科夫模型在天气预测方面的简单例子。如果第一天是雨天,第二天还是雨天的概率是0.8,是晴天的概率是0.2;如果第一天是晴天,第二天还是晴天的概率是0.6,是雨天的概率是0.4。问:如果第一天下雨了,第二天仍然是雨天的概率,第十天是晴天的概率;经过很长一段时间后雨天、晴天的概率分别是多少?

5分钟学会马尔科夫模型_马尔可夫模型_02

首先构建转移概率矩阵,初学者很容易构建错误:

 

雨天

晴天

 

0.8

0.4

雨天

0.2

0.6

晴天

注意:每列和为1,分别对雨天、晴天,这样构建出来的就是转移概率矩阵了。

5分钟学会马尔科夫模型_马尔可夫模型_03

初始状态第一天是雨天,我们记为

5分钟学会马尔科夫模型_马尔可夫模型_04

这里【1,0】分别对于雨天,晴天。

初始条件:第一天是雨天,第二天仍然是雨天(记为P1)的概率为:

P1 = AxP0

得到P1 = 【0.8,0.2】,正好满足雨天~雨天概率为0.8,当然这根据所给条件就是这样。

下面计算第十天(记为P9)是晴天概率:

5分钟学会马尔科夫模型_马尔可夫模型_05

>> A= [0.8 0.4;0.2 0.6];
>> p = [1;0];
>> for i = 1:9
p = A*p;
end
>> p

p =
    0.6668
    0.3332

得到,第十天为雨天概率为0.6668,为晴天的概率为0.3332。

下面计算经过很长一段时间后雨天、晴天的概率,显然就是公式(1.1)

 

5分钟学会马尔科夫模型_马尔可夫模型_06

直接算A的n次方显然不行,我们知道任意一个可逆矩阵总可以化为(1.2)形式。其中,T为A的特征值对应的两个特征向量组成的矩阵,这两个特征向量分别为【2,1】、【1 -1】。D为一个对角矩阵(1.4)。

那么,我们可以这样算,就简单多了:

 

5分钟学会马尔科夫模型_马尔可夫模型_07

显然,当n趋于无穷即很长一段时间以后,Pn = 【0.67,0.33】。即雨天概率为0.67,晴天概率为0.33。并且,我们发现:初始状态如果是P0 =【0,1】,最后结果仍然是Pn = 【0.67,0.33】。这表明,马尔科夫过程与初始状态无关,跟转移矩阵有关。

下面,简单验证一下,分别求第50天,100天,1000天时,Pn的取值情况是否与理论一致:Pn = 【0.67,0.33】。

 

5分钟学会马尔科夫模型_马尔可夫模型_08

p =
    0.6667
    0.3333

p =
    0.6667
    0.3333

p =
    0.6667
    0.3333


        可以看出第50天时与第1000天在0.00001精度下是一样的,最终结果与理论值Pn = 【0.67,0.33】一致。马尔科夫过程与初始状态无关,跟转移矩阵有关。

马尔科夫作为一种随机概率模型模型在现今在机器学习、人工智能方面用处很大,值得学习。

我的个人博客网站

5分钟学会马尔科夫模型_马尔可夫模型_09