Deep Learning/GAN

[GAN] DCGAN - 논문 리뷰, Paper Review, 설명 (1)

미미수 2021. 7. 6. 13:56

 

늘 다룰 논문은 2016년에 발표된 DCGAN -Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks에 대한 리뷰입니다. 논문에 흥미로운 Figure들이 많아 재미있게 읽은 논문입니다.

 

DCGAN에 앞서 GAN에 대한 내용을 참고하고 싶으시면 제가 정리한→ GAN 리뷰 ←를 보고 와주세요.

 


 

 

DCGANDeep Convolutional Generatice Adversarial Network의 약자로, 

GAN을 개선시키고 거기에 Convolution을 적용한 모델입니다.

 

 

Ian Goodfellow가 처음 제안한 적대적 생성 신경망(GAN)은 획기적이었으나 구조가 다소 불안정하고, NN이 기본적으로 지닌 Black Box 한계점 = '어떠한 과정을 거쳐서 이런 결과가 나오는거지?'에 대한 설명이 부족했습니다.

 

이에 대해 논문에서는 DCGAN을 통해 다음 내용들을 contribute 한다고 제시합니다.

 

  1. 거의 대부분의 상황에서 안정적으로 학습이 가능한 GAN인 DCGAN을 제시한다.
  2. 학습이 된 판별기(이하 D)가 이미지 분류에서 다른 비지도 알고리즘들과 비교했을때 대등한 성능을 보인다.
  3. DCGAN이 학습한 filter들을 visualize하고, 특정 filter가 특정 object를 생성하는 역할을 한다는것을 알아냈다. 
  4. DCGAN이 벡터 산술 연산이 가능한 성질을 갖는다. Semantic quality를 갖는다.

(이 중에서도 3번과 4번에 대한 부분이 개인적으로 무척! 흥미로웠습니다. 2편에 더 자세하게 설명하겠습니다)

 

 


Model Architecture

 

 

CNN을 GAN에 적용하려는 시도는 DCGAN이 처음은 아니었습니다. LAPGAN과 같이 이전에도 몇번의 시도는 있었지만 유의미한 성능향상이 없었기 때문에 굳이 CNN을 적용할 필요성을 느끼지 못했습니다.

이를 극복하기 위해 DCGAN은 3가지 특징을 지닌 CNN 구조를 적용하였습니다.

 

첫째, Max Pooling To Strided Convolution

Strided Conv

Spatial Pooling은 down sample의 대표적인 기법입니다.

따로 Max pooling layer을 넣어 spatial resolution을 낮춰주는 작업을 진행하고,

이때, Max-pool은 미분이 불가능한 레이어 입니다.

 

DCGAN은 이 작업을 convolution 과정 안으로 넣었습니다. 그림에서와 같이 Spatial pooling이 Convolution을 통해 되기 때문에 Generator network에서 spatial downsampling 과정도 함께 학습시킬 수 있습니다. Discriminator에서는 spatial upsampling이 가능하게 바꿨습니다.

 

 

 

둘째, Eliminate Fully-Connected Layers

G에 noise vector z를 넣는 첫번째 layer와

D에서 output결과를 판단하는 마지막 softmaxlayer를 제외하고는 FC layers를 전부 제외했다고 합니다.

 

 

셋째, Batch Normalization 추가

Gradient의 흐름이 deep한 model에서도 잘 흐르게끔 BN을 적용시켜줬답니다.

하지만, 모든 layer에 BN을 추가하면 문제가 생겼고, G의 output layer와 D의 input layer에는 BN을 넣지 않는다고 합니다.

 

 

그 외에도 RELU, Leaky RELU등을 사용했습니다.

 


2편

 

[GAN] DCGAN - Paper Review,설명 (2)

 

memesoo99.tistory.com