采样
高斯分布采样
首先,假设随机变量 z z z 服从标准正态分布 N ( 0 , 1 ) N(0,1) N(0,1),令
x = σ ⋅ z + μ x=\sigma \cdot z + \mu x=σ⋅z+μ
则 x x x 服从均值为 μ \mu μ、方差为 σ 2 \sigma^{2} σ2的高斯分布 N ( μ , σ 2 ) N(\mu, \sigma^{2}) N(μ,σ2)。因此,任意高斯分布都可以由标准正态分布通过拉伸和平移得到,所以这里只考虑标准正态分布的采样。常见的采样方法有逆变换法、拒绝采样、重要性采样、马尔科夫蒙特卡罗采样法等。具体到高斯分布,采样步骤如下。
如果直接使用逆变换法,基本操作步骤为:
(1)产生[0,1]上的均匀分布随机数 μ \mu μ。
(2)令 z = 2 e r f − 1 ( 2 μ − 1 ) z=\sqrt{2}erf^{-1}(2\mu-1) z=2erf−1(2μ−1),则 z z z 服从标准正态分布。其中 e r f ( ⋅ ) erf(\cdot) erf(⋅) 是高分布斯误差函数,它是标准正态分布的累积函数经过简单平移和拉伸变换后的形式,定义如下
上述逆变换法需要求解 e r f ( x ) erf(x) erf(x) 的逆函数,这并不是一个初等函数,没有显示解,计算起来比较麻烦。所以为了避免这种非初等函数的求逆操作,Box-Muller算法提出了如下解决方案:既然单个高斯分布的累积分布函数不好求逆,那么两个独立的高斯分布的联合分布呢?假设 x , y x,y x,y 是两个服从标准正态分布的独立随机变量,它们的联合概率密度为
p ( x , y ) = 1 2 π e − x 2 + y 2 2 p(x,y)=\frac{1}{2π}e^{-\frac{x^2+y^2}{2}} p(x,y)=2π1e−2x2+y2
考虑 ( x , y ) (x,y) (x,