漫谈MCMC与Gibbs采样(三)—— 有趣的马尔科夫链

Markov Chain

提起马尔科夫链,大家应该都不陌生。我第一次接触这个概念,是在大一的C语言编程课中,当时用马尔科夫链来做文章的随机生成。马尔科夫链的思想非常简单,在数学上可以表述如下:
(6) P ( X t + 1 ∣ X t , X t − 1 , . . . , X 0 ) = P ( X t + 1 ∣ X t ) P(X_{t+1}|X_{t}, X_{t-1}, ..., X_0) = P(X_{t+1}|X_{t}) \tag6 P(Xt+1Xt,Xt1,...,X0)=P(Xt+1Xt)(6)

也就是说,随机变量 X X X t + 1 t+1 t+1时刻的状态,只与 t t t时刻的状态有关,与 t t t时刻之前的状态无关,这就是所谓的马尔科夫性。由于马尔科夫链是一个过于简化的模型,大部分情况下并不能准确地描述客观世界中的现象。比如,我现在站在办公楼门口,那么马尔科夫链认为,我接下来要去哪与我之前在哪无关,这显然是不合理的。如果我之前在家,那么我下一个状态应该是进入办公室工作;如果我之前在办公室,那么我下一个状态可能是去附近吃午饭,也可能是回家。当然也存在一些情况,我们可以用马尔科夫链作为一个很好的近似,比如我们可以认为一个人下个月能拿到多少工资,只取决于他这个月的工资水平。

不过马尔科夫链能否对很好地对现实中的过程建模,并不是我们这里所关心的,我们在意的是马尔科夫链一个有趣的性质。我们首先看一下 ( 6 ) (6) (6)式中的 P ( X t + 1 ∣ X t ) P(X_{t+1}|X_t) P(Xt+1Xt)这一项是一组条件分布,它完整地描述了随机变量 X X X如何由 t t t时刻的状态转移至 t + 1 t+1 t+1时刻的状态。就让我们用一个例子来解释一下这句话的含义。

我们可以按照经济状况,把人分成下层,中层,上层三类。通常来说,一个人当前所处的阶层很大程度上取决于父辈的阶层。这里为了简化我们的讨论,我们假设社会上只有两个阶层,上层和下层。那么我们假设:

  • 如果父辈是上层,子辈有0.8的概率维持在上层,有0.2的概率落入下层
  • 如果父辈是下层,子辈有0.7的概率维持在下层,有0.3的概率进入上层

按照这种方式我们定义了 P ( X t + 1 ∣ X t ) P(X_{t+1}|X_t) P(Xt+1Xt),我们可以用一个表格来表示上面两个条件分布:

P ( X t + 1 = 上 层 ) P(X_{t+1}=上层) P(Xt+1=) P ( X t + 1 ) = 下 层 P(X_{t+1})=下层 P(Xt+1)=
X t = 上 层 X_t=上层 Xt=0.80.2
X t = 下 层 X_t=下层 Xt=0.30.7

现在我们只要知道了父辈的阶层,就可以知道子辈处于各个阶层的概率了。也就是说,这一组条件分布完整的描述了随机变量 X X X如何由 t t t时刻的状态转移到 t + 1 t+1 t+1时刻的状态。

单个随机变量的转移描述了个体的行为,如果从整体的角度来看,这一组条件分布也完整地描述了随机变量 X X X如何由 t t t时刻的分布 P ( X t ) P(X_t) P(Xt)转移到 t + 1 t+1 t+1时刻的分布 P ( X t + 1 ) P(X_{t+1}) P(Xt+1)。假设在这一辈的分布是(上层人0.2, 下层人0.8),那么我们可以计算出在下一辈中,上层人和下层人的分布:
[ 0.2 0.8 ] T × [ 0.8 0.2 0.3 0.7 ] = [ 0.4 0.6 ] T \left[ \begin{array}{c}0.2\\0.8\end{array}\right]^T \times \left[ \begin{array}{cc}0.8&0.2\\ 0.3&0.7\end{array}\right]=\left[\begin{array}{c}0.4\\0.6\end{array}\right]^T [0.20.8]T×[0.80.30.20.7]=[0.40.6]T

直觉上,如果按照这组条件分布一直持续进行下去,社会中上层人和下层人的比例应该会达到一种平衡的状态。我们用简单的计算验证一下。

  • 第一步,假设平衡的状态存在,在平衡的状态下,分布为(上层人 x x x, 下层人 1 − x 1-x 1x),且转移一代之后,上层人与下层人的分布不变,那么以下等式成立:
    [ x 1 − x ] T × [ 0.8 0.2 0.3 0.7 ] = [ x 1 − x ] T \left[ \begin{array}{c}x\\1-x\end{array}\right]^T \times \left[ \begin{array}{cc}0.8&0.2\\ 0.3&0.7\end{array}\right]=\left[\begin{array}{c}x\\1-x\end{array}\right]^T [x1x]T×[0.80.30.20.7]=[x1x]T解这个方程可以得到 x = 0.6 x=0.6 x=0.6, 也就是说,如果当前社会中上层人的比例为60%,下层人比例为40%, 那么以后的每一代中,该比例维持不变。

  • 第二步,我们证明从任意分布出发,经过一定次数的转移之后,都可以到达这个稳定的分布。我们假设当前的分布为 ( x t x_t xt, 1 − x t 1-x_t 1xt),且 x t &gt; 0.6 x_t&gt;0.6 xt>0.6。那么经过一次转移之后,上层人的比例为 x t + 1 = 0.3 + 0.5 x t x_{t+1}=0.3 + 0.5x_t xt+1=0.3+0.5xt,且 0.6 &lt; x t + 1 &lt; x t 0.6&lt;x_{t+1}&lt;x_t 0.6<xt+1<xt 。同理,如果 x t &lt; 0.6 x_t&lt;0.6 xt<0.6,我们可以得到 x t &lt; x t + 1 &lt; 0.6 x_t&lt;x_{t+1}&lt;0.6 xt<xt+1<0.6。因此,无论初始的 x t x_t xt是多少,最终都会向0.6收敛。

通过以上两步,我们证明了,无论初始状态下社会阶层的分布是怎样的,在误差允许的范围内, 我们可以经过有限步的转移,到达稳定的状态——60%的上层人,40%的下层人。

我们刚刚用阶层转移的例子讨论了最简单的情况 —— 随机变量 X X X是一维离散的,并且只在两个点上取值。我们可以将其推广到一般的情形 —— X X X是高维随机变量,取值空间为 Θ \Theta Θ f ( X t + 1 ∣ X t ) f(X_{t+1}|X_t) f(Xt+1Xt)是条件密度函数。假设我们现在有一个定义在 Θ \Theta Θ上的任意分布,其密度函数为 π 0 ( x ) \pi_0(x) π0(x),那么我们将 π 0 ( x ) \pi_0(x) π0(x)按照 f ( X t + 1 ∣ X t ) f(X_{t+1}|X_t) f(Xt+1Xt)进行转移,依次得到 π 1 ( x ) , π 2 ( x ) ⋯ \pi_1(x), \pi_2(x)\cdots π1(x),π2(x),那么这一个分布序列最终会收敛到某个稳定的分布 π ( x ) \pi(x) π(x) π t ( x ) \pi_t(x) πt(x) π t + 1 ( x ) \pi_{t+1}(x) πt+1(x)的转移过程可以由以下等式描述:
π t + 1 ( x ) = ∫ y ∈ Θ f ( x ∣ y ) π t ( y ) d y \pi_{t+1}(x)=\int_{y \in \Theta}f(x|y)\pi_t(y)dy πt+1(x)=yΘf(xy)πt(y)dy

这个等式的含义是显然的, t + 1 t+1 t+1时刻的状态 x x x可能由 t t t时刻任意状态 y y y转移而得到,这个事件的概率为 f ( x ∣ y ) π t ( y ) f(x|y)\pi_t(y) f(xy)πt(y),我们对所有可能的 y y y求和(积分),便得到 π t + 1 ( x ) \pi_{t+1}(x) πt+1(x)

这种收敛性是否对于任意的转移概率 f ( X t + 1 ∣ X t ) f(X_{t+1}|X_t) f(Xt+1Xt)都成立呢?马尔可夫链收敛性的证明是一个复杂的问题,鉴于我并没有研究过,这里只列出结论:

  • f ( X t + 1 ∣ X t ) f(X_{t+1}|X_t) f(Xt+1Xt)是非周期的。所谓周期性,就是存在至少一个分布 π ( x ) \pi(x) π(x),经过有限步的转移之后,再次回到 π ( x ) \pi(x) π(x)。我们遇到的绝大多数马尔可夫链都是非周期的
  • 随机变量 X X X的任意两个状态是连通的。也就是说,对于任意两个状态 x i , x j x_i, x_j xi,xj, 从 x i x_i xi出发, 经过有限次的转移之后,我们可以转移到状态 x j x_j xj

总结一下,如果我们有一组条件分布 f ( X t + 1 ∣ X t ) f(X_{t+1}|X_t) f(Xt+1Xt),满足非周期性和连通性,那么我们从随机变量 X X X的任意分布 π 0 ( x ) \pi_0(x) π0(x)出发,按照该条件分布进行转移,会收敛到某个稳定的分布 π ( x ) \pi(x) π(x)。到这里,马尔科夫链与采样似乎产生了联系,在下一篇里我们将详细讨论,如何借助马尔科夫链,来实现从任意分布中采样。

文章列表:
漫谈MCMC与Gibbs采样(一)—— 采样背后的逻辑
漫谈MCMC与Gibbs采样(二)—— 拒绝采样
漫谈MCMC与Gibbs采样(三)—— 有趣的马尔科夫链
漫谈MCMC与Gibbs采样(四)—— Monte Carlo Markov Chain
漫谈MCMC与Gibbs采样(五)—— M-H采样与Gibbs采样

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值