马尔可夫模型(Markov Model)是一种统计模型,广泛应用在语音识别,词性自动标注,音字转换,概率文法等各个自然语言处理等应用领域。经过长期发展,尤其是在语音识别中的成功应用,使它成为一种通用的统计工具。
有时候,数学就是这么强大,数学家就是这么富于创造力。很多人觉得马尔科夫不好理解,今天先对马尔科夫模型做一个5分钟快速入门,希望对新手有帮助!
一、马尔科夫模型包括我自己,很多人都不喜欢理论公式。可是,马尔科夫链作为数学分支随机过程的产物,理论部分这里不得不简单提一下。作为数学专业出身的我自己深知数学理论的严谨与描述事物的美妙。
随机过程最早是用于统计物理学的数学方法,研究空间粒子的随机运动。后来这门科学蓬勃发展,随机过程应用的领域越来越广。这里介绍随机过程的一种——马尔科夫链模型。
马尔科夫的无后效性:系统在t>t0时刻所处的状态与系统在t0时刻以前的状态无关,这就是马尔科夫性或者无后效性。
马尔科夫模型具体公式描述如下
有随机过程{Xn,n为整数},对于任意n和I0,I1,In,满足条件概率:
就称为马尔科夫链。
但凡学过概率论的对这个条件概率应该都能看懂吧!
二、举例说明下面是一个马尔科夫模型在天气预测方面的简单例子。如果第一天是雨天,第二天还是雨天的概率是0.8,是晴天的概率是0.2;如果第一天是晴天,第二天还是晴天的概率是0.6,是雨天的概率是0.4。问:如果第一天下雨了,第二天仍然是雨天的概率,第十天是晴天的概率;经过很长一段时间后雨天、晴天的概率分别是多少?
首先构建转移概率矩阵,初学者很容易构建错误:
雨天 |
晴天 |
|
0.8 |
0.4 |
雨天 |
0.2 |
0.6 |
晴天 |
注意:每列和为1,分别对雨天、晴天,这样构建出来的就是转移概率矩阵了。
初始状态第一天是雨天,我们记为
这里【1,0】分别对于雨天,晴天。
初始条件:第一天是雨天,第二天仍然是雨天(记为P1)的概率为:
P1 = AxP0
得到P1 = 【0.8,0.2】,正好满足雨天~雨天概率为0.8,当然这根据所给条件就是这样。
下面计算第十天(记为P9)是晴天概率:
>> 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)
直接算A的n次方显然不行,我们知道任意一个可逆矩阵总可以化为(1.2)形式。其中,T为A的特征值对应的两个特征向量组成的矩阵,这两个特征向量分别为【2,1】、【1 -1】。D为一个对角矩阵(1.4)。
那么,我们可以这样算,就简单多了:
显然,当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】。
p =
0.6667
0.3333
p =
0.6667
0.3333
p =
0.6667
0.3333
可以看出第50天时与第1000天在0.00001精度下是一样的,最终结果与理论值Pn = 【0.67,0.33】一致。马尔科夫过程与初始状态无关,跟转移矩阵有关。
马尔科夫作为一种随机概率模型模型在现今在机器学习、人工智能方面用处很大,值得学习。