MCMC采样方法概述

释放双眼,带上耳机,听听看~!
本文介绍了MCMC采样方法的概念、动机、采样困难以及平稳分布的定义和转移过程。适合对机器学习和数据分析感兴趣的读者阅读。

一、概述

1、动机

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

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

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

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

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

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

二、平稳分布

MCMC采样方法概述

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

Q=(Q11Q12⋯Q1K⋮⋮⋮⋮Qk1Qk2⋯QKK)k×kQ=begin{pmatrix}Q_{11}&Q_{12}&cdots&Q_{1K}vdots&vdots&vdots&vdotsQ_{k1}&Q_{k2}&cdots&Q_{KK}end{pmatrix}_{k×k}

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

qt+1(x=j)=∑i=1Kqt(x=i)Qij这种转换的目的是将状态用矩阵表示q^{t+1}(x=j)=sumlimits_{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)⋅Qij∴q(t+1)=(∑i=1kq(t)(x=i)Qi1∑i=1kq(t)(x=i)⋅Qi2⋯∑i=1kq(t)(x=i)⋅Qik)i×k=q(t)⋅Q⇔q(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⋅Λ⋅A−1Λ=(λ1…λk)⋅∣λi∣⩽1, for i=1,2,,…,K则:q(t+1)=q(1)⋅(A⋅∧⋅A−1)t=q(1)⋅A∧tA−1存在足够大的m,s.t.Λm=(01…0)由于随机矩阵特征值的绝对值均≤1,因此可以设λi为1(简化运算)q(m+1)=q(1)⋅A⋅ΛmA−1q(m+2)=q(m+1)⋅A⋅Λ⋅A−1=q(1)⋅A∧mA−1A∧A−1=q(1)∧m+1A−1=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) cdotleft|lambda_iright| leqslant 1, text { for } i=1,2,,…,K
& 则: q^{(t+1)}=q^{(1)} cdotleft(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也就是基于采样的随机近似方法。该方法旨在求得复杂概率分布下的期望值:Ez∣x[f(z)]=∫p(z∣x)f(z)dz≈1N∑i=1Nf(zi)E_{z|x}[f(z)]=int p(z|x)f(z)mathrm{d}zapprox frac{1}{N} sum_{i=1}^{N}f(z_{i}),其中ziz_{i}是从概率分布p(z∣x)p(z|x)中取的样本,也就是说从概率分布中取NN个点,从而近似计算这个积分。

这里介绍三种采样方法:

  1. 概率分布采样

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

MCMC采样方法概述

  1. 拒绝采样(Rejection Sampling)

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

MCMC采样方法概述

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

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

③如果 ui≤p(zi)Mq(zi)u_i leq frac{pleft(z_iright)}{M qleft(z_iright)} ,则将 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)dz≈1N∑i=1Nf(zi)⋅p(zi)q(zi)⏟weightzi∼q(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

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

MCMC采样方法概述

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

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

  1. Sampling-Importance-Resampling

重要性采样有⼀个变种

MCMC采样方法概述

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

四、马尔可夫链的类型

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

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

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

P(Xt∣X1,X2,⋯Xt−1)=P(Xt∣Xt−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

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

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

P(Xt+s∣Xt−1+s)=P(Xt∣Xt−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

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

MCMC采样方法概述

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

  • 转移概率矩阵

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

pij=(Xt=i∣Xt−1=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(具体是行还是列根据自己的定义):

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

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

P=[p11p12p13⋯p21p22p23⋯p31p32p33⋯⋯⋯⋯⋯]pij≥0,    ∑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的状态分布,可以由在时刻t−1t-1的状态分布以及转移概率分布决定:

π(t)=Pπ(t−1)pi (t)=Ppi (t-1)

其中:

πi(t)=P(Xt=i)=∑mP(Xt=i∣Xt−1=m)P(Xt−1=m)=∑mpimπ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)

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

π(t)=Pπ(t−1)=P(Pπ(t−2))=P2π(t−2)pi (t)=Ppi (t-1)=P(Ppi (t-2))=P^{2}pi (t-2)

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

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

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

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

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

3.Detail Balance

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

Detail Balance:

p(x↦x∗)⋅π(x)=P(x∗↦x)⋅π(x∗)pleft(x mapsto x^*right) cdot pi(x)
= Pleft(x^* mapsto xright) cdot pileft(x^*right)

其中:x↦x∗    为    x∗∣xx mapsto x^*;;为;;x^*|x

∫p(x↦x∗)⋅π(x)dx=∫P(x∗↦x)⋅π(x∗)dx=π(x∗)⋅∫P(x∗↦x)dx⏟1=π(x∗)begin{aligned}
& int pleft(x mapsto x^*right) cdot pi(x) d x
&= int Pleft(x^* mapsto xright) cdot pileft(x^*right) d x{}
&=pileft(x^*right) cdot underbrace{int Pleft(x^* mapsto xright) d x}_1
&= pileft(x^*right)
end{aligned}

五、马尔可夫链的性质

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

1. 不可约

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

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

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

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

举例:

不可约:

MCMC采样方法概述

可约:

MCMC采样方法概述

2. 非周期

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

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

举例:

非周期:

MCMC采样方法概述

周期:

MCMC采样方法概述

3. 正常返

对于任意状态 i,j∈Si, j in S ,定义概率 pijtp_{i j}^t 为时刻 0 从状态 jj 出发,时刻 tt 首次转移到状态 ii 的概率,即 pijt=P(Xt=i,Xs≠i,s=1,2,⋯ ,t−1∣X0=j),t=1,2,⋯p_{i j}^t=Pleft(X_t=i, X_s neq i, s=1,2, cdots, t-1 mid X_0=jright), t=1,2, cdots 。若对所有状态 i,ji, j 都满足 lim⁡t→∞pijt>0lim _{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, cdotsright} ,若这个马尔可夫链是不可约、非周期且正常返的,则该马尔可夫链有唯一平稳分布 π=(π1,π2,⋯ )Tpi=left(pi_1, pi_2, cdotsright)^T ,并且转移概率的极限分布是马尔可夫链的平稳分布:

lim⁡t→∞P(Xt=i∣X0=j)=πi,i=1,2,⋯ ,j=1,2,⋯lim _{t rightarrow infty} Pleft(X_t=i mid X_0=jright)=pi_i, quad i=1,2, cdots, quad j=1,2, cdots

也就是:

lim⁡t→∞P(Xt=i)=πi,    i=1,2,⋯lim_{trightarrow 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^t→Eπ[f(X)]}=1Pleft{hat{f}_t rightarrow E_pi[f(X)]right}=1

这里:

f^t=1t∑s=1tf(xs)hat{f}_t=frac{1}{t} sum_{s=1}^t fleft(x_sright)

Eπ[f(X)]=∑if(i)πiE_pi[f(X)]=sum_i f(i) pi_if(X)f(X) 关于平稳分布 π=(π1,π2,⋯ )Tpi=left(pi_1, pi_2, cdotsright)^T 的数学期望, P{f^t→Eπ[f(X)]}=1Pleft{hat{f}_t rightarrow E_pi[f(X)]right}=1 表示 f^t→Eπ[f(X)],t→∞hat{f}_t rightarrow E_pi[f(X)], t rightarrow infty 几乎处处成立或以概率 1 成立。

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

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

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

Eπ[f(X)]=1n−m∑i=m+1nf(xi)E_pi[f(X)]=frac{1}{n-m} sum_{i=m+1}^n fleft(x_iright)

称为遍历均值。

5. 可逆马尔可夫链

  • 定义

对于任意状态i,j∈Si,jin S,对任意一个时刻tt满足:

P(Xt=i∣Xt−1=j)πj=P(Xt−1=j∣Xt=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π=π。Ppi=pi。

证明:

(Pπ)i=∑jpijπj=∑jpjiπi=πi∑jpji⏟=1=πi,    i=1,2,⋯(Ppi )_{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 天,点击查看活动详情

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

OpenMLDB-ChatGPT插件:数据库智能交互的未来

2023-12-19 2:10:14

AI教程

MobileVIT原理详解 | 深度学习网络 | 轻量化神经网络 | 移动端部署 | AI教程

2023-12-19 3:50:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索