ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [논문리뷰] DCGAN: UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS
    Artificial Intelligence/Computer Vision 2021. 5. 20. 00:34

    개요

        GAN 시리즈의 2번째 논문, DCGAN입니다. DCGAN은 노이즈가 많고, 학습 결과를 해석하기 어렵다고 일컬어지는 Plain GAN을 CNN 아키텍처를 도입함으로써 이를 안정화시켰다고 알려져 있습니다. 개인적으로 인상적이었던 점은 이 연구의 주안점이 GAN 자체를 발전시키는 것이라기보다 더욱 안정화된 GAN을 사용해 Unsupervised Learning을 보다 효과적으로 하는 데에 있었다는 것입니다. 이 점을 유의해서 논문을 간략하게 살펴보도록 하겠습니다.

     

    Approach & Model Architecture

        CNN 아키텍처를 GAN에 도입하려고 한 시도는 이 논문이 처음이 아니지만, 성공적이지 못했습니다. 그리고 DCGAN 연구진분들 역시 주로 Supervised Task에 사용되는 CNN을 사용하여 GAN을 조정하는 것에서 어려움을 겪었다고 밝히고 있습니다. 하지만 DCGAN이 발표된 2016년 당시 최신의 CNN 학습 테크닉 3가지를 도입함으로써 이를 극복할 수 있었다고 합니다. 이 테크닉 3가지는 다음과 같습니다.

     

    DCGAN's Generator Model Architecture

    1. All Convolution Net
      Spatial Pooling Function을 모두 Strided Convolution으로 대체하는 것. CNN에서는 own downsampling을 학습하도록 적용되었으나 이 논문에서는 Generator에서 own upsampling을 학습하도록 적용되었다.
    2. Eliminating Fully Connected Layers
      Fully connected hidden layers를 없앴다.
    3. Batch Normalization
      CNN 아키텍처에 Batch Normalization을 포함했습니다. 이를 통해 Generator가 여러 sample을 하나의 point에 collapse해버리는 문제를 해결했다고 합니다. 다만, 모든 레이어에 적용하는 것은 오히려 부작용을 낳아 Generator output과 Discriminator input에서는 적용하지 않았습니다.
    4. ReLU activation
      Generator에서 Tanh를 쓰는 output layer를 제외한 모든 layer에서 ReLU를, Discriminator에서는 모든 layer에서 LeakyReLU를 사용하였습니다.

    Training & Validation

    .   총 3가지 dataset인 LSUN, ImageNet-1k, 자체적으로 크롤링한 Faces dataset을 사용했다고 밝히고 있습니다. 모델이 이미지를 외우는 것이 아닌, 정말 학습해서 생성해낼 수 있도록 유지하는 것에 초점을 맞추었습니다. 이를 방지하기 위해서 모든 데이터셋에 data augmentation 기법을 사용하지 않았으며, deduplication 기법을 적용하는 등의 시도를 하였습니다. 

    Generated bedrooms after 1 epoch

        위 사진은 1 epoch을 낮은 learning rate으로 학습한 결과물들을 보여주는 것으로, 이미지를 외워서 생성하고 있지 않다는 증거를 보여줍니다.

     

        GAN 모델의 학습 결과를 평가하기 위해서 Discriminator의 Feature Map을 이용한 Classification task를 수행하였는데요, 기존의 classification 모델들과 엇비슷한 성과를 보였습니다. 

    CIFAR-10 classification results

    Investigating

        학습된 Generator와 Discriminator에 대한 정보를 더 얻기 위한 조사를 진행했다고 합니다. 그 중에서도 log-likelihood나 pixel 단위의 nearest neighbor 알고리즘은 종종 자그마한 변화에도 속는 경향이 있어 사용하지 않았다고 하네요.

     

    • Walking in the latent space

        만약 이미지를 외우는 방식으로 학습이 진행되었다면 latent space에서 움직이는 사진 중에서 갑작스런 변화가 있을 수 있겠죠. 그러나 smooth하게 변화하는 사진의 양상으로 볼 때, 학습이 잘 진행되었음을 확인할 수 있습니다.

     

    • Visualizing Discriminator Features

        guided backpropagation을 사용하여 Discriminator가 학습한 feature들을 시각화할 수 있습니다. 학습이 충분히 이루어진 모델은 semantically relevant한 feature들을 학습한 것을 확인할 수 있지만, 왼쪽의 baseline 모델은 의미있는 학습을 못한 것을 볼 수 있습니다.

     

    • Forgetting to draw certain objects

        위의 실험에서 Discriminator는 충분히 잘 학습되었다는 점이 입증되었고, Generator는 어떨까요? 이를 위해서 Generator의 feature activation에서 window를 나타내는 것들을 dropout하는 방식으로 이미지를 generate해본 결과, 위와 같이 모델은 말끔하게 창문만 없어진 버전의 bedroom을 만들어낼 수 있었습니다.

     

    • Vector arithmetic on face samples

        generator의 input noise vector $z$로 덧셈과 뺄셈을 시도하며 실험한 결과물입니다. 어색한 면이 있지만, 의도한 대로 semantic relevance를 학습했다는 것을 알 수 있습니다.

     

    Conclusion

        이 논문에서의 실험들을 통해 GAN 모델이 충분히 supervised learning과 generative modeling 양쪽에서 image의 good representation을 학습하고 있다는 것을 입증하였습니다. 다만, 아직 일반적으로 사용되기에는 불안정하고 어색한 측면이 있으니 추후 연구로 개선되길 바란다는 말을 남겼습니다.

    댓글

Designed by Tistory.