14.蒙特卡洛与马尔可夫链:统计模拟的双重视角

1,047 阅读10分钟

一、概述

1、动机

MCMC是一种随机的近似推断,其核心就是基于采样的随机近似方法蒙特卡洛方法。对于采样的动机而言,有这样的使用需求:

  1. 采样作为任务,用于生成新的样本本身就是机器学习的常见任务
  2. 求和/求积分

采样结束后,我们需要评价采样出来的样本点是不是好的样本集:

  1. 样本趋向于高概率的区域
  2. 样本之间必须独立

具体采样中,采样是一个困难的过程:

  1. 无法采样得到归一化因子,即无法直接对概率  p(x)=1Zp^(x) p(x)=\frac{1}{Z}\hat{p}(x) 采样,常常需要对 CDF 采样,但复杂的情况不行
  2. 如果归一化因子可以求得,但是对高维数据依然不能均匀采样(维度灾难),这是由于对 pp 维空间,总的状态空间是 KpK^p 这么大,于是在这种情况下,直接采样也不行

二、平稳分布

Snipaste_2023-02-20_17-50-17-removebg-preview.png

定义状态转移矩阵(随机矩阵)

Q=(Q11Q12Q1KQk1Qk2QKK)k×kQ=\begin{pmatrix}Q_{11}&Q_{12}&\cdots&Q_{1K}\\\vdots&\vdots&\vdots&\vdots\\Q_{k1}&Q_{k2}&\cdots&Q_{KK}\end{pmatrix}_{k×k}

这个矩阵每一行代表这一个时刻q(i)xq^{(i)}x的K(状态空间)种取值可能概率,一行之和为1,不过到底是行等于1还是列等于1,得看矩阵中每个元素即转移概率的定义。是从行上的状态转移到列上的状态,还是从列上的状态转移到行上的状态。此外,随机矩阵的特征值 ≤ 1。假设只有一个特征值为 λi=1\lambda_i=1。于是在马尔可夫过程中:

qt+1(x=j)=i=1Kqt(x=i)Qij这种转换的目的是将状态用矩阵表示q^{t+1}(x=j)=\sum\limits_{i=1}^Kq^t(x=i)Q_{ij}\\ 这种转换的目的是将状态用矩阵表示\\

具体过程如下:

q(t+1)=(q(t+1(x=1)q(t+1)(x=2)q(t+1)(x=k))1×k 而 q(t+1)(x=j)=i=1kq(t)(x=i)Qijq(t+1)=(i=1kq(t)(x=i)Qi1i=1kq(t)(x=i)Qi2i=1kq(t)(x=i)Qik)i×k=q(t)Qq(t)=(q(t)(x=1)q(t)(x=2)q(t)(x=k))\begin{aligned} 令 q^{(t+1)} & =\left(q^{(t+1}(x=1) \quad q^{(t+1)}(x=2) \cdots q^{(t+1)}(x=k)\right)_{1×k} \\ \text { 而 } & q^{(t+1)}(x=j)=\sum_{i=1}^k q^{(t)}(x=i) \cdot Q_{i j} \\ \therefore q^{(t+1)} & =\left(\sum_{i=1}^k q^{(t)}(x=i) Q_{i 1} \quad \sum_{i=1}^k q^{(t)}(x=i) \cdot Q_{i 2} \cdots \sum_{i=1}^k q^{(t)}(x=i) \cdot Q_{i k}\right)_{i × k} \\ & =q^{(t)} \cdot Q \\ \Leftrightarrow & q^{(t)}=\left(q^{(t)}(x=1) q^{(t)}(x=2) \cdots q^{(t)}(x=k)\right) \end{aligned}
该过程可持续迭代q(t+1)=q(t)Q=q(1)Qt该过程可持续迭代\\ \Rightarrow q^{(t+1)}=q^{(t)}\cdot Q=q^{(1)}Q^t

对于Q而言:

Q=AΛA1Λ=(λ1...λk)λi1, for i=1,2,,...,K:q(t+1)=q(1)(AA1)t=q(1)AtA1存在足够大的m,s.t.Λm=(01...0)由于随机矩阵特征值的绝对值均1,因此可以设λi1(简化运算)q(m+1)=q(1)AΛmA1q(m+2)=q(m+1)AΛA1=q(1)AmA1AA1=q(1)m+1A1=q(m+1)q(m+2)=q(m+1)t>m,q(m+1)=q(m+2)==q()=\begin{aligned} & \therefore Q=A \cdot \Lambda \cdot A^{-1} \\ & \Lambda=\left(\begin{array}{lll} \lambda_{1} & \\ & ... & \\ & & \lambda_k \end{array}\right) \cdot\left|\lambda_i\right| \leqslant 1, \text { for } i=1,2,,...,K \\ & 则: q^{(t+1)}=q^{(1)} \cdot\left(A \cdot \wedge \cdot A^{-1}\right)^t=q^{(1)} \cdot A \wedge^t A^{-1} \\ & 存在足够大的m, s.t. \Lambda^m = \left(\begin{array}{lll} 0 & &&\\ & 1 & &\\ & & ...&\\ & & &0\\ \end{array}\right)\\ & 由于随机矩阵特征值的绝对值均≤1,因此可以设\lambda_i为1(简化运算)\\ & q^{(m+1)}=q^{(1)} \cdot A \cdot \Lambda^m A^{-1} \\ & q^{(m+2)}=q^{(m+1)} \cdot A \cdot \Lambda \cdot A^{-1} \\ & =q^{(1)} \cdot A \wedge^{m} A^{-1} A \wedge A^{-1} \\ & =q^{(1)} \wedge^{m+1} A^{-1}=q^{(m+1)} \\ & \therefore q^{(m+2)}=q^{(m+1)} \\ & \begin{array}{l} 当t > m时, q^{(m+1)}=q^{(m+2)}=\cdots=q^{(∞)}=\cdots \end{array} \\ & \end{aligned}

正因为马尔科夫链有这样一个能够收敛的性质,因此我们可以联想到构造一条马尔科夫链,让最后收敛的平稳分布等于或者逼近我们想要的那种分布,后可从已经收敛的状态中,选择一个状态取出需要数量的样本,达到合理采样的目的

三、蒙特卡洛方法

Monte Carlo Method也就是基于采样的随机近似方法。该方法旨在求得复杂概率分布下的期望值:Ezx[f(z)]=p(zx)f(z)dz1Ni=1Nf(zi)E_{z|x}[f(z)]=\int p(z|x)f(z)\mathrm{d}z\approx \frac{1}{N} \sum_{i=1}^{N}f(z_{i}),其中ziz_{i}是从概率分布p(zx)p(z|x)中取的样本,也就是说从概率分布中取NN个点,从而近似计算这个积分。

这里介绍三种采样方法:

  1. 概率分布采样

首先要求得概率密度函数PDF的累计密度函数CDF,然后求CDF得反函数,在0-1之间均匀取样,代入反函数,就得到了取样点。这个方法的缺点就是大部分PDF很难求得CDF:

22097296-8436663996251fcb.webp

  1. 拒绝采样(Rejection Sampling)

对于较复杂的概率分布 p(z)p(z) ,引入简单的提议分布 (proposal distribution) q(z)q(z) ,使得任意的 Mq(zi)p(zi)M q\left(z_i\right) \geq p\left(z_i\right) ,然后对 q(z)q(z) 进行采样获得样本。具体的采样方法步骤为:

image-20230113103529497.png

①选择概率密度函数为 q(z)q(z) ,作为提议分布,使其对任一 ziz_i 满足 Mq(zi)p(zi)M q\left(z_i\right) \geq p\left(z_i\right) ,其中 M>0M>0

②按照提议分布 q(z)q(z) 随机抽样得到样本 ziz_i ,再按照均匀分布在 (0,1)(0,1) 范围内抽样得到 uiu_i

③如果 uip(zi)Mq(zi)u_i \leq \frac{p\left(z_i\right)}{M q\left(z_i\right)} ,则将 ziz_i 作为抽样结果;否则,返回步骤②;

④直到获得 NN 个样本,结束。

拒绝采样的优点是容易实现, 缺点是采样效率可能不高。如果 p(z)p(z) 的涵盖体积占 Mq(z)M q(z) 的涵盖体积的比例很低,就会导致拒绝的比例很高,抽样效率很低。注意,一般是在高维空间抽样,会遇到维度灾难的问题,即使 p(z)p(z)Mq(z)M q(z) 很接近,两者涵盖体积的差异也可能很 大。

  1. 重要性采样 (Importance Sampling)

直接对期望 Ep(z)[f(z)]E_{p(z)}[f(z)] 进行采样。这里引入另一个分布 q(z)q(z) :

Ep(z)[f(z)]=f(z)p(z)dz=f(z)p(z)q(z)q(z)dz1Ni=1Nf(zi)p(zi)q(zi)weightziq(z),i=1,2,,NE_{p(z)}[f(z)]=\int f(z)\cdot p(z)\mathrm{d}z\\ =\int f(z)\cdot \frac{p(z)}{q(z)}\cdot q(z)\mathrm{d}z\\ \approx \frac{1}{N}\sum_{i=1}^{N}f(z_{i})\cdot \underset{weight}{\underbrace{\frac{p(z_{i})}{q(z_{i})}}}\\ z_{i}\sim q(z),i=1,2,\cdots ,N

重要性采样并不像接受-拒绝采样一样是一种采样方法,只是一种让估计更加精确的积分策略。接受拒绝采样是一种生成我们想要的分布的方法,而重要性采样是利用某种分布(这种分布能区分出被积函数不同点的重要性)更好地积分。本质上二者做的是两件不同的事情。

image-20230113110754415.png

例如,如果分布相当不同,采用这种方法采样是非常不合理的,越差的拟合效果反而有更大的权重了。

此外采样在q(z)q(z)中采样,并通过权重计算和。重要值采样对于权重⾮常⼩的时候,效率也非常低。

  1. Sampling-Importance-Resampling

重要性采样有⼀个变种

image-20230113111646861.png

这种方法,首先和上面⼀样进行采样,然后在采样出来的N个样本中,重新采样,这个重新采样,使⽤每个样本点的权重作为概率分布进行采样。在后续章节粒子滤波会详细介绍。

四、马尔可夫链的类型

1. 齐次(一阶)马尔科夫链

考虑一个随机变量的序列X={X0,X1,,Xt,}X=\left \{X_{0},X_{1},\cdots ,X_{t},\cdots \right \},这里的XtX_{t}表示tt时刻的随机变量,每个随机变量的取值空间相同。

如果XtX_{t}只依赖于Xt1X_{t-1},而不依赖于过去的随机变量{X0,X1,,Xt2}\left \{X_{0},X_{1},\cdots ,X_{t-2}\right \},这一性质称为马尔可夫性,即

P(XtX1,X2,Xt1)=P(XtXt1),t=1,2,P(X_{t}|X_{1},X_{2},\cdots X_{t-1})=P(X_{t}|X_{t-1}),t=1,2,\cdots

具有马尔可夫性的随机序列X={X0,X1,,Xt,}X=\left \{X_{0},X_{1},\cdots ,X_{t},\cdots \right \}称为马尔可夫链(Markov Chain),或马尔可夫过程(Markov Process)。条件概率分布P(XtXt1)P(X_{t}|X_{t-1})称为马尔可夫链的转移概率分布。

当转移概率分布P(XtXt1)P(X_{t}|X_{t-1})tt无关,也就是说不同时刻的转移概率是相同的,则称该马尔可夫链为时间齐次的马尔可夫链(Time Homogenous Markov Chain),形式化的表达是:

P(Xt+sXt1+s)=P(XtXt1),t=1,2,;    s=1,2,P(X_{t+s}|X_{t-1+s})=P(X_{t}|X_{t-1}),t=1,2,\cdots ;\; \; s=1,2,\cdots

2. 转移概率矩阵和状态分布

image-20230113202022430.png

PS: 以下内容结合这个图会容易理解一点,注意状态分布的定义和大佬的不一样

  • 转移概率矩阵

如果马尔可夫链的随机变量Xt(t=0,1,2,)X_{t}(t=0,1,2,\cdots )定义在离散空间,则转移概率分布可以由矩阵表示。若马尔可夫链在时刻t1t-1处于状态jj,在时刻tt移动到状态ii,将转移概率记作:

pij=(Xt=iXt1=j),i=1,2,;    j=1,2,p_{ij}=(X_{t}=i|X_{t-1}=j),i=1,2,\cdots ;\; \; j=1,2,\cdots

满足每个行的和为11(具体是行还是列根据自己的定义):

pij0,    ipij=1,    pij=p(Xt+1=jXt=i)p_{ij}\geq 0,\; \; \sum _{i}p_{ij}=1,\; \;p_{ij}=p(X_{t+1}=j|X_t=i)

马尔可夫链的转移概率可以由矩阵表示:

P=[p11p12p13p21p22p23p31p32p33]pij0,    ipij=1P=\begin{bmatrix} p_{11} & p_{12} & p_{13} & \cdots \\ p_{21} & p_{22} & p_{23} & \cdots \\ p_{31} & p_{32} & p_{33} & \cdots \\ \cdots & \cdots & \cdots & \cdots \end{bmatrix}\\ p_{ij}\geq 0,\; \; \sum _{i}p_{ij}=1
  • 状态分布(这里就是平稳分布)

考虑马尔可夫链X={X0,X1,,Xt,}X=\left \{X_{0},X_{1},\cdots ,X_{t},\cdots \right \}在时刻Xt(t=0,1,2,)X_{t}(t=0,1,2,\cdots )的概率分布,称为时刻tt状态分布,记作:

π(t)=[π1(t)π2(t)]\pi (t)=\begin{bmatrix} \pi _{1}(t)\\ \pi _{2}(t)\\ \vdots \end{bmatrix}

其中πi(t)\pi _{i}(t)表示时刻tt状态为ii的概率P(Xt=i)P(X_{t}=i),即:

πi(t)=P(Xt=i),    i=1,2,\pi _{i}(t)=P(X_{t}=i),\; \; i=1,2,\cdots

对于马尔可夫链的初始状态分布:

π(0)=[π1(0)π2(0)]\pi (0)=\begin{bmatrix} \pi _{1}(0)\\ \pi _{2}(0)\\ \vdots \end{bmatrix}

其中πi(0)\pi _{i}(0)表示时刻00状态为ii的概率P(X0=i)P(X_{0}=i)。通常初始分布πi(0)\pi _{i}(0)这个向量只有一个分量是11,其余分量为00,表示马尔可夫链是从一个具体状态开始的。

马尔可夫链在时刻tt的状态分布,可以由在时刻t1t-1的状态分布以及转移概率分布决定:

π(t)=Pπ(t1)\pi (t)=P\pi (t-1)

其中:

πi(t)=P(Xt=i)=mP(Xt=iXt1=m)P(Xt1=m)=mpimπm(t1)\pi _{i}(t)=P(X_{t}=i)\\ =\sum_{m}P(X_{t}=i|X_{t-1}=m)P(X_{t-1}=m)\\ =\sum_{m}p_{im}\pi _{m}(t-1)

马尔可夫链在时刻tt的状态分布,可以通过递推得到:

π(t)=Pπ(t1)=P(Pπ(t2))=P2π(t2)\pi (t)=P\pi (t-1)=P(P\pi (t-2))=P^{2}\pi (t-2)

按照上述方式最终递推得到:

π(t)=Ptπ(0)\pi (t)=P^{t}\pi (0)

这里的递推式表明马尔可夫链的状态分布由初始分布转移概率分布决定。

这里的PtP^{t}称为tt步转移概率矩阵:

Pijt=P(Xt=iX0=j)P^{t}_{ij}=P(X_{t}=i|X_{0}=j)

3.Detail Balance

那么我们如何构造一个马氏链,使得它能收敛到平稳分布呢?Detail Balance,他是平稳分布的充分非必要条件(Detail Balance能推导到平稳分布,平稳分布不能推导到它)

Detail Balance:

p(xx)π(x)=P(xx)π(x)p\left(x \mapsto x^*\right) \cdot \pi(x) = P\left(x^* \mapsto x\right) \cdot \pi\left(x^*\right)

其中:xx        xxx \mapsto x^*\;\;为\;\;x^*|x

p(xx)π(x)dx=P(xx)π(x)dx=π(x)P(xx)dx1=π(x)\begin{aligned} & \int p\left(x \mapsto x^*\right) \cdot \pi(x) d x \\ &= \int P\left(x^* \mapsto x\right) \cdot \pi\left(x^*\right) d x{} \\ &=\pi\left(x^*\right) \cdot \underbrace{\int P\left(x^* \mapsto x\right) d x}_1 \\ &= \pi\left(x^*\right) \end{aligned}

五、马尔可夫链的性质

以下通过离散状态马尔可夫链介绍马尔可夫链的性质,可以推广到连续状态马尔可夫链。

1. 不可约

在状态空间SS中对于任意状态i,jSi,j\in S,如果存在一个时刻t(t>0)t(t>0)满足:

P(Xt=iX0=j)>0P(X_{t}=i|X_{0}=j)> 0

也就是说,时刻00从状态jj出发,时刻tt到达状态ii的概率大于00,则称此马尔可夫链是不可约的(irreducible),否则称马尔可夫链是可约的(reducible)

直观上,一个不可约的马尔可夫链,从任意状态出发,当经过充分长时间后,可以到达任意状态。

举例:

不可约:

22097296-5bbbc2c8817c80aa.webp

可约:

webp-1673677151699-23.webp

2. 非周期

在状态空间SS中对于任意状态iSi\in S,如果时刻00从状态ii出发,tt时刻返回状态的所有时间长{t:P(Xt=iX0=i)>0}\left \{t:P(X_{t}=i|X_{0}=i)> 0\right \}的最大公约数是11,则称此马尔可夫链是非周期的(aperiodic),否则称马尔可夫链是周期的(periodic)

直观上,一个非周期性的马尔可夫链,不存在一个状态,从这一个状态出发,再返回到这个状态时所经历的时间呈一定的周期性,也就是说非周期性的马尔可夫链的任何状态都不具有周期性。

举例:

非周期:

webp-1673677446276-48.webp

周期:

webp-1673677446276-49.webp

3. 正常返

对于任意状态 i,jSi, j \in S ,定义概率 pijtp_{i j}^t 为时刻 0 从状态 jj 出发,时刻 tt 首次转移到状态 ii 的概率,即 pijt=P(Xt=i,Xsi,s=1,2,,t1X0=j),t=1,2,p_{i j}^t=P\left(X_t=i, X_s \neq i, s=1,2, \cdots, t-1 \mid X_0=j\right), t=1,2, \cdots 。若对所有状态 i,ji, j 都满足 limtpijt>0\lim _{t \rightarrow \infty} p_{i j}^t>0 ,则称马尔可夫链是正常返的 (positive recurrent)

直观上,一个正常返的马尔可夫链,其中任意一个状态,从其他任意一个状态出发,当时间趋于无穷时,首次转移到这个状态的概率不为 0 。 定理:

不可约、非周期且正常返的马尔可夫链,有唯一平稳分布存在。

4.遍历定理 设有马尔可夫链 X={X0,X1,,Xt,}X=\left\{X_0, X_1, \cdots, X_t, \cdots\right\} ,若这个马尔可夫链是不可约、非周期且正常返的,则该马尔可夫链有唯一平稳分布 π=(π1,π2,)T\pi=\left(\pi_1, \pi_2, \cdots\right)^T ,并且转移概率的极限分布是马尔可夫链的平稳分布:

limtP(Xt=iX0=j)=πi,i=1,2,,j=1,2,\lim _{t \rightarrow \infty} P\left(X_t=i \mid X_0=j\right)=\pi_i, \quad i=1,2, \cdots, \quad j=1,2, \cdots

也就是:

limtP(Xt=i)=πi,    i=1,2,\lim_{t\rightarrow \infty }P(X_{t}=i)=\pi _{i},\; \; i=1,2,\cdots

f(X)f(X) 是定义在状态空间上的函数, Eπ[f(X)]<E_\pi[f(X)]<\infty ,则:

P{f^tEπ[f(X)]}=1P\left\{\hat{f}_t \rightarrow E_\pi[f(X)]\right\}=1

这里:

f^t=1ts=1tf(xs)\hat{f}_t=\frac{1}{t} \sum_{s=1}^t f\left(x_s\right)

Eπ[f(X)]=if(i)πiE_\pi[f(X)]=\sum_i f(i) \pi_if(X)f(X) 关于平稳分布 π=(π1,π2,)T\pi=\left(\pi_1, \pi_2, \cdots\right)^T 的数学期望, P{f^tEπ[f(X)]}=1P\left\{\hat{f}_t \rightarrow E_\pi[f(X)]\right\}=1 表示 f^tEπ[f(X)],t\hat{f}_t \rightarrow E_\pi[f(X)], t \rightarrow \infty 几乎处处成立或以概率 1 成立。

遍历定理的直观解释: 满足相应条件的马尔可夫链,当时间趋于无穷时,马尔可夫链的状态分布趋近于平稳分布,随机变量的函数的样本均值 f^t\hat{f}_t 以概率 1 收敛于该函数的数学期望 Eπ[f(X)]E_\pi[f(X)]

样本均值可以认为是时间均值,数学期望是空间均值。遍历定理表述了遍历性的含义:当时间趋于无穷时,时间均值等于空间均值。

遍历定理的三个条件:不可约、非周期、正常返,保证了当时间趋于无穷时达到任意一个状态的概率不为 0 。 理论上并不知道经过多少次迭代,马尔可夫链的状态分布才能接近平稳分布,在实际应用遍历定理时,取一个足够大的整数 mm ,经过 mm 次迭代之后认为状态分布就是平稳分布,这时计算从第 m+1m+1 次迭代到第 nn 次迭代的均值,即:

Eπ[f(X)]=1nmi=m+1nf(xi)E_\pi[f(X)]=\frac{1}{n-m} \sum_{i=m+1}^n f\left(x_i\right)

称为遍历均值。

5. 可逆马尔可夫链

  • 定义

对于任意状态i,jSi,j\in S,对任意一个时刻tt满足:

P(Xt=iXt1=j)πj=P(Xt1=jXt=i)πi,    i,j=1,2,P(X_{t}=i|X_{t-1}=j)\pi _{j}=P(X_{t-1}=j|X_{t}=i)\pi _{i},\; \; i,j=1,2,\cdots

或简写为:

pijπj=pjiπi,    i,j=1,2,p_{ij}\pi _{j}=p_{ji}\pi _{i},\; \; i,j=1,2,\cdots

则称此马尔可夫链为可逆马尔可夫链(reversible Markov chain),上式又被称作细致平衡方程(detailed balance equation)

直观上,如果有可逆马尔可夫链,那么以该马尔可夫链的平稳分布作为初始分布,进行随机状态转移,无论是面向过去还是面向未来,任何一个时刻的状态分布都是该平稳分布。

  • 定理

满足细致平衡方程的状态分布π\pi就是该马尔可夫链的平稳分布,即满足Pπ=πP\pi=\pi。

证明:

(Pπ)i=jpijπj=jpjiπi=πijpji=1=πi,    i=1,2,(P\pi )_{i}=\sum _{j}p_{ij}\pi _{j}=\sum _{j}p_{ji}\pi _{i}=\pi _{i}\underset{=1}{\underbrace{\sum _{j}p_{ji}}}=\pi _{i},\; \; i=1,2,\cdots

该定理说明,可逆马尔可夫链一定有唯一平稳分布,给出了一个马尔可夫链有平稳分布的充分条件(不是必要条件)。也就是说,可逆马尔可夫链满足遍历定理的条件。

“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 11 天,点击查看活动详情