重要性采样理解

首页摘要:

以前一直不能理解为什么特定分布可以通过均匀分布来进行采样,今天突然就想通了。俗语说得好,文章本天成,“妙手”偶得之。

为什么需要采样

采样是机器学习中,特别是生成模型中经常采用的一种技术。为什么要采样呢?因为很多时候我们需要获取的期望很难求得解析式时,利用蒙特卡洛模拟来近似求解是一种非常方便有效的方法。例如对于一个特定的服从$p(x)$分布的函数$f(x)$而言,其期望可以表示为:

对于复杂的$f(x)$或者$p(x)$而言,几无可能求出期望的表达式,这个时候就可以利用蒙特卡洛近似求解了:

也就是说,蒙特卡洛是从分布$p(x)$中采样到大量样本取平均来进行近似的,这里涉及到一个问题:如何从$p(x)$进行采样。要知道,计算机只能模拟均匀分布,一旦$p(x)$不是均匀分布就需要另寻他途进行模拟了。事实上,聪明的前人找到了如何基于均匀分布对复杂的$p(x)$进行采样。对于可逆的分布而言,可以利用可逆采样(inverse sampling)来进行采样。

可逆采样

假设$p(x)$的累积分布函数为:

那么 $y \in [0,1]$, $x \in [- \infty ,+\infty]$,其逆分布为 $x=F^{-1}(y)$ 。

定义在区间 $[0,1]$ 上的均匀分布可以用

来表示,假设其累积分布函数为:

那么可以推导出:

其中 $F^{-1}(y)\leq x$ 可以变化成 $y\leq F(x)$ 是因为 $F(x)$ 是单调递增函数。这样就完成了整个过程的推导。在实际应用中就可以利用均匀分布产生大量样本,进一步根据 $F(x)$ 的反函数转换成 $F(x)$ 的样本。样本越多,近似的精度越高。但是问题又来了,如果 $F(x)$ 不存在逆分布怎么办呢?这个时候就轮到重要性采样上场了,请见下一节。

重要性采样

在实际应用中, $F(x)​$ 的分布是很难求出其反函数的,那么要怎么做才能实现基于均匀分布的采样呢?回顾我们的采样目的,无非是求出期望值:

那么我们可以找到一个累积分布函数存在反函数的的概率密度 $q(x)​$ 来间接采样,进而实现相同的目的呢?答案是可行的。请看推导过程:

$ \frac{p(x)}{q(x)}$ 也被称为重要性权重,$q(x)$ 的选取可以按照使得它能够在 $f(x)*p(x)​$ 取值大的地方尽可能多地采样,这样就能较好地逼近原函数期望。

结语

重要性采样在机器学习中具有非常多且重要的应用,这篇文章介绍的仅仅是基础,进阶可在解决具体问题时,设计针对问题特点的方案进行改进。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×