逆变换采样和拒绝采样

蒙特卡罗方法(Monte Carlo)尝试利用计算机模拟(伪)随机数解决一类问题,这类问题通常具有以下特征:

  1. 所求解的问题本身具有 内在随机性,例如中子与原子核的相互作用受量子力学规律的制约;
  2. 所求解问题可以转化为某种随机分布的特征数,例如通过撒豆子的方式计算不规则图形的面积。蒙特卡洛法是一种以 概率统计理论 为指导的 数值计算 方法。

抽样(采样) 指从总体中抽取一部分作为样本。计算机模拟中,抽样意味着从一个概率分布中生成一个观察值,这涉及到一个随机的过程。一般认为计算机只能进行均匀分布的采样,对于复杂的概率分布,需要设计采样方法。

逆变换采样

从图像上可以十分形象地理解连续型随机变量的采样:

img

左图是正态分布的 概率密度函数(Probability Density Function,PDF)记为 \(f(x)\),右图是正态分布的 累积分布函数(Cumulative Distribute Function,CDF)记为 \(F(x)\)。随机变量的采样就是在 \([0,1]\) 区间均匀分布采样的基础上,选取尽可能分散的点,使这些点尽可能地拟合累积分布函数的曲线。

拒绝采样

逆变换采样虽然简单有效,但是当累积分布函数或者反函数难求时却难以实施,而实际往往就是这样的。

下图中的 \(f(x)\) 是我们采样的目标 PDF,当其 CDF 或者 CDF 的反函数不容易求的时就不能直接对 \(f(x)\) 进行采样。拒绝采样(Rejection Sampling)的基本思想是借助这样一个参考概率密度函数 \(f_r(x)\) 即下图中的 \(\mathrm{Mg}(x)=\mathrm{M}\)

  • \(f_r(x)\) 十分容易进行采样,例如取均匀分布意味着参考 PDF 可以直接进行逆变换采样
  • \(f_r(x)\) 位于 \(f(x)\) 上方,即对任意 \(x\)\(f_r(x){\ge}f(x)\)
  • \(\mathrm{Mg}(x)\) 表示将均匀分布 \(g(x)\) 向上移动,此时以 \(f(x)\) 的极大值确定 \(\mathrm{M}\) 的值效果比较好
img

从图上来看,参考 PDF “罩住”了目标 PDF:

img

拒绝采样的过程如下:

  1. \(f_r(x)\) 进行一次采样 \(x_i\)

  2. 计算 \(x_i\)接受概率 \(\alpha\)(Acceptance Probability):

    \[\alpha=\frac{f\left(x_{i}\right)}{f_r\left(x_{i}\right)} \]

  3. \((0,1)\) 均匀分布中进行一次采样 \(u\)

  4. 如果 \(\alpha{\ge}u\),接受 \(x_i\) 作为一个来自 \(f(x)\) 的采样;否则,重复第1步

显然对于特定的目标 PDF,参考 PDF 不止一个,不同 PDF 的 \(\max(\alpha)\) 不同。以均匀分布采样为例,当参考 PDF 从上面越靠近目标 PDF 采样效率越高,相应的寻找这样的参考 PDF 的难度就越大。采样效率高意味着++对于那些概率密度较小的区域有更大的几率能够采样到++。

为了平衡采样效率和参考 PDF 的确定难度,提出了 自适应拒绝采样

自适应拒绝采样

当参考 PDF 不能很好的“罩住”目标 PDF 时,那些未罩住区域内的采样点被拒绝的概率就会很大,采样效率低。所以如果能够找到一个跟目标 PDF 非常接近的参考 PDF,即参考 PDF 计划能够完全从上面贴合目标 PDF,此时能够达到较好的采样效率。

当目标 PDF 是 log-concave函数 时可以采用 自适应拒绝采样(Adaptive Rejection Sampling,ARS)。

log-concave函数:当概率密度函数 \(f(x)\) 是凹函数(concave)且 \(\log{f(x)}\) 仍然是凹函数时,\(f(x)\) 称之为 log-concave 函数:

\[f(\theta x+(1-\theta) y) \geq \theta f(x)+(1-\theta) f(y) \]

在 log-concave 函数上随机选取一些点做切线:

将log-concave函数变换回原来的PDF,此时上图的切线将变成曲线(取指数),它!们!弯!了!

将这组弯了的“切线”组成一个分段函数,这个分段函数将会很好的贴合目标 PDF。

posted @ 2020-12-15 20:16  barwe  阅读(588)  评论(0编辑  收藏  举报