(2015)Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks

Gyuha Park·2021년 8월 13일
1

Paper Review

목록 보기
14/34
post-thumbnail
post-custom-banner

0. Abstract

GoodFellow가 2014년 처음 발표한 original GAN은 MNIST와 같이 비교적 단순한 이미지는 괜찮은 이미지를 생성하였지만, CIFAR-10과 같은 복잡한 영상에 대해서는 그렇게 좋은 이미지를 생성했다고 볼 수 없다. 그리고 학습 시 안정성이 떨어지는 심각한 문제가 있었다. 본 논문은 이 문제를 해결하기 위해, CNN을 적용하기 위해 다양한 구조에 대한 실험 끝에 최적이라고 생각되는 구조를 찾아냈다.

1. Introduction

  • DCGAN이 대부분의 세팅에서 안정적으로 학습하는지 보고, 평가할 것이다.
  • 다른 unsupervised learning 방법들과 비교하기 위해서, image classification에 학습되었던 Discriminator를 이용할 것이다.
  • GAN에 의해 학습된 필터들을 시각화 할 것이고 경험에 의거하여, 특정한 물체를 그리도록 학습된 특정한 필터를 보여줄 것이다.
  • Generator가 벡터 연산적인 특성이 있어서 쉽게 조작하여 다양한 의미의 샘플을 생성할 수 있음을 보여줄 것이다.

1) Representation Learning from Unlabeled Data

  • Clustering (ex. K-means)
  • Auto-encoder
  • Ladder structures

2) Generating Natural Images

이미지 생성 모델은 Parametric, Non-Parametric두 가지 범주로 구분된다.

< Non-Parametric >

이 모델은 기존 이미지의 데이터 베이스를 matching하거나 이미지 patch를 matching한다.

그리고 다음과 같은 연구에 사용되었다.

  • Texture Synthesis
  • Super-Resolution
  • In-Painting

< Parametric >

이미지 생성을 위한 parametric 모델들은 광범위한 분야에 대해 연구되었다. 하지만 아직 까지 현실 세계의 자연스러운 이미지를 생성해내는 것은 아직 성공적이지 않다. GAN에 의해 생성된 이미지는 노이즈와 해석하기 힘들다는 문제가 있다. 이를 Laplacian Pyramid를 이용하여 고품질의 이미지를 생성한 연구도 있지만, 여전히 노이즈가 있다.

3) Visualizing The Internals of CNNs

CNN은 black box로 가려져 있다고 끊임없이 비판 당하고 있다. 하지만 deconvolution을 사용하고 maximal activations를 filtering 함으로써, network에서 각 convolution filter의 목적을 찾을 수 있다는 것을 보여주었다. 마찬가지로 입력에 gradient descent를 사용하면 특정 filter를 활성화하는 ideal 이미지를 찾을 수 있다.

3. Approach and Model Architecture

고해상도의 더 깊은 생성 모델을 학습 시키기 위한 다음과 같은 구조를 생각해냈다.

  • Pooling Layers 대신에 strided convolutions(downsample) & fractional-strided convolutions(upsampling)로 대체한다.

  • CNN feature의 맨 위의 FC layers를 제거한다. 대신에 Global average pooling으로 모델 안정성을 향상 시킨다.(수렴 속도는 하락)

  • Batch normalization으로 input을 normalize한다. 이는 깊은 모델의 학습에서 발생하는 초기화 문제와 gradient 흐름 문제에 대해 도움을 준다. 하지만 모든 layer에 대해 BN을 적용하면 모델이 불안정해진다. 그래서 generator의 output layer(이미지)와 discriminator의 input layer(이미지)에는 BN을 적용하지 않는다.

  • Generator에는 ReLU를 사용하였다.(output은 Tanh) 모델이 학습을 더 빨리 수렴하도록 학습하고 학습 분포의 색 공간을 빠르게 커버 하도록 하기 때문이다. Discriminator에는 LeakyReLU 사용.

4. Details of Adversarial Training

Fully connected / pooling layers는 사용하지 않았다.

  • Mini-batch SGD ( batch_size = 128 )
  • 정규분포(평균=0/표준편차=0.02)로 가중치 초기화
  • AdamOptimizer(lr = 0.001 -> 0.0002로 내림 / momentum = 0.9 -> 0.5로 내림(학습 안정화))

1) LSUN

침실 사진이 모여있는 데이터셋이다. 이미지 모델들을 통해 생성된 샘플들의 품질은 좋았지만 학습 중 over fitting과 memorization의 문제가 있다.

수렴전 생성한 샘플들

5 epoch 후 수렴 한 뒤 생성한 샘플들

Generator가 단순 암기를 통한 샘플 생성하는 것을 방지하기 위해 간단한 deduplication 과정을 진행했다. Memorization 문제를 피하기 위해, 이미지들을 autoencoder를 통해 code로 변환하도록 하고 이 code와 가까운 값들을 제거한다. 이러한 과정의 결과로 precision은 높아지고 FP(false positive) 비율은 0.01 이하로 나타났다. 추가적으로 275,000 개의 중복된 이미지들을 제거했다.(Recall 상승)

5. Empirical Validation of DCGANs Capabilites

DCGAN은 CIFAR-10을 기반으로 fine-tuned 되지 않고, ImageNet-1K로 fine-tuned 됐다.

아직 DCGAN의 성능이 기존 CNN에 미치지 못하지만, 더 발전할 수 있는 부분은 추후 연구로 남겨둔다.( Discriminator를 fine-tune하는 등 )

6. Investigating and Visualizing The Internals of The Networks

Error rate가 가장 낮은 것이 DCGAN임을 알 수 있다.

1) Walking in The Latent Space

Latent space(Z)에서 이동할 때, 급작스럽지 않고 천천히 부드럽게 변화해야 한다. 급작스러운 변화가 일어났을 경우에는 memorization이라고 판단한다. 반면에 부드럽게 변화가 일어나는 경우 이미지 생성에 대해 의미 있는 변화를 줄 수 있다.( 객체를 추가하거나 제거하거나 ) 이는 모델이 관련이 있고, 흥미 있는 representation에 대해 학습했다고 본다.

2) Visualizing The Discriminator Features

본 논문은 DCGAN을 대규모 데이터셋에 대한 unsupervised learning을 통해 흥미 있는 representation들을 학습할 수 있다는 것을 증명했다. 오른쪽 이미지는 6개의 학습된 CNN layer의 backpropagation을 시각화 한 것이다.

3) Manipulating The Generator Representation

샘플의 품질은 generator가 주요 장면의 구성 요소를 대표하는 특정한 물체인 침대, 창문, 램프, 문, 다양한 가구를 학습하는 것을 보여준다. 윗 줄은 수정되지 않은 샘플 / 아랫 줄은 창문을 제거하는 필터를 적용한 샘플이다. 실제로 창문이 사라지기도 하고 다른 물체로 대체되기도 했다.

WordEmbedding에서 King-man+woman을 하면 “queen”이 나오는 것처럼 이미지도 벡터 연산이 가능하다는 것을 보여줬다. Z를 이용하여 연산이 의미 있게 작용하는 것을 보여줬다.

보간을 이용하여 얼굴을 왼쪽에서 보는 것에서 오른쪽에서 보는 것처럼 바꾸는 것이다. 이를 통해 네트워크가 scale, rotation, position등에 대해 이해하고 있다는 것을 볼 수 있다.

7. Conclusion and Future Work

DCGAN이 GAN의 불안정함을 해소해주긴 했지만, 오래 학습할 경우 oscillating model collapse 문제가 발생할 수 있다는 불안정한 모습을 보이긴 한다. 이 점에 대해서는 해결하기 위한 노력을 필요로 한다.

post-custom-banner

0개의 댓글