本文参考了:
- en.wikipedia.org/wiki/Markov…
- Markov Chains Explained Visually
- Is a Markov chain the same as a finite state machine?
- Origin of Markov chains | Journey into information theory
- YouTube: Markov Chains - playlist
- 维基百科:马尔可夫性质
- 什么是马尔可夫链模型,通俗易懂,详细具体?
简介
上一篇文章简要介绍了有限状态机,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:广告收益预测
有一家公司,生产了一款产品 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
。
我的公众号:全栈不存在的