详解利用均匀随机分布的变量生成服从高斯分布的变量

您所在的位置:网站首页 元素随机生成原理图 详解利用均匀随机分布的变量生成服从高斯分布的变量

详解利用均匀随机分布的变量生成服从高斯分布的变量

2024-07-15 23:22| 来源: 网络整理| 查看: 265

问题可以阐述如下:

有一个 [ − 1 , 1 ] [-1,1] [−1,1]均匀分布的随机变量作为输入 x x x,编写一个函数使之输出为一个均值为 0 0 0,方差为 1 1 1,服从高斯分布的变量。(公式推导和程序实现)

已知高斯分布的概率密度函数: p ( x ) = 1 2 π σ exp ⁡ { − 1 2 ( x − μ σ ) 2 } (1) p(x)=\frac{1}{\sqrt{2\pi}\sigma}\exp \left\{ -\frac{1}{2}(\frac{x-\mu}{\sigma})^2 \right\} \tag{1} p(x)=2π ​σ1​exp{−21​(σx−μ​)2}(1) 根据题干要求,分布中的参数分别为: μ = 0 ,   σ 2 = 1 \mu=0,\ \sigma^2=1 μ=0, σ2=1,即标准高斯分布: p ( x ) = 1 2 π exp ⁡ ( − x 2 2 ) (2) p(x)=\frac{1}{\sqrt{2\pi}}\exp \left( -\frac{x^2}{2} \right) \tag{2} p(x)=2π ​1​exp(−2x2​)(2) 根据二维正态分布下,若两个分量独立,则其模服从瑞利分布,即可通过标准的分布函数求反函数的方法实现:利用[0,1]的均匀随机分布数列得到服从高斯分布的变量。

令 I = ∫ − ∞ ∞ e − x 2 2 d x I = \int_{-\infty}^{\infty}e^{-\frac{x^2}{2}}dx I=∫−∞∞​e−2x2​dx,则 I 2 = ∫ − ∞ ∞ e − x 2 2 d x ∫ − ∞ ∞ e − y 2 2 d y = ∫ − ∞ ∞ e − x 2 + y 2 2 d x d y (3) I^{2}=\int_{-\infty}^{\infty} e^{\frac{-x^{2}}{2}} d x \int_{-\infty}^{\infty} e^{\frac{-y^{2}}{2}} d y=\int_{-\infty}^{\infty} e^{-\frac{x^{2}+y^{2}}{2}} d x d y \tag{3} I2=∫−∞∞​e2−x2​dx∫−∞∞​e2−y2​dy=∫−∞∞​e−2x2+y2​dxdy(3) 用三角函数来对上式进行表示,即令 x = r cos ⁡ θ ,   y = r sin ⁡ θ x=r\cos\theta, \ y = r\sin\theta x=rcosθ, y=rsinθ I 2 = ∫ 0 2 π ∫ 0 ∞ e − r 2 2 r d r d θ = 2 π ∫ 0 ∞ e − r 2 2 r d r = 2 π (4) I^{2}=\int_{0}^{2 \pi} \int_{0}^{\infty} e^{-\frac{r^{2}}{2}} r d r d \theta=2 \pi \int_{0}^{\infty} e^{-\frac{r^{2}}{2}} r d r=2 \pi \tag{4} I2=∫02π​∫0∞​e−2r2​rdrdθ=2π∫0∞​e−2r2​rdr=2π(4) 将 ( X , Y ) (X,Y) (X,Y)作为相互独立的标准正态分布变量,对应的联合概率密度函数 f ( X , Y ) ( x , y ) f_{(X,Y)}(x,y) f(X,Y)​(x,y)可表示为: f ( X , Y ) ( x , y ) = f ( x ) × f ( y ) = 1 2 π exp ⁡ ( − x 2 2 ) 1 2 π exp ⁡ ( − y 2 2 ) = 1 2 π e − x 2 + y 2 2 (5) \begin{aligned} f_{(X, Y)}(x, y) & = f(x)\times f(y) \\ & = \color{blue}{\frac{1}{\sqrt{2\pi}}\exp \left( -\frac{x^2}{2} \right)} \color{green}{\frac{1}{\sqrt{2\pi}}\exp \left( -\frac{y^2}{2} \right)} \\ & = \frac{1}{2 \pi} e^{-\frac{x^{2}+y^{2}}{2}} \\ \end{aligned} \tag{5} f(X,Y)​(x,y)​=f(x)×f(y)=2π ​1​exp(−2x2​)2π ​1​exp(−2y2​)=2π1​e−2x2+y2​​(5) 令 x = R cos ⁡ θ ,   y = R sin ⁡ θ x=R\cos\theta, \ y = R\sin\theta x=Rcosθ, y=Rsinθ,使得两个正态分布变量可以通过向量 r \textbf{r} r来表示(包含大小 R R R和角度 θ \theta θ两个分量),由于 θ \theta θ在 [ 0 , 2 π ] [0,2\pi] [0,2π]的区间内均匀采样,则这个二维正态分布关于R的分布函数可表示为: P ( R ≤ r ) = ∫ 0 2 π ∫ 0 r 1 2 π e − u 2 2 u d u d θ = ∫ 0 r e − u 2 2 u d u = 1 − e − r 2 2 (6) P(R \leq r)=\int_{0}^{2 \pi} \int_{0}^{r} \frac{1}{2 \pi} e^{\frac{-u^{2}}{2}} u d u d \theta=\int_{0}^{r} e^{\frac{-u^{2}}{2}} u d u=1-e^{\frac{-r^{2}}{2}} \tag{6} P(R≤r)=∫02π​∫0r​2π1​e2−u2​ududθ=∫0r​e2−u2​udu=1−e2−r2​(6) 其中 X , Y ∼ N ( 0 , σ 2 ) ,   R 2 = X 2 + Y 2 X,Y \sim N(0,\sigma^2),\ R^2=X^2+Y^2 X,Y∼N(0,σ2), R2=X2+Y2, R R R表示向量 X , Y X,Y X,Y的模, R R R的分布函数 F R ( r ) F_R(r) FR​(r)则可表示为: F R ( r ) = 1 − e − r 2 2 (7) F_R(r) = 1-e^{\frac{-r^2}{2}} \tag{7} FR​(r)=1−e2−r2​(7) 其中 Z Z Z表示在取值为 R R R处所对应的瑞利分布函数( R R R的分布函数) F R ( r ) F_R(r) FR​(r),且根据Eq(7)可知二维正态分布概率密度函数中的 e − r 2 2 e^{\frac{-r^2}{2}} e2−r2​服从指数分布,即半径大小 r r r在二维平面中所对应的分布也为指数分布。

因此,由于服从指数分布,因此可以直接对这一分布进行逆变换采样,生成结果为 [ 0 , 1 ] [0,1] [0,1]区间上均匀分布的随机变量,因此通过对Eq(7)求反可得: R = F R − 1 ( Z ) = − 2 ln ⁡ ( 1 − Z ) (8) R=F_{R}^{-1}(Z)=\sqrt{-2 \ln (1-Z)} \tag{8} R=FR−1​(Z)=−2ln(1−Z) ​(8) 综上,整个推导过程可以理解为:将二维正态分布的概率密度函数(probability density function,PDF)以向量形式看做两个独立部分的乘积,即Eq(9)中蓝色和红色两部分: f ( X , Y ) ( x , y ) = f ( x ) × f ( y ) = 1 2 π e − x 2 + y 2 2 (9) \begin{aligned} f_{(X, Y)}(x, y) & = f(x)\times f(y) \\ & = \color{blue}{ \frac{1}{2 \pi}} \color{green}{} e^{-\frac{x^{2}+y^{2}}{2}} \\ \end{aligned} \tag{9} f(X,Y)​(x,y)​=f(x)×f(y)=2π1​e−2x2+y2​​(9)

第一部分为 [ 0 , 2 π ] [0,2 \pi] [0,2π]范围中的均匀分布,代表了二维平面向量中的角度 θ \theta θ;第二部分则表现为 λ = 1 \lambda=1 λ=1的指数分布,对应了向量模的大小。

因此,可以通过两个服从 [ 0 , 1 ] [0,1] [0,1]均匀分布的样布转化为所对应的角度和半径,其方法如下:

模部分:根据Eq(8)中的逆变换结果,生成 [ 0 , 1 ] [0,1] [0,1]的均匀分布,对应了二维平面向量中的模角度:生成 [ 0 , 1 ] [0,1] [0,1]之间的均匀分布,乘以参数 2 π 2 \pi 2π,即为二维平面向量所对应的角度。

对应的输入形式如下,假设有服从 [ 0 , 1 ] [0,1] [0,1]均匀分布的随机变量 U 1 , U 2 U_1,U_2 U1​,U2​,对应参数可描述为: Z = U 1 θ = 2 π U 2 (10) \begin{aligned} &Z = U_1 \\ &\theta = 2\pi U_2 \end{aligned} \tag{10} ​Z=U1​θ=2πU2​​(10) 将Eq(10)带入到 x = R cos ⁡ θ ,   y = R sin ⁡ θ x=R\cos\theta, \ y = R\sin\theta x=Rcosθ, y=Rsinθ中,对应结果为: X = R cos ⁡ ( θ ) = − 2 ln ⁡ ( 1 − U 1 ) cos ⁡ ( 2 π U 2 ) Y = R sin ⁡ ( θ ) = − 2 ln ⁡ ( 1 − U 1 ) sin ⁡ ( 2 π U 2 ) (11) \begin{aligned} X &= R\cos(\theta) = \sqrt{-2 \ln (1-U_1)}\cos(2\pi U_2)\\ Y &= R\sin(\theta) = \sqrt{-2 \ln (1-U_1)}\sin(2\pi U_2) \end{aligned} \tag{11} XY​=Rcos(θ)=−2ln(1−U1​) ​cos(2πU2​)=Rsin(θ)=−2ln(1−U1​) ​sin(2πU2​)​(11) 其中 X , Y X,Y X,Y均为一个均值为 0 0 0,方差为 1 1 1,服从高斯分布的变量。 注:由于题目中的输入的均匀分布随机变量U1范围为[-1,1],只需要对变量进行(U1+1)./2的变化即可变换为一个均值为0,方差为1,服从高斯分布的变量

下面给出程序实现:

function [normdistribution] = uniform2norm(U1) U1 = (U1+1) ./ 2; U2=rand(1,length(U1)); X=sqrt(-2 * log(1-U1)) .* cos(2*pi .* U2); Y=sqrt(-2 * log(1-U1)) .* sin(2*pi .* U2); normdistribution=[X,Y]; histogram(normdistribution,100);

结果如下: 请添加图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3