计算理论 101:深入浅出马尔可夫链

本文参考了:

简介

上一篇文章简要介绍了有限状态机,FSM 中一个状态下得到什么输入,下一个状态是确定的。马尔可夫链可以看作是一个 FSM,但是区别在于状态的转移不是确定性的,而是有概率的。

引出

马尔可夫链b被广泛应用于计算机模拟中。假如现在要预测一个大坝水溢出的概率,这取决于连续下雨的天数。为了构建这一模型,先获取到了一些现实中的数据(S 表示晴天、R 表示雨天):总体上晴天的天数等于雨天。

R R R R R S S S S R R R R S S S S S R R R S S S R R R R R R R S S S S S S S 
复制代码

一个简单的结论就是晴天出现的概率和雨天是一样的。这样得出的模拟结果,很可能就是下面这种情况:

R S S R S R S R S S S R R R S R R S R S S R S R S R R R R S S S R S R S R S
复制代码

整体来说,晴天和雨天的总天数大致是一样的,但是晴天和雨天之间看不出有任何联系。这种模拟事实上是基于一个假设,晴天和雨天出现的几率都是50%,不管前一天是雨天还是晴天。你可以把这个想象为抛骰子。但是事实情况并非如此,今天的天气是晴天,那么明天晴天的概率会更高;今天是雨天,明天雨天的概率要更高。也就是说表现在天气记录序列上,晴天和雨天基本上都是连续出现的。如果有一个图来表示的话,就是这样的:

这种不同状态间的转移以概率形式进行转移的,就是马尔可夫链的一种表现。现在你应该会马尔可夫链有一个感谢的认识了,下面将会给出严格的定义。

马尔可夫链起源

这部分来源于Origin of Markov chains | Journey into information theory。非常生动,值得一看。

上图是bean machine,随机洒下豆子,会发现最终呈现一个正态分布。现在我们知道这叫做"中心极限定理"(central limit theorem),但是这种带点绝对论的哲学思想,对当时有些人来说对是很反感的。于是有人就给出了一个很著名的论断:大数定律成立的必要条件是变量之间是相互独立的,之前的事件不会影响之后的事件概率。所以,这种现象也就掷骰子、抛豆子这些玩具实验才成立,现实世界是很复杂的,起因结果错综复杂,所以不受大数定律的支配?

此时俄罗斯数学家马尔可夫(Andrey Markov)站出来说:大数定律对相互关联的变量同样试用!他给出了下面这个实验:

有两个杯子,装着两种不同颜色的豆子。第一个红色和蓝色一样多,第二个红色:蓝色为 0.35 : 0.65。现在从两个杯子里面随机拿豆子,如果是红色就放到第一个杯子,如果是蓝色就放到第二个杯子。这个例子里面,下一次的结果显然是受前一次结果影响的,因为上一次的结果会改变两个杯子中豆子的比例,而豆子比例会影响下一次拿出来的豆子会被放到哪个杯子的几率。(这是一个非常重要的性质,下一次事件几率受当前状态影响,但是不受之前事件影响,下面正式的定义还会讲到。)

次数越多,发现还是会趋近于一个特定的比例:

对,没错了,这种就叫做马尔可夫链了。

定义

马尔可夫性质

马尔可夫性质(英语:Markov property)是概率论中的一个概念,因為俄國數學家安德雷·馬可夫得名。当一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态;换句话说,在给定现在状态时,它与过去状态(即该过程的历史路径)是条件独立的,那么此随机过程即具有马尔可夫性质。具有马尔可夫性质的过程通常称之为马尔可夫过程。- 来源于维基百科

重点在于 未来状态条件的概率分布仅依赖于当前状态与该过程的历史路径无关。联系上上面讲的天气例子,明天的天气概率分布(注意是概率分布,并非确定的事件)仅取决于今天,第 N+1天 的天气概率取决于第 N天。看到了吧,这种性质具备时移性。用数学公式来表示的话,就是:

马尔可夫过程

满足马尔可夫性质的过程,就叫做马尔可夫过程。

马尔可夫链

马尔可夫链是马尔可夫过程的一种(其他的马尔可夫过程还有布朗运动),马尔可夫链有包括离散时间和连续时间。

看两个马尔可夫链的实际应用

从程序员的角度,那些严格的数学公式和推导过程并没那么重要,我们更应该关注的还是应用。

应用1 :预测股市

此例子来源于维基百科

上图用一个有向图来表示状态的转移,圆圈表示市场是牛市(Bull)、熊市(Bear)还是停市(Stagnant)。图中显示,市场为牛市时,下一个周期90%的概率还是牛市,7.5%的概率变为熊市,2.5%的概率变为停市。同样当前时熊市或停市时,下一个周期市场情况的概率分布也很容易看出。这个状态之间转移的概率可以用一个矩阵表示:

如果n时刻市场行情的概率分布用 x(n) 表示,那么n+1时刻的状态就可以表示为 x(n) * P(这里的依据是前面提到的马尔可夫性质,概率分布具有时移性),这是一个矩阵乘法。再这么往下推算两步,可以得出n+3时刻的概率分布:

比如说,n 时刻市场为熊市,也就是概率矩阵为[0,1,0],那么 n+3时刻的概率分布可以计算:

结果的意思就是 35.75% 的概率为牛市,56.825%的概率为熊市,7.425%的概率为停市。

再这么一直推算下去,无穷个周期之后,概率会逐渐趋近于一个定值:

应用2:广告收益预测

此例子来源于YouTube: Markov Chains - playlist

有一家公司,生产了一款产品 A,占有20%的市场份额。现在假设,投放广告后,一个周期后,之前用 A 产品的用户,有90%会继续使用 A;不使用 A 的用户,有70%接下来会使用。用一个 FSM 来表示状态转移情况:

概率矩阵为:

有两种计算方法,第一种直观的,小学生都能看懂的,用一棵树来表示:

还有一种方法就是用矩阵:

所以可以知道,如果投放广告一个周期之后,A 产品的市场占有率将会达到74%(当然现实情况肯定不会这么简单了~)。

常规马尔可夫链

还是上面广告那个例子,我们来推算一下一段长时间之后市场份额的变化(这里的初始市场份额是10%,概率矩阵为[[0.8 0.2],[0.6 0.4]])。

可以看到,最终的结果永远不会达到100%,而是会趋近于一个极限值——这个例子中是0.75。这个结果反应出来的现实结论就是越往后,市场份额增长速度越慢且有天花板,但是你花的广告费并不会减少。这里会引出如下一个概念:

最终的状态[0.75, 0.25]叫作stationary matrix(固定矩阵 -> 来自于 Google 机翻),达到这个状态时,就说系统达到了稳定状态(steady state)。如果说,对于一个马尔可夫链,如果他最终就趋于stationary matrix这个极限矩阵,那么就说他是一个常规的马尔可夫链(regular markov matrix)。当然这也就是说,不是所有的马尔可夫链都会趋向于一个极限。

总结

马尔可夫链是一个很大的话题,在统计学中占据了重要地位,有关他的著作和论文很多。我能力有限,也不可能面面俱到,想了解更多,可以 Google 关键词markov chains book或者markov chains paper

我的公众号:全栈不存在的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值