离散马尔科夫链

声明:

本文章为作者学习所得,在讲述过程中均为口语化表达不过多涉及严谨的数学定义,力求能让初学者也能理解。关于马尔科夫模型的严谨定义,大家可参考相关书籍。如有错误,欢迎指正。

马尔科夫性(关键):

这一点是谈马尔科夫链\隐马尔可夫模型的前提

马尔科夫性定义:

假设某事件未来发生的状况取决于现在

举例理解:

假设连续三天的天气分别为:多云、阴、雨

对应的时间我们记作:昨天、今天、明天

根据马尔科夫性,那么我们认为明天(第三天)的雨受今天(第二天)的阴天气状况影响,而与昨天(第一天)的多云天气状况无关

虽然事实上更可能是第一、二天的天气状况共同决定了第三天的天气状况。但为了能够应用马尔科夫模型,做出这样的假设。

个人认为这么做出假设的一个主要原因是受限于计算机的算力吧,如果充分考虑前面的多种因素,需要计算联合条件概率,会导致计算量非常大。这一点其实和自然语言处理中的n元语法模型类似

图示理解:

马尔科夫性的这种性质也被称为“无记忆性”

离散时间马尔科夫链:

这里为方便大家理解,用离散模型来讲解,连续的话思路应该类似,计算方法上采用积分的思路。

离散化模型使用基本的概率公式即可。

三个核心概念:

离散时间:时刻点的集合

状态空间:状态的集合

转移概率:从一个状态到另外一个状态的概率

图示理解:

例题分析:

当马尔科夫链复杂起来,各状态彼此关联起来时,转移概率往往会写成一个状态转移矩阵的形式。

比如面对一个类似这样阶层变化的问题:

下图为不同阶层的人后代向其他阶层变迁的概率,问若某人父辈处于贫穷状态,则他处于中产,其后代处于富裕状态的概率是多大?

状态转移矩阵为:

计算过程:

但根据马尔科夫性,可以对上述式子进行简化

也就是说,在计算P(子辈=富裕|父辈=贫穷,自己=中产)这一项时,因为与“子辈”按时间顺序相连的是“自己”,认为与“父辈”(爷爷)无关,所以不用管后面一项,将该项与P(子辈=富裕|自己=中产)认为相等。

计算结果为:0.2*0.2 = 0.04

马尔科夫链的稳态:

继续上面的问题,如果将问题改为:问若某人父辈处于贫穷状态,则子辈处于富裕状态的概率是多大?

计算公式为:P(子辈=富裕|父辈=贫穷)=

P(自己=贫穷|父辈=贫穷)*P(子辈=富裕|自己=贫穷)+

P(自己=中产|父辈=贫穷)*P(子辈=富裕|自己=中产)+

P(自己=富裕|父辈=贫穷)*P(子辈=富裕|自己=富裕)

对应到转移矩阵中为:

这个式子其实就是转移矩阵第一行乘以第一列的结果:

因而,对于这样的规律进行总结,我们可以发现:

假设以自己为标准,已知自己所处的阶层:

自己的第一代子孙情况可以由转移矩阵直接得到;

自己的第二代子孙情况,可以由转移矩阵的平方得到;

自己的第三代子孙情况,可以由转移矩阵的三次方得到;

以此类推...

对于类似的问题,比如只要知道不同天气情况相互转换的概率,那么理论上,我们可以根据今天的天气推测出以后得天气

同时,我们可以发现,对于转移矩阵迭代次数n逐渐增大时,这个得到的结果将趋于一个固定的矩阵,此时,我们称马尔科夫链达到了稳态,或者说收敛

转移矩阵能够收敛需要满足的条件之一是:每一行概率之和为1。

总结:

马尔科夫模型的一般表示形式为一个三元组:

其中,

S 就是前文提到的状态集合;

A 就是状态转移矩阵;

π 是初始向量;这里π对应到上面的问题中,比如知道今天的天气,知道自己所处的阶层,其实就是一个某个位置为1,其他位置均为0的一个向量(1,0,0);对于更一般的情况,初始向量可能是其他分布如(0.5,0.2,0.3)等等。

  • 17
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值