상세 컨텐츠

본문 제목

[6주차 / 임채명 / 논문리뷰] Generative Adversarial Nets

방학 세션/CV

by 임채명 2023. 2. 21. 03:14

본문

Introduction

딥러닝 모델은 데이터의 확률분포를 잘 포착해야 합니다. 그동안 딥러닝에서는 역전파와 dropout을 기반으로 하는 선형활성화함수를 사용하는 분류 모델들이 가장 눈에 띄는 발전을 이루었습니다. 반면, 생성 모델은 maximum likelihood estimation과 관련된 확률 계산이 어렵고 앞서 언급한 선형활성화함의 장점을 가져오기 어렵다는 이유로 주목을 덜 받았습니다. 본 논문에서는 이러한 한계점을 극복한 새로운 종류의 생성 모델을 제안하고 있습니다.

 

본 논문에서는 분류모델과 생성모델이 서로 경쟁하는 적대적 학습을 진행합니다. 여기서 생성 모델은 경찰에게 걸리지 않는 위조지폐를 만들고자 하는 위조자처럼 분류 모델에게 걸리지 않을 샘플 데이터를 생성하려고 하고, 분류 모델은 경찰의 역할을 하여 샘플 데이터가 model distribution으로부터 생성된 것인지 실제 data distribution에서 온 것인지 판별합니다. 이러한 경쟁적 학습방식은 두 모델을 효과적으로 학습시켜 결국 model distribution에서 생성된 샘플과 실제 data distribution에서 온 샘플의 구분이 어려워지도록 합니다.

 

본 논문에서는 분류 모델과 생성 모델 모두 MLP(Multi-Layer Perceptron)로 구성하어, 두 모델 모두 추가적인 추론 과정이나 Markov chain 없이 역전파와 dropout을 사용하여 학습시킬 수 있습니다.

 

Adversarial nets

생성 모델은 data $x$의 분포를 학습하는데 이때 생성모델이 학습하는 분포를 $p_{g}$로, 생성모델에 들어가는 input noise 변수를 $p_{z}(z)$로 표시한다. $G(z;\theta_{g})$는 이를 데이터 공간에 mapping한 것을 의미하며 이때 $G$는 파라미터 $\theta_{g}$를 가지는 미분가능한 함수입니다. $D(z;\theta_{d})$로 표현되는 분류 모델은 하나의 스칼라값을 출력합니다. 위 식에서 $D(x)$는 $x$가 $p_{g}$가 아니라 실제 데이터에서 올 확률을 의미합니다.

즉 D(x) = 0이면 D는 x가 가짜샘플이라고 판단한 것이고, D(x) = 1이면 D는 x가 실제 데이터에서 왔다고 판단한 것

 

분류 모델 $D$는 생성 모델이 생성한 샘플 $G(z)$를 가짜라고 판단하도록 학습되므로 $D(G(z))=0$이 되도록 학습됩니다. 반면, 생성 모델 $G$는 $D(G(z))=1$이 되도록 학습되어야 합니다. 

$\mathbb{E}_{x-p_{data}(x)}[logD(x)]$: 실제 데이터 샘플 x를 분류 모델에 넣었을 때의 결과에 로그를 취했을 때의 기댓값

$\mathbb{E}_{z-p_{z}(z)}[log(1-D(G(x)))]$: 1 - (G가 생성한 가짜 샘플을 분류 모델에 넣었을 때의 결과)에 로그를 취했을 때의 기댓값

 

$V(G,D)$을 $D$의 입장에서 보면, $D(x)=1$ 그리고 $D(G(z))=0$이 되어 $V(G,D)$을 0으로 최대화하는 것이 목표가 됩니다. 이를 $G$의 입장에서 보면, 첫째항에 상관없이 $D(G(z))=1$이 되어  $V(G,D)$을 마이너스 무한대로 최소화하는 것이 목표가 됩니다. ('two-player minimax game')

 

 

검정색 점선: 실제 데이터 샘플의 분포 $p_{x}$

초록색 실선: 생성 모델이 학습한 분포 $p_{g}$

파란색 점선: 분류 결과 분포 discriminative distribution 

z --> x: mapping x = G(z)

(a) 학습 전 (b) D 학습 (c) G 학습 (d) 몇 단계의 학습 후 $p_{g}$ = $p_{data}$ 즉 $D(x)=1/2$ 도달

 

위 사진은 충분한 capacity가 주어진다면 적대적 학습을 통해 결국 model distribution이 data distribution과 같아짐을 보여주고 있습니다. 본 논문에서는 분류 모델을 k번 최적화하는 동안 생성 모델을 한번 최적화하는 방식으로 학습을 진행하는데, 이러한 방법은 D가 최적의 상태를 유지할 수 있도록 합니다. (be maintained near its optimal solution) 

 

학습 초반에는 생성 모델의 성능이 좋지 않아 분류 모델이 실제 데이터에서 온 샘플과 가짜 샘플을 잘 구분하기 때문에 $log(1-D(G(x))$의 gradient이 너무 작게 나는 문제가 발생할 수 있습니다. 이런 문제를 해결하기 위해서는 G가 $log(1-D(G(x))$를 최소화하도록 학습시키는 것이 아니라, $log(D(G(x))$를 최대화하도록 학습시키면 됩니다. 

 

앞서 언급했듯이 본 논문에서는 분류 모델을 k번 최적화하는 동안 생성 모델을 한번 최적화하는 방식으로 학습을 진행했는데, 여기서 k는 조정가능한 하이퍼파라미터로 본 논문에서는 k=1을 사용했습니다. 

 

Global Optimality of  $p_{g}=p_{data}$

본 논문에서는 $p_{g}$가 $p_{data}$로 수렴하는 결과에 대한 수학적 증명도 제시하고 있습니다. 

 

명제. G가 고정되었을 때, D는 $\frac{P_{data}(x)}{P_{data}(x)+P_{g}(x)}$로 수렴한다.

 

 

정리. $C(G)$는 오직 $p_{g}=p_{data}$일 때에만 $-log4$의 최솟값을 가진다.

 

Experiments

본 논문에서는 여러 데이터를 이용해 adversarial nets를 학습시켰으며, G에는 ReLU와 sigmoid를, D에는 maxout과 dropout을 활용했습니다. G에서 노이즈는 모델의 첫 레이어에서 input으로만 사용했으며, 이론적으로는 중간에 추가적인 노이즈를 삽입할 수 있습니다. 또한 Gaussian Parzen window를 사용하여 G에서 생성된 샘플들에 대한 분포를 추정하였으며, 이 분포의 log-likelihood를 확인하는 방식으로 테스트 데이터의 확률을 추정하였습니다.

 

위 그림에서 가장 오른쪽 이미지들이 GAN을 통해 생성된 이미지입니다. 다른 생성모델을 통해 생성된 이미지와 달리, 해당 이미지들은 학습에 사용된 이미지에서 추출된 특징의 평균을 나타내는 것이 아니라 actual samples from the model distribution이라는 것을 확인할 수 있습니다. 

 

Advantages and disadvantages

모델의 단점은 다음과 같습니다.

1. $p_{g}(x)$가 명시적으로 존재하지 않음
2. D와 G를잘 맞춰 학습해야함. 특히, D를 업데이트하지 않고 G를 너무 많이 학습시키면 G가 많은 z값을 동일한 x값에 mapping하여 $p_{data}$가 다양성을 잃을 수 있음. 

모델의 장점은 다음과 같습니다.

1. Markov chains이 필요 없고 gradients를 얻기 위해 back-propagation만 사용됨. 또한 Markov chains을 쓸 때보다 선명한 이미지를 얻을 수 있음
2. 학습 중 추가적인 추론과정이 필요 없음
3. 다양한 함수들을 모델에 적용할 수 있음

 

 


Reference

 

 

 

(GAN)Generative Adversarial Nets 논문 리뷰 - Tobigs

이 방정식을 D의 입장, G의 입장에서 각각 이해해보면, -먼저 D의 입장에서 이 value function V(D,G)의 이상적인 결과를 생각해보면, D가 매우 뛰어난 성능으로 판별을 잘 해낸다고 했을 때, D가 판별하

tobigs.gitbook.io

 

관련글 더보기

댓글 영역