Distribution
Distribution이란 random하게 발생할 수 있는 모든 상황을 그 상황이 발생할 확률로 나타낸 것이라고 볼 수 있습니다.
* 주사위 두개를 던져 나온 숫자의 합에 관한 distribution입니다.
위 그림에서 $x$는 주사위 두 개를 던져 나온 숫자의 합입니다. 주사위는 1부터 6까지의 숫자가 있으므로 주사위 두 개를 던져 나온 숫자의 합 $x$는 2부터 12까지 나올 수 있습니다. 그리고 2부터 12까지 나올 확률이 각각 있습니다. 예를 들어 $P(x = 4) = \frac{3}{36} = 0.083$입니다. $x=7$에서 가장 높은 값을 갖는데 이는 주사위 두 개를 던졌을 때 합이 7이 나올 경우의 수가 가장 많기 때문입니다. 이런 식으로 2부터 12까지 모든 경우에 대해 확률을 계산하여 random한 상황 $x$를 나타낸 것을 random variable $x$에 대한 distribution이라고 합니다.
그리고 이는 $P(x = 2) = \frac{1}{36}$, $P(x=3) = \frac{2}{36}$ 처럼 함수로 나타낼 수 있습니다.
Distribution of image
GAN에서는 이 distribution이 어떻게 사용될까요? 우선 GAN에서는 $x$가 주사위 두 개의 합이 아닌 이미지가 됩니다. 예를 들어 사람 얼굴 이미지에 대한 distribution이 있다고 해보겠습니다. 이미지의 크기가 $128 \times 128$ 이고 RGB 채널을 갖는다고 하면 $x$는 $128 \times 128 \times 3$ 개의 실수이고 각 실수는 0부터 255까지의 값을 갖게 됩니다. 위의 주사위의 예에서는 $x$가 1개의 정수이고 가능한 값은 2부터 12까지 11개인데 이제는 $x$가 $128 \times 128 \times 3$ 개의 실수이고 가능한 값의 범위는 0부터 255까지가 되면서 가능한 값이 무한 개가 되었습니다.아래 그림이 사람 얼굴 이미지에 대한 distribution입니다. $x$는 이미지이자 $128 \times 128 \times 3$ 개의 실수입니다. Probability Density Function(PDF)은 그래프 아래의 면적이 1이고 $x$의 확률이 높을 수록 큰 값을 갖는 함수입니다.
* 사람 얼굴 이미지에 대한 distribution
사람 얼굴 이미지에 대한 distribution에서 높은 확률을 갖는 $x$는 무엇일까요? 당연히 사람 얼굴 이미지입니다. 위 그림에서 $x$가 사람 얼굴 이미지이면 pdf가 큰 값을 갖고 사람 얼굴 이미지가 아닌 개, 나무 이미지일 때는 pdf가 작은 값을 갖습니다. 여기서 개, 나무 이미지 뿐만 아니라 사람 얼굴과 관련 없는 모든 픽셀 조합은 사람 얼굴 이미지에 비해 PDF가 전부 작은 값을 가질 것입니다. 이미지에 대한 distribution은 위와 같은 방법으로 해석할 수 있습니다.
위의 주사위 예제에서는 $P(x = 2) = \frac{1}{36}$, $P(x=3) = \frac{2}{36}$ 이런 식으로 모든 $x$에 대한 확률을 계산할 수 있었습니다. 하지만 이미지의 distribution은 이처럼 모든 픽셀 조합 $x$에 대해 확률을 계산할 수도 없고 Normal distribution 처럼 ${\displaystyle p(x\mid \mu ,\sigma ^{2})={\frac {1}{\sqrt {2\pi \sigma ^{2}}}}e^{-{\frac {(x-\mu )^{2}}{2\sigma ^{2}}}}}$ 이렇게 하나의 수식으로 pdf를 표현할 수도 없습니다.
Distribution in GAN
GAN에서는 몇 개의 중요한 Distribution이 나옵니다. 어떠한 Distribution이 나오는지 여기서 미리 정리하고 가도록 하겠습니다. 아래에서 등장하는 notation 혹은 명칭은 논문의 3. Adversarial nets를 기반으로 하였습니다.$P_x$ 혹은 $P_{data}$ : data distribution, data generating distribution
Training data의 이미지들이 이루고 있는 distribution입니다. 즉, 가짜가 아닌 실제 이미지들이 이루는 distribution입니다. 이 distribution에서는 training data에 있는 이미지와 유사할 수록 pdf가 높은 값을 갖습니다. 이 distribution을 하나의 수식으로 나타내거나 모든 경우에 대해 확률을 기술하는 것은 역시 불가능합니다.
$P_x$에 대해 pdf로도 표현할 수 없고 모든 경우에 대해 확률을 구할 수도 없는데 어떻게 임의의 이미지 $x$가 실제 이미지인지 가짜 이미지인지를 구분할 수 있을까요? $P_x$를 정확하게 pdf로 표현하거나 모든 경우에 대해 확률을 구할 수는 없지만 $P_x$에 대해 학습하여 임의의 $x$가 $P_x$에서 sampling 된 이미지일 확률(가짜가 아닌 실제 이미지일 확률)을 구해주는 객체는 만들 수 있습니다. 이 객체에 해당하는 것이 바로 discriminator입니다. 이 discriminator를 $D$로 표현하는데 $D(x)$ 의 값이 바로 위에서 말한 확률에 해당합니다.
* distribution $P$에서 sampling 한다는 것은 그 distribution이 나타내는 확률에 맞게 random으로 뽑는다는 의미입니다.
* $P_x$에서 sampling 된 이미지는 Training data에서 하나 뽑은 이미지라고 이해하시면 됩니다.
$P_g$ : generator's distribution
Generator가 학습을 통해 $P_x$와 최대한 유사하게 만든 distribution입니다. 즉, 실제가 아닌 가짜 이미지들이 이루는 distribution입니다. Generator는 이 distribution으로부터 이미지를 sampling하여 가짜 이미지를 만듭니다.
하지만 알 수 없는 분포 $P_g$로부터 바로 sampling하는 것은 불가능합니다. 따라서 이미 알고 있는 distribution으로부터 작은 vector를 sampling 한 다음 이 벡터를 data space($x$의 공간)에 mapping 시키는 과정을 통해 $P_g$로부터 sampling하게 됩니다. 여기서 data space의 아무 점에 mapping 하는 것이 아니라 최대한 $P_x$와 유사하게 mapping 하고자 하는 학습 과정을 통해 $P_g$가 만들어지게 됩니다. (이 내용은 다음 포스팅에서 더 자세히 다룹니다)
$P_z$ : prior distribution
prior 는 사전적으로 '어떤 사건이 일어나기 전'을 의미합니다. prior distribution은 사건이 일어나기 전부터 이미 알고 있는 distribution을 의미합니다. 이것이 위의 $P_g$에서 나온 이미 알고 있는 distribution에 해당합니다. 이 논문에서는 $P_z$를 $N(0, 1)$, 즉 평균이 0이고 분산이 1인 normal distribution으로 정의합니다. 사건이 일어나기 전에 이미 $N(0, 1)$ 임을 알고 있으므로 prior distribution입니다.
Generator를 $G$로 표현하는데 이 때 가짜 이미지를 만들어내는 과정은
- $z \sim P_z(z)$ : $P_z$에서 random vector $z$ sampling
- $ x_{fake} = G(z)$ : $z$와 data space의 mapping을 통한 $P_g$에서의 sampling
이렇게 나타낼 수 있습니다.
* $z \sim P_z(z)$은 distribution $P_z$에서 sample된 $z$를 의미합니다.
이것으로 Generative Adversarial Network(GAN) - part.2의 내용을 마치겠습니다. Generative Adversarial Network(GAN) - part.3 에서는 본격적으로 논문을 따라가며 GAN을 이해해보도록 하겠습니다. 감사합니다.
* $z \sim P_z(z)$은 distribution $P_z$에서 sample된 $z$를 의미합니다.
이것으로 Generative Adversarial Network(GAN) - part.2의 내용을 마치겠습니다. Generative Adversarial Network(GAN) - part.3 에서는 본격적으로 논문을 따라가며 GAN을 이해해보도록 하겠습니다. 감사합니다.
0 coment�rios:
댓글 쓰기