본문 바로가기

Mathematics

Box-Muller 변환

이번 글에서는 Box-Muller 변환에 대해 알아보자. Box Muller 변환을 통해 표준균등분포 $\mathrm{U}(0,1)$를 따르며 서로 독립인 두 확률변수 $X$, $Y$에 적절한 변환을 취하면 표준정규분포 $\mathrm{N}(0,1)$를 따르며 서로 독립인 두 확률변수 $U$, $V$를 얻을 수 있다. 변환 공식은 다음과 같다.

$$
\begin{cases}
U=\sqrt{-2\ln{X}}\cos{(2\pi Y)}
\\
V=\sqrt{-2\ln{X}}\sin{(2\pi Y)}
\end{cases}
$$

지난 글에서 소개한 확률벡터의 변환을 이용하여 확인해보자.

(1) $u^2+v^2=-2\ln x$이므로 $x=\exp\left(-\frac{u^2+v^2}{2}\right)$이고,

$$
x^{\prime}_
{u}=-u\exp\left(-\frac{u^2+v^2}{2}\right),x^{\prime}_
{v}=-v\exp\left(-\frac{u^2+v^2}{2}\right)
$$

(2) $\frac{v}{u}=\tan2\pi y$이므로 $2\pi y=\arctan\frac{v}{u}+k\pi$, 즉 $y=\frac{1}{2\pi}\arctan\frac{v}{u}+\frac{k}{2},k\in\mathbb{Z}$이다. 여기서 $k/2$는 상수항으로, 편미분계산에 영향을 주지 않는다.

$$
\begin{split}
&y^{\prime}_
{u}=\frac{1}{2\pi}\cdot\frac{1}{1+v^2/u^2}\cdot\left(-\frac{v}{u^2}\right)=-\frac{1}{2\pi}\frac{v}{u^2+v^2}
\\
&y^{\prime}_
{v}=\frac{1}{2\pi}\cdot\frac{1}{1+v^2/u^2}\cdot\left(\frac{1}{u}\right)=\frac{1}{2\pi}\frac{u}{u^2+v^2}
\end{split}
$$

(3) 변환의 야코비 행렬식을 계산하면 다음과 같다.

$$
J=\begin{vmatrix}
x^\prime_u & x^\prime_v
\\
y^\prime_u & y^\prime_v
\end{vmatrix}
=-\frac{1}{2\pi}\exp\left(-\frac{u^2+v^2}{2}\right)
$$

(4) 가정에 의해 다음이 성립한다.

$$
\begin{split}
&X,Y\sim\mathrm{U}(0,1)\Rightarrow f_X(x)=\mathbf{1}_
{[0,1]}(x),f_Y(y)=\mathbf{1}_
{[0,1]}(y)
\\
&X\perp Y\Rightarrow f_{X,Y}(x,y)=f_X(x)f_Y(y)=\mathbf{1}_
{[0,1]}(x)\cdot\mathbf{1}_
{[0,1]}(y)
\end{split}
$$

따라서 다음과 같이 $f_{U,V}(u,v)$를 구할 수 있다.

$$
\begin{split}
f_{U,V}(u,v)&=f_{X,Y}(x(u,v),y(u,v))\vert J \vert
\\
&=\mathbf{1}_
{[0,1]}(x(u,v))\cdot\mathbf{1}_
{[0,1]}(y(u,v))\cdot\frac{1}{2\pi}\exp\left(-\frac{u^2+v^2}{2}\right)
\end{split}
$$

여기서 $x(u,v)=\exp\left(-\frac{u^2+v^2}{2}\right)$이므로 모든 $u,v\in\mathbb{R}$에 대해 $\mathbf{1}_
{[0,1]}(x(u,v))=1$이다.

한편, $y(u,v)=\frac{1}{2\pi}\arctan\frac{v}{u}+\frac{k}{2},k\in\mathbb{Z}$이므로 $0\le\frac{1}{2\pi}\arctan\frac{v}{u}+\frac{k}{2}\le1$, 즉 $0\le\arctan\frac{v}{u}+k\pi\le2\pi$일 때만 $\mathbf{1}_
{[0,1]}(y(u,v))=1$인데, 모든 $u,v\in\mathbb{R}$에 대해 $-\frac{\pi}{2}<\arctan\frac{v}{u}<\frac{\pi}{2}$이고, 항상 $0\le\arctan\frac{v}{u}+k\pi\le2\pi$을 만족하는 $k\in\mathbb{Z}$가 존재하므로 $\mathbf{1}_{[0,1]}(y(u,v))=1$이다. 따라서

$$
\begin{split}
f_{U,V}(u,v)&=\frac{1}{2\pi}\exp\left(-\frac{u^2+v^2}{2}\right)
\\
&=\frac{1}{\sqrt{2\pi}}\exp\left(-\frac{u^2}{2}\right)\cdot\frac{1}{\sqrt{2\pi}}\exp\left(-\frac{v^2}{2}\right)=f_U(u)\cdot f_V(v)
\end{split}
$$

즉, $U$와 $V$의 결합분포를 주변분포의 곱으로 나타낼 수 있으므로 $U\perp V$이고, $f_U(u)$와 $f_V(v)$의 형태를 관찰하면 $\mathrm{N}(0,1)$임을 알 수 있다.

Box-Muller 변환은 두 확률변수의 변환으로 이해할 수도 있지만, 2차원 확률벡터의 변환으로 볼 수도 있다. 이 경우 $\mathrm{U}([0,1]\times[0,1])$에서 $\mathrm{N}(0,0,1,1,0)$으로 변환된 것이다.

note: 2차원 정규분포는 $\mathrm{N}(\mu_1,\mu_2;\sigma_1^2,\sigma_2^2;\rho)$와 같이 표현된다.

Box-Muller 변환은 정규분포를 따르는 난수를 생성하는 알고리즘에 이용된다. 이 외에도 주어진 데이터 $X$를 먼저 $X^\ast:=\frac{X-\min(X)}{\max(X)-\min(X)}$으로 정규화한 후, 다시 Box-Muller 변환 $Z:=\sqrt{-2\ln X^\ast}\cos(2\pi X^\ast)$을 적용하여 표준정규분포를 얻는 방식도 생각해볼 수 있다.

note1: 정규화(Normalization; 归一化)는 주어진 데이터를 $[0,1]$의 범위로 보내는 것이다. $X^\ast:=\frac{X-\min(X)}{\max(X)-\min(X)}$와 같은 정규화 방법이 대표적이다.

note2: 표준화(Standardization; 标准化)는 주어진 데이터의 평균을 0, 분산을 1로 만드는 작업이다. $X^\ast:=\frac{X-\mathrm{E}(X)}{\sqrt{\mathrm{Var}(X)}}$와 같은 방법이 대표적이다.

'Mathematics' 카테고리의 다른 글

확률변수의 사칙연산의 분포  (0) 2022.12.08
합성곱  (0) 2022.12.01
야코비 행렬식  (0) 2022.11.28
확률벡터의 변환  (0) 2022.11.28
확률변수의 변환  (0) 2022.11.21