Deep Learning study

Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Network (DCGAN) 본문

AI/papers

Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Network (DCGAN)

HwaniL.choi 2019. 5. 6. 12:22
반응형

오늘은 DCGAN에 대해서 알아보도록 하자 .

이 논문은 읽는데 딱히 어려웠던 점은 없고 생각보다 쉽게 읽어 내려갈 수 있었다. 새로운 이론이나 그에따른 증명 보다는 네트워크의 구조적 측면이나 , 방대한 실험과 경험을 통한 결과물들을 보여주기 때문이다.

이 논문에서 소개할 것들에대해서 알아보자.

1. DCGAN이라는 Convolutional GAN을 이용하여 대부분의 상황에서 안정적인 학습을 가능하게 만들었다.

2. 학습된 discriminator를 이미지 분류에 사용했을때 , 다른 unsupervised 알고리즘과 견줄만한 성능을 보여주었다.

3. GAN이 학습한  filter들을 시각적으로 보여주고, 특정한 filter들이 특정한 object들을 표현하는것을 학습하는것을 보여준다.

4. generator가 vector arithmetic의 특징을 갖는것을 보여준다.

 

Approach and Model Architecture

여기서 소개한 주요 3가지 접근과 CNN 구조의 변화에 대해서 알아보도록 하자.

1. pooling layer를 없애고 spatial한 정보를 학습하기 위해서 모두 strided convolution만을 사용했다는 것.

2. FC(fully connected) layer를 제거했다는 것.

3. 안정화를 위해서 Batch Normalization을 사용했다는 것. 사실 BN이 나온 이후로 안쓰는 곳이 잘 없죠..(그렇지만 모든 layer에 적용하는것은 모델이 불안정해진다고해서 generator의 output layer와 discriminator의 input layer에서는 사용하지 않았다고한다.)

다음은 DCGAN 구조에대한 Architecture guideline을 소개한다.

...더보기

- pooling layer들을 discriminator 에서는 strided convoultion으로 대체했고, generator에서는 fractional strided convolution으로 대체했다.

- batchnorm을 사용했다.

- fully connected layer를 제거했다.

- generator에 ReLU 활성화함수를 사용했다. 다만 output layer에서는 Tanh를 사용했다.

- discriminator에는 LeakyReLU 활성화함수를 사용했다.

 

generator의 구조를 보여주는 그림이다. input으로는 100차원의 latent vector Z 가 들어간다. 당연히 convolution을 진행하려면 100차원의 vector를 reshape해주어야한다. 따라서 이 vector는 4차원 tensor로 reshape 될 것이다. 그 후엔 fractionally-strided convolution 을 통해서 64 by 64 크기의 pixel image가 생성된다.

 

Detailes of Adversatiral Training

  • LSUN : LSUN은 Large scale Scene Understanding이라는 데이터셋이다. 이 데이터셋을 가지고모델이 단순히 overfitting 과 memorization을 통해서 이미지를 생성해내는것이 아님을 설명하게 된다.

    여기에서 Deduplication이라는 memorization문제를 피하기위한 방법이 사용되는데 이를통해서 비슷한 이미지를 많이 제거할 수 있었다고 한다.
  • Faces : 웹에서 random image들을 받아와서, 사람얼굴이 있는 사진을 스크랩했다.


  • ImageNet-1K : imagenet-1k으로 DCGAN을 학습시켰고, 놀라운 점은 test는 CIFAR-10으로 했는데, CIFAR-10 분류작업에 사용했을때, 다른 알고리즘들과 비슷하거나 높은 성능을 내었다고 한다.

 

Investigating and Visualizing the Internals of the Networks

첫 epoch만에 generator가 생성해낸 침실 image들이다. 언뜻 보기에는 침실이라는것을 알 수 있지만, 자세히 보면 다소 이상하긴하다. 그래도 첫 cycle만에 이정도의 결과물이면 대단한 것 같다.

위 image들은 5 epoch가 지난 후 생성한 침실사진이다. 이전의 사진들보다는 그럴 듯해졌다. 논문에서는 사진에 보이는 반복되는 noise들이 under fitting의 증거라고 말하고있다. 내 생각이지만, 그 후의 결과들이 더 잘 되었다면 그것들을 결과로써 보여주지 않았을까 생각한다. ..

 

Walking in the Latent Space

latent space가 변할때 sharp transition(갑작스런 변화)이 일어난다면, 그것은 memorization의 증거라고 볼 수 있다. 즉, 모델이 training sample들을 외우는것을 학습하고있다는 것이다. 그래서 주장한 것이 walking in the latent space 인데, latent space를 조금씩 변화하면 그에따라 생성된 image도 그 흐름에 맞추어 조금씩 변화한다는 것이다.

6번째 줄의 image들을 본다면, window(창문)이라는 특징을 latent space에 조금씩 주었을때 그 변화가 서서히 일어나면서 바뀌는것을 볼 수있고, 또한 마지막 줄에서는 TV가 큰 창문으로 서서히 변해가는것을 볼 수있다.

 

Visualizing the Discriminator Features

논문에서 filter들이 어떤 부분들을 활성화 시키는지에대해서 시각적으로 보여준다. 왼쪽의 경우에 filter가 random한 값을 가지고 있다면 semantic하게 연관지을 수 없지만, 오른쪽과 같이 학습 된 filter들은 특정한 object들의 특징을 표현하고 있다는 것을 확인할 수있다.

 

Forgetting to Draw Certain Objects

말 그대로 특정한 object의 특징을 잊어버리게 하는 것 이다. 여기서는 창문에대한 feature activation을 이용해서 창문에대한 spatial location을 drop하게 만든다. 즉 창문에대한 filter들을 drop out 시켜버린 것 이다.

첫 줄의 image들이 빼기 전의 사진들이고, 아래의 image들이 뺀 후의 생성된 사진이다. 아래의 사진들을 잘 보면 창문들이 사라졌거나 다른 물건들로 대체되었음을 볼 수있다.

Vector Arithmetic on Face Samples

이 말이 무엇이가하면, 마치 word2vec처럼 latent vector Z를 똑같이 사용할 수 있다는 것이다.  예를들면 vector('king') - vector('man') + vector('woman')을 하면 vector('queen')에 가까운 값이 나오는것과 같은 맥락이다.

위의 그림처럼 웃고있는 여자에 여자의 특징을빼고 남자의 특징을 더하면 웃고있는 남자가 나오게되는 것이다. 실험적으로 하나의 latent vector z 를 사용했을때 잘 되지않아서, 같은 특징을 가진 latent vector z 3개를 평균내어 사용하였더니 잘 된다고 한다. 위에서도 그것을 표현해 주도록 설명하고 있다.

 

딱히 이론적인부분이나 새로운 아이디어는 보이지 않아서, 설명할 거리라기보다는 DCGAN 모델의 구조를 소개하면서 학습 안정성과 , 그에 부수적인 실험 결과들이 논문의 주된 내용들이다. 그래서 쭉 읽어보면 이 사람들이 그것을 바탕으로 얼마나 많은 노가다와 노력을 했는지 알 수 있는 논문이였다.

다음에 정리할 논문은 InfoGAN이고 그 다음은 memory network... 정도?!

오늘은 그럼 안뇽 ..

 

Reference

[1] Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Network

반응형
Comments