카테고리 없음

Progressive Growing of GANs for Improved Quality, Stability, and Variation(2018)

유세미나 2022. 5. 13. 15:48

GAN은 2014년에 등장한 generative model의 종류입니다. 

https://aijyh0725.tistory.com/12

 

Generative Adversarial Nets (2014)

GAN 논문 리뷰 첫번째입니다. 0. 배경 Generative Model은 초기 Boltzman machine으로 부터 시작하여 DBM(2009), VAE(2014)등이 등장하였습니다. Generative Model을 2개의 큰 특징으로 정의하면 아래와 같습니다...

aijyh0725.tistory.com

두 개의 적대적인 네트워크를 활용한 GAN은 sharp한 이미지를 만들어낼 수 있지만,

고해상도(higher resolution)의 이미지를 만들어내기 어렵다는 문제,

이미지의 다양성이 적은 문제(limited variation, mode collapse),

그리고 훈련이 불안정하다(unstable)는 문제점들을 안고 있습니다.

 

이를 해결하기 위해 다양한 아이디어들이 등장하였는데요.

 

먼저 CNN을 활용하여 좀 더 좋은 해상도의 이미지를 만들고자 하였던 DCGAN부터,

https://aijyh0725.tistory.com/13?category=1003583 

 

DCGAN (2015)

GAN 2번째 논문입니다. 이전글에서는 GAN을 소개하였습니다. https://aijyh0725.tistory.com/12 Generative Adversarial Nets (2014) GAN 논문 리뷰 첫번째입니다. 0. 배경 Generative Model은 초기 Boltzman mach..

aijyh0725.tistory.com

새로운 loss function을 이용하여 보다 안정적인 학습을 진행했던 LSGAN과 WGAN이 존재합니다

https://aijyh0725.tistory.com/16?category=1003583 

 

LSGAN (2016)

GAN의 학습은 굉장히 불안정합니다. GAN의 학습 불안정 중, 특정 샘플에 대하여 gradient vanishing 문제가 발생하는 경우가 있습니다. Discriminator의 decision boundary (real과 fake를 구분하는)에서 멀리 떨..

aijyh0725.tistory.com

https://aijyh0725.tistory.com/15?category=1003583 

 

Wasserstein GAN (2017), WGAN-GP

1. WGAN GAN의 가장 큰 문제점 중 하나는 불안정한 학습(unstable train)입니다. GAN은 아래식과 같이 데이터의 분포를 학습시키는, 즉 parameter에 대하여 데이터 분포를 실제 데이터의 분포와 비슷하게 만

aijyh0725.tistory.com

 

PGGAN은 이와 비슷하게, GAN에서 새로운 학습 방법을 제시합니다. 

모델 구조의 측면과 학습 과정을 새롭게 고안하는 데 이전 연구들에 비해 꽤나 효과적인 결과를 얻습니다.

이에 더해, GAN의 부족한 점 중 하나였던 새로운 evaluation metric의 도입과,

고해상도(무려 1024x1024인!)의 데이터셋을 새롭게 구성하는 contribution을 논문을 통해 얻을 수 있습니다.

 

제목인 progressive growing부터 굉장히 흥미로운 주제일 것이라 생각되는 데요,

과연 어떤 adaptive한 방식으로 학습이 이루어졌는지 논문 리뷰를 통해 알아보겠습니다.

 

논문 주소

https://arxiv.org/abs/1710.10196v3

 

Progressive Growing of GANs for Improved Quality, Stability, and Variation

We describe a new training methodology for generative adversarial networks. The key idea is to grow both the generator and discriminator progressively: starting from a low resolution, we add new layers that model increasingly fine details as training progr

arxiv.org

 

1. 논문 리뷰

Generative 모델은 크게 3가지 방법론으로 나뉘어 연구가 진행되어 왔습니다.

 

  • autoregressive model
  • VAE
  • GAN

각각의 방법론들에는 장단점들이 존재하는 데, 

예를 들어 autoregressive model은 latent representation이 따로 존재하지 않아 실제 활용 가능성에 문제가 있다는 점이 있고, VAE는 훈련은 쉽지만 결과가 안 좋은 경우가(blurry result) 다수 존재합니다. (GAN은 앞서 설명했기 때문에 생략하겠습니다)

 

GAN의 훈련 상의 문제점을 먼저 짚어보면,

결국 훈련 데이터의 분포와 생성 데이터의 분포 사이의 거리를 측정하는 것이 부적절할 경우 훈련이 쉽지 않다는 결론을 내릴 수 있습니다. 만약 두 분포 간의 겹치는 부분이(overlap) 현저히 적다면, 즉 두 분포가 다른 것이 명확히 보인다면 gradient 업데이트 과정에서 정확한 방향으로 학습이 이루어지기 어렵습니다. 

 

좋은 distance를 이용하여 학습을 진행하는 것에 대한 연구는 꾸준히 이루어졌습니다.

초기 GAN이 사용한 Jensen-Shannon divergence부터, lesat square 방식, 그리고 Wasserstein distance까지 다양한 방법론들을 탐구하며 보다 안정적인(stable) GAN의 학습에 대해 연구가 진행되었습니다. 

 

고해상도의 이미지를 만들어내는 것은 데이터 분포의 측면에서 봤을 때 많은 mode와 local한 정보들을 갖게 되므로 훈련 데이터와 생성 데이터 간의 차이를 보다 극명하게 나눌 수 있게 되고, 이는 앞서 설명한 gradient 문제와 직결되게 됩니다. 또한 고해상도의 이미지를 사용하기 위해서는 메모리의 한계로 인해 상대적으로 작은 batch를 사용하는 데, 이는 훈련 시 불안정성을 만드는 원인이 될 수 있습니다. (더 많은 batch를 이용하여 학습이 진행되지 않을 경우 gradient가 업데이트 될 때 최적의 지점으로 학습이 이루어지지 않을 가능성이 존재합니다)

 

따라서, 논문은 점차적으로 모델을 키워가며 학습을 진행하고자 합니다.

정확히 풀어 말하면, 학습하기 쉬운 저해상도의 모델을 먼저 학습하고, 이것에 block들을 계속해서 쌓아가며 모델을 고해상도까지 점진적으로(progressive) 학습하는 방법론을 제시합니다. 

 

이 때 Generator와 Discriminator의 차원은 항상 동일하게(synchronize) 유지되게 동시에 늘려줍니다. 

이러한 방법론을 통해 학습 초기에 데이터 분포의 큰 차원의 구조를 파악하고,

이어서 세밀한(fine-grained) 구조를 점차적으로 학습할 수 있게 합니다. 

 

모든 layer는 매 훈련 과정마다 학습 학습가능하므로, 이전에 이미 학습된 정보들이 심하게 왜곡되는 것을 방지하기 위해, smooth하게 학습이 진행되기 위해 아래와 같은 방식을 취합니다. 

가중치인 알파 값을 도입하여 중간에 존재하는 고해상도의 층을 일종에 residual block으로 활용합니다. 무슨 말이냐 하면, 이전 정보를 최대한 보존할 수 있게 처리할 수 있게 upsampling된 이미지를 고해상도 층에 집어넣은 것과 아닌 것(residual input)으로 분리하여 해상도가 늘어나는 것이 smooth하게 일어나게 해줍니다. 즉, 해상도가 바뀌는 과정에서 두 해상도 간의 일종의 interpolation을 진행하는 것으로 이해할 수 있습니다.

 

이 때 toRGB와 fromRGB는 1x1 convolution으로 단순히 RGB로 채널을 바꾸거나, RGB에서 다른 channel로 바꾸는 블록입니다. 

 

또한 훈련 과정에서 variation을 늘리기 위해 논문에서는 minibatch의 표준편차를 이용할 것을 제안합니다.

미니 배치마다의 각 channel에 대한 각 feature들의 표준편차를 구하고, 이를 평균한 값을 얻어냅니다. 

이를 모든 채널에 대하여 concate하여(feature map을 하나 더 만들어줌) discriminator에 넣어줍니다. 이를 통해 discriminator는 minibatch들의 평균적인 statistics 정보를 알 수 있게 되고, 

각 minibatch에서 만들어지는 생성 이미지의 데이터 분포가 그 미니 배치의 데이터 분포와 유사한 통계적 특성(stastics)을 갖을 수 있게 만들어줍니다. 

 

또한 PGGAN은 여러 해상도의 layer를 점진적으로 사용하기 때문에 훈련 속도도 빠릅니다.

저 해상도에서 굉장히 빠르고 안정적인 학습을 진행하기 때문에, 고해상도를 동시에 진행하는 것보다 convergence가 더 빠르고 안정적으로 이루어지게 됩니다. 

 

PGGAN은 아래와 같이 고해상도의 이미지들을 만들어 낼 수 있습니다.

 

이전 논문들은 1024x1024 이미지를 생성하는 것에 어려움을 겪었다는 것을 생각해보면 놀라운 결과입니다.

 

물론 실제와 비슷한 수준의 이미지(photo-realstic)를 만들어내는 것은 아직 힘들고, 생성된 이미지의 미세 구조나 공간적 정보에 대해서는 부족한 점이 많습니다. 이러한 한계점에도 불구하고, 고해상도의 이미지를 만들어낼 수 있는 가능성을 알아냈다는 점과, 고해상도의 데이터셋을 만들었다는 점, 마지막으로 여러 평가 방식을 도입했다는 점에서 PGGAN의 연구 가치는 굉장히 높다고 볼 수 있습니다.