링크: https://arxiv.org/pdf/1710.10196.pdf
저널|학회: ICLR 2018
연구목적: 고해상도 이미지 생성, 안정적 학습
연구방법: 저해상도의 레이어부터 점진적으로 쌓아 고해상도 생성
데이터셋: CELEB A HQ
주요결과: high resolution, x2–6 Faster converge,CelebA HQ 데이터셋 제시
저자: Tero Karras et al.
1. Introduction
이 연구는 proGAN혹은 PG-GAN으로 더 잘 알려져 있습니다.
GAN을 이용하여 고해상도의 이미지를 생성하는 것은 아주 어려운 태스크이다. 고해상도의 이미지를 생성하도록 generator를 학습시키는 경우 학습 이미지의 distribution과 학습 결과 생성된 이미지의 distribution의 차이가 커진다. 또한 고해상도의 이미지는 같은 자원에서 저해상도의 이미지보다 적은 배치사이즈를 가져가게 하는데, 이는 불안정한 학습을 야기한다. 이러한 상황에서 본 논문에서는 generator와 discriminator를 저해상도의 이미지로부터 고해상도의 이미지로까지 layer들을 추가하면서 점진적으로 커지게 한다. 이를 통해 학습 속도를 향상시키고 고해상도에서도 안정적인 학습을 가능하게 한다.
2. Progressive Growing of GANs
GAN을 학습시킬때 저해상도의 이미지부터 고해상도의 이미지까지 점진적으로 레이어를 추가하며 학습해 최종적으로 고해상도까지 도달한다. 저해상도에서는 전체적인(large-scale) 구조를, 고해상도로 갈수록 더 디테일한(finer scale detail) 구조를 학습한다. 이러한 구조는 1) 학습 초기의 더 높은 안정성 2) 훨씬 단순한 질문을 지속적으로 제시 3) 훈련시간 감소의 이점을 가진다. 그 이유는 다음과 같다.
- 학습 초기의 더 높은 안정성
- 초기에는 클래스 정보가 적고 모드(mode)가 적기 때문에 작은 이미지를 생성하는 것이 훨씬 더 안정적이다.
- 훨씬 단순한 질문을 지속적으로 제시
- 해상도를 조금씩 높임으로써 예를 들어 잠재 벡터에서 높은 해상도의 이미지로의 매핑을 발견하는 최종 목표와 비교해 훨씬 간단한 질문을 제시한다.
- 훈련시간 감소
- 대부분의 반복 작업이 낮은 해상도에서 수행되며 점진적으로 세밀한 디테일로 초점을 옮기기 때문에, 종종 최종 출력 해상도에 따라 2~6배 더 빠른 속도로 비슷한 결과 품질을 얻을 수 있다.
Doubling the resolution of the G
G와 D의 해상도를 증가시키는 과정에서 잘 학습된 레이어에 새로운 레이어가 추가되면서 갑작스러운 변화로 인해 충격이 생겨 이전 layer까지 안좋은 영향을 줄 수 있기 때문에 부드럽게 레이어를 추가하는 방법이 필요하다.
새로운 레이어가 부드럽게 추가될 수 있도록 하기 위해 전환 과정에서 위 그림의 (b)가 나타내듯이, Residual Block처럼 구성해 16x16 레이어가 만든 이미지를 2배(D에서는 0.5배)로 키운 것과 interpolate한다. 어느정도 형태를 가진 이미지를 보여주어 저해상도 레이어가 학습된 방향을 잘 유지하면서 새로운 레이어를 추가한다. 합쳐지는 두 이미지에는 α와 1−α가 곱해져 더해지며, 학습이 진행되면서 α가 0에서 부터 1까지 커지면서 이전 layer의 영향을 점차 줄여간다. 이 방법으로 새로운 레이어가 추가되는 과정에서의 충격을 완화할 수 있다.
여기서 fromRGB와 toRGB는 1x1 conv레이어를 이용하여 feature 채널을 RGB 채널로 projection하는 부수적인 layer이다.
이러한 구조는 StyleGAN2 부터는 사용하지 않는다.
Increasing Variation using Minibatch Standard Deviation
GAN은 training data에서 subset of the variation만 포착하는 경향이 있는데, 그 해결책이 Salimans et al.이 제안하는 mini-batch discrimination
이다 PGGAN에서는 모드 붕괴(mode collapse)를 완화하기 위해 mini-batch discrimination
을 사용한다. 이를 통해 feature statistics를 개별 이미지 뿐만이 아니라 mini-batch에서도 계산하여 generated/training image minibatch의 statistics가 비슷하게 가지도록 한다.
- 각 mini-batch의 각 spatial location에서 각각의 feature들의 standard deviation을 계산한다. (Input: NxCxHxW) -> (Output: CxHxW)
- 모든 feature들과 spatial location에 대한 평균을 추정하고 하나의 값으로 표현한다. (Input: CxHxW) -> (Output: 1xHxW)
- 이 값을 복제하여 mini-batch들에 대응하는 모든 spatial location들에 추가적인 constant feature map을 생성한 것을 concat한다.
이 값을 discriminator 어디에나 추가해도 되지만 보통은 맨 뒤에 추가한다
이 방식은 learnable parameter나 새로운 hyperparameter가 필요하지 않다. (단순함)
Normalization in Generator and Discriminator
GAN은 G와 D의 비정상적인(G와 D의 학습속도가 다른) 경쟁에 의해 발생하는 gradient에 취약하다. 기존에는 batch normalization을 추가하는 등의 방법을 사용하였지만, 본 논문에서는 이러한 signal을 직접적으로 규제하는 방법을 제안한다. 그 방법은 아래와 같다.
Equalized Learning
기존의 RMSProp이나 Adam과 같은 adaptive SGD 방식은 scale에 불변한 상태로 추정 표준 편차를 이용하여 gradient를 업데이트하는데, 그 결과 상대적으로 큰 dynamic range를 가지는 일부 파라미터들에 대해 적응하는데 더 많은 시간이 필요하다. 즉, 동일한 dynamic range를 가질 수 있도록 weights를 수정하여 동일한 학습 속도를 보장한다.
모든 weights들이 동일한 dynamic range를 가짐 -> 동일한 learning speed를 보장
Pixelwise Feature Vector Normalization in Generator
G와 D 간의 경쟁으로 두 네트워크의 magnitude가 통제 불능의 상태가 되는 시나리오를 막기 위해 G에서 conv이후에 pixel 마다의 feature vector를 unit length로 normalize한다. 이걸 Local Response Normalization을 통해 하였고, 그 식은 아래와 같다.
: feature map의 개수 : pixel 의 원래 feature vector : normalized된 feature vector
이 방식은 G에 해로워 보이지 않았고, 오히려 효과적으로 signal magnitude 상승을 방지한다.
Multi-scale Statistical Similarity for Assessing GAN Results
GAN을 평가할때 사용되던 MS-SSIM은 큰 규모의 mode collapse는 잘 포착하지만 색상이나 질감의 변화 손실과 같은 더 작은 변화는 잘 포착하지 못한다고 한다. 따라서 본 논문에서는 G는 training set이 모든 scale에서 유사한 샘플을 생성해야한다는 영감하에 Laplacian pyramid로 부터 뽑힌 local image patch 분포들 간의 멀티 스케일 통계적 유사성을 고려하는 연구 방법을 제안한다.
- Training set과 Generated set으로 부터 각각 local image patch를 얻는다.
- 각 색 채널별 평균과 표준편차로 normalize한다.
- 이후 sliced Wasserstein distance(SWD)를 통해 계산한 통계적 유사성을 추정한다.
작은 Wasserstein distance는 패치들간 유사도가 높다는 것을 의미한다.
Experiments
Importance of Individual Contributions in terms of Statistical Similarity
본 논문에서는 SWD와 MS-SSIM을 성능을 측정하기 위해 사용하였다.
(a)는 (h)보다 더 나쁜 이미지를 생성하고 있지만, MS-SSIM을 사용한 측정 결과 두 이미지 간에 큰 차이가 없었다. 반면에 SWD는 두 이미지 간에 큰 차이를 보여주었다. 이는 SWD가 MS-SSIM과 달리 색상, 질감, 시점 등의 다양성을 잘 포착하고 있음을 나타낸다.
고해상도 이미지를 처리하기 위해 (c)에서는 배치 크기를 64에서 16으로 줄였다. 그 결과 생성된 이미지가 매우 불안정해졌으나, (d)에서 BatchNorm이나 LinearNorm을 제거하는 등 훈련 매개변수를 수정한 후에는 학습이 안정적으로 진행되었다. (e*)에서는 Salimans et al.의 미니배치 차별화를 적용했으나 성능 향상은 보이지 않았고, (e)에서는 본 논문의 미니배치 표준 편차를 적용하자 SWD에서 성능이 향상되었다. (f), (g)에서도 성능 향상이 나타났다. 마지막으로 (h)에서는 학습을 충분히 시켜 결과를 수렴시켰다.
Convergence and Training Speed
위 그림(a)와 (b)는 훈련 시간(가로 축)과 SWD의 수치 (세로 축), 그림 (c)는 훈련 시간(가로 축)과 Discriminator에게 보여준 진짜 이미지의 숫자(세로 축)이다. (a)는 Gulrajani et al. (2017)의 학습 구성에서의 결과이다. 그러나 (a)는 단계적으로 학습 (층을 서서히 추가시켜가며 학습)의 네트워크가 아니며 (제일 처음부터 모든 층을 네트워크에 넣어 둔 것), (b)는 점진적 학습 (층을 서서히 추가시켜 학습)의 네트워크이다.
점진적인 학습은 2개의 메리트가 있다.
- 매우 우수한 최적치에 수렴한다.
- 학습 수렴 시간을 획기적으로 줄였다.
CelebA-HQ
본 연구에서 고해상도의 이미지 출력의 의미있는 평가를 위해 CELEBA-HQ라는 데이터셋을 생성하여 제시하였다. 이는 1024x1024 해상도의 30,000장의 이미지를 포함하고 있다.