拒绝采样和重要性采样

根据概率密度函数提供的概率分布信息来生成随机变量的一个取值,就是采样。从某种意义上来说,采样是概率密度函数的逆向应用,通常需要根据待采样分布的具体特点来选择合适的采样策略。

几乎所有的采样方法都是以均匀分布随机数作为基本操作。一般可采用线性同余法来生成离散均匀分布伪随机数。计算公式为:
x t + 1 ≡ a ∗ x t + c ( m o d m ) x_{t+1}\equiv a*x_t + c (mod m) xt+1axt+c(modm)
一般地,如果随机变量x和u存在变换关系
u = Ψ ( x ) u = \Psi(x) u=Ψ(x)
则它们的概率密度函数有如下关系(一般都是单调函数才有此关系):
p ( u ) ∣ ∇ Ψ ( x ) ∣ = p ( x ) p(u)|\nabla\Psi(x)| = p(x) p(u)Ψ(x)=p(x)
由此可见,当目标分布p(x)不好采样时,可以构造一个变换来间接采样。特别地,如果变换关系 Ψ ( . ) \Psi(.) Ψ(.)是x的累积分布函数的话,我们可以采用逆变换采样。假设待采样的目标分布的概率密度函数为p(x),它的累积分布函数为: u = Ψ ( x ) = ∫ x − ∞ p ( t ) d t u = \Psi(x) = \int^{-∞}_x{p(t)}{\rm d}t u=Ψ(x)=xp(t)dt则逆变换采样法按如下步骤进行:
(1) 从均匀分布U(0,1)产生一个随机数u_i
(2) 计算 x i = Ψ − 1 ( u i ) x_i = \Psi^{-1}(u_i) xi=Ψ1(ui)
这里使用均匀分布是有说法的,说法如下:
拒绝采样和重要性采样_第1张图片
然而,如果待采样的目标分布的累积分布函数的逆函数难以求解时,则可以采用一些别的采样方法。这里对其中的拒绝采样和重要性采样进行介绍。

拒绝采样:对于目标分布p(x),选取一个容易采样的参考分布q(x),选取一个容易采样的参考分布q(x),使得对于任意x都有p(x)<=M*q(x),则可以按如下过程采样:
(1) 从参考分布q(x)中随机抽取一个样本x_i
(2) 从均匀分布U(0,1)产生一个随机数u_i
(3) 如果 u i < p ( x i ) M q ( x i ) u_i < \frac{p(x_i)}{Mq(x_i)} ui<Mq(xi)p(xi)则接受样本x_i,否则拒绝,重新进行步骤(1)~(3),直到产生新的样本x_i被接受。
下面我们试图证明最终接受的x_i服从目标分布p(x):
假设随机变量x的取值范围为[a,b],则抽出的随机数小于等于d的概率为 F ( d ∣ a c c e p t ) = P ( X ≤ d ∣ u < p ( x i ) M q ( x i ) ) = P ( X ≤ d , u < p ( x i ) M q ( x i ) ) P ( u < p ( x i ) M q ( x i ) ) = ∫ a d ∫ 0 p ( x i ) M q ( x i ) p ( x , u ) d u d x p ( x i ) M q ( x i ) F(d|accept) = P(X\leq d | u < \frac{p(x_i)}{Mq(x_i)})= \frac{P( X\leq d ,u < \frac{p(x_i)}{Mq(x_i)})}{P(u < \frac{p(x_i)}{Mq(x_i)})} = \frac{\int^d_a{\int^{\frac{p(x_i)}{Mq(x_i)}}_0{p(x,u)}{\rm d}u}{\rm d}x}{\frac{p(x_i)}{Mq(x_i)}} F(daccept)=P(Xdu<Mq(xi)p(xi))=P(u<Mq(xi)p(xi))P(Xd,u<Mq(xi)p(xi))=Mq(xi)p(xi)ad0Mq(xi)p(xi)p(x,u)dudx
问题就在于这个p(x,u)的联合分布怎么求,其实我也不太会。。。
这里暂时先记住最后的结论是:最终接受的x_i服从目标分布p(x)

有时候我们采样的最终目标是为了得到一个函数的期望,这时候一般使用的采样性方法是重要性采样。重要性采样就是用于计算函数f(x)在目标分布p(x)上的期望,即 E [ f ] = ∫ f ( x ) p ( x ) d x E[f] = \int{f(x)p(x)}{\rm d}x E[f]=f(x)p(x)dx我们先找到一个比较容易抽样的参考分布q(x),并令w(x) = p(x)/q(x),则有 E [ f ] = ∫ f ( x ) w ( x ) q ( x ) d x E[f] = \int{f(x)w(x)q(x)}{\rm d}x E[f]=f(x)w(x)q(x)dx这里w(x)可以看成是样本x的重要性权重。由此,可以先从参考分布q(x)中抽取N个样本{x_i},然后利用如下公式来估计E[f]: E [ f ] ≈ E N [ f [ = ∑ i = 1 N f ( x i ) w ( x i ) E[f] ≈ E_N[f[ = \sum_{i=1}^N{f(x_i)w(x_i)} E[f]EN[f[=i=1Nf(xi)w(xi)

值得一提的是,如果是高维空间的随机向量,拒绝采样和重要性采样常常难以寻找合适的参考分布,并且采样效率低下,此时一般使用MCMC,常见的代表有MH采样法和吉布斯采样法,以后有机会再介绍。

你可能感兴趣的:(拒绝采样和重要性采样)