马尔科夫链
随机过程指的是一个随机变量序列:
{
X
t
}
\left\{X_{t}\right\}
{Xt},而马尔科夫链就是随机过程中的一种典型类型,其概率图如下:
马尔科夫链在不同的时间
t
t
t 对应着不同的状态节点
x
t
x_{t}
xt,实际上就是用时间串联起来的一个个随机变量,这一组随机变量共享一个状态空间,其中包含
n
n
n 个状态,每一个时间节点对应的随机变量都会取这个状态空间中的一个具体状态。
随着时间不断向前移动,马尔科夫链中的不同状态节点就在不同的状态之间进行转移,从而派生了马尔科夫链中的重要参数:状态转移矩阵
P
P
P,这个矩阵应该是一个
n
×
n
n\times n
n×n的方阵:
其中某个具体元素
P
i
j
P_{ij}
Pij表示从状态
i
i
i转移到状态
j
j
j的概率。用条件概率描述即为:
P
i
j
=
p
(
x
t
+
1
=
j
∣
x
t
=
i
)
P_{ij}=p(x_{t+1}=j|x_{t}=i)
Pij=p(xt+1=j∣xt=i)
这里只考虑一阶齐次马尔科夫链,即未来状态只取决于现在,与过去无关,用条件概率描述为:
p
(
x
t
+
1
=
x
∣
x
1
,
x
2
,
x
3
,
.
.
.
,
x
t
)
=
p
(
x
t
+
1
=
x
∣
x
t
)
p(x_{t+1}=x|x_{1},x_{2},x_{3},...,x_{t})=p(x_{t+1}=x|x_{t})
p(xt+1=x∣x1,x2,x3,...,xt)=p(xt+1=x∣xt)
对于马尔科夫链概率图中每个时间
t
t
t节点对应的
π
t
\pi_{t}
πt,其表示
t
t
t时刻的概率分布。因为节点之间的状态是依照概率进行转移的,也就是任意时刻
t
t
t节点,对于
n
n
n个状态中的任意一个状态,它都有可能取到,因此
π
t
\pi_{t}
πt是一个向量,对应在
t
t
t时刻,
n
n
n个不同状态中每一个状态出现的概率:
π
t
=
[
π
t
(
1
)
,
π
t
(
2
)
,
π
t
(
3
)
,
.
.
.
,
π
t
(
n
)
]
,
∑
i
=
1
n
π
t
(
i
)
=
1
\pi_{t}=[\pi_{t}(1),\pi_{t}(2),\pi_{t}(3),...,\pi_{t}(n)],\sum_{i=1}^{n}\pi_{t}(i)=1
πt=[πt(1),πt(2),πt(3),...,πt(n)],i=1∑nπt(i)=1
依照状态转移的定义,将
t
t
t时刻和
t
+
1
t+1
t+1时刻的状态分布
π
t
,
π
t
+
1
\pi_{t},\pi_{t+1}
πt,πt+1,以及状态转移矩阵
P
P
P结合有:
π
t
+
1
(
x
∗
)
=
∑
x
π
t
(
x
)
p
(
x
∗
∣
x
)
\pi_{t+1}(x^{*})=\sum_{x}\pi_{t}(x)p(x^{*}|x)
πt+1(x∗)=x∑πt(x)p(x∗∣x)
其中,
x
x
x和
x
∗
x^{*}
x∗是这个马尔科夫链状态空间中
n
n
n个状态里的任意两个状态。总体合成状态转移矩阵和状态分布向量之间相乘的形式为:
π
t
+
1
=
π
t
P
\pi_{t+1}=\pi_{t}P
πt+1=πtP
马尔科夫链的平稳分布
对于某一个具体的马尔科夫链,每一个时刻
t
t
t都有一个状态分布
π
t
\pi_{t}
πt,但是如果对于任意不同的时刻
t
t
t和
t
+
1
t+1
t+1,他们的分布保持不变,都为
π
\pi
π的话,那么状态分布
π
\pi
π就是这个马尔科夫链的平稳分布,按照定义满足:
π
=
π
P
\pi=\pi P
π=πP
即当从某个时刻
t
t
t开始,他的各个状态服从平稳分布
π
\pi
π的话,那么后续的任意时刻,状态分布都为平稳分布
π
\pi
π。
马尔科夫链进入稳态的转移过程
结合上面的内容,回顾马尔科夫链上各个相邻时间节点之间的状态转移变化过程:
t = 1 t=1 t=1时刻:从 π 1 \pi_{1} π1中,依概率采样状态 x 1 x_{1} x1,即 x 1 ∼ π 1 x_{1}\sim \pi_{1} x1∼π1;
t = 2 t=2 t=2时刻:从 π 2 \pi_{2} π2中,依概率采样状态 x 2 x_{2} x2,显然 x 2 ∼ π 2 x_{2}\sim \pi_{2} x2∼π2,其中 π 2 = π 1 P \pi_{2}=\pi_{1}P π2=π1P;
t = 3 t=3 t=3时刻:从 π 3 \pi_{3} π3中,依概率采样状态 x 3 x_{3} x3,显然 x 3 ∼ π 3 x_{3}\sim \pi_{3} x3∼π3,其中 π 3 = π 2 P \pi_{3}=\pi_{2}P π3=π2P;
以此类推,经过了一段时间,当 t = k t=k t=k的时候,我们发现:
- t = k t=k t=k时刻,从 π k \pi_{k} πk中,依概率采样状态 x k x_{k} xk,我们发现 x k ∼ π k x_{k}\sim \pi_{k} xk∼πk;
- t = k + 1 t=k+1 t=k+1时刻,从 π k + 1 \pi_{k+1} πk+1中,依概率采样状态 x k + 1 x_{k+1} xk+1,我们发现 x k + 1 ∼ π k + 1 x_{k+1}\sim \pi_{k+1} xk+1∼πk+1,但是此时 π k + 1 = π k \pi_{k+1}=\pi_{k} πk+1=πk,后续也将延续此情况,即马尔科夫链进入了稳态。
马尔科夫链稳态的意义
当马尔科夫链进入稳态之后,每一个不同的时刻 t t t都会对应状态集里的一个状态,当然它是随机的,由于进入了稳态,他们都服从同一个分布,即马尔科夫链的稳态分布 π \pi π,依照大数定理,将进入平稳状态之后的每个 t t t时刻的状态都作为一个样本,而形成一个样本集,这个样本集就可以作为这个平稳分布的近似。
这里有两个事情:
- 实际工程中,如何判断进入到平稳分布?进入平稳分布前的时间被称为"燃烧期",我们可以给燃烧期取较长时间,从而确保马尔科夫链进入稳态;
- 进入稳态后,采样的时间节点越多,样本集就越能作为平稳分布的近似。
后续思路就简单了,如果要通过采样的方式去求取目标分布 p ( z ) p(z) p(z),那我们就引入马尔科夫链的稳态分布,让我们的目标分布恰为某一个马尔科夫的稳态分布,那么我们在该马尔科夫链上进行长时间的状态转移,燃烧期之后我们收集到进入稳态后各个时刻点的样本,该样本集就可以作为目标分布的一个近似。
稳态判定:细致平稳条件
对于判定分布
π
\pi
π是马尔科夫链的稳态分布,可以使用细致平稳条件:给定一个马尔科夫链的状态转移矩阵
P
P
P,以及一个分布
π
\pi
π,如果满足:
π
(
x
)
p
(
x
∗
∣
x
)
=
π
(
x
∗
)
p
(
x
∣
x
∗
)
\pi(x)p(x^{*}|x)=\pi(x^{*})p(x|x^{*})
π(x)p(x∗∣x)=π(x∗)p(x∣x∗)
其中,
x
x
x和
x
∗
x^{*}
x∗是该马尔科夫链状态空间中任意两个给定状态,那么分布
π
\pi
π就是该马尔科夫链的稳态分布。
证明如下:
由于
π
(
x
)
p
(
x
∗
∣
x
)
=
π
(
x
∗
)
p
(
x
∣
x
∗
)
\pi(x)p(x^{*}|x)=\pi(x^{*})p(x|x^{*})
π(x)p(x∗∣x)=π(x∗)p(x∣x∗),那么对等式两侧同时关于状态
x
x
x所有的可取值进行求和:
∑
x
π
(
x
)
p
(
x
∗
∣
x
)
=
∑
x
π
(
x
∗
)
p
(
x
∣
x
∗
)
=
π
(
x
∗
)
∑
x
p
(
x
∣
x
∗
)
\sum_{x}\pi(x)p(x^{*}|x)=\sum_{x}\pi(x^{*})p(x|x^{*})=\pi(x^{*})\sum_{x}p(x|x^{*})
x∑π(x)p(x∗∣x)=x∑π(x∗)p(x∣x∗)=π(x∗)x∑p(x∣x∗)
显然,当
x
x
x取遍状态集合中的所有状态时,有:
∑
x
p
(
x
∣
x
∗
)
=
1
\sum_{x}p(x|x^{*})=1
x∑p(x∣x∗)=1
因此:
∑
x
π
(
x
)
p
(
x
∗
∣
x
)
=
π
(
x
∗
)
\sum_{x}\pi(x)p(x^{*}|x)=\pi(x^{*})
x∑π(x)p(x∗∣x)=π(x∗)
这正是平稳分布的定义,从而证明了细致平稳条件是正确的。