Search

[GAN] Generative Adversarial Nets

Created
9/10/2021, 11:30:21 PM
발표자
이영석
논문 링크
https://arxiv.org/abs/1406.2661
1 more property
질문 및 토론
Search
In progress
0
Completed
2
🔗 논문 링크
👨‍💻 구현 코드
gan.ipynb
9.9KB
[목차]

Abstract

본 논문에서는, 실제 data의 distribution을 모방하려는 generative model GG와 입력된 sample이 GG로부터 생성된 data가 아닌 실제 data일 확률을 출력하는 discriminative model DD가 서로 adversarial process를 통해 generative model을 학습하는 방법을 제안한다.
GAN에서 목표로 하는 solution은 다음과 같다.
GG: training data의 distribution을 완전히 모방
DD: 실제 training data sample과 생성된 data sample을 구분하지 못해 항상 1/2를 출력

Adversarial nets

minGmaxDV(D,G)=Expdata(x)[logD(x)]+Ezpz(z)[log(1D(G(z)))]\min_G \max_D V(D, G) = \mathbb{E}_{\mathbf{x} \sim p_{data}(\mathbf{x})} [\log D(\mathbf{x})] + \mathbb{E}_{\mathbf{z} \sim p_{\mathbf{z}}(\mathbf{z})} [\log (1 - D(G(\mathbf{z})))]
GAN에서 objective function은 위와 같으며, DDGG의 관점에서 그 의미를 해석하면 다음과 같다.
DD의 관점
maxDV(D)=Expdata(x)[logD(x)]+Ezpz(z)[log(1D(G(z)))]\max\limits_D V(D) = \mathbb{E}_{\mathbf{x} \sim p_{data}(\mathbf{x})} [\log D(\mathbf{x})] + \mathbb{E}_{\mathbf{z} \sim p_{\mathbf{z}}(\mathbf{z})} [\log (1 - D(G(\mathbf{z})))]
실제 데이터의 분포로부터 샘플링한 데이터 xpdata(x)\mathbf{x} \sim p_{data}(\mathbf{x})에 대한 확률 D(x)D(\mathbf{x})가 1이 되어야 함
Prior distribution (normal or uniform) 으로부터 샘플링한 random noise vector zpz(z)\mathbf{z} \sim p_{\mathbf{z}}(\mathbf{z})를 입력으로 받아 generator가 생성한 데이터 G(z)G(\mathbf{z})에 대한 확률 D(G(z))D(G(\mathbf{z}))은 0이 되어야 함
GG의 관점
minGV(G)=Ezpz(z)[log(1D(G(z)))]\min\limits_G V(G) = \mathbb{E}_{\mathbf{z} \sim p_{\mathbf{z}}(\mathbf{z})} [\log (1 - D(G(\mathbf{z})))]
Prior distribution (normal or uniform) 으로부터 샘플링한 random noise vector zpz(z)\mathbf{z} \sim p_{\mathbf{z}}(\mathbf{z})를 입력으로 받아 generator가 생성한 데이터 G(z)G(\mathbf{z})에 대한 확률 D(G(z))D(G(\mathbf{z}))은 1이 되도록 학습
실제 학습시에는 GG를 학습하기 위해 log(1D(G(z)))\log (1 - D(G(\mathbf{z})))를 minimize 하는 것 대신에 logD(G(z))\log D(G(\mathbf{z}))를 maximize하게 되는데, 그 이유는 다음과 같다.
학습 초기에는 generator가 생성하는 이미지가 실제와 많이 다르기 때문에 D(G(z))D(G(\mathbf{z}))는 0에 가깝게 되고, 이때의 gradient값이 작기 때문에 generator가 잘 학습되지 않을 수 있다.
D(G(z))=0D(G(\mathbf{z})) = 0 지점에서, logD(G(z))\log D(G(\mathbf{z}))의 gradient는 log(1D(G(z)))\log(1 - D(G(\mathbf{z})))의 gradient보다 크기 때문에, logD(G(z))\log D(G(\mathbf{z}))를 maximize하는 것이다.
Algorithm 1은 minibatch SGD를 통해 학습하는 과정을 나타낸 것이며, 요약하자면 다음과 같다.
DD의 학습
Minibatch수 만큼의 sample을 noise prior distribution과 training datasets으로부터 각각 샘플링한다.
Gradient가 증가하는 방향으로 학습한다.
GG의 학습
Minibatch수 만큼의 sample을 noise prior distribution으로부터 샘플링한다.
Gradient가 감소하는 방향으로 학습한다.

Theoretical Results

minGmaxDV(D,G)=Expdata(x)[logD(x)]+Ezpz(z)[log(1D(G(z)))](1)\min_G \max_D V(D, G) = \mathbb{E}_{\mathbf{x} \sim p_{data}(\mathbf{x})} [\log D(\mathbf{x})] + \mathbb{E}_{\mathbf{z} \sim p_{\mathbf{z}}(\mathbf{z})} [\log (1 - D(G(\mathbf{z})))] \tag{1}
minGV(DG,G)=log(4)+KL(pdatapdata+pg2)+KL(pgpdata+pg2)=log(4)+2JSD(pdatapg)(2)\begin{align} \min_{G} V(D^*_G, G) &= -\log(4) + KL \left( p_{data} \| \dfrac{p_{data} + p_g}{2} \right) + KL \left( p_{g} \| \dfrac{p_{data} + p_g}{2} \right) \\ &= -\log(4) + 2 \cdot JSD(p_{data} \| p_g) \tag{2} \end{align}
본 논문에서는, GAN의 objective function인 식 (1)이 식 (2)와 동일하게 유도될 수 있다고 주장한다.
즉, GAN은 실제 data의 분포와 GG가 생성하는 data의 분포간의 차이를 minimize하는 것이라는 주장
식 (1)에서 (2)로의 유도과정은 최윤제님의 ppt자료의 Appendix (70pg~82pg) 부분에 아주 자세히 설명되어 있습니다.
Loading PDF…

Experiments

Table1은 GAN과 다른 생성모델들의 log-likelihood 추정 결과를 비교한 것이다.
GG에서 생성한 샘플들로부터 Gaussian Parzen window 방법을 사용해 확률 밀도 pgp_g를 추정하고, test set으로부터 해당 분포에 대한 log-likelihood를 추정하는 방법을 사용
Figure 2, 3은 MNIST, Toronto Face Database (TFD), CIFAR-10으로 학습한 GAN의 generator가 생성한 데이터들의 예이다.

Advantages and disadvantages

Table 2는 GAN과 다른 generative model들을 비교한 것이다.
GAN의 장단점을 요약하면 다음과 같다.
Disadvantages
pg(x)p_g(\mathbf{x})에 대한 explicit representation이 없다.
DD는 GG와 함께 잘 동기화되면 학습되어야 한다. (특히, GG가 서로 다른 z\mathbf{z}들을 동일한 x\mathbf{x}로 매핑하는 것과 같은 Helvetica scenario(mode collapse)를 피하기 위해 GG만 더 학습시키면 안됨)
Advantages
backprop만으로 학습할 수 있다.
Generator가 data example로부터 직접적으로 학습되는 것이 아니라, discriminator를 통한 gradient로 학습되기 때문에 입력이 generator의 파라미터로 바로 copy되지 않는다.
GAN은 아주 sharp한 distribution을 나타낼 수 있다. (degenerate distribution도 가능)