DCGAN - (2) Architecture

Previous Article: DCGAN - (1) Generative Adversarial Networks

이번 글에서는 DCGAN이 어떠한 Architecture을 가지는지 알아보자.

기본적으로는 Deep Neural Network의 한 종류인 CNN(Convolutional Neural Network)의 구조를 가진다. DCGAN의 CNN은 Convolutional layer와 Batch-norm layer, 그리고 ReLU로 이루어져 있는데 각 layer와 CNN에 대한 자세한 설명은 다음 기회에 해보도록 하고, 본 글에서는 이들이 DCGAN에서 어떻게 구성되어 있는지만 알아보도록 하자.

Generator

Architecture of Generator (출처: pytorch tutorial)

위 그림과 같이 Generator latent vector를 image로 mapping 함에 있어 총 네 개의 convolutional layer로 이루어진 CNN 구조를 사용한다. 주어진 latent vector를 첫 번째 activation map으로 reshape 하는 layer까지 합하면 총 5개이다. 다만, Generator에서는 일반적인 convolutional layer가 아닌 convolutional transpose layer를 사용한다.

일반적인 convolutional layer는 큰 size의 input data를 작은 output data로 mapping 하지만, conv-transpose layer는 input data의 size보다 output data의 size가 더 크다는 근본적인 차이점이 있다. 자세한 내용은 역시 CNN 관련 글에서 알아보도록 하자.

Discriminator

Discriminator는 Generator의 역순이라고 생각하면 좋다. 즉, 주어진 image를 CNN을 통해 scala probability로 mapping 한다. 마찬가지로 총 네 개의 convolutional layer가 사용되는데, Discriminator는 점차 차원을 줄여나가기에 일반적인 convolutional layer를 사용한다.

Graph of LeakyReLU activation function (출처: pytorch tutorial)

또한, 일반적인 ReLU function을 사용하지 않고 위 그림과 같이 에서의 기울기가 0이 아닌 작은 양의 값을 가지는 LeakyReLU function을 사용하였다.

지금까지 아주 간단하게 DCGAN의 Architecture를 알아보았고, 다음 글에서는 이 모델을 어떻게 학습시키는지 알아보자.

Next Article: DCGAN - (3) Training

Share