机器学习-白板推导系列笔记(十三)-MCMC

此文章主要是结合哔站shuhuai008大佬的白板推导视频:MCMC_218min

全部笔记的汇总贴:机器学习-白板推导系列笔记

一、蒙特卡洛方法

蒙特卡洛方法(Monte Carlo Method):基于采样的随机近似方法。
该方法旨在求得复杂概率分布下的期望值:

 ⁣ E Z ∣ x [ f ( z ) ] = ∫ p ( z ∣ x )   f ( z ) d z ≈ 1 N ∑ i = 1 N f ( z i ) \!E_{Z|x}[ f( z ) ]=\int{p( z|x )}\,f\left( z \right) \text{d}z\approx\frac{1}{N}\sum_{i=1}^N{f}\text{(}z_i\text{)} EZx[f(z)]=p(zx)f(z)dzN1i=1Nf(zi)

其中 z i z_i zi 是从概率分布 p ( z ∣ x ) p( z|x ) p(zx) 中取的样本,也就是从概率分布中取 N N N个点来近似计算这个积分。

(一)概率分布采样

  • a.求得概率密度函数PDF的累计密度函数CDF
  • b.求CDF的反函数
  • c.在0-1之间均匀取样,带入反函数,得到取样点

缺点:大部分PDF难以求得CDF

(二)拒绝采样(Rejection Sampling)

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

  • a.选择概率密度函数为 q ( z ) q( z ) q(z),作为提议分布,使其对任一 z z z满足 M q ( z i ) ≥ p ( z i ) Mq(z_{i})\ge p(z_{i}) Mq(zi)p(zi),其中 M > 0 M>0 M>0
  • b.按照提议分布随机抽样 q ( z ) q( z ) q(z)得到样本 z i z_i zi,再按照均匀分布在 ( 0 , 1 ) (0,1) (0,1)范围内抽样得到 u i u_i ui
  • c.如果 u i ≤ p ( z i ) M q ( z i ) u_i\le \frac{p( z_i)}{Mq(z_i)} uiMq(zi)p(zi),则将 z i z_i zi作为抽样结果;否则,返回步骤b;
  • d.获得 N N N个样本,即结束。

优点:容易实现
缺点:采样效率可能不高

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

(三)重要性采样(Importance Sampling)

直接对期望 E p ( z ) [ f ( z ) ] E_{p(z)}[f(z)] Ep(z)[f(z)]进行采样

引入另一个分布 q ( z ) q( z ) q(z)

 ⁣ E p ( z ) [ f ( z ) ] = ∫ p ( z )   f ( z ) d z = ∫ p ( z ) q ( z ) q ( z )   f ( z ) d z = ∫ f ( z ) p ( z ) q ( z ) q ( z ) d z ≈ 1 N ∑ i = 1 N f ( z i ) p ( z i ) q ( z i ) ⏟ w e i g h t z i ∼ q ( z ) , i = 1 , 2 , ⋯   , N \!E_{p\left( z \right)}\left[ f\left(z \right) \right] =\int{p\left( z \right)}\,f\left( z \right) \text{d}z \\=\int{\frac{p\left(z\right)}{q\left(z \right)}}q\left(z \right) \,f\left( z \right) \text{d}z \\=\int{f}\left( z \right) \frac{p\left( z \right)}{q\left( z \right)}q\left( z \right) \text{d}z \\\approx \frac{1}{N}\sum_{i=1}^N{f}\text{(}z_i\text{)}\underset{weight}{\underbrace{\frac{p\left( z_i \right)}{q\left( z_i \right)}}} \\z_{i} \sim q(z),i=1,2,\cdots,N Ep(z)[f(z)]=p(z)f(z)dz=q(z)p(z)q(z)f(z)dz=f(z)q(z)p(z)q(z)dzN1i=1Nfziweight q(zi)p(zi)ziq(z),i=1,2,,N

于是在 q ( z ) q( z ) q(z)中采样,并通过权重计算和。

缺点:权重⾮常⼩的时候,效率非常低

重要性采样有⼀个变种 Sampling Importance Resampling,这种方法,首先和上面⼀样进行采样,然后在采样出来的N个样本中,重新采样,这个重新采样,使⽤每个样本点的权重作为概率分布进行采样。

二、齐次马尔可夫链

马尔可夫链:时间和状态都是离散的

(一)齐次马尔可夫链(一阶马尔可夫链)

X = { X 0 , X 1 , ⋯   , X t , ⋯   } X=\{X_0,X_1,\cdots,X_t,\cdots\} X={ X0,X1,,Xt,}其中 X t X_t Xt表示 t t t时刻的随机变量,并且每个随机变量的取值空间相同。
如果 X t X_t Xt只依赖于 X t − 1 X_{t-1} Xt1,而不依赖于 { X 0 , X 1 , ⋯   , X t − 2 } \{X_0,X_1,\cdots,X_{t-2}\} { X0,X1,,Xt2},则称这一性质为马尔可夫性,即

P ( X t ∣ X 1 , X 2 , ⋯   , X t − 1 ) = P ( X t ∣ X t − 1 ) , t = 1 , 2 , ⋯ P(X_t|X_1,X_2,\cdots,X_{t-1})=P(X_t|X_{t-1}),t=1,2,\cdots P(XtX1,X2,,Xt1)=P(XtXt1),t=1,2,

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

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

P ( X t + s ∣ X t − 1 + s ) = P ( X t ∣ X t − 1 ) , 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 P(Xt+sXt1+s)=P(XtXt1),t=1,2,;s=1,2,

(二)概率转移矩阵

如果马尔可夫链的随机变量 X t ( t = 0 , 1 , 2 , ⋯   ) X_{t}(t=0,1,2,\cdots ) Xt(t=0,1,2,)定义在离散空间,则转移概率分布可以由矩阵表示。若马尔可夫链在时刻 t − 1 t-1 t1处于状态 j j j,在时刻t移动到状态 i i i,将转移概率记作:
q i j = ( X t = i ∣ X t − 1 = j ) , i = 1 , 2 , ⋯   ;      j = 1 , 2 , ⋯ q_{ij}=(X_{t}=i|X_{t-1}=j),i=1,2,\cdots ;\; \; j=1,2,\cdots qij=(Xt=iXt1=j),i=1,2,;j=1,2,
满足: q i j ≥ 0 ,      ∑ i q i j = 1 q_{ij}\geq 0,\; \; \sum _{i}q_{ij}=1 qij0,iqij=1
马尔可夫链的转移概率可以由矩阵表示,状态转移矩阵:(随机矩阵)

Q = [ Q 11 Q 12 Q 13 ⋯ Q 1 k Q 21 Q 22 Q 23 ⋯ Q 2 k Q 31 Q 32 Q 33 ⋯ Q 3 k ⋯ ⋯ ⋯ ⋯ ⋯ Q k 1 Q k 2 Q k 3 ⋯ Q k k ] k ∗ k p i j ≥ 0 ,      ∑ i p i j = 1 Q=\begin{bmatrix} Q_{11} & Q_{12} & Q_{13} & \cdots& Q_{1k} \\ Q_{21} & Q_{22} & Q_{23} & \cdots & Q_{2k}\\ Q_{31} & Q_{32} & Q_{33} & \cdots& Q_{3k} \\ \cdots & \cdots & \cdots & \cdots& \cdots\\ Q_{k1} & Q_{k2} & Q_{k3} & \cdots& Q_{kk} \end{bmatrix}_{k*k}\\ p_{ij}\geq 0,\; \; \sum _{i}p_{ij}=1 Q=Q11Q21Q31Qk1Q12Q22Q32Qk2Q13Q23Q33Qk3Q1kQ2kQ3kQkkkkpij0,ipij=1

q ( t + 1 ) = [ ( q ( t + 1 ) ( x = 1 ) q ( t + 1 ) ( x = 2 ) ⋯ q ( t + 1 ) ( x = k ) ) ] 1 ∗ k q^{(t+1)}=\begin{bmatrix} (q^{(t+1)}(x=1) & q^{(t+1)}(x=2) & \cdots &q^{(t+1)}(x=k))\end{bmatrix}_{1*k} q(t+1)=[(q(t+1)(x=1)q(t+1)(x=2)q(t+1)(x=k))]1k

q ( t + 1 ) ( x = j ) = ∑ i = 1 k q ( t ) ( x = i ) Q i j q^{(t+1)}(x=j)=\sum_{i=1}^k{q^{(t)}(x=i)Q_{ij}} q(t+1)(x=j)=i=1kq(t)(x=i)Qij

所以

q ( t + 1 ) = [ ( ∑ i = 1 k q ( t ) ( x = i ) Q i 1 ∑ i = 1 k q ( t ) ( x = i ) Q i 2 ⋯ ∑ i = 1 k q ( t ) ( x = i ) Q i k ) ] 1 ∗ k = q ( t ) Q q^{(t+1)}=\begin{bmatrix} (\sum_{i=1}^k{q^{(t)}(x=i)Q_{i1}} &\sum_{i=1}^k{q^{(t)}(x=i)Q_{i2}} & \cdots &\sum_{i=1}^k{q^{(t)}(x=i)Q_{ik}})\end{bmatrix}_{1*k}=q^{(t)}Q q(t+1)=[(i=1kq(t)(x=i)Qi1i=1kq(t)(x=i)Qi2i=1kq(t)(x=i)Qik)]1k=q(t)Q
q ( t ) = [ ( q ( t ) ( x = 1 ) q ( t ) ( x = 2 ) ⋯ q ( t ) ( x = k ) ) ] 1 ∗ k q^{(t)}=\begin{bmatrix} (q^{(t)}(x=1) & q^{(t)}(x=2) & \cdots &q^{(t)}(x=k))\end{bmatrix}_{1*k} q(t)=[(q(t)(x=1)q(t)(x=2)q(t)(x=k))]1k
q ( t + 1 ) = q ( t ) Q = ⋯ = q ( 1 ) Q t q^{(t+1)}=q^{(t)}Q=\cdots=q^{(1)}Q^t q(t+1)=q(t)Q==q(1)Qt

因为随机矩阵:特征值的绝对值 ≤ 1 \le 1 1,所以 Q = A Λ A − 1 Q=A\varLambda A^{-1} Q=AΛA1,其中

Λ = [ λ 1 λ 2 ⋯ λ k ] , ∣ λ i ∣ ≤ 1 , i = 1 , 2 , ⋯   , k \varLambda=\begin{bmatrix}\lambda_1\\&\lambda_2\\&&\cdots\\&&&\lambda_k\end{bmatrix},\left| \lambda_i \right| \le 1,i=1,2,\cdots,k Λ=λ1λ2λkλi1i=1,2,,k

不妨设只有 λ i \lambda_i λi 1 1 1 q ( t + 1 ) = q ( 1 ) ( A Λ A − 1 ) t = q ( 1 ) A Λ A − 1 q^{(t+1)}=q^{(1)}(A\varLambda A^{-1})^t=q^{(1)}A\varLambda A^{-1} q(t+1)=q(1)(AΛA1)t=q(1)AΛA1 ,存在足够大的 m m m,使得

Λ m = [ 0 ⋯ 1 ⋯ 0 ] \varLambda^m = \begin{bmatrix}0\\&\cdots\\&&1\\&&&\cdots\\&&&&0\end{bmatrix} Λm=010

所以:

q ( m + 1 ) = q ( 1 ) A Λ m A − 1 q^{(m+1)}=q^{(1)}A\varLambda^m A^{-1} q(m+1)=q(1)AΛmA1 q ( m + 2 ) = q ( m + 1 ) A Λ A − 1 = q ( 1 ) A Λ m A − 1 A Λ A − 1 = q ( 1 ) A Λ m + 1 A − 1 = q ( m + 1 ) q^{(m+2)}=q^{(m+1)}A\varLambda A^{-1}\\=q^{(1)}A\varLambda^m A^{-1}A\varLambda A^{-1}\\=q^{(1)}A\varLambda^{m+1} A^{-1}\\=q^{(m+1)} q(m+2)=q(m+1)AΛA1=q(1)AΛmA1AΛA1=q(1)AΛm+1A1=q(m+1)

所以得到:

q ( m + 2 ) = q ( m + 1 ) q^{(m+2)}=q^{(m+1)} q(m+2)=q(m+1)

t > m t>m t>m时,

q ( m + 1 ) = q ( m + 1 ) = ⋯ = q ( ∞ ) = ⋯ q^{(m+1)}=q^{(m+1)}=\cdots=q^{(\infty)}=\cdots q(m+1)=q(m+1)==q()=

(三)状态分布

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

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

其中 π i ( t ) \pi_i(t) πi(t)表示时刻 t t t状态为 i i i的概率 P ( X i = i ) P(X_i = i) P(Xi=i),即:
π i ( t ) = P ( X i = i ) ,      i = 1 , 2 , ⋯ \pi _{i}(t)=P(X_{i}=i),\; \; i=1,2,\cdots πi(t)=P(Xi=i),i=1,2,

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

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

其中 π i ( 0 ) \pi_i(0) πi(0)表示时刻 0 0 0状态为 i i i的概率 P ( X 0 = i ) P(X_0 = i) P(X0=i)。通常初始分布 π i ( 0 ) \pi_i(0) πi(0)的向量只有一个分量是 1 1 1,其余分量为 0 0 0,表示马尔可夫链是从一个具体状态开始的。

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

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

其中:

π i ( t ) = P ( X t = i ) = ∑ m P ( X t = i ∣ X t − 1 = m ) P ( X t − 1 = m ) = ∑ m p i m π m ( t − 1 ) \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) πi(t)=P(Xt=i)=mP(Xt=iXt1=m)P(Xt1=m)=mpimπm(t1)

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

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

递推得到:

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

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

这里的 P t P^t Pt称为 t t t步转移概率矩阵:

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

(四)平稳分布

对于一个马尔可夫链 X X X,如果其状态空间上存在一个分布:

π = [ π 1 π 2 ⋮ ] \pi =\begin{bmatrix} \pi _{1}\\ \pi _{2}\\ \vdots \end{bmatrix} π=π1π2

使得 π = P π \pi =P\pi π=Pπ,则称 π \pi π为马尔可夫链 X X X的平稳分布。

直观地来看,如果以该平稳分布作为初始分布,面向未来进行随机状态转移,之后任何一个时刻的状态分布都是该平稳分布。
利用Markov Chain收敛于平稳分布,设计 Q Q Q,使得平稳分布 q ( x ) ≈ q(x)\approx q(x)目标分布 p ( x ) p(x) p(x)

三、Metropilis-Hastings算法(MH算法)

假设要抽样的概率分布为 p ( x ) p(x) p(x)。MH算法采用转移核为 p ( x , x ∗ ) p(x,x^{*}) p(x,x)的马尔可夫链:

p ( x , x ∗ ) = q ( x , x ∗ ) α ( x , x ∗ ) p(x,x^{*})=q(x,x^{*})\alpha (x,x^{*}) p(x,x)=q(x,x)α(x,x)

其中 q ( x , x ∗ ) q(x,x^{*}) q(x,x)称为建议分布(proposal distribution), α ( x , x ∗ ) \alpha (x,x^{*}) α(x,x)称为接受分布(acceptance distribution)。

q ( x , x ∗ ) q(x,x^{*}) q(x,x)是另一个马尔可夫链的转移核,并且 q ( x , x ∗ ) q(x,x^{*}) q(x,x)是不可约的,即其概率值恒不为0,同时也是一个容易抽样的分布。接受分布 α ( x , x ∗ ) \alpha (x,x^{*}) α(x,x)是:

α ( x , x ∗ ) = m i n { 1 , p ( x ∗ ) q ( x ∗ , x ) p ( x ) q ( x , x ∗ ) } \alpha (x,x^{*})=min \left \{1,\frac{p(x^{*})q(x^{*},x)}{p(x)q(x,x^{*})}\right \} α(x,x)=min{ 1,p(x)q(x,x)p(x)q(x,x)}

p ( x , x ∗ ) = { q ( x , x ∗ ) ,                      p ( x ∗ ) q ( x ∗ , x ) ≥ p ( x ) q ( x , x ∗ ) q ( x ∗ , x ) p ( x ∗ ) p ( x ) ,        p ( x ∗ ) q ( x ∗ , x ) < p ( x ) q ( x , x ∗ ) p(x,x^{*})=\left\{\begin{matrix} q(x,x^{*}),\; \; \; \; \; \; \; \; \; \; p(x^{*})q(x^{*},x)\geq p(x)q(x,x^{*})\\ q(x^{*},x)\frac{p(x^{*})}{p(x)},\; \; \; p(x^{*})q(x^{*},x)< p(x)q(x,x^{*}) \end{matrix}\right. p(x,x)={ q(x,x),p(x)q(x,x)p(x)q(x,x)q(x,x)p(x)p(x),p(x)q(x,x)<p(x)q(x,x)

从区间(0,1)上的均匀分布中抽取一个随机数 u u u,决定时刻 t t t的状态:

x t = { x ∗ ,      u ≤ α ( x , x ∗ ) x ,      u > α ( x , x ∗ ) x_{t}=\left\{\begin{matrix} x^{*},\; \; u\leq \alpha (x,x^{*})\\ x,\; \; u> \alpha (x,x^{*}) \end{matrix}\right. xt={ x,uα(x,x)x,u>α(x,x)

(一)定理

由转移核 p ( x , x ∗ ) = q ( x , x ∗ ) α ( x , x ∗ ) p(x,x^{*})=q(x,x^{*})\alpha (x,x^{*}) p(x,x)=q(x,x)α(x,x)构成的马尔可夫链是可逆的,即:

p ( x ) p ( x , x ∗ ) = p ( x ∗ ) p ( x ∗ , x ) p(x)p(x,x^{*})=p(x^{*})p(x^{*},x) p(x)p(x,x)=p(x)p(x,x)

并且 p ( x ) p(x) p(x)是该马尔可夫链的平稳分布。

(二)证明

x = x ∗ x=x^{*} x=x,则上式显然成立。
x ≠ x ∗ x\neq x^{*} x=x,则:

p ( x ) p ( x , x ∗ ) = p ( x ) q ( x , x ∗ ) m i n { 1 , p ( x ∗ ) q ( x ∗ , x ) p ( x ) q ( x , x ∗ ) } = m i n { p ( x ) q ( x , x ∗ ) , p ( x ∗ ) q ( x ∗ , x ) } = p ( x ∗ ) q ( x ∗ , x ) m i n { p ( x ) q ( x , x ∗ ) p ( x ∗ ) q ( x ∗ , x ) , 1 } = p ( x ∗ ) p ( x ∗ , x ) p(x)p(x,x^{*})=p(x)q(x,x^{*})min \left \{1,\frac{p(x^{*})q(x^{*},x)}{p(x)q(x,x^{*})}\right \}\\ =min\left \{p(x)q(x,x^{*}),p(x^{*})q(x^{*},x)\right \}\\ =p(x^{*})q(x^{*},x)min \left \{\frac{p(x)q(x,x^{*})}{p(x^{*})q(x^{*},x)},1\right \}\\ =p(x^{*})p(x^{*},x) p(x)p(x,x)=p(x)q(x,x)min{ 1,p(x)q(x,x)p(x)q(x,x)}=min{ p(x)q(x,x),p(x)q(x,x)}=p(x)q(x,x)min{ p(x)q(x,x)p(x)q(x,x),1}=p(x)p(x,x)

p ( x ) p ( x , x ∗ ) = p ( x ∗ ) p ( x ∗ , x ) p(x)p(x,x^{*})=p(x^{*})p(x^{*},x) p(x)p(x,x)=p(x)p(x,x)知:

∫ p ( x ) p ( x , x ∗ ) d x = ∫ p ( x ∗ ) p ( x ∗ , x ) d x = p ( x ∗ ) ∫ p ( x ∗ , x ) d x = p ( x ∗ ) \int p(x)p(x,x^{*})\mathrm{d}x\\ =\int p(x^{*})p(x^{*},x)\mathrm{d}x\\ =p(x^{*})\int p(x^{*},x)\mathrm{d}x\\ =p(x^{*}) p(x)p(x,x)dx=p(x)p(x,x)dx=p(x)p(x,x)dx=p(x)

所以 p ( x ) p(x) p(x)是该马尔可夫链的平稳分布。

(三)建议分布

建议分布 q ( x , x ∗ ) q(x,x^{*}) q(x,x)有多种可能的形式,这里介绍两种常用形式。

  • 第一种形式
    假设建议分布是对称的,即对任意的 x x x x ∗ x^{*} x有: q ( x , x ∗ ) = q ( x ∗ , x ) q(x,x^{*})=q(x^{*},x) q(x,x)=q(x,x)
    这样的建议分布称为Metropolis选择,也是MH算法最初采用的建议分布。这时,接受分布 α ( x , x ∗ ) \alpha (x,x^{*}) α(x,x)简化为:

α ( x , x ∗ ) = m i n { 1 , p ( x ∗ ) p ( x ) } \alpha (x,x^{*})=min \left \{1,\frac{p(x^{*})}{p(x)}\right \} α(x,x)=min{ 1,p(x)p(x)}

Metropolis特例:

q ( x , x ∗ ) = p ( x ∗ ∣ x ) q(x,x^{*})=p(x^{*}|x) q(x,x)=p(xx),定义为多元正态分布,其均值是 x x x,其协方差矩阵是常数矩阵(因为协方差矩阵是常数矩阵,所以 q ( x , x ∗ ) q(x,x^{*}) q(x,x)对称)。
q ( x , x ∗ ) = q ( ∣ x = x ∗ ∣ ) q(x,x^{*})=q(|x=x^{*}|) q(x,x)=q(x=x),这时算法称为随机游走Metropolis算法。例如:
q ( x , x ∗ ) ∝ e x p { − ( x ∗ − x ) 2 2 } q(x,x^{*})\propto exp\left \{-\frac{(x^{*}-x)^{2}}{2}\right \} q(x,x)exp{ 2(xx)2}
Metropolis选择的特点是当 x ∗ x^{*} x x x x接近时, q ( x , x ∗ ) q(x,x^{*}) q(x,x)的概率值高,否则 q ( x , x ∗ ) q(x,x^{*}) q(x,x)的概率值低。状态转移在附近点的可能性更大。

  • 第二种形式
    第二种形式称为独立抽样,假设 q ( x , x ∗ ) q(x,x^{*}) q(x,x)与当前状态x无关,即 q ( x , x ∗ ) = q ( x ∗ ) q(x,x^{*})=q(x^{*}) q(x,x)=q(x)。建议分布的计算按照 q ( x ∗ ) q(x^{*}) q(x)独立抽样进行。此时,接受分布可以写成:

α ( x , x ′ ) = m i n { 1 , w ( x ′ ) w ( x ) } \alpha (x,x^{'})=min \left \{1,\frac{w(x^{'})}{w(x)}\right \} α(x,x)=min{ 1,w(x)w(x)}

其中:

w ( x ∗ ) = p ( x ∗ ) q ( x ∗ ) , w ( x ) = p ( x ) q ( x ) w(x^{*})=\frac{p(x^{*})}{q(x^{*})},w(x)=\frac{p(x)}{q(x)} w(x)=q(x)p(x),w(x)=q(x)p(x)

独立抽样实现简单,但可能收敛速度慢,通常选择接近目标状态分布 p ( x ) p(x) p(x)的分布作为建议分布 q ( x ) q(x) q(x)

(四)满条件分布

MCMC的目标分布通常是多元联合概率分布 p ( x ) = p ( x 1 , x 2 , ⋯   , x k ) p(x)=p(x_{1},x_{2},\cdots ,x_{k}) p(x)=p(x1,x2,,xk),其中 x = ( x 1 , x 2 , ⋯   , x k ) T x=(x_{1},x_{2},\cdots ,x_{k})^T x=(x1,x2,,xk)T k k k维随机变量。如果条件概率分布 p ( x I ∣ x − I ) p(x_{I}|x_{-I}) p(xIxI)中所有 k k k个变量全部出现,其中 x I = { x i , i ∈ I } , x − I = { x i , i ∉ I } , I ⊂ K = { 1 , 2 , ⋯   , k } x_{I}=\left \{x_{i},i\in I\right \},x_{-I}=\left \{x_{i},i\notin I\right \},I\subset K=\left \{1,2,\cdots ,k\right \} xI={ xi,iI},xI={ xi,i/I},IK={ 1,2,,k},那么称这种条件概率分布为满条件分布(full conditional distribution)。

满条件分布有以下性质:对任意的 x , x ∗ ∈ X x,x^{*}\in \mathcal{X} x,xX和任意的 I ⊂ K I\subset K IK有:

p ( x I ∣ x − I ) = p ( x ) ∫ p ( x ) d x I ∝ p ( x ) p(x_{I}|x_{-I})=\frac{p(x)}{\int p(x)\mathrm{d}x_{I}}\propto p(x) p(xIxI)=p(x)dxIp(x)p(x)

而且,对任意的 x , x ∗ ∈ X x,x^{*}\in \mathcal{X} x,xX和任意的 I ⊂ K I\subset K IK有:

p ( x I ∗ ∣ x − I ∗ ) p ( x I ∣ x − I ) = p ( x ∗ ) p ( x ) \frac{p(x_{I}^{*}|x_{-I}^{*})}{p(x_{I}|x_{-I})}=\frac{p(x^{*})}{p(x)} p(xIxI)p(xIxI)=p(x)p(x)

MH算法中可以利用上述性质,简化运算,提高效率。具体地,通过满条件分布概率的比 p ( x I ∗ ∣ x − I ∗ ) p ( x I ∣ x − I ) \frac{p(x_{I}^{*}|x_{-I}^{*})}{p(x_{I}|x_{-I})} p(xIxI)p(xIxI)计算联合概率的比 p ( x ∗ ) p ( x ) \frac{p(x^{*})}{p(x)} p(x)p(x),而前者更容易计算。

(五)计算步骤

  • a.任意选择一个初始值 x 0 x_0 x0
  • b.对 i = 1 , 2 , ⋯   , n i=1,2,\cdots ,n i=1,2,,n循环执行:
      (i)设状态 x i − 1 = x x_{i-1}=x xi1=x,按照建议分布 q ( x , x ∗ ) q(x,x^{*}) q(x,x)随机抽取一个候选状态 x ∗ x^{*} x
      (ii)计算接收概率: α ( x , x ∗ ) = m i n { 1 , p ( x ∗ ) q ( x ∗ , x ) p ( x ) q ( x , x ∗ ) } \alpha (x,x^{*})=min \left \{1,\frac{p(x^{*})q(x^{*},x)}{p(x)q(x,x^{*})}\right \} α(x,x)=min{ 1,p(x)q(x,x)p(x)q(x,x)}
      (iii)从区间 ( 0 , 1 ) (0,1) (0,1)中按均匀分布随机抽取一个数 u u u。若 u ≤ α ( x , x ∗ ) u\leq \alpha (x,x^{*}) uα(x,x),则状态 x i = x ∗ x_i=x^{*} xi=x,否则,状态 x i = x x_i=x xi=x
  • c.得到样本集合 { x m + 1 , x m + 2 , ⋯   , x n } \left \{x_{m+1},x_{m+2},\cdots ,x_{n}\right \} { xm+1,xm+2,,xn},计算函数样本均值 f m n f_{mn} fmn

f m n = 1 n − m ∑ i = m + 1 n f ( x i ) f_{mn}=\frac{1}{n-m} \sum_{i=m+1}^{n} f(x_{i}) fmn=nm1i=m+1nf(xi)

(六)单分量MH算法

在MH算法中,通常需要对多元变量分布进行抽样,有时对多元变量的抽样是困难的。可以对多元变量的每一变量的条件分布依次分别进行抽样,从而实现对整个多元变量的一次抽样,这就是单分量MH(single-component Metropolis-Hastings)算法。
假设马尔可夫链的状态有 k k k维随机变量表示:

x = ( x 1 , x 2 , ⋯   , x k ) T x=(x_{1},x_{2},\cdots ,x_{k})^{T} x=(x1,x2,,xk)T

为了生成容量为 n n n的样本集合 { x ( 1 ) , x ( 2 ) , ⋯   , x ( n ) } \left \{x^{(1)},x^{(2)},\cdots ,x^{(n)}\right \} { x(1),x(2),,x(n)},单分量MH算法由下面的 k k k步迭代实现MH算法的一次迭代。
设在第 i − 1 i-1 i1次迭代结束时分量 x j x_j xj的取值为 x j ( i − 1 ) x_{j}^{(i-1)} xj(i1),在第 i i i次迭代的第 j j j步,对分量 x j x_j xj根据MH算法更新,得到其新的取值 x j ( i ) x_{j}^{(i)} xj(i)。首先,由建议分布 q ( x j ( i − 1 ) , x j ∣ x − j ( i ) ) q(x_{j}^{(i-1)},x_{j}|x_{-j}^{(i)}) q(xj(i1),xjxj(i))抽样产生分量 x j x_j xj的候选值 x j ′ ( i ) x_{j}^{'(i)} xj(i),这里x − j ( i ) _{-j}^{(i)} j(i)表示在第i次迭代的第 j − 1 j-1 j1步后的 x i x^{i} xi除去 x j i − 1 x_{j}^{i-1} xji1的所有值,即:

x − j ( i ) = ( x 1 ( i ) , ⋯   , x j − 1 ( i ) , x j + 1 ( i − 1 ) , ⋯   , x k ( i − 1 ) ) T x_{-j}^{(i)}=(x_{1}^{ {\color{Red}{(i)}}},\cdots ,x_{j-1}^{ {\color{Red}{(i)}}},x_{j+1}^{(i-1)},\cdots ,x_{k}^{(i-1)})^{T} xj(i)=(x1(i),,xj1(i),xj+1(i1),,xk(i1))T

其中分量 1 , 2 , ⋯   , j − 1 1,2,\cdots ,j-1 1,2,,j1已经更新。然后,按照接受概率:

α ( x j ( i − 1 ) , x j ′ ( i ) ∣ x − j ( i ) ) = m i n { 1 , p ( x j ′ ( i ) ∣ x − j ( i ) ) q ( x j ′ ( i ) , x j ( i − 1 ) ∣ x − j ( i ) ) p ( x j ( i − 1 ) ∣ x − j ( i ) ) q ( x j ( i − 1 ) , x j ′ ( i ) ∣ x − j ( i ) ) } \alpha (x_{j}^{(i-1)},x_{j}^{'(i)}|x_{-j}^{(i)})=min\left \{1,\frac{p(x_{j}^{'(i)}|x_{-j}^{(i)})q(x_{j}^{'(i)},x_{j}^{(i-1)}|x_{-j}^{(i)})}{p(x_{j}^{(i-1)}|x_{-j}^{(i)})q(x_{j}^{(i-1)},x_{j}^{'(i)}|x_{-j}^{(i)})}\right \} α(xj(i1),xj(i)xj(i))=min{ 1,p(xj(i1)xj(i))q(xj(i1),xj(i)xj(i))p(xj(i)xj(i))q(xj(i),xj(i1)xj(i))}

抽样决定是否接受候选值 x j ′ ( i ) x_{j}^{'(i)} xj(i)。如果 x j ′ ( i ) x_{j}^{'(i)} xj(i)被接受,则令 x j ( i ) = x j ′ ( i ) x_{j}^{(i)}=x_{j}^{'(i)} xj(i)=xj(i);否则 x j ( i ) = x j ( i − 1 ) x_{j}^{(i)}=x_{j}^{(i-1)} xj(i)=xj(i1)。其余分量在第 j j j步不改变。马尔可夫链的转移概率为:

p ( x j ( i − 1 ) , x j ′ ( i ) ∣ x − j ( i ) ) = α ( x j ( i − 1 ) , x j ′ ( i ) ∣ x − j ( i ) ) q ( x j ( i − 1 ) , x j ′ ( i ) ∣ x − j ( i ) ) p(x_{j}^{(i-1)},x_{j}^{'(i)}|x_{-j}^{(i)})=\alpha (x_{j}^{(i-1)},x_{j}^{'(i)}|x_{-j}^{(i)})q(x_{j}^{(i-1)},x_{j}^{'(i)}|x_{-j}^{(i)}) p(xj(i1),xj(i)xj(i))=α(xj(i1),xj(i)xj(i))q(xj(i1),xj(i)xj(i))

四、吉布斯抽样(Gabbs sampling)

吉布斯抽样使用广泛,可以认为是MH算法的特殊情况,但是更容易实现。

(一)基本原理

吉布斯抽样(Gabbs sampling)用于多元变量联合分布的抽样和估计。

假设多元变量的联合概率分布为 p ( x ) = p ( x 1 , x 2 , ⋯   , x k ) p(x)=p(x_{1},x_{2},\cdots ,x_{k}) p(x)=p(x1,x2,,xk)。吉布斯抽样从一个初始样本 x ( 0 ) = ( x 1 ( 0 ) , x 2 ( 0 ) , ⋯   , x k ( 0 ) ) T x^{(0)}=(x_{1}^{(0)},x_{2}^{(0)},\cdots ,x_{k}^{(0)})^{T} x(0)=(x1(0),x2(0),,xk(0))T出发,不断进行迭代,每一次迭代得到联合概率分布的一个样本 x ( i ) = ( x 1 ( i ) , x 2 ( i ) , ⋯   , x k ( i ) ) T x^{(i)}=(x_{1}^{(i)},x_{2}^{(i)},\cdots ,x_{k}^{(i)})^{T} x(i)=(x1(i),x2(i),,xk(i))T。最终得到样本序列 { x ( 0 ) , x ( 1 ) , ⋯   , x ( n ) } \left \{x^{(0)},x^{(1)},\cdots ,x^{(n)}\right \} { x(0),x(1),,x(n)}

在每次迭代中,依次对 k k k个随机变量中的一个变量进行随机抽样。如果在第 i i i次迭代中,对第 j j j个变量进行随机抽样,那么抽样的分布就是满条件概率分布 p ( x j , x − j ( i ) ) p(x_{j},x_{-j}^{(i)}) p(xj,xj(i))

设在第 i − 1 i-1 i1步得到样本 ( x 1 ( i − 1 ) , x 2 ( i − 1 ) , ⋯   , x k ( i − 1 ) ) T (x_{1}^{(i-1)},x_{2}^{(i-1)},\cdots ,x_{k}^{(i-1)})^{T} (x1(i1),x2(i1),,xk(i1))T,在第 i i i步,首先对第一个变量按照以下满条件概率分布随机抽样:

p ( x 1 ∣ x 2 ( i − 1 ) , ⋯   , x k ( i − 1 ) ) p(x_{1}|x_{2}^{(i-1)},\cdots ,x_{k}^{(i-1)}) p(x1x2(i1),,xk(i1))

得到 x 1 ( i ) x_{1}^{(i)} x1(i),之后依次对第 j j j个变量按照以下满条件概率分布随机抽样:

p ( x j ∣ x 1 ( i ) , ⋯   , x j − 1 ( i ) , x j + 1 ( i − 1 ) , ⋯   , x k ( i − 1 ) ) ,      j = 2 , ⋯   , k − 1 p(x_{j}|x_{1}^{ {\color{Red}{(i)}}},\cdots ,x_{j-1}^{ {\color{Red}{(i)}}},x_{j+1}^{(i-1)},\cdots ,x_{k}^{(i-1)}),\; \; j=2,\cdots ,k-1 p(xjx1(i),,xj1(i),xj+1(i1),,xk(i1)),j=2,,k1

得到 x j ( i ) x_{j}^{(i)} xj(i),最后对第 k k k个变量按照以下满条件概率分布随机抽样:

p ( x k ∣ x 1 ( i ) , ⋯   , x k − 1 ( i ) ) p(x_{k}|x_{1}^{(i)},\cdots ,x_{k-1}^{(i)}) p(xkx1(i),,xk1(i))

得到 x k ( i ) x_{k}^{(i)} xk(i),于是得到样本 x ( i ) = ( x 1 ( i ) , x 2 ( i ) , ⋯   , x k ( i ) ) T x^{(i)}=(x_{1}^{(i)},x_{2}^{(i)},\cdots ,x_{k}^{(i)})^{T} x(i)=(x1(i),x2(i),,xk(i))T

(二) 吉布斯抽样与单分量MH算法的关系

吉布斯抽样是单分量MH算法的特殊情况。定义建议分布是当前变量 x j , j = 1 , 2 , ⋯   , k x_j,j=1,2,\cdots ,k xjj=1,2,,k的满条件概率分布:

q ( x , x ∗ ) = p ( x j ∗ ∣ x − j ) q(x,x^{*})=p(x_{j}^{*}|x_{-j}) q(x,x)=p(xjxj)

这时,接受概率 α = 1 \alpha = 1 α=1

α ( x , x ∗ ) = m i n { 1 , p ( x ∗ ) q ( x ∗ , x ) p ( x ) q ( x , x ∗ ) } = m i n { 1 , p ( x − j ∗ ) p ( x j ∗ ∣ x − j ∗ ) p ( x j ∣ x − j ∗ ) p ( x − j ) p ( x j ∣ x − j ) p ( x j ∗ ∣ x − j ) } = 1 \alpha (x,x^{*})=min \left \{1,\frac{p(x^{*})q(x^{*},x)}{p(x)q(x,x^{*})}\right \}\\ =min \left \{1,\frac{ {\color{Orange}{p(x_{-j}^{*})}}{\color{Blue}{p(x_{j}^{*}|x_{-j}^{*})}}{\color{Orchid}{p(x_{j}|x_{-j}^{*})}}}{ {\color{Orange}{p(x_{-j})}}{\color{Orchid}{p(x_{j}|x_{-j})}}{\color{Blue}{p(x_{j}^{*}|x_{-j})}}}\right \} =1 α(x,x)=min{ 1,p(x)q(x,x)p(x)q(x,x)}=min{ 1,p(xj)p(xjxj)p(xjxj)p(xj)p(xjxj)p(xjxj)}=1

这里用到了 p ( x − j ) = p ( x − j ∗ ) p(x_{-j})=p(x_{-j}^{*}) p(xj)=p(xj) p ( ⋅ ∣ x − j ) = p ( ⋅ ∣ x − j ∗ ) p(\cdot |x_{-j})=p(\cdot |x_{-j}^{*}) p(xj)=p(xj)

转移核就是满条件概率分布:

p ( x , x ∗ ) = p ( x j ∗ ∣ x − j ) p(x,x^{*})=p(x_{j}^{*}|x_{-j}) p(x,x)=p(xjxj)

也就是说按照单分量的满条件概率分布 p ( x j ′ ∣ x − j ) p(x_{j}^{'}|x_{-j}) p(xjxj)进行随机抽样,就能实现单分量MH算法。吉布斯抽样对每次抽样的结果都接受,没有拒绝,这一点和一般的MH算法不同。
这里,假设满条件概率分布 p ( x j ′ ∣ x − j ) p(x_{j}^{'}|x_{-j}) p(xjxj)不为 0 0 0,即马尔可夫链是不可约的。

(三)计算步骤

  • a.初始化,给出初始样本 x ( 0 ) = ( x 1 ( 0 ) , x 2 ( 0 ) , ⋯   , x k ( 0 ) ) T x^{(0)}=(x_{1}^{(0)},x_{2}^{(0)},\cdots ,x_{k}^{(0)})^{T} x(0)=(x1(0),x2(0),,xk(0))T
  • b.对 i = 1 , 2 , ⋯   , n i=1,2,\cdots ,n i=1,2,,n循环执行:
    (第 1 1 1步))由满条件分布 p ( x 1 ∣ x 2 ( i − 1 ) , ⋯   , x k ( i − 1 ) ) p(x_{1}|x_{2}^{(i-1)},\cdots ,x_{k}^{(i-1)}) p(x1x2(i1),,xk(i1))抽取 x 1 ( i ) x_{1}^{(i)} x1(i)
    ⋮ \vdots
    (第 j j j步)由满条件分布 p ( x j ∣ x 1 ( i ) , ⋯   , x j − 1 ( i ) , x j + 1 ( i − 1 ) , ⋯   , x k ( i − 1 ) ) p(x_{j}|x_{1}^{ {\color{Red}{(i)}}},\cdots ,x_{j-1}^{ {\color{Red}{(i)}}},x_{j+1}^{(i-1)},\cdots ,x_{k}^{(i-1)}) p(xjx1(i),,xj1(i),xj+1(i1),,xk(i1))抽取 x j ( i ) x_{j}^{(i)} xj(i)
    ⋮ \vdots
    (第 k k k步)由满条件分布 p ( x k ∣ x 1 ( i ) , ⋯   , x k − 1 ( i ) ) p(x_{k}|x_{1}^{(i)},\cdots ,x_{k-1}^{(i)}) p(xkx1(i),,xk1(i))抽取 x k ( i ) x_{k}^{(i)} xk(i)
    得到第 i i i次迭代值 x ( i ) = ( x 1 ( i ) , x 2 ( i ) , ⋯   , x k ( i ) ) T x^{(i)}=(x_{1}^{(i)},x_{2}^{(i)},\cdots ,x_{k}^{(i)})^{T} x(i)=(x1(i),x2(i),,xk(i))T
  • c.得到样本集合 { x ( m + 1 ) , x ( m + 2 ) , ⋯   , x ( n ) } \left \{x^{(m+1)},x^{(m+2)},\cdots ,x^{(n)}\right \} { x(m+1),x(m+2),,x(n)},计算函数样本均值 f m n f_{mn} fmn

f m n = 1 n − m ∑ i = m + 1 n f ( x ( i ) ) f_{mn}=\frac{1}{n-m} \sum_{i=m+1}^{n} f(x^{(i)}) fmn=nm1i=m+1nf(x(i))

(四)对比单分量MH算法

单分量MH算法中,抽样会在样本点之间移动,但其间可能在某一些样本点上停留(由于采样被拒绝),适合于满条件概率分布不容易抽样的情况。
吉布斯抽样算法中,抽样点会在样本点之间持续移动,适合于满条件概率分布容易抽样的情况。

五、MCMC的问题

  • 理论上只保证了收敛性,但不知何时开始收敛
  • mixing time过长 → p ( x ) \rightarrow p(x) p(x)太复杂 → \rightarrow 高维及相关性
  • 样本之间有一定的相关性

下一章传送门:白板推导系列笔记(十四)-隐马尔可夫模型

参考文章
MCMC|机器学习推导系列

你可能感兴趣的:(哔站机器学习白板推导,机器学习)