Chapter 11: Sampling Methods

来源:互联网 发布:淘宝神经猫 编辑:程序博客网 时间:2024/06/01 15:33

一:Introduction

1:我们在做推理时,主要想要解决的是在后验概率p(z⃗ )的情况下,计算f(z⃗ )的期待值,即

E[f]=f(z⃗ )p(z⃗ )dz⃗ 
z⃗ 是离散变量时,积分符号换成求和符号

2:为了解决上述问题,抽样方法(sampling method)的观点是从分布p(z⃗ )独立地获得一系列抽样值z⃗ l(l=1,…,L),因此上述积分可以被近似为

fˆ=1Ll=1Lf(z⃗ l)
不难获得E[fˆ]=E[f]var[fˆ]=E[(fE[f])2]

3:上述抽样方法的问题在于以下两点:第一点是提取的样品z⃗ l或许不是相互独立地,因此我们实际上需要提取比有效样品数目更大的样品集合;第二点是如果在p(z⃗ )很大的区域中f(z⃗ )的值很小,反之亦然,则f(z⃗ )的期待值被小概率的区域主导着,这就意味着为了实现足够大的准确度,我们需要比较大的样品数目z⃗ l

二:Basic Sampling Algorithms

1:Standard distributions

1):假设我们有一个单变量z,其在(0,1)区间内均匀分布,同时我们想要从单变量分布p(y)中y的提取样品值,首先

p(y)=p(z)|dzdy|     (p(z)=1)

然后
z=h(y)=yp(yˆ)dyˆ
最后求其逆函数y=h1(z),有了这个关系式,当我们提取z的杨品值时,我们自然地也就提取了y的样品值

2):对于多变量分布,我们则有以下关系式:

p(y1,...,yM)=p(z1,..,zM)|(z1,...,zM)(y1,...,yM)|

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)中提取的样品被接受的概率:

p(accept)={p˜(z)/kq(z)}q(z)dz=1kp˜(z)dz

因此为了提高样品接受率,我们需要使得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⃗ )/ZpZp的值未知,则

E[f]=f(z⃗ )p(z⃗ )dz⃗  l=1Lwlf(z⃗ (l))wl=p˜(z⃗ (l))/q(z⃗ (l))mp˜(z⃗ (m))/q(z⃗ (m))

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

wl=p˜(z⃗ (l))/q(z⃗ (l))mp˜(z⃗ (m))/q(z⃗ (m))

(3):现在我们有一个离散分布(z⃗ (1),...,z⃗ (L)),每个成分对应的概率是(w1,...,wL),我们就从该离散分布中提取L个样品作为从分布p(z⃗ )中提取的样品

可以证明:在L趋于无穷大情况下,最终提取的L个样品服从的分布是p(z⃗ )

2):如果我们只是需要计算f(z⃗ )相对于p(z⃗ )的期待值,不需要从p(z⃗ )中提取样品,则我们只需要计算下式

E[f(z⃗ )]l=1Lwlf(z⃗ l)

5:Sampling and the EM algorithm

1):EM算法的E步骤

Q(θ⃗ ,θ⃗ old)=p(Z|X,θ⃗ old)lnp(Z,X|θ⃗ )dZ
利用样品方法能够利用下式近似
Q(θ⃗ ,θ⃗ old)1Ll=1Llnp(Zl,X|θ⃗ )

M步骤按照通常的方法最大化Q函数,这称之为Monte Carlo EM algorithm;

2):在上面获得的Q函数中增加一项lnp(θ⃗ )我们即可以找到使得θ⃗ 后验分布最大值的θ⃗ 

三:Markov Chain Monte Carlo(MCMC)

1: Introdcution to MCMC

1):像之前一样,假设要抽样的分布p(z⃗ )=p˜(z⃗ )/ZpZp值未知,但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⃗ 被接受的概率为

A(z⃗ ,z⃗ (τ))=min(1,p˜(z⃗ )p˜(z⃗ (τ)))
因此我们可以在(0,1)区间均匀选择一个随机数u,如果u<A(z⃗ ,z⃗ (τ))则接受该样品z⃗ ,否则拒绝该样品。

4):我们应注意到在MCMC方法中,未来的样品态是条件在目前样品态中才得到的,目前的样品态是条件在过去的样品态中才得到的,所以我们获得的样品集合z⃗ (1),z⃗ (2),...它们之间不是相互独立的,因为连续的样品态是高度相关联的。如果我们希望获得相互独立的样品,则我们可以每隔M个样品取一个样品态,如果M足够大,在实际用途中获得的样品集合可以认为是相互独立的。

2: Markov chains

1):对于一系列随机变量z⃗ (1),...,z⃗ (M)来说,其一阶Markov chain满足如下性质:

p(z⃗ (m+1)|z⃗ (1),...,z⃗ (m))=p(z⃗ (m+1)|z⃗ (m)) (m=1,...,M1)

该公式意味着如果条件着系统目前的态,则系统未来的态和过去的态是独立不相关的;

2):Markov chain结点变量的边际概率能够被表达成如下形式:

p(z⃗ (m+1))=z⃗ (m)p(z⃗ (m+1)|z⃗ (m))p(z⃗ (m))
如果在Markov chain每一步中都使得变量z⃗ (m+1)z⃗ (m)都遵循相同形式的概率分布,我们就说该概率分布相对于该Markov chain来说是invariant或者是stationary;

3):使得概率分布p(z⃗ )是Markov chain invariant分布的一个充分但不是必要的条件是下列等式的成立

p(z⃗ )T(z⃗ ,z⃗ )=p(z⃗ )T(z⃗ ,z⃗ )
其中T(z⃗ ,z⃗ )=p(z⃗ |z⃗ )称之为Markov chain的transition probability;

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:

T(z⃗ ,z⃗ )=k=1KαkBk(z⃗ ,z⃗ )
其中αk>=0以及Kk=1αk=1

四: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),...,zj1(τ)+1,zj+1(τ)...,zMτ)中提取样品zj(τ+1)
  • p(zM|z1(τ+1),z2(τ+1),...,zM1τ+1)中提取样品zM(τ+1)

2:Gibbs sampling的应用性依赖于从条件分布p(zk|z⃗ k)中提取样品的难易程度

0 0
原创粉丝点击