본문 바로가기
  • 책상 밖 세상을 경험할 수 있는 Playground를 제공하고, 수동적 학습에서 창조의 삶으로의 전환을 위한 새로운 라이프 스타일을 제시합니다.
Computer Vision

[2025-1] 김유현 - Progressive Growing of GAN

by rdg126 2025. 5. 17.

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

 

0. Abstract

논문에서는 Prgressive Growing - 점진적 성장 기법을 제안하여, 학습을 낮은 해상도에서 시작해 점차 해상도를 높이는 새로운 GAN 학습 방법을 제안한다. Generator와 Discriminator를 단계별로 확장하면서 학습 속도가 빨라지고 안정성이 크게 향상되어, 예시로 든 1024x1024 해상도의 CelebA 데이터셋을 고품질로 생성 가능했다. 생성된 이미지의 다양성도 늘리는 방식도 있었으며 이를 통해 unsupervised CIFAR10에서 Inception Score 8.80을 달성했다. 

 

1. Introduction

현재 이미지, 음성, 번역, 복원 등에서 Autogressive 모델, VAE, GAN이 사용되고 있다. Autogressive 모델은 선명한 결과를 보이지만 느리고 latent space가 없다는 단점이 있다. VAE는 학습이 쉽고 latent space가 있지만, 결과물이 흐릿하다는 단점이 잇다. 기존 GAN은 선명한 이미지를 생성할 수 있지만 저해상도에 국한되고, 생성 다양성이 부족하고 학습이 불안정하다는 문제가 있다. 즉, 해상도가 높아질수록 실제 이미지와 구별하기 쉬워져 gradient vanishing/exploding 문제가 심화되었고 mini-batch 크기가 작아지면 더 불안정해졌다. 

논문에서는 Progressive Growing을 제안한다. 이는 낮은 해상도에서 시작해 학습 중간에 점차 해상도를 높이는 방식으로서 Generator와 Discriminator에 점진적으로 layer를 추가해 고해상도 디테일을 학습한다. 이를 통해 학습 속도와 안정성을 개선하여 최대 1024x1024 해상도의 얼굴 이미지 생성이 가능하다. 

추가적으로 논문에서는 생성 다양성을 높이기 위한 간단한 기법을 제안하고 이미지 품질과 다양성을 동시에 측정하는 새로운 평가 지표를 제안한다. CelebA, LSUN, CIFAR10 데이터셋에서 최고 성능의 Inception Score를 달성했고, CelebA 고해상도용 개선 데이터셋인 CelebA-HQ를 구축했다. 

 

2. Progressive Growing of GANs

논문에서는 학습은 Generaotr와 Discriminator를 4x4 픽셀 같은 아주 낮은 해상도로 두고 학습을 시작한다. 위의 그림과 같이 학습이 진행되면서 Generator와 Discriminator를 동기화하여 새로운 convolution, upsampling(downsampling) layer를 차례로 추가해 해상도를 8x8, 16x16, ..., 1024x1024까지 점진적으로 높인다.

이를 통해 image distribution에서 큰 구조의 특징들을 우선 학습하고 세밀한 특징을 이어서 학습하게 되어 학습 안정성이 올라간다. 오른쪽 예시 이미지는 1024x1024 해상도로 progressive growing이 끝난 시점에 생성된 얼굴 이미지이며 자연스럽고 세부적인 특징 묘사가 잘 된 결과물을 보여준다. 

 

  • (a): 해상도 전환 전 Generator와 Discriminator에 toRGB 및 fromRGB layer만 연결된 상태
  • (b): Transition 단계
    • 해상도를 높이는 새로운 layer - 2x upsamling, 32x32를 점진적으로 α 비율(0->1)로 fade in -> 기존 출력과 새로운 layer가 부드럽게 섞어 파라미터 쇼크를 방지
    • Discriminator도 새로운 fromRGB, pooling - 0.5x layer를 α 비율로 섞음
    • 새로운 layer를 추가해도 기존에 훈련된 낮은 해상도의 layer들은 그대로 fine-tuning 되며 계속 학습에 참여
  • (c): 전환 완료 후
    • 모든 layer가 32x32로 새롭게 변경된 상태
더보기

toRGB / fromRGB

  • 1x1 convolution으로 feature map을 RGB 픽셀값으로 변환

 

3. Increasing Variation Using Minibatch Standard Deviation

현재 일반적인 GAN은 훈련 데이터가 가진 다양한 변화를 파악하지 못하고 일부 모드만 학습하는 mode collapse 현상이 발생한다. Minibatch discrimination은 batch 단위 통계를 이용해 이를 완화하지만, 구현이 복잡하고 추가적인 parameter가 필요하다. 

ProGAN에서는 추가적인 parameter와 hyperparameter 없이 학습을 진행하여 생성 이미지의 다양성을 크게 향상시킨다. 

<과정>

1) 배치 내 각 feature와 각 위치별 표준편차를 계산

2) 모든 feature와 위치에서 구한 표준편차를 평균하여 하나의 scalar 값을 획득

3) Scalar 값을 복제해 모든 픽셀 위치에 동일하게 붙인 하나의 추가 feature map을 생성

4) Discriminator의 마지막에 이 map을 concatenate

이를 통해 배치 단위에 얼마나 다양한 변화가 있는지를 확인할 수 있는 정보를 네트워크 내부에서 활용하도록 한다. 논문에서는 다른 복합 통계도 시도했으나, 간단한 표준편차만으로도 충분한 효과를 확인할 수 있다고 한다. 

 

4. Normalization In Generator and Discriminator

GAN 학습에서는 Generator와 Discriminator 간의 경쟁이 심화되며 내부 신호 크기 - signal magnitude가 폭주하거나 소실하는 문제가 발생한다. 이를 막기 위해 논문에서는 parameter 학습 없는 ProGAN을 도입한다. 

 

A. Equalized Learning Rate

ProGAN은 높은 해상도의 이미지를 생성해야하기 때문에 작은 사이즈의 batch를 사용하게 되기에 initilization이 중요하다. 논문에서는 모든 layer의 학습 속도가 같도록 equalized learning rate의 방식을 사용한다. Gradient의 학습 속도가 parameter와 무관하도록 standard deviation으로 gradient를 normalize하는 방식을 사용한다. 

  • 가중치 초기화를 He 초기화 공식 대신 표준 정규분포 $N(0, 1)$로 설정
  • 실행 시점에 각 layer별 정규화 상수 $c$로 나누어 스케일을 맞춤
  • RMSProp, Adam 같은 적응형 optimizer가 모든 parameter를 동일한 범위로 판단해 균일한 속도로 갱신한다. 

 

B. Pixelwise Feature Normalization

  • Generator의 각 convolution layer 후에 각 픽셀$(x, y)$ 위치의 특징 벡터 $a_{x, y}$를 길이 위의 식처럼 정규화
  • Local response normalization의 변형으로 구현 - AlexNet
  • 이를 통해 Generator 내부 신호가 지나치게 커지거나 작아지지 않도록 제어해 과도한 경쟁으로 인한 불안정화를 차단할 수 있다. 

 

5. Multi-Scale Statistical Similarity

ProGAN에서는 GAN의 결과를 확인하는 자동화된 정량 지표를 제시한다. 

  • Laplacian Pyramid
    • 생성 이미지와 실제 이미지를 모두 16x16 low-pass에서 시작해서 해상도를 2배씩 올리며 여러 band의 차이를 계산 - 피라미드 각 레벨
  • Patch sampling & Normalization
    • 각 레벨에서 랜덤으로 16,384장 이미지를 골라, 각 이미지당 128개의 descriptor를 추출하여 layer마다 총 2.1M의 descripor를 생성
    • 각 descriptor는 7x7에 RGB 3 채널로 이루어져 있어 총 dimension이 147이다. 
    • 색상 채널별로 평균, 표준편차 정규화
  • Sliced Wasserstein Distance - SWD
    • 두 패치 분포 간의 유사도를 Earth Mover's Distance 근사 기법인 SWD로 계산
    • SWD가 적게 나오면 두 패치의 distribution이 비슷, 해당 resolution에서 appearance와 variation 두 측면에서 모두 비슷
    • 512개의 random projection을 사용해 효율적으로 추정
  • 결과 해석
    • 낮은 레벨 - 16x16 SWD: 큰 구조 - 얼굴 윤곽, 구도 등의 유사도를 나타냄
    • 높은 레벨 - 256x256, 512x512 SWD: 세부 표현 유사도를 나타냄
    • 위 지표를 통해 이미지 품질과 다양성을 동시에 다중 해상도에서 정량적으로 평가할 수 있다. 

 

6. Experiments

A. Importance of Individual Contributions in terms of Statistical Similarity

논문에서는 SWD와 MS-SSIM을 각각의 contribution의 성능을 측정하기 위해 사용한다. Baseline은 WGAN-GP를 적용한 training configuration이다. 

더보기

SWD: 생성 분포와 실제 분포 간 패치 단위 통계 유사도 측정 - Laplacian 피라미드 각 레벨별

MS-SSIM: 생성 이미지 간 구조적 다양성

 

  • (a): (h)보다 더 좋지 않은 이미지를 생성
  • (b): Progressive growing -> SWD 대폭 개선
  • (c): 고해상도 이미지를 다루기 위해서 배치를 64에서 16으로 줄임 -> 생성 결과가 매우 불안정
  • (d): BatchNorm이나 LinearNorm을 제거 & training parameter를 수정 -> 학습이 안정적으로 진행
  • (e*): Salimans et al.의 minibatch discrimination을 적용 -> 성능 향상 X
  • (e): 논문의 minibatch standard deviation을 적용 -> SWD 성능 향상 O
  • (f): 모든 weight이 동일한 dynamic range를 가짐으로써 동일한 learning speed를 가질 수 있도록 보장
  • (g): Local Response Normalization -> GAN에서 Signal magnitude가 상승하는 것을 방지 
  • (h): 학습을 충분히 시켜 수렴시킨 결과

Equalized LR + Pixel-wise Norm 추가로 SWD 최저치를 달성한다. MS-SSIM은 이미지의 다양한 정도만을 측정하고 SWD는 MS-SSIM과는 달리 color, texture, viewpoints등의 variation을 잘 확인하고 있다. 

 

B. Convergence and Training speed

  • (a) vs (b)
    • Progressive growing을 통해 학습 초반에 더 빠르게 SWD 최적치에 도달
    • 각 해상도 단계별로 큰 스케일에서 작은 스케일 순으로 안정적 수렴
    • 전체 학습 시간이 2배 정도 학습 시간이 단축
  • (c)
    • 해상도가 증가하면서 progressive growing의 방식이 더 빨라지는 것을 보여줌

 

C. CelebA-HQ

 

  • 자체 제작한 CelebA-HQ 데이터셋 사용 - 1024x1024 고해상도
  • Progressive GAN + WGAN-GP로 mega pixel급 얼굴 합성
  • LSGAN loss로도 유사한 고해상도 합성 가능
  • 결과: 8 GPU - 4일만에 수렴 -> 자연스러움, 세부 묘사 모두 우수

 

D. LSUN Results

  • 30개의 LSUN 카테고리
  • 256x256 해상도
  • 모든 카테고리에서 높은 시각적 품질 달성
  • 기존 DCGAN, WGAN-GP 대비 결과 우위

 

E. CIFAR-10 Inception Score

  • Unsupervised: 7.86 -> 8.80
  • Label-conditioned: 8.87 부근 동등 수준
  • ProGAN이 정량적으로도 제일 우수함

 

7. Discussions

Progressive GAN은 기존 GAN 대비 고해상도까지 안정적으로 학습하고 합성이 가능하다. 하지만 아직 사물이 곡선이 아닌 직선이어야한다는 데이터 셋의 특성을 반영하기 어려운 등 semantic한 이해는 부족하다. 또한 이미지의 세부 스타일에 더 정교한 합성이 요구되기에 미세 구조 개선이 필요하다. 논문에서는 semantic 제약과 데이터셋 별 규칙을 모델이 학습하도록 제안했고 세부 구조 개선을 살리는 네트워크와 손실 설계가 필요하다고 주장한다. 

 

더보기

8. Appendix

A. Network Structure and Training Configuration

1) 1024x1024 Networks used for CelebA-HQ

  • Generator, Discriminator: 모두 4x4 해상도에서 시작해 3-level block을 순차적으로 추가
  • Generator: Pixel-wise 정규화, Discriminator: Minibatch stddev, Equalized LR 적용
  • Adam(α=0.001, β₁=0, β₂=0.99), ncritic=1, WGAN-GP + ε₍drift₎=0.001 penalty
  • 해상도별로 minibatch 크기 조절 
  • Fade-in/Stable phase 각 800k 이미지씩 반복

 

2) Other Networks

  • 낮은 해상도에는 block 수 감소
  • 해상도별 학습량: fade-in + 안정화 각각 60만 장
  • Progressive-stddev-weight-scale 비활성
  • Generator: ReLU + BatchNorm + Tanh 출력, Discriminator: LayerNorm 추가, latent 128차원, He 초기화

 

B. Least-Squares GAN (LSGAN) at 1024x1024

  • LSGAN은 WGAN-GP보다 불안정해 Discriminator 과잉 학습 -> 신호가 폭주
  • 해결을 위해 출력 의존적 Gaussian noise 추가 

 

C. CelebA-HQ 데이터셋 생성

  • 원본 CelebA in-the-wild 이미지 202k장 추출
  • JPEG 제거 Autoencoder + 4x 초해상 네트워크로 화질 향상
  • Mirror padding + Gaussian blur로 배경 확장
  • 얼굴 랜드마크 기반 회전 & 크롭(눈, 입 위치 공식) -> 4096x4096로 리사이즈 -> 1024x1024로 downsample
  • 주파수 스펙트럼 품질 지표로 상위 30k장 선별

 

D. CIFAR-10 결과

  • Unsupervised: 8.80±0.05, 10회 반복 평균 8.56±0.06 -> 종전 7.86(WGAN-GP) -> 2배 이상 ghost 감소
  • Label-conditioned: 8.87

 

E. MNIST-1K 모드 테스트

  • Metz et al. 설정 재현
  • 기존 GAN vs WGAN-GP vs ProGAN 기법
    • Modes covered: K/4 -> 30 -> 372 -> 640 -> 857 -> 881, K/2 -> 628 -> 817 -> 772 -> 887 -> 919
    • KL Divergence: 6.0 -> 4.7 -> 2.0 -> 1.1 -> 0.9 (K/4), 2.6 -> 1.4 -> 1.4 -> 1.0 -> 0.8 (K/2)

 

F. 추가 CelebA-HQ 결과

  • Nearest-Neighbor: 생성물 근방의 실제 데이터 예시
  • 추가 샘플: SWD & FID(50K) 제시

 

G. LSUN 30개 카테고리 결과

  • 각 카테고리 별 256x256 예시 + SWD & FID 리포트
  • Bedroom/Dog(전체 데이터), 나머지 100k 증강 학습

 

Reference


https://jjuon.tistory.com/41

 

[DL - 논문 리뷰] Progressive Growing of GANs for Improved Quality, Stability, and Variation (PGGAN)

이번 포스팅에서는 Tero Karras et al.이 ICLR 2018에서 발표한 "Progressive Growing of GANs for Improved Quality, Stability, and Variation"을 읽고 리뷰해보도록 하겠습니다. PGGAN은 현재 GAN 분야에서 sota를 달성하고 있

jjuon.tistory.com

https://happy-jihye.github.io/gan/gan-5/

 

[Paper Review] PGGAN : Progressive Growing of GANs for Improved Quality, Stability, and Variation 논문 분석

layer를 점진적으로 쌓아 고해상도의 이미지를 생성한 NVIDIA의 PGGAN(Progressive Growing of GANs) model에 대해 알아본다.

happy-jihye.github.io

https://myownproject.tistory.com/12

 

6장. ProGAN

ProGAN은 풀 HD 화질로 실제 사진같은 이미지를 생성하는 최신 GAN 기법이다.   ProGAN의 핵심 요소들은 다음과 같다.고해상도 층으로 점진적 증가와 단계적 도입미니배치 표준편차균등 학습률픽셀

myownproject.tistory.com

https://aigong.tistory.com/65

 

PGGAN(PGAN, ProGAN)논문 Full Reading - Progressive Growing of GANs For Imporved Quality, Stability and Variation

저자 : Tero Karras(NVIDIA), Timo Aila(NVIDIA), Samuli Laine(NVIDIA), Jaakko Lehtinen(NVIDIA and Aalto University) 2020.06.27 기준 Citation : 1819회 (Google Scholar 참조) 2017년 10월에 처음 제출되었고 2018년 ICLR에 제출된 논문입니

aigong.tistory.com