一:Introduction
1:我们在做推理时,主要想要解决的是在后验概率 p(z⃗ ) 的情况下,计算 f(z⃗ ) 的期待值,即
2:为了解决上述问题,抽样方法(sampling method)的观点是从分布 p(z⃗ ) 中独立地获得一系列抽样值 z⃗ l (l=1,…,L),因此上述积分可以被近似为
3:上述抽样方法的问题在于以下两点:第一点是提取的样品 z⃗ l 或许不是相互独立地,因此我们实际上需要提取比有效样品数目更大的样品集合;第二点是如果在 p(z⃗ ) 很大的区域中 f(z⃗ ) 的值很小,反之亦然,则 f(z⃗ ) 的期待值被小概率的区域主导着,这就意味着为了实现足够大的准确度,我们需要比较大的样品数目 z⃗ l
二:Basic Sampling Algorithms
1:Standard distributions
1):假设我们有一个单变量z,其在(0,1)区间内均匀分布,同时我们想要从单变量分布p(y)中y的提取样品值,首先
然后
2):对于多变量分布,我们则有以下关系式:
3):很明显该提取样品的方法需要目标概率分布的不确定积分很容易计算,以及对应的逆函数也很容易计算,因此该提取样品的方法只对有限数目的概率分布适用。
2:Rejection sampling
1):我们想要从概率分布 p(z) 中提取样品,并且 p(z)=1Zpp˜(z) , p˜(z) 的值很容易被计算,但 Zp 是未知的。Rejection sampling的步骤如下:
(1):需要有一个比较简单的易于抽样的proposal distribution q(z), 同时我们需要有一个常数值k,使得 kq(z)>=p˜(z) ,kq(z)被称之为comparsion function;
(2):首先从q(z)中提取一个样品 z0 ,然后再在区间 [0,kq(z0)] 均匀提取 u0 ;
(3):如果 u0>p˜(z0) ,则该样品值 z0 被拒绝,否则被接收;
(4):可以证明,获得的样品值 z0 满足概率分布p(z)。
2):从q(z)中提取的样品被接受的概率:
因此为了提高样品接受率,我们需要使得k在满足 kq(z)>=p˜(z) 的条件尽可能地小。
3):Rejection sampling方法有如下几个缺点:第一个是在实际情况下一个好的proposal distribution和comparsion function是比较难找到的;第二个是随着输入变量维数的增加,样品接受率呈指数下降。因此rejection sampling方法虽然在一维或两维情况下是一个比较好的方法,但是不适合求解高维问题,然而该方法能够在求解高维问题中扮演一个子程序的角色。
3:Importance sampling
1):Importance sampling解决的是怎么去近似 f(z⃗ ) 相对于概率分布 p(z⃗ ) 的期待值,但是该方法并不能够被应用于怎么从概率分布 p(z⃗ ) 中提取样品;
2):类似于Rejection sampling,Importance sampling同样要求要有一个易于抽样的proposal distribution q(z⃗ ) ,现在假设我们要从分布 p(z⃗ ) 中提取样品,并且 p(z⃗ )=p˜(z⃗ )/Zp , Zp 的值未知,则
3):Importance sampling方法成功的关键在于proposal distribution q(z⃗ ) 与 p(z⃗ )f(z⃗ ) 的变化趋势匹配的好坏程度。该方法有如下两个缺点:第一点是 p(z⃗ )f(z⃗ ) 经常只是在一个非常小的 z⃗ 空间中值比较大,因此 f(z⃗ ) 的期待值或许只是被该一小片 z⃗ 空间区域主导,也就是说有效样品的数目要远小于实际的样品数目,在实际中我们提取的大部分样品可能对于期待值的计算只起到非常小的的作用;第二点更糟的是如果在 p(z⃗ )f(z⃗ ) 值很大的那一部分很小的 z⃗ 空间区域内, q(z⃗ ) 值很小,则没有或者很少的样品落入到那一部分区域,这样计算出来的期待值误差比较大。因此我们希望在 p(z⃗ )f(z⃗ ) 值很大的区域内,抽样分布 q(z⃗ ) 的值不要太小。
4:Sampling-importance-resampling(SIR)
1):类似于Rejection samplinging,SIR也要求要有一个易于抽样的分布 q(z⃗ ) ,SIR方法要求以下三个步骤:
(1):从 q(z⃗ ) 中提取L个样品 z⃗ (1),...,z⃗ (L) ;
(2):使用下式计算权重 w1,...,wL
(3):现在我们有一个离散分布( z⃗ (1),...,z⃗ (L) ),每个成分对应的概率是( w1,...,wL ),我们就从该离散分布中提取L个样品作为从分布 p(z⃗ ) 中提取的样品
可以证明:在L趋于无穷大情况下,最终提取的L个样品服从的分布是 p(z⃗ )
2):如果我们只是需要计算 f(z⃗ ) 相对于 p(z⃗ ) 的期待值,不需要从 p(z⃗ ) 中提取样品,则我们只需要计算下式
5:Sampling and the EM algorithm
1):EM算法的E步骤
M步骤按照通常的方法最大化Q函数,这称之为Monte Carlo EM algorithm;
2):在上面获得的Q函数中增加一项 lnp(θ⃗ ) 我们即可以找到使得 θ⃗ 后验分布最大值的 θ⃗ 。
三:Markov Chain Monte Carlo(MCMC)
1: Introdcution to MCMC
1):像之前一样,假设要抽样的分布 p(z⃗ )=p˜(z⃗ )/Zp , Zp 值未知,但 p˜(z⃗ ) 的值很容易被计算。同时也和之前的抽样方法一样,MCMC也要求要有一个易于抽样的proposal distribution q(z⃗ ) 。非常广泛的 p(z⃗ ) 适合于用MCMC方法来抽样
2):MCMC方法大致思路如下:假设现在有了一个目前的抽样态 z⃗ (τ) ,则接下来从 q(z⃗ |z⃗ (τ)) 中提取新的样品态 z⃗ ∗ ,如果该样品态满足一定的标准则接受该样品态,令 z⃗ (τ+1)=z⃗ ∗ ,如果不满足则抛弃该样品态 z⃗ ∗ ,令 z⃗ (τ+1)=z⃗ (τ) ,接下来再从 q(z⃗ |z⃗ (τ+1)) 中提取新的样品态,如此重复下去,可以证明当 τ−>∞ 时,样品 z⃗ τ 服从的概率分布趋于 p(z⃗ ) 。从这里我们可以看出获得的一些列样品 z⃗ (1),z⃗ (2),... 形成了一个Markov Chain。
3):在Metropolis算法中,假定proposal distribution q(z⃗ ) 是对称分布,即 q(z⃗ A|z⃗ B)=q(z⃗ B|z⃗ A) ,然后获得的样品 z⃗ ∗ 被接受的概率为
4):我们应注意到在MCMC方法中,未来的样品态是条件在目前样品态中才得到的,目前的样品态是条件在过去的样品态中才得到的,所以我们获得的样品集合 z⃗ (1),z⃗ (2),... 它们之间不是相互独立的,因为连续的样品态是高度相关联的。如果我们希望获得相互独立的样品,则我们可以每隔M个样品取一个样品态,如果M足够大,在实际用途中获得的样品集合可以认为是相互独立的。
2: Markov chains
1):对于一系列随机变量 z⃗ (1),...,z⃗ (M) 来说,其一阶Markov chain满足如下性质:
该公式意味着如果条件着系统目前的态,则系统未来的态和过去的态是独立不相关的;
2):Markov chain结点变量的边际概率能够被表达成如下形式:
3):使得概率分布 p(z⃗ ) 是Markov chain invariant分布的一个充分但不是必要的条件是下列等式的成立
4):当我们使用Markov chain从某一个概率分布 p∗(z⃗ ) 中抽取样品时,我们需要建立一个满足如下两个条件的Markov chain:第一个是使得 p∗(z⃗ ) 是该Markov chain的invariant distribution;第二个是当m-> ∞ 时, p(z⃗ (m)) 收敛于要求的invariant分布 p∗(z⃗ ) 。并且当这两个条件满足时,我们称此invariant分布为该Markov chain的平衡分布(equilibrium distribution);
5):实际中,我们经常利用一系列’base’ transitions B1,...,BK 通过如下的线性叠加方式来构造transition probability:
四:Gibbs Sampling
1:Gibbs sampling是一个简单但被广泛使用的Markov chain Monte Carlo算法,其过程如下:
(1):初始化 {zi,i=1,...,M}
(2):对于 τ=1,...,T :
- 从 p(z1|z2(τ),z3(τ),...,zMτ) 中提取样品 z1(τ+1)
- 从从 p(z2|z1(τ+1),z3(τ),...,zMτ) 中提取样品 z2(τ+1)
- …
- 从 p(zj|z1(τ+1),...,zj−1(τ)+1,zj+1(τ)...,zMτ) 中提取样品 zj(τ+1)
- …
- 从 p(zM|z1(τ+1),z2(τ+1),...,zM−1τ+1) 中提取样品 zM(τ+1)
2:Gibbs sampling的应用性依赖于从条件分布 p(zk|z⃗ ∖k) 中提取样品的难易程度