본문 바로가기
딥러닝

[GAN 논문 리뷰] DeLiGAN : Generative Adversarial Networks for Diverse and Limited Data

by 미스터탁 2018. 6. 2.

이번에 리뷰할 논문은 DeLiGAN : Generative Adversarial Networks for Diverse and Limited Data 입니다.

 

2017 CVPR에 accept된 논문이며, 제목에서 알 수 있듯이, 제한된 데이터 상황에서의 GAN을 어떻게 잘 만들수 있는까에 관한 논문입니다.

 

일반적인 GAN의 경우에는 image modality 의 다양성을 확보하기 위해 많은 양의 데이터를 필요로 합니다. 

 

본 논문에서는 mixture model을 통해 latent generative space를 reparameterize하고 GAN을 통해 mixture model들의 parameter를 학습시키는 구조를 제안 하였습니다.

 

 

이를 통해 제한된 데이터를 가지고 학습시켰을 때 다른 GAN에 비하여 좀 더 다양하고 현실적인 image를 generating한다고 주장하고 있습니다. 성능지표는 inception-score(인간의 평과와 가장 관련되어있는 지표, 얼마나 진짜 이미지 같느냐에 대한 지표)를 사용하였습니다.

 

 

 

아래 그림의 왼쪽그림이 일반적인 GAN구조이고 오른쪽그림이 논문에서 제안하는 DeLiGAN의 구조입니다. Latent distribution 에서 direct로 sampling 하는 대신, Gaussian mixture model을 사용하여 latent space를 reparameterize시킵니다. 여러 Gaussian components중 하나의 Gaussian components를 random하게 select하여 generator의 input으로 들어가게 됩니다.

 

 

 

일반적인 GAN은 generate된 sampling이 data 분포에 속할 확률을 최대화 시킵니다. 이 과정을 latent z space에서로부터 data distribution으로 mapping과정으로 볼수 있는데. 이 mapping과정에서 많은 양의 데이터를 필요로 합니다. 그러므로, 데이터가 제한되어 있다면, 네트워크의 depth를 늘리는 것이 불가능해 집니다. 

 

저자들이 제시하는 솔루션은 모델의 depth를 늘리는 것이 아니라 prior distribution의 modelling power를 높이자는 것입니다. latent 분포에 대한 정의는 다음과 같습니다.

 

 

위 분포로부터 sample을 얻기 위하여 reparameterization trick을 사용하여 N개의 Gaussian components를 선택합니다. 'reparameterization trick'을 위하여 i-th Gaussian의 sample을 다음 수식과 같이 u_i, sigma_i와 noise variable epsilon으로 표현합니다. (마치 VAE와 비슷한 느낌이 듭니다) 

 

위 식들을 통해 latent분포에서의 data가 real data 분포에서 나온 확률을 구하면 다음과 같이 적을 수 있습니다.

 

 

 

각각의 Gaussian component를 위해 그것들의 parameter를 초기화 시킬 필요가 있는데 본 논문에서는 평균의 경우 Uniform Distribution(-1, 1)을 사용하였고 표준편차의 경우 0.2로 고정시켰다고 합니다. 학습을 진행하면서 이 U와 sigma 또한 동시에 학습이 진행되게 됩니다. 그러나 일반적인 GAN loss를 사용하게 되면 Generator 입장에서 Sigma를 줄이려고 합니다. GAN입장에서는 high probability region에서 sample을 얻으려고 하기 때문이죠. 이렇게 되면 결국 sigma는 0으로 수렴하게 됩니다. 이를 방지하고자 loss에 regularizer를 추가하게 됩니다. 이는 sigma가 감소하는것을 방지해주는 역할을 합니다.

 

 

 

 

 

실험결과를 보면 꽤 흥미롭습니다. 우선, 각 data에 대한 네트워크 구조는 아래 그림과 같습니다. 보시면 아시겠지만 특별한 구조를 사용한 것은 아닙니다.

 

 

 

DeliGAN의 경우에는 데이터가 적은 상황에서 얼마나 실제와 비슷한 데이터를 generation 시키고 다양한 데이터를 generation시키느냐에 중점을 둔 GAN이기 때문에 다양성와 유사성을 중점적으로 보아야합니다. MNIST의 경우 총 500장의 데이터만을 학습에 사용하였고 CIFAR10 의 경우 2000장만을 사용하였다고 합니다. 우선 toy 데이터에 대한 실험 결과를 보시면 확실히 다른 GAN에 비해 data분포에서 잘 sampling 된(?) 느낌을 보이긴 합니다.

 

 

 

MNIST에 대한 실험 결과를 보시면, 저자들은 GAN에 비해 DeLiGAN에 비해 선명하고 좀더 다양한 숫자를 generation시키고 있다 라고 주장 하고 있습니다. 처음에는 선명한가?라는 생각이 들긴했는데 자세히 보면 확실히 좀 더 선명하고 다양한 숫자들이 generation 된 것을 알 수 있습니다. 그리고 학습을 계속 진행을 하면 GAN의 경우에는 mode collapse가 일어나지만 DeliGAN의 경우 stable한 학습과정을 보인다고 서술 되어있습니다.

 

 

 

CIFAR10의 각 class별 inception score를 보면 cat, Dog, Truck에서는 GAN이 높았지만, 다른 class에 대해서는 DeliGAN 이 높게 나왔습니다. 아래 그림을 보시면 왼쪽 GAN이 생성한 이미지를 보시면 보라색 노란색, 파란색 등 동일한 이미지를 generation시켰지만, DeliGAN의 경우에는 하나의 이미지도 겹치는게 없습니다. 확실히 다양성 면에서는 DeliGAN이 좋은 성능을 보이는 것 같습니다.

 

 

 

 

 

 

데이터의 수가 제한적일 때, 좀더 real data의 분포를 따를 수 있는 GAN구조를 제안한 DeliGAN에 대해 간단하게 review 해 보았습니다. 제 생각 몇줄 적어보면, 이 논문의 핵심은 Gaussian mixture model을 사용하는 것이고 이것이 data의 diversity를 높여주는 것이라 생각합니다. 그렇다면 데이터가 충분히 많을 상황시에 적용시에 어떻게 적용될지 궁금하네요. 더불어, Gaussian mixture model이 diversity를 보장한다면 특정 Gaussian component가 data distribution의 특정 분포를 담당(?) 하고 있을 수도 있지 않을까라는 생각이 듭니다. 

 

 

반응형

댓글