现象
例子:
有一个概率单纯形向量
v
v
:
和一个概率转移矩阵
P
P
:
概率单纯形向量表示这个向量每个元素取值[0,1],且元素和为1。概率转移矩阵的每一行也都是一个概率单纯形。这是前提。
发现:
当 v v 与 n n 个相乘, n n 趋于无穷大时,发现最后得到的向量会收敛到一个稳定值:
代码验证:
import numpy as np
v = np.array([0.6, 0.4])
P = np.array([[0.7, 0.3],[0.8, 0.2]])
for n in range(1000):
v = np.dot(v, P)
print v
Out:
...
[0.72727273 0.27272727]
[0.72727273 0.27272727]
而且最后这个稳定值跟初始 v v 的取值没有关系,也就是说改变 v v 的值,最后收敛的结果还是一样。
问题
那么问题来了,所有的转移矩阵P都有这种现象吗?需要满足什么条件呢?
细致平衡条件(Detailed Balance Condition):给定一个马尔科夫链,分布 π π 和概率转移矩阵 P P ,如果下面等式成立:
则此马尔科夫链具有一个平稳分布(Stationary Distribution) π π 。
需要注意的是这是一个充分条件,而不是必要条件,也就是说存在具有平稳分布的马尔科夫链不满足此细致平衡条件。
下面证明此条件的充分性:
因为:
所以:
当分布是二维时,此条件是充要的,但3维以上时,就不是了。
这里证明二维时条件的必要性,将上面例子形式化表示:
当达到稳定值时,当前 vt v t 等于下一步的 vt+1 v t + 1 ,即:
即:
稳定时, vt1=vt+11 v 1 t = v 1 t + 1 , vt2=vt+12 v 2 t = v 2 t + 1 ,我们统一写作 v1,v2 v 1 , v 2 ,所以:
两个等式简化后都是一样的:
证毕。