Unsupervised Representation Learning With Deep Convolutional Generative Adversarial Networks

Updated:

Paper Link : Unsupervised Representation Learning With Deep Convolutional Generative Adversarial Networks

Summary

  • Convolution을 활용하여 GAN 아키텍쳐를 구현
  • 학습한 Discriminator를 Image Classification Task에 활용
  • GAN으로 학습한 filter를 시각화한 결과 개별 필터가 특정 Object를 표현하는 방향으로 학습되었다는 사실을 밝혀냄
  • Generator는 Vector Arithmetic 성질을 보임
    • 생성된 샘플들에 대한 산술 연산을 통하여 새로운 샘플들을 생성할 수 있음

DCGAN

DCGAN의 핵심은 다음과 같다.

  • Deterministic한 Upsampling 대신 Strided Convolution을 사용하여 Upsamping 과정 또한 학습이 되도록 하였음
  • 네트워크 끝단에 붙는 FC Layer를 제거
  • Batch Normalization을 추가하여 학습의 안정성을 높임 (단, Generator의 output layer와 Discriminator의 input layer에는 적용하지 않음)
  • Generator에서는 output layer에만 Tanh을, 나머지 layer에서는 ReLU를 사용하고 Discriminator에는 LeakyReLU를 사용

아래 이미지는 DCGAN의 전체적인 구조이다.

image

Experiment

image

image

Generator의 각 Feature Map을 시각화한 결과 위와 Figure 5와 같이 각각의 필터는 이미지 속의 특정 object들을 학습한다는 사실을 알 수 있었다.

또한 창문 모양에 대하여 학습한 필터들을 제거하고 샘플을 생성한 결과 Figure 6의 아랫쪽 행과 같이 창문들이 전부 문이나 거울과 같은 유사한 모양의 object들로 대체된 것을 확인할 수 있다.

image

위의 Figure 7은 생성된 Sample에 대하여 벡터 연산을 한 결과이다. NLP Task에서 임베딩된 벡터들끼리의 덧셈 뺄셈 연산을 수행하여 새로운 단어를 생성하는 것과 같다 보면 된다(ex. vector(‘king’) - vector(‘man’) + vector(‘woman’) = vector(‘queen’))