现象
例子:
有一个概率单纯形向量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>趋于无穷大时,发现最后得到的向量会收敛到一个稳定值:
limn→∞vPn=[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>,如果下面等式成立:
πiPij=πjPji,∀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=πj∑iPji=π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>
证毕。
所有评论(0)