Unsupervised Representation Learning withDeep Convolutional Generative Adversarial Networks (2016.01.07) - https://arxiv.org/abs/1511.06434
Research direction & Motivation
Main Purpose
Stabilization of deep convolutional GAN with increasing performance
2014년 Goodfellow가 Genative Adversarial Networks 인 GAN은 생성모델계의 큰 반향을 일으켰다. GAN을 활용한 다양한 도전들이 실행되었고 점점 더 보편화되기 시작했다. 하지만 GAN은 타알고리즘에 비해 비교적 학습의 불안정성이 뚜렷해, 학습이 어려운 것과 일종의 black box method로써 이미지의 생성과정을 알기어려운 점이 단점으로 작용했다. 본 논문에서는 기존 발표된 GAN의 한계를 많은 양의 실험을 통해 보완하며 안정화되고 보편화될 수 있는 모델의 구조를 탐색하는데 초점을 두었다. 이에 따라 논문에서 중심적으로 보여주고자 하는 것은 크게 두 가지이다.
- 보편적으로 적용이 가능한 모델 구조를 통한 안정된 결과 이미지의 생성
- Generator가 생성하는 이미지는 sample을 암기하여 보여주는 것이 아니라는 것
언급했듯이 전자의 탐색이 우선적이며, 이렇게 탐색된 모델의 구조에따른 이미지의 생성이 단순히 픽셀단위의 정보를 외워서 보여주는 것이 아니라 feature map의 학습을 통해 창출해낸 이미지여야한다는 것이다. 여기서는 이를 Generator의 input space인 latent space (z space)에서 움직일때 sharp transition이 아닌 natural transition을 보여주어야한다고 표현하며 이를 'walking in the latent space'라고 정의해 제시했다.
Related research
Representation learning from unlabeled data에 있어서 autoencoder나 deep belief netowrk는 계층적인 구조를 반영하는 것을 잘 수행해왔다. 이미지 생성에 있어서는 variational sampling approach, iterative forward diffusion등의 방법이 존재했지만 blurry 문제가 발생하는 등의 단점이 존재했다. 또한 기존의 GAN 역시 학습이 불안정하고 noisy한 경향이 존재했다. 최근에는 recurrent network와 deconvolution network를 사용해 좋은 결과를 거둔 바가 있으나, CNN을 이용한 GAN에서는 LAPGAN을 제외한 모델에서는 고해상도의 이미지를 얻지 못하는 한계를 보였다.
동시에 CNN 구조가 직면한 문제 중 하나는 내부적으로 어떤 구조를 통해 모델이 학습하고 결과를 산출하는지를 명확히 제시하지 못하는 black box 모델이라는 점이었다. 이를 gradient descent를 이용해 input 이미지에 대해 활성화된 특정 필터를 제시하는 등의 시도들이 제시된바 있다.
Contribution
Stabilized model structure
저자들은 CNN을 이용한 GAN의 보편화된 구조를 찾기 위해 'extensive model exploration' 을 했다고 말한다. 이러한 수많은 시도들이 동반되어 실험적으로 찾아낸 안정화된 모델을 위한 가이드 라인을 크게 5가지로 제시한다.
1. Max pooling과 같이 미분이 되지 않는 부분을 Discriminator에서는 strided convolutions, Generator에서는 fractional-strided convolution으로 대체.
=> Network로 하여금 own spatial upsampling을 스스로 학습할 수 있도록한다.
2. Batch Normalization을 사용. 다만 Generator의 output, Discriminator의 input layer에서는 제외.
=> 심층 네트워크로의 gradient 전달을 도우며 GAN에서 자주 나타나는 문제인 Generator의 mode collapsing 문제를 완화한다. 하지만 모든 layer에 적용하게되면 오히려 불안정성을 유발해, 언급한 두 layer에서는 사용하지않는다.
3. Fully connected layer를 제거.
=> 대표적으로 사용되는 glober average pooling을 보면 모델의 안정성은 높이지만 수렴 속도를 늦추는 영향이 발생한다.
4. Generator의 output layer는 tanh, 이를 제외한 모든 layer에는 ReLU activation을 사용.
=> 실험적으로 bounded activation이 training distribution의 color space를 더 빠르게 학습하도록한다.
5. Discriminator의 모든 layer에는 LeakyReLU를 사용.
=> Higher resolution modeling에서 LeakyReLU가 더 잘 작동한다.
위와 같은 가이드라인을 적용한 DCGAN을 이용해 다음 데이터 셋에 대해 실험을 진행했다.
- LSUN (Large-scale Scene Understanding): 약 300만개의 침실 사진 ( Generator가 이미지를 암기하는 것을 방지하기위해 autoencoder를 통해 deduplication을 진행한뒤 사용
- FACES: Web으로부터 image scraping을 통해 수집한 10000여명에 대한 300만개의 사람 얼굴 이미지
- IMAGENET-1K: ImageNet의 일부. 32x32로 min-resized center crop 하여 사용
- CIFAR-10 / SVHN
Empirical validation of DCGANS capabilities
첫번째로 DCGAN의 성능 검증을 위해 비지도학습 계열의 알고리즘을 평가하기위해 자주 사용되는 방법을 사용했다. 지도학습에 사용되는 데이터를 기반으로 모델을 feature extractor로 활용해 학습한뒤 classifier를 통해 성능을 평가하는 방법이다.
DCGAN을 Imagenet-1k에 대해 pretrain 한뒤, L2-SVM classifier를 연결해 CIFAR-10과 SVHN에 대해 test accuracy를 산출했다. 다른 비지도학습 계열의 알고리즘들과 비교했을때, baseline으로 사용된 K-means보다 두 경우 모두 높은 정확도를 달성했고 특히 SVHN에서는 sota에 준하는 정확도를 보여주어, DCGAN이 좋은 feature들을 extracting하는 것으로 보이며 안정화된 구조를 가지는 것으로 볼 수 있었다.
Walking in the latent space
논문의 주된 목표중 하나인 Generator가 이미지를 외워서 보여주는 것이 아니란 것은 곧 Generator의 input 공간인 latent space에서 움직일 때 sharp transition이 아닌 부드러운 변화를 보여주어야 한다는 것이다. 이를 논문에서는 'walking in the latent space' 라고 칭한다.
학습된 Generator의 input값인 z를 미세조정하며 생성되는 이미지가 어떻게 변화하는지를 나열해보면, 이미지의 구성요소들이 투박하게 한번에 형성되는 것이 아닌, 벽이있던 사진에서 창문이 있는 방으로 바뀌어가는 모습처럼 부드러운 스케일로 점차적으로 변화해나가는 것을 볼 수 있다.
Visualizing the discriminator features
CNN계열의 알고리즘들이 가지는 주요한 단점 중 하나는 black box 모델로써 내부 구조의 해석이 어렵고 설명력이 떨어진다는 것이다. 이러한 단점을 DCGAN에서 각 filter들의 시각화를 통해 어떤 필터가 이미지의 어떤 부분을 잡아내는지를 시각화하여 feature의 계층적 구조를 학습한다는 것을 규명했다.
LSUN 데이터셋에서 backpropagation을 이용해 input에 대해 filter들이 discriminator가 학습한 feature들의 어떤 부분을 active하는 지를 보여준다. 왼쪽 그림은 filter가 무작위 값을 가지고 있는 경우로 딱히 구조를 특정할 수 없다. 하지만 우측의 학습된 filter들은 DCGAN이 구조의 특징들을 이해하고 각각을 구별해 침대, 창문, 벽모양과 같은 구조 등으로 나누어 역할을 담당하고 있는 것을 확인할 수 있다.
Manipulating the generator representation
< Forgetting to draw >
첫번째로 각 특징을 담당하는 filter를 dropout 시켜, 이미지에서 해당하는 특징이 사라진 이미지를 생성해 보여주었다.즉, 학습뿐만 아니라 망각도 가능하다는 것을 보여줌으로써 filter들이 이미지에 대해 일종의 역할 분담을 통해 feature map을 형성하고 있다고 할 수 있다.
LSUN의 침실 사진에서 window filter를 drop 시키자 다른 부분의 형태들은 보존한채로 창문이 사라지거나, 해당 위치에 그와 유사한 실루엣을 가지는 문, 거울 등의 이미지가 나타났다. 이는 Generator가 물체의 표현으로부터 풍경의 표현을 잘 분리해낸다는 것, 동시에 물체를 인식하고 학습한다는 것을 보여준다.
< Vector arithmetic >
다음으로 word2vec이 가지는 주요 특징인 차원의 연산을 통한 feature vector의 적용이 가능하다. 예를들어, FACES 데이터에서 '안경을 쓴 남자들' 을 표현하는 입력 값 z들을 모아 평균치를 구하고, '안경을 쓰지 않은 남자들' 과 같이 제외할 특징을 대변하는 z를 뺀다. 다음으로 특성을 적용할 이미지인 '안경을 쓰지 않은 여성들' 인 새로운 z를 더해주면, 그에 해당하는 '안경을 쓴 여성들' 이라는 이미지를 얻을 수 있다.
여기서 input은 단순한 Gaussian noise이기 때문에 z가 특별하다기 보다, Generator가 학습한 mapping이 잘 형성되고있는 것이다. 네트워크가 이미지를 1:1로 matching, 암기하고 있는 것이 아니라 이미지의 특성이 가지는 의미를 이해하고 있다. 이와 유사하게 논문에서는 한가지 예를 더 보여준다. 왼쪽을 보고 있는 얼굴을 만들어내는 input zleft들의 평균 vector와 오른쪽을 보고 있는 얼굴에 대응하는 zright들의 평균을 계산하고, 이 두 벡터의 사이를 잇는 축을 interpolating하여 Generator에 넣으면 천천히 회전하는 얼굴들이 나타난다.
Conclusion
종합적으로 논문에서 보여준 결과들은 DCGAN이 단순히 암기를 통해 이미지를 생성(1:1 matching)하는 것이 아니며, 이미지가 가진 특성들을 이해하고 새로운 이미지를 창조했음을 의미한다. 이는 제시된 filter의 activated feature map에서도 확인이 가능하다.
비록 GAN의 주요한 문제였던 오랜시간 동안 학습을 할 경우에 나타나는 mode collapsing이나 oscillating 하는 모습들을 보여주는 불안정성을 완벽하게 극복하지는 못했으나, 안정된 구조의 보편화된 가이드라인을 제시해 과거보다 개선된 고화질의 이미지를 안정적으로 얻을 수 있다는 것에 큰 기여점을 남겼다. 이후 나온 GAN의 구조들에서는 거의 대부분 DCGAN을 기반으로 모델을 차용하고 변형시킬만큼 해당 논문은 이미지 생성의 안정화를 이끌었다. 이는 추후 이미지 뿐만 아니라 audio, video와 같은 domain으로 확장해 적용이 가능함을 시사하고있다.