본문 바로가기

Paper Review

Paper Review #7 - Generative Adversarial Nets

Generative Adversarial Nets (2014.06.10) -
https://arxiv.org/abs/1406.2661
 

Generative Adversarial Networks

We propose a new framework for estimating generative models via an adversarial process, in which we simultaneously train two models: a generative model G that captures the data distribution, and a discriminative model D that estimates the probability that

arxiv.org

 

Research direction & Motivation


Main Purpose

Generation of Image through minimax game : GAN

 

 본 논문은 adversarial process를 이용한 생성모델이라는 새로운 생성 모델을 제시한 획기적인 논문이다. 딥러닝을 이용한 기존의 생성모델에서는 maximum likelihood estimation과 관련된 많은 확률적 계산에 대한 근사적 추정과 leveraging the benefits of piecewise linear units의 어려움으로 인해 주목을 받기 어려웠다. 해당 논문은 이를 극복한 GAN이라는 생성모델을 제안함으로써 언급된 한계들을 극복했다.

 

 실제로 MCMC(Markov chain Monte Carlo) 알고리즘에 의존한 많은 알고리즘들이 존재하는데, 잠재변수들의 다층으로 구성된 DBNs, DBMs도 있으며 적절한 확률분포로부터 sampling해 생성자를 학습시키는 방식인 GSN framework, denoising auto-encoders가 존재했다. 이들은 모두 Markov chain의 하나의 단계를 실행하는 것으로부터 parameter를 학습하는 방법을 이용했지만 여기서 제시하는 GAN이라는 모델은 이러한 생성적 측면에서의 방법론의 지평을 넓혔다.

 

 

Adversarial Nets


GAN Architecture

 

 GAN은 Generator와 Discriminator, 크게 두 부분으로 구성된 구조를 갖고있다. Generator는 이미지를 생성해내는 부분이며 Discriminator는 앞서 생성된 이미지가 실제 이미지인지, 생성된 가짜 이미지인지를 판별하는 분류기의 역할을 한다.

 

 논문에서 둘의 역할을 각각 화폐 위조범과 경찰에 비유했는데, Generator는 점차적으로 실제 이미지에 가까운 가짜 이미지를 생성하여 판별자를 속이는 위조범이며 Discriminator는 실제 이미지와 가짜 이미지를 판별해내는 경찰에 해당한다. 이를 수식으로 나타내면 다음과 같다.

 

 

 V(D,G) 함수는 G는 minimize하려고하며 D는 maximize하려하는 일종의 minimax game으로 학습이 전개된다. D가 real image x와 fake image z를 잘 구분해낸다면 D(x)=1이 되며 D(G(z))=0이되어 V(D,G)의 값은 maximize된다. 반대로 1-D(G(z))가 minimize, 즉 D(G(z))=1로 fake image를 real image로 속이게되면 위 식은 minimize된다. 이러한 과정을 지속적으로 진행하면서 G는 더욱 그럴듯한 이미지를 생성한다. 다만 저자는 위 식의 D를 optimizing하는 것은 계산적인 비용이 크며 과적합이 될 가능성이 높다고 제시했다. 이에 따라 k step만큼 D를 최적화하고 G는 1step 만큼 최적화하도록 구성해 문제를 해결했다. 

 

 

Training

 

 

 위 그림에서 파란색 점선은 discriminative distribution, 검은색 점선은 generating distribution(real), 녹색 실선은 generative distribution(fake)을 나타낸다. (a)에서 볼 수 있듯이 학습 초기에는 G의 분포가 원본 데이터의 분포를 제대로 학습하지 못해 D가 매우 높은 정확도로 실제와 가짜를 구분한다. 하지만 학습이 진행됨에 따라 G가 생성하는 원본 데이터와 유사한 분포를 가지는 이미지를 D가 구분하지 못하도록 속이는 방향으로 학습이 전개되고, 최종적으로 G의 분포는 원본과 분포가 매우 흡사해 D가 제대로 구분하지 못해 D(x)가 0.5로 수렴하게된다. 

 

 

Experiments


 논문의 실험에서는 MNIST, CIFAR-10, TFD 데이터에 GAN을 학습시켜 생성된 이미지를 제시했다. 현재는 평가지표로 잘 사용하지않지만 당시에 자주 사용되었던 parazen window-based log-likelihood estimates를 사용해 타 생성모델인 DBN, GSN등 과의 성능을 비교했으며 이는 준수한 성능을 보여주었다.

 

 

  저자들은 GAN이 타 알고리즘보다 월등히 우수하다고는 말하고있지 않으나, 적어도 대등하며 해당 알고리즘의 잠재성을 강조했다.

 

 후미 부분에는 다양한 생성모델들과 학습, 추론 등의 과정들을 비교한 표를 제시하며 GAN의 장단점을 제시했다. 

 

 장점으로, GAN은 network가 data examples로부터 직접적으로 update되지않고 오직 판별자를 통한 gradient의 흐름, back-propagation으로 update되므로 비교적 연산이 간단하다. 또한 기존에 널리 사용되어오던 MC방법을 사용하지 않아 생성된 이미지가 굉장히 sharp한 동시에 blurry하지 않은 장점을 가진다.

 

 반면 단점으로는 생성자의 확률분포에 대한 표현식이 명시적으로 존재하지않는다는 점이다. 판별자는 학습하는 동안 생성자와 synchronized well, 즉 균형을 잘 맞추어 성능이 향상되어야하므로 상대적으로 학습이 어려운 알고리즘이라는 점이다.