논문리뷰/Generative model

Progressive GAN (PGGAN)

AI쟁이J 2023. 4. 28. 01:17

Abstract

 

기존의 GAN 모델에서 generator, discriminator를 점진적으로 학습시키는 방법론을 제안했다고 한다. 이 방법은 저화질의 데이터에서 고화질의 데이터로 해상도를 점진적으로 늘렸다고 한다.

이렇게 됨으로서 generator와 discriminator 사이의 unhealthy한 경쟁을 줄임으로서 학습이 잘 되게 만들고, GAN으로 생성된 이미지가 더 좋은 화질의 결과를 만들 수 있게 했다고 한다.

 

Introduction

Introduction에서는 기존 생성 모델에 대한 한계점을 나열했다.

 

Autoregressive model -PixelCNN의 경우 선명한 이미지를 생성하지만 지나치게 이 과정이 느리고, VAE의 경우 학습이 쉽지만 모델에 있는 제약 때문에 blur가 많은 이미지를 생성한다. GAN의 경우는 선명한 이미지를 생성하지만 이 해상도가 너무 낮고, 표현이 제한되어 있다. 이후 GAN에서의 한계점에 대해 더 설명한다.

 

 

GAN의 generator와 discriminator이 경쟁하는 관계에서 고해상도로 갈수록 generator의 가짜 이미지를 알아내기가 쉬워지기 때문에 학습 불안정성이 생긴다고 말한다.

 

따라서 이를 해결하기 위해 discriminator와 generator 모두에서 점진적으로 학습을 진행하는 과정을 제안하고, 학습 과정에서 higher-resolution details를 만드는 layer를 추가했다고 한다.

 

전반적으로 Introduction에서는 기존 생성 모델들의 한계와 이 논문에서 기존 GAN 모델을 중점으로 이 한계를 극복하는 방안에 대해 설명한다.

 

Progressive growing of GANs

논문에서는 먼저 낮은 해상도의 이미지를 만든 후, 그것이 완료되길 기다리며 좀 더 높은 해상도의 이미지를 만들도록 훈련하는 과정을 설명한다.

 

 

위 그림의 G와 D는 mirror image처럼 위 아래로 같은 구조로 이루어져 있으며, 동시에 같이 성장할 수 있다.

이후 Training progresses가 진행되며 4x4의 저해상도 이미지로 윤곽만 있는 정도의 이미지에서 8x8, 16x16, 점점 늘어나다 마지막엔 1024x1024의 고해상도 이미지를 학습한다.

(이는 마치 CNN의 구조에서 낮은 layer 층에서는 이미지에 대한 방향 벡터 등 대략의 윤곽을 학습하고, layer가 깊어지며 점점 이미지에 대한 디테일을 학습하는 과정과 비슷해 보인다.)

이 과정을 통해 학습 시간 역시 줄일 수 있으며 이는 마지막 해상도의 이미지 기준으로 기존의 GAN보다 2-6배이상 빠른 속도를 보였다고 한다.

 

Increasing variation using minibatch std

새로운 레이어가 추가되는 과정에서 smooth하게 사용하는 fade in에 대해 알아보자.

 

16x16 해상도의 RGB이미지의 예시에서 다음 단계인 32x32 이미지를 학습 시키려고 하면  아직 전혀 학습이 되지 않은 32x32 레이어의 간섭으로 이미 학습이 된 저해상도 레이어에 영향이 갈 수 있다.

따라서 레이어를 smooth하게 넣을 방법이 필요한데, 이전 이미지의 학습 결과를 사용하는 것이다.

(b)의 그림처럼 16x16에서 만들어낸 이미지의 크기를 2배로 만든다. 해상도는 그대로, 크기만 32x32로 늘어난 이미지가 나오는데 이를 잘 학습된 저해상 이미지와 합친다. 이 때 픽셀 값에서 0~1 사이의 \(\alpha\)를 곱하고, 저해상도에는 그 나머지인 \(1-\alpha\)를 곱해서 서로 더해 두 이미지를 잘 섞는다.

이를 train 과정이 지나면서 계속해서 Discriminator에서도 비슷한 방식으로 진행한다. 이 때 이전 레이어가 미치는 영향은 \(\alpha\)값이 시간이 갈수록 줄어들며 이전 레이어의 영향도 점점 줄어들게 된다.

이런 방식을 통해 저해상도 레이어에서 학습된 방향을 이상하게 만들지 않고 새로 추가된 레이어를 학습할 수 있다.

 

Normalization in Generator & Discriminator

 

GAN에서 D와 G사이의 unhealty한 경쟁을 완화하기 위해서, 두 클래스 모두에 batch normalization을 적용한다.

이 과정을 통해 공변량 변화를 제거할 수 있다. 공변량 변화란, 공변량(covariates)(학습 데이터)의 분포가 테스트 데이터의 분포가 다른 상황을 의미한다.

 

Equalized learning rate

 

논문에서는 기존 방식과 달리 weight의 초기화는 N(0,1)로 하며, runtime 중에 동적으로 weight parameter의 스케일을 조절하자고 제안한다. 또한 per-layer normalization constant로 가중치 parameter를 나누어준다.

 

 

이러한 방법을 통해 모든 parameter가 같은 dynamic range를 가지며, 학습 속도를 보장할 수 있게 된다.

 

Pixelwise feature vector normalization in generator

 

G와 D의 magnitude가 두 경쟁 사이에서 통제 불능이 되는 것을 막기 위해서 각 convolutional layter의 feature layer에서 pixel 단위로 정규화를 해준다. 이 식은 논문에 나온 것처럼 다음과 같으며 epsilon은 10^ -8 이다.

이 방법론이 결과물에 큰 영향을 준 것은 아니지만 필요한 경우 signal magnitudes의 증가를 막아주었다.

 

Multi-scale statistical similarity for assessing GAN results

 

서로 다른 GAN 간의 성능을 비교하기 위해서 많은 수의 이미지에 대한 평가가 필요하기에, 자동화된 성능 평가 방법이 있다면 좋다.

MS-SSIM을 통한 방법은 large-scale mode collapse는 잘 잡아내지만, 색이나 질감에 의한 작은 loss에 반응하기는 힘들다. 

 

 

따라서 잘 학습된 generator가 생성한 이미지는 모든 스케일에서 training set과 유사한 local image structure를 가질 것이라는 사실을 전제로, training set과 generated samples에서 Laplacian pyramide를 통해 sliced Wasserstein distance를 사용하여 둘 사이의 유사도를 평가하는 방법으로 성능을 비교했다.

 

Experiments

CelebA-HQ dataset을 통해 1024x1024의 고해상도 이미지를 생성하는 것에 성공함.

 

LSUN Bedroom에 대해서도 다른 모델보다 높은 해상도의 256x256 이미지를 생성함.

또한 학습 시간 역시 non-progressive에 비해 5.4배의 빠른 속도를 보였다고 함.

 

 

 

 

 

 

 

Reference

https://arxiv.org/abs/1710.10196

 

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

https://wiserloner.tistory.com/1196

 

PGGAN 개인정리(논문 리뷰 Progressive Growing of GANs for Improved Quality, Stability, an

- 논문은 제목에 나온 Progressive Growing of GANs for Improved Quality, Stability, and Variation를 리뷰합니다.GAN 모델 중에서도 유명한 논문이죠.- 제 정리글은 핵심만 간단히 정리할 것입니다.한국어로 정말 잘

wiserloner.tistory.com