现象

例子:

有一个概率单纯形向量vv<script type="math/tex" id="MathJax-Element-1022">\mathbf{v}</script>:

v=[0.6,0.4]v=[0.6,0.4]
<script type="math/tex; mode=display" id="MathJax-Element-1023"> \mathbf{v}=[0.6, 0.4] </script>

和一个概率转移矩阵PP<script type="math/tex" id="MathJax-Element-1024">\mathbf{P}</script>:

P=[0.70.80.30.2]P=[0.70.30.80.2]
<script type="math/tex; mode=display" id="MathJax-Element-1025"> \mathbf{P}= \begin{bmatrix} 0.7 & 0.3 \\ 0.8 & 0.2 \end{bmatrix} </script>

概率单纯形向量表示这个向量每个元素取值[0,1],且元素和为1。概率转移矩阵的每一行也都是一个概率单纯形。这是前提

发现:

vv<script type="math/tex" id="MathJax-Element-1026">\mathbf{v}</script>与nn<script type="math/tex" id="MathJax-Element-1027">n</script>个 P <script type="math/tex" id="MathJax-Element-1028">\mathbf{P}</script>相乘,nn<script type="math/tex" id="MathJax-Element-1029">n</script>趋于无穷大时,发现最后得到的向量会收敛到一个稳定值:

lim n v P n = [ 0.73 , 0.27 ]
<script type="math/tex; mode=display" id="MathJax-Element-18"> \lim_{n \to \infty } \mathbf{v} \mathbf{P}^n=[0.73, 0.27] </script>

代码验证:

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]

而且最后这个稳定值跟初始vv<script type="math/tex" id="MathJax-Element-1062">\mathbf{v}</script>的取值没有关系,也就是说改变vv<script type="math/tex" id="MathJax-Element-1063">\mathbf{v}</script>的值,最后收敛的结果还是一样。

问题

那么问题来了,所有的转移矩阵P都有这种现象吗?需要满足什么条件呢?

细致平衡条件(Detailed Balance Condition):给定一个马尔科夫链,分布ππ<script type="math/tex" id="MathJax-Element-1068">\pi</script>和概率转移矩阵PP<script type="math/tex" id="MathJax-Element-1069">P</script>,如果下面等式成立:

π i P i j = π j P j i , i , j
<script type="math/tex; mode=display" id="MathJax-Element-1085"> \pi_i P_{ij} = \pi_j P_{ji}, \quad \forall i,j </script>

则此马尔科夫链具有一个平稳分布(Stationary Distribution)ππ<script type="math/tex" id="MathJax-Element-1086">\pi</script>。

需要注意的是这是一个充分条件,而不是必要条件,也就是说存在具有平稳分布的马尔科夫链不满足此细致平衡条件。

下面证明此条件的充分性:

因为:

iπiPij=iπjPji=πjiPji=πj∑iπiPij=∑iπjPji=πj∑iPji=πj
<script type="math/tex; mode=display" id="MathJax-Element-1087"> \sum_i \pi_i P_{ij} = \sum_i \pi_j P_{ji} =\pi_j \sum_i P_{ji} = \pi_j </script>

所以:

πP=ππP=π
<script type="math/tex; mode=display" id="MathJax-Element-1088"> \pi P = \pi </script>

当分布是二维时,此条件是充要的,但3维以上时,就不是了。

这里证明二维时条件的必要性,将上面例子形式化表示:

v=[v1,v2]v=[v1,v2]
<script type="math/tex; mode=display" id="MathJax-Element-1089"> \mathbf{v}=[v_1, v_2] </script>

P=[p11p21p12p22]P=[p11p12p21p22]
<script type="math/tex; mode=display" id="MathJax-Element-20"> \mathbf{P}= \begin{bmatrix} p_{11} & p_{12} \\ p_{21} & p_{22} \end{bmatrix} </script>

当达到稳定值时,当前vtvt<script type="math/tex" id="MathJax-Element-21">\mathbf{v}^t</script>等于下一步的vt+1vt+1<script type="math/tex" id="MathJax-Element-22">\mathbf{v}^{t+1}</script>,即:

vtP=[vt1,vt2][p11p21p12p22]=[vt1p11+vt2p21,vt1p12+vt2p22]=[vt+11,vt+12](1)(1)vtP=[v1t,v2t][p11p12p21p22]=[v1tp11+v2tp21,v1tp12+v2tp22]=[v1t+1,v2t+1]
<script type="math/tex; mode=display" id="MathJax-Element-23">\begin{equation} \begin{aligned} \mathbf{v}^t \mathbf{P} & = [v_1^t, v_2^t] \begin{bmatrix} p_{11} & p_{12} \\ p_{21} & p_{22} \end{bmatrix} \\ & = [v_1^t p_{11}+v_2^t p_{21}, v_1^t p_{12}+v_2^t p_{22} ]=[v_1^{t+1}, v_2^{t+1}] \end{aligned} \end{equation}</script>

即:

vt1p11+vt2p21=vt+11vt1p12+vt2p22=vt+12v1tp11+v2tp21=v1t+1v1tp12+v2tp22=v2t+1
<script type="math/tex; mode=display" id="MathJax-Element-24"> v_1^t p_{11}+v_2^t p_{21} = v_1^{t+1} \\ v_1^t p_{12}+v_2^t p_{22} = v_2^{t+1} </script>

稳定时,vt1=vt+11v1t=v1t+1<script type="math/tex" id="MathJax-Element-25">v_1^t=v_1^{t+1}</script>,vt2=vt+12v2t=v2t+1<script type="math/tex" id="MathJax-Element-26">v_2^t=v_2^{t+1}</script>,我们统一写作v1,v2v1,v2<script type="math/tex" id="MathJax-Element-27">v_1, v_2</script>,所以:

v1p11+v2p21=v1v1p12+v2p22=v2v1p11+v2p21=v1v1p12+v2p22=v2
<script type="math/tex; mode=display" id="MathJax-Element-28"> v_1 p_{11}+v_2 p_{21} = v_1 \\ v_1 p_{12}+v_2p_{22} = v_2 </script>

两个等式简化后都是一样的:

v2p21=v1p12v2p21=v1p12
<script type="math/tex; mode=display" id="MathJax-Element-621"> v_2 p_{21} = v_1 p_{12} </script>

证毕。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐