蒙特卡罗法三种一般抽样方法(直接抽样法、接受-拒绝抽样法、重要性抽样法)

1. 概率分布采样

假如 p ( z ) p(z) p(z)是我们要采样的分布。若可以得到 p ( z ) p(z) p(z)的概率密度 p d f pdf pdf,对 p d f pdf pdf的求积分得到分布函数 c d f cdf cdf
u ( i ) u^{(i)} u(i)~ U ( 0 , 1 ) U(0,1) U(0,1),即u是(0,1)分布,则取得样本 x ( i ) x^{(i)} x(i)
x ( i ) = c d f − 1 ( u ( i ) ) x^{(i)}=cdf^{-1}(u^{(i)}) x(i)=cdf1(u(i))
图例:假设 p d f pdf pdf为高斯分布
《蒙特卡罗法三种一般抽样方法(直接抽样法、接受-拒绝抽样法、重要性抽样法)》
p d f pdf pdf求积分后,得到分布函数 c d f cdf cdf,则可求出 u ( i ) u^{(i)} u(i)对应的样本 x ( i ) x^{(i)} x(i)
《蒙特卡罗法三种一般抽样方法(直接抽样法、接受-拒绝抽样法、重要性抽样法)》
同理可以抽样出N个样本点 x ( 1 ) x ( 2 ) , . . . , x ( N ) x^{(1)}x^{(2)},…,x^{(N)} x(1)x(2),...,x(N)
这种抽样方法的缺点是现实中很难得到 p d f pdf pdf函数, c d f cdf cdf是求不出来的,所以很难通过这种方法去抽样得到样本点。这种方法只能适用于一些非常有限的分布。

2. Rejection Sampling 接受-拒绝抽样法

《蒙特卡罗法三种一般抽样方法(直接抽样法、接受-拒绝抽样法、重要性抽样法)》

p ( x ) p(x) p(x)是概率密度函数, q ( x ) q(x) q(x)为proposal distribution即为建议的分布函数

c为 q ( x ) q(x) q(x)前的参数,由于概率密度和为1,所以我们建议的 q ( x ) q(x) q(x)不可能处处大于 p ( x ) p(x) p(x),所以我们在 q ( x ) q(x) q(x)前面乘上一个参数c,使其位于 p ( x ) p(x) p(x)之上,使其满足 ∀ x i , c q ( x i ) ≥ p ( x i ) \forall x_i,cq(x_i)\geq p(x_i) xi,cq(xi)p(xi) 如图所示。
引入 q ( x ) q(x) q(x)的原因是在现实中 p ( x ) p(x) p(x)往往比较复杂,我们无法直接从 p ( x ) p(x) p(x)中采样。而 q ( x ) q(x) q(x)是相对比较简单的分布我们可以直接从里面采样,再看看抽样的样本点是否能够代表 p ( x ) p(x) p(x)

具体步骤如下:
输入:抽样的目标概率分布的概率密度函数 p ( x ) p(x) p(x);
输出:概率分布的随机样本 x 1 . x 2 , . . . , x 3 x_1.x_2,…,x_3 x1.x2,...,x3
参数:样本数n
(1)选择概率密度函数为 q ( x ) q(x) q(x)的概率分布,作为建议分布,使其对任一 x x x满足 c q ( x ) ≥ p ( x ) cq(x)\geq p(x) cq(x)p(x),其中 c > 0 c>0 c>0
(2)按照建议分布 q ( x ) q(x) q(x)随机抽样得到样本 x ∗ x^* x,再按照均匀分布在(0,1)范围内抽样得到 u u u
(3)如果 u ≤ p ( x ∗ ) c q ( x ∗ ) u\leq \frac {p(x^*)}{cq(x^*)} ucq(x)p(x),则将 x ∗ x^* x作为抽样结果;否则,回到步骤(2)。
【注:解释一下这里u的用处。当 p ( x ) p(x) p(x) c q ( x ) cq(x) cq(x)很接近时,也就是图中拒绝域比较窄时, p ( x ∗ ) c q ( x ∗ ) \frac {p(x^*)}{cq(x^*)} cq(x)p(x)比例接近1,这时u在(0,1)中取值满足小于 p ( x ∗ ) c q ( x ∗ ) \frac {p(x^*)}{cq(x^*)} cq(x)p(x)的概率比较大,接受率高,抽样效率比较高;而当 p ( x ∗ ) c q ( x ∗ ) \frac {p(x^*)}{cq(x^*)} cq(x)p(x)比较小时,就会导致拒绝比例比较高,抽样效率较低。这样做能达到在 p ( x ) p(x) p(x) c q ( x ) cq(x) cq(x)接近的地方多抽样,在差异大的地方少抽样的效果。】
(4)直至得到n个随机样本,结束。

接受-拒绝法的优点是容易实现,缺点是效率可能不高。如果 p ( x ) p(x) p(x)的涵盖体积占 c q ( x ) cq(x) cq(x)的涵盖体积的比例很低,就会导致拒绝的比例很高,抽样效率很低。注意,一般是在高维空间进行抽样,即使 p ( x ) p(x) p(x) c q ( x ) cq(x) cq(x)很接近,两者涵盖体积的差异也可能很大(与我们在三维空间的直观不同)。

3.重要性抽样法(importance sampling)

E p ( x ) [ f ( x ) ] = ∫ p ( x ) f ( x ) d x E_{p(x)}[f(x)]=\int p(x)f(x)dx Ep(x)[f(x)]=p(x)f(x)dx
= ∫ p ( x ) q ( x ) q ( x ) f ( x ) d x =\int \frac {p(x)}{q(x)}q(x)f(x)dx =q(x)p(x)q(x)f(x)dx
= ∫ f ( x ) p ( x ) q ( x ) q ( x ) d x , 令 W i = p ( x i ) q ( x i ) =\int f(x)\frac {p(x)}{q(x)}q(x)dx, 令W_i=\frac {p(x_i)}{q(x_i)} =f(x)q(x)p(x)q(x)dx,Wi=q(xi)p(xi)
≈ 1 N ∑ i = 1 N f ( x i ) W i \approx \frac 1N \sum_{i=1}^{N} {f(x_i)W_i} N1i=1Nf(xi)Wi

p ( x ) p(x) p(x):概率密度函数
f ( x ) f(x) f(x):定义在X上的函数
E p ( x ) [ f ( x ) ] E_{p(x)}[f(x)] Ep(x)[f(x)]:求函数 f ( x ) f(x) f(x)关于密度函数 p ( x ) p(x) p(x)的数学期望
q ( x ) q(x) q(x):已知分布的概率密度函数,如(0,1)均匀分布
W:重要性权重,表示 p ( x ) p(x) p(x) q ( x ) q(x) q(x)的相似程度

以上是重要性抽样的推导公式。值得一提的是,如果是高维空间的随机向量,拒绝采样和重要性采样常常难以寻找合适的参考分布,并且采样效率低下,此时一般使用MCMC。

    原文作者:大胡子爷爷黎曼的小弟
    原文地址: https://blog.csdn.net/lukas_ten/article/details/114458591
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞