逆变换采样(Inverse Transform Sampling)原理

万流归宗定理

概率积分变换(probability integral transform),又称为Universality of the Uniform,翻译成万流归宗、万流齐一定理。其内容是:对于一个连续随机变量,如果已知其cdf函数为,则用该函数将随机变量映射,即可得到均匀分布

该定理的证明很简单:

根据cdf的定义,以及X和Y两个随机变量的关系,得到: 可以看出,,即cdf是函数,因此pdf就是,即均匀分布。QED

该定理的一个著名应用就是直方图均衡化,其目的就是通过图像本身的统计信息(cdf)将其映射到接近均匀分布的状态,以便提高对比度。逆变换采样是这个定理的另一个应用。

逆变换采样

逆变换采样(inverse transform sampling),又称为逆万流归宗,顾名思义,其操作就是通过上面的反向:从均匀分布采样来生成一个已知分布cdf的随机变量。这个操作的用途更广泛,在对于需要生成指定分布采样的任务中,逆变换采样可以将其转化为【均匀分布采样 + 函数变换映射】的过程,从而简化任务难度。这个用于映射均匀分布变量的函数就是目标分布的cdf。

逆变换采样的证明过程与上面的万流归宗定理的证明完全类似,过程简单重写如下:

即变换后的的cdf就是目标变量的cdf,说明可以用来作为目标分布的采样。QED

一个特例:Box-Muller变换

逆变换采样的一个特例,就是从均匀分布产生高斯分布,该操作又被称为Box-Muller变换,具体过程如下:

生成两组均匀分布:,施加下述变换,即可得到两组高斯分布的随机变量: 一个疑问:为什么需要两组均匀分布,且一起得到两组高斯呢?这和高斯函数pdf无法直接显式定积分有关。通过设置两个独立的高斯分布,并整合成一个二元高斯分布,再将其改写成极坐标,通过独立的参数的采样获得高斯分布。其中求解的过程中采用了二重积分单位圆面积的trick。具体证明过程可以参考下列链接:

  • https://math.nyu.edu/~goodman/teaching/MonteCarlo2005/notes/GaussianSampling.pdf
  • https://medium.com/mti-technology/how-to-generate-gaussian-samples-3951f2203ab0

简单来说,Box-Muller算法不再采样横纵坐标点以获得符合二元高斯分布的样本, 而是对独立的参数进行采样。首先将二维高斯分布按照分解成一个两个部分,前面就是角度的均匀分布,较为简单;后面需要计算cdf和inverse cdf(逆变换采样),最终对应到模值。如下所示:

version 1:2024-01-12 01:48:45