问题可以阐述如下:
有一个 [ − 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πσ1exp{−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π1exp(−2x2)(2)
根据二维正态分布下,若两个分量独立,则其模服从瑞利分布,即可通过标准的分布函数求反函数的方法实现:利用[0,1]的均匀随机分布数列得到服从高斯分布的变量。
令
I
=
∫
−
∞
∞
e
−
x
2
2
d
x
I = \int_{-\infty}^{\infty}e^{-\frac{x^2}{2}}dx
I=∫−∞∞e−2x2dx,则
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−x2dx∫−∞∞e2−y2dy=∫−∞∞e−2x2+y2dxdy(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−2r2rdrdθ=2π∫0∞e−2r2rdr=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π1exp(−2x2)2π1exp(−2y2)=2π1e−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π∫0r2π1e2−u2ududθ=∫0re2−u2udu=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π1e−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);
结果如下: