SlideShare a Scribd company logo
1 of 39
PGGAN
논문 리뷰
모두의 연구소 GAN찮아 3기
김태엽
Karras, Tero
Aila,Timo
Laine, Samuli
Lehtinen, Jaakko
Contents
3. NetworksforcelebA-HQ
3-1.NetworksStructure
3-2.TrainingConfiguration
6.References
2. Contributions
1-2.Introduction
1.Introduction
1-1.Overview
2-1.ProgressiveGrowingofGANs
2-2.IncreasingVariationusingMinibatchStandardDeviation
2-3.NormalizationinGeneratorandDiscriminator
2-4.EqualizedLearningRate
4. NewMetricforAssessingResults
4-1.Backgrounds
4-2.TheNewMetric
5.Experiments
5-1.ImportanceofIndividualContributions
5-2.ConvergenceandTrainingSpeed
5-3.High-resolutionImageGenerationusingCelebA-HQ
5-4.LSUNresults
5-5.CIFAR10InceptionScores
2-3.PixelwiseFeatureVectorNormalizationInGenerator
6-1.References
1.Introduction
1. Overview
 논문에서 제안한 것들
1. Progressive Growing of GANs : A new training methodology for GAN
Grows both generator and discriminator progressively
2. Minibatch Standard Deviation : Improve variation in generated images
Discourage generator from producing too homogeneous results
3. Normalization : Discourage unhealthy competition between two networks
3-1. Equalized Learning Rate : Make layers learn at same pace
3-2. Pixelwise Feature Vector Normalization : Avoid mode collapse
4. A new metric for evaluating GAN results : both in terms of image quality
and variation
1.Introduction
1. Introduction
•Sharp한 이미지를 만들 수 있다
•Evaluate하는 것이 느림
•Latent space가 없다
•픽셀에 대한 조건부 모델링
Autoregressive
•훈련이 쉽다
•모델의 한계로 Blurry한 이미지를 만듬
•최근에 향상시키는 연구가 많이 나옴
VAE
•Sharp한 이미지를 만듬
•Variation이 낮은 해상도로 제한됨
•학습과정이 Unstable함
GAN
• 가장저명한GenerativeModel3가지
• 각각은명확한장단점을지니고있음
1.Introduction
1. Introduction
•고해상도 이미지의 생성은 구별이 쉽기 때문에 생성하기 힘들다
•메모리 제약 조건때문에 minibatch를 줄여야 하고 training이 불안정해진다
•다채로운 이미지(variation)을 만들지 못함
Problem
•Generator와 Discriminator를 점진적으로 키운다
•mode collapse를 방지하고 variation을 키우는 몇가지 tweak을 사용
•variation과 이미지 퀄리티를 평가하는 metric을 이용한다
Approach
•training 속도를 향상시키고 높은 해상도에서 안정성을 향상시킴
•1024 x 1024의 고해상도의 이미지를 생성할 수 있음
•unsupervised CIFAR10에서 inception score 8.80을 기록함
Benefits
1. Progressive Growing of GANs
2.Contributions
• 저해상도에서시작해서점진적으로네트워크에레이어를더해서해상도를높인다
• 이미지분포에서large-scale(전반적인얼굴형태)구조를먼저발견하게끔해준다
• 해상도를높일수록세부적인scale의디테일로관심을옮기게끔한다
• 모든scale을동시에학습하는것이아니다
1. Progressive Growing of GANs
2.Contributions
• 레이어를더할때에는smooth하게fade시키는transition을두도록한다
• 이미학습된이전단계의레이어에suddenshock을방지
• alpha값은linearly하게0에서1로증가시킴
• toRGB는featurevector를RGBcolors로만들고fromRGB는RGBcolors를featurevector로변환
1. Progressive Growing of GANs
2.Contributions
 Generator → Discriminator
1. Progressive Growing of GANs
2.Contributions
 Discriminator를 학습시킬 때 네트워크의 현재 해상도에 맞춰서 real images
를 downscale하여서 넣도록 한다.
 Resolution transition을 하는 중에는 real images의 두 해상도 사이를 선형보
간(interpolation)을 한다
1. Progressive Growing of GANs
2.Contributions
장점1. 안정적인 훈련
• 저해상도에선 class 정보가 적고 mode가 적기 때문에 이미지 생성이 훨씬 안정적이다.
• latent vector를 직접 1024 x 1024에 바로 mapping시키는 방법과 비교했을 때 훨씬 더
간단한 질문을 요구하면서 해상도를 증가시킴
장점2. 학습 시간의 단축
• 학습 시간이 줄어들었고 비슷한 결과의 퀄리티를 얻는데 2-6배 빨리 얻을 수 있었다.
효과
2. Minibatch Standard Deviation
2.Contributions
 GAN에서 training data에서 부분적인 variation만 캡쳐하는 경향이 있음
→ Mode Collapse
 이를 해결하기 위한 방안으로 Minibatch Discrimination이 제시되었음
 Discriminator 끝 단에 Minibatch layer를 더하여 minibatch에 있는 이미지
들의 feature statistics를 계산함
2. Minibatch Standard Deviation
2.Contributions
 Minibatch Standard Deviation은 Minibatch Discrimination을 단순화한 방법
→ 추가적인 parameter 학습/새로운 hyperparameter가 필요 없음
 먼저 전체 minibatch에 대해 각 feature의 spatial location에서의 표준편차를
구한다
 이 계산한 값을 spatial location에서 모든 feature에 대한 평균을 내고 하나의
값으로 만든 뒤 concat한다
2. Minibatch Standard Deviation
2.Contributions
 이 레이어를 어느 위치에나 들어갈 수 있으나 끝단 방향에 두는 게 가장 좋
은 성능을 보였다
 다른 통계량을 실험하였지만 더 이상 variation을 향상시키지 못하였다
3. Normalization in Generator and Discriminator
2.Contributions
 두 네트워크 사이의 불건전한 경쟁으로부터 escalation of signal magnitude
가 일어나기 쉬운 경향이 있음
 이를 억제하기 위해 대부분 연구에선 Batch Normalization이 사용됨
 초기에 covariate shift를 제거하기 위해 도입된 방법임
 실제 GAN에서 필요한 것은 constraining signal magnitude and competition
4. Equalized Learning Rate (Runtime weight scaling)
2.Contributions
 Weights을 그냥 gaussian(0, 1)로 initialization하였음
 대신에 런타임에서 weights를 explicitly scaling 하였음
 c는 He’s initializer에서 나오는 레이어당 normalization constant
 RMSProp과 Adam과 같은 Adaptive stochastic gradient descent은
scale-invariance을 지닌다
 파라미터 scale에 무관하게 gradient를 업데이트하는데 만약 파라미터 마
다 dynamic range가 다르다면 이를 조절하는데 시간이 많이 걸림
4. Equalized Learning Rate (Runtime weight scaling)
2.Contributions
 저자들의 접근법은 모든 weight들에 대해 같은 dynamic range를 갖게 함→ 학습속도는 레이어
의 크기에 무관하게 되었음
5. Pixelwise Feature Vector Normalization
2.Contributions
 Generator와 Discriminator가 경쟁의 결과로 magnitudes가 통제불능이 되는 것
을 방지 해야함
 Generator에서 Conv layer마다 나오는 Feature Vector를 각 픽셀에 대해 단위
길이로 정규화 하였음
 LSN(local Response Normalization)을 변형하여 구현하였음
 𝑎𝑥,𝑦 ∶ originalfeaturevector , 𝑏𝑥,𝑦 ∶ normalizedfeaturevector,n ∶ featuremap갯수
 대부분의 경우 결과물에 변화를 주진 않았지만 escalation of signal
magnitudes를 효과적으로 방지함
4. Pixelwise Feature Vector Normalization
2.Contributions
 Local Response Normalization
4. Pixelwise Feature Vector Normalization
2.Contributions
5. Pixelwise Feature Vector Normalization
2.Contributions
 실제 코드에서 활용
1. Networks Structure
3.NetworksforcelebA-HQ
• CelebA-HQ데이터셋을이용한PGGAN의네트워크구조
2. Training Configuration
3.NetworksforcelebA-HQ
 Discriminator에게 800K개의 real image를 보여줄 때까지 4x4 해상도에서 시작
하여 네트워크를 학습함
 두 가지 Phase를 번갈아 가면서 진행함 :
처음에 800K 이미지 동안 3-레이어 블록을 fade시키고 다음 800K 이미지 동안 안정화를 시킴
 real image와 fake image 모두 범위는 [-1, 1]
 Adam optimizer(α = 0.0001, β1=0, β2=0.99, 𝜖 = 10−8)
 4x4에서 128x128까지는 minibatch size=16, 256x256에선 14, 512x512에선 6,
1024x1024에선 3으로 줄여가면서 메모리 부족을 방지
 WGAN-GP loss를 사용했지만 Gulrajani et al과 다르게 미니배치 당 generator
와 discriminator의 최적화를 번갈아 가면서 함 → 𝑛𝑐𝑟𝑖𝑡𝑖𝑐 = 1
 Discriminator loss에 다음과 같은 추가 term을 더하여 discriminator의 출력 값
이 0으로 부터 너무 멀리 떨어지는 것을 방지함
2. Training Configuration
3.NetworksforcelebA-HQ
1. Backgrounds
4.NewMetricforAssessingResults
 서로 다른 GAN 끼리 결과를 비교하기 위해선 일일이 비교하고 방대한 분
량의 이미지를 조사해야 한다 → 이를 위한 자동화 된 Metric 필요
 large-scale mode collapse를 찾아내는 MS-SSIM 과 같은 Metric들이 있음
 하지만 색상이나 텍스처의 다양성과 같은 작은 효과에는 반응하지 않는다
 또한 이미 존재하는 방법들은 training set의 이미지와의 유사도 측면에서
이미지 퀄리티를 평가하는게 아니다
1. Backgrounds
4.NewMetricforAssessingResults
 Generator가 샘플을 제대로 만들어냈다면 모든 scale에 걸쳐서 local image
structure가 training set과 유사해야 한다
 저자들이 제안한 점 : 생성된 이미지와 타겟 이미지의 Laplacian pyramid
representation에서 나온 이미지 조각의 분포 사이의 multi-scale statistical
similarity를 고려하도록 하자!
2. The New Metric
4.NewMetricforAssessingResults
 Laplacian pyramid representation : Gaussian pyramid와 비슷한데 각 피라미
드층은 본래의 이미지와 Gaussian Blur를 거친 이미지의 차이를 저장한다.
 하나의 Laplacian pyramid 층은 특정한 spatial frequency band에 대응된다
2. The New Metric
4.NewMetricforAssessingResults
 랜덤하게 16384(214)개의 이미지를 샘플 후 Laplacian pyramid의 각층에서
128개의 descriptors(feature)를 뽑아냄 → 한 층마다 총 2.1M개(221)의
descriptors를 뽑음
 각각의 descriptor는 7x7 픽셀이고 3개의 color 채널을 지닌다.
2. The New Metric
4.NewMetricforAssessingResults
 {𝑥𝑖
l
} 과 {𝑦𝑖
l
}를 각각의 color channel에 대한 평균과 분산으로 정규화를 한 뒤
에 둘 사이의 sliced Wasserstein distance(SWD)를 계산하였다
 SWD가 작다 → 이미지 조각들의 분포가 유사하다 → 해당 해상도에서
훈련용 이미지와 생성된 이미지의 외관과 다양성이 유사하다
 가장 낮은 해상도 16x16에서 뽑은 이미지 조각 사이의 거리는 large-scale
image structure가 유사함을 의미함
1. Importance of Individual Contributions
5.Experiments
1. Importance of Individual Contributions
5.Experiments
 Gularajani et al.(Baseline) Configuration :
• α = 0.0001, β2 = 0.9, 𝑛𝑐𝑟𝑖𝑡𝑖 𝑐 = 5, 𝑒𝑑𝑟𝑖 𝑓𝑡 = 0
• Minibatch size = 64
• Progressive resolution, minibatch stddev, runtime weight scaling 미사용
• He initializer를 사용
• Generator의 activation을 relu로 바꾸고 마지막은 tanh로 바꿈
• Pixelwise norm 대신 Batch norm을 사용, Discriminator는 Layer normalization을 사용
• Latent vector는 128짜리 Normal distribution에서 샘플
1. Importance of Individual Contributions
5.Experiments
1. Importance of Individual Contributions
5.Experiments
2. Convergence and Training Speed
5.Experiments
3.High-ResolutionImageGenerationUsingCelebA-HQ Dataset
5.Experiments
 기존의 데이터셋이 저해상도라서 1024x1024 해상도의 30K개의 High
Quality 데이터셋을 만듬
 4일동안 8개의 Tesla V100 GPUs를 사용하여 학습시킴
3.High-ResolutionImageGenerationUsingCelebA-HQ Dataset
5.Experiments
 생성된 이미지에 대응되는 Nearest neighbors in training set
4. LSUN Results
5.Experiments
4. LSUN Results
5.Experiments
5. CIFAR10 Inception Scores
5.Experiments
 Unsupervised Setting에서 CIFAR10 Inception score를 8.80을 찍음
 CIFAR 10은 10가지 카테고리의 32x32 RGB 이미지
 네트워크와 training setup은 celebA때와 똑같고 progression만 32x32로 제한
6.ConclusionandReferences
• https://users.aalto.fi/~laines9/publications/karras2018iclr_poster.pdf
• Laplacian Pyramid,
http://sepwww.stanford.edu/data/media/public/sep/morgan/texturematch/
paper_html/node3.html
• Laplacian Pyramid, https://en.wikipedia.org/wiki/Pyramid_(image_processing)
• He initializer, http://andyljones.tumblr.com/post/110998971763/an-
explanation-of-xavier-initialization
• He initializer, https://arxiv.org/pdf/1502.01852v1.pdf
• [요약] PGGAN, https://curt-park.github.io/2018-05-09/pggan/
• 2018 ICLR oral, Wenjing Wang,
http://www.icst.pku.edu.cn/F/course/icb/Seminar/WenjingWang_180506/We
njingWang_180506.pdf
• https://github.com/tkarras/progressive_growing_of_gans
• Local Response Normalization (LRN), yeephycho,
http://yeephycho.github.io/2016/08/03/Normalizations-in-neural-networks/
• Karras et al. Progressive Growing of GANs for Improved Quality, Stability, and
Variation, http://arxiv.org/abs/1710.10196
• Gulrajani et al. Improved Training of Wasserstein GANs ,
http://arxiv.org/abs/1704.00028
2. References

More Related Content

What's hot

Resnet.pptx
Resnet.pptxResnet.pptx
Resnet.pptxYanhuaSi
 
메타버스 서비스에 Android 개발자가 할 일이 있나요?
메타버스 서비스에 Android 개발자가 할 일이 있나요?메타버스 서비스에 Android 개발자가 할 일이 있나요?
메타버스 서비스에 Android 개발자가 할 일이 있나요?Myungwook Ahn
 
FCN to DeepLab.v3+
FCN to DeepLab.v3+FCN to DeepLab.v3+
FCN to DeepLab.v3+Whi Kwon
 
CycleGAN이 무엇인지 알아보자
CycleGAN이 무엇인지 알아보자CycleGAN이 무엇인지 알아보자
CycleGAN이 무엇인지 알아보자Kwangsik Lee
 
PR-297: Training data-efficient image transformers & distillation through att...
PR-297: Training data-efficient image transformers & distillation through att...PR-297: Training data-efficient image transformers & distillation through att...
PR-297: Training data-efficient image transformers & distillation through att...Jinwon Lee
 
OpenGL 4.4 - Scene Rendering Techniques
OpenGL 4.4 - Scene Rendering TechniquesOpenGL 4.4 - Scene Rendering Techniques
OpenGL 4.4 - Scene Rendering TechniquesNarann29
 
Weighted Blended Order Independent Transparency
Weighted Blended Order Independent TransparencyWeighted Blended Order Independent Transparency
Weighted Blended Order Independent Transparencyzokweiron
 
PR-302: NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
PR-302: NeRF: Representing Scenes as Neural Radiance Fields for View SynthesisPR-302: NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
PR-302: NeRF: Representing Scenes as Neural Radiance Fields for View SynthesisHyeongmin Lee
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)포프 김
 
Efficient Rendering with DirectX* 12 on Intel® Graphics
Efficient Rendering with DirectX* 12 on Intel® GraphicsEfficient Rendering with DirectX* 12 on Intel® Graphics
Efficient Rendering with DirectX* 12 on Intel® GraphicsGael Hofemeier
 
[부스트캠프 Tech Talk] 신원지_Wandb Visualization
[부스트캠프 Tech Talk] 신원지_Wandb Visualization[부스트캠프 Tech Talk] 신원지_Wandb Visualization
[부스트캠프 Tech Talk] 신원지_Wandb VisualizationCONNECT FOUNDATION
 
StyleCLIP: Text-Driven Manipulation of StyleGAN Imagery
StyleCLIP: Text-Driven Manipulation of StyleGAN Imagery StyleCLIP: Text-Driven Manipulation of StyleGAN Imagery
StyleCLIP: Text-Driven Manipulation of StyleGAN Imagery ivaderivader
 
論文紹介:Generative Adversarial Networks
論文紹介:Generative Adversarial Networks論文紹介:Generative Adversarial Networks
論文紹介:Generative Adversarial NetworksWisteria
 
Wasserstein GAN 수학 이해하기 I
Wasserstein GAN 수학 이해하기 IWasserstein GAN 수학 이해하기 I
Wasserstein GAN 수학 이해하기 ISungbin Lim
 
Pixel RNN to Pixel CNN++
Pixel RNN to Pixel CNN++Pixel RNN to Pixel CNN++
Pixel RNN to Pixel CNN++Dongheon Lee
 
Diffusion models beat gans on image synthesis
Diffusion models beat gans on image synthesisDiffusion models beat gans on image synthesis
Diffusion models beat gans on image synthesisBeerenSahu
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Johan Andersson
 
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...Haezoom Inc.
 

What's hot (20)

Resnet.pptx
Resnet.pptxResnet.pptx
Resnet.pptx
 
메타버스 서비스에 Android 개발자가 할 일이 있나요?
메타버스 서비스에 Android 개발자가 할 일이 있나요?메타버스 서비스에 Android 개발자가 할 일이 있나요?
메타버스 서비스에 Android 개발자가 할 일이 있나요?
 
FCN to DeepLab.v3+
FCN to DeepLab.v3+FCN to DeepLab.v3+
FCN to DeepLab.v3+
 
CycleGAN이 무엇인지 알아보자
CycleGAN이 무엇인지 알아보자CycleGAN이 무엇인지 알아보자
CycleGAN이 무엇인지 알아보자
 
PR-297: Training data-efficient image transformers & distillation through att...
PR-297: Training data-efficient image transformers & distillation through att...PR-297: Training data-efficient image transformers & distillation through att...
PR-297: Training data-efficient image transformers & distillation through att...
 
OpenGL 4.4 - Scene Rendering Techniques
OpenGL 4.4 - Scene Rendering TechniquesOpenGL 4.4 - Scene Rendering Techniques
OpenGL 4.4 - Scene Rendering Techniques
 
Weighted Blended Order Independent Transparency
Weighted Blended Order Independent TransparencyWeighted Blended Order Independent Transparency
Weighted Blended Order Independent Transparency
 
Beyond porting
Beyond portingBeyond porting
Beyond porting
 
PR-302: NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
PR-302: NeRF: Representing Scenes as Neural Radiance Fields for View SynthesisPR-302: NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
PR-302: NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
 
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
스크린 스페이스 데칼에 대해 자세히 알아보자(워햄머 40,000: 스페이스 마린)
 
Dcgan
DcganDcgan
Dcgan
 
Efficient Rendering with DirectX* 12 on Intel® Graphics
Efficient Rendering with DirectX* 12 on Intel® GraphicsEfficient Rendering with DirectX* 12 on Intel® Graphics
Efficient Rendering with DirectX* 12 on Intel® Graphics
 
[부스트캠프 Tech Talk] 신원지_Wandb Visualization
[부스트캠프 Tech Talk] 신원지_Wandb Visualization[부스트캠프 Tech Talk] 신원지_Wandb Visualization
[부스트캠프 Tech Talk] 신원지_Wandb Visualization
 
StyleCLIP: Text-Driven Manipulation of StyleGAN Imagery
StyleCLIP: Text-Driven Manipulation of StyleGAN Imagery StyleCLIP: Text-Driven Manipulation of StyleGAN Imagery
StyleCLIP: Text-Driven Manipulation of StyleGAN Imagery
 
論文紹介:Generative Adversarial Networks
論文紹介:Generative Adversarial Networks論文紹介:Generative Adversarial Networks
論文紹介:Generative Adversarial Networks
 
Wasserstein GAN 수학 이해하기 I
Wasserstein GAN 수학 이해하기 IWasserstein GAN 수학 이해하기 I
Wasserstein GAN 수학 이해하기 I
 
Pixel RNN to Pixel CNN++
Pixel RNN to Pixel CNN++Pixel RNN to Pixel CNN++
Pixel RNN to Pixel CNN++
 
Diffusion models beat gans on image synthesis
Diffusion models beat gans on image synthesisDiffusion models beat gans on image synthesis
Diffusion models beat gans on image synthesis
 
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
Frostbite Rendering Architecture and Real-time Procedural Shading & Texturing...
 
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
Variational Autoencoder를 여러 가지 각도에서 이해하기 (Understanding Variational Autoencod...
 

Similar to Progressive Growing of GANs for Improved Quality, Stability, and Variation Review

[Paper Review] Visualizing and understanding convolutional networks
[Paper Review] Visualizing and understanding convolutional networks[Paper Review] Visualizing and understanding convolutional networks
[Paper Review] Visualizing and understanding convolutional networksKorea, Sejong University.
 
Imagination-Augmented Agents for Deep Reinforcement Learning
Imagination-Augmented Agents for Deep Reinforcement LearningImagination-Augmented Agents for Deep Reinforcement Learning
Imagination-Augmented Agents for Deep Reinforcement Learning성재 최
 
네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLDKim Junghoon
 
딥러닝 논문읽기 efficient netv2 논문리뷰
딥러닝 논문읽기 efficient netv2  논문리뷰딥러닝 논문읽기 efficient netv2  논문리뷰
딥러닝 논문읽기 efficient netv2 논문리뷰taeseon ryu
 
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...gohyunwoong
 
Simple Review of Single Image Super Resolution Task
Simple Review of Single Image Super Resolution TaskSimple Review of Single Image Super Resolution Task
Simple Review of Single Image Super Resolution TaskMYEONGGYU LEE
 
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...Gyubin Son
 
Alexnet paper review
Alexnet paper reviewAlexnet paper review
Alexnet paper review오 혜린
 
History of Vision AI
History of Vision AIHistory of Vision AI
History of Vision AITae Young Lee
 
Densely Connected Convolutional Networks
Densely Connected Convolutional NetworksDensely Connected Convolutional Networks
Densely Connected Convolutional NetworksOh Yoojin
 
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작DACON AI 데이콘
 
Image net classification with deep convolutional neural networks
Image net classification with deep convolutional neural networks Image net classification with deep convolutional neural networks
Image net classification with deep convolutional neural networks Korea, Sejong University.
 
SAGAN_2024seminar announce_seoultech.pptx
SAGAN_2024seminar announce_seoultech.pptxSAGAN_2024seminar announce_seoultech.pptx
SAGAN_2024seminar announce_seoultech.pptxssuser4b2fe7
 
"Learning transferable architectures for scalable image recognition" Paper Re...
"Learning transferable architectures for scalable image recognition" Paper Re..."Learning transferable architectures for scalable image recognition" Paper Re...
"Learning transferable architectures for scalable image recognition" Paper Re...LEE HOSEONG
 
3.unsupervised learing
3.unsupervised learing3.unsupervised learing
3.unsupervised learingHaesun Park
 
3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)Haesun Park
 
Introduction toDQN
Introduction toDQNIntroduction toDQN
Introduction toDQNCurt Park
 

Similar to Progressive Growing of GANs for Improved Quality, Stability, and Variation Review (20)

[Paper Review] Visualizing and understanding convolutional networks
[Paper Review] Visualizing and understanding convolutional networks[Paper Review] Visualizing and understanding convolutional networks
[Paper Review] Visualizing and understanding convolutional networks
 
Imagination-Augmented Agents for Deep Reinforcement Learning
Imagination-Augmented Agents for Deep Reinforcement LearningImagination-Augmented Agents for Deep Reinforcement Learning
Imagination-Augmented Agents for Deep Reinforcement Learning
 
네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD네트워크 경량화 이모저모 @ 2020 DLD
네트워크 경량화 이모저모 @ 2020 DLD
 
딥러닝 논문읽기 efficient netv2 논문리뷰
딥러닝 논문읽기 efficient netv2  논문리뷰딥러닝 논문읽기 efficient netv2  논문리뷰
딥러닝 논문읽기 efficient netv2 논문리뷰
 
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
 
Simple Review of Single Image Super Resolution Task
Simple Review of Single Image Super Resolution TaskSimple Review of Single Image Super Resolution Task
Simple Review of Single Image Super Resolution Task
 
HistoryOfCNN
HistoryOfCNNHistoryOfCNN
HistoryOfCNN
 
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
[paper review] 손규빈 - Eye in the sky & 3D human pose estimation in video with ...
 
Alexnet paper review
Alexnet paper reviewAlexnet paper review
Alexnet paper review
 
History of Vision AI
History of Vision AIHistory of Vision AI
History of Vision AI
 
Densely Connected Convolutional Networks
Densely Connected Convolutional NetworksDensely Connected Convolutional Networks
Densely Connected Convolutional Networks
 
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
위성관측 데이터 활용 강수량 산출 AI 경진대회 1위 수상작
 
Image net classification with deep convolutional neural networks
Image net classification with deep convolutional neural networks Image net classification with deep convolutional neural networks
Image net classification with deep convolutional neural networks
 
SAGAN_2024seminar announce_seoultech.pptx
SAGAN_2024seminar announce_seoultech.pptxSAGAN_2024seminar announce_seoultech.pptx
SAGAN_2024seminar announce_seoultech.pptx
 
Deep learning overview
Deep learning overviewDeep learning overview
Deep learning overview
 
LeNet & GoogLeNet
LeNet & GoogLeNetLeNet & GoogLeNet
LeNet & GoogLeNet
 
"Learning transferable architectures for scalable image recognition" Paper Re...
"Learning transferable architectures for scalable image recognition" Paper Re..."Learning transferable architectures for scalable image recognition" Paper Re...
"Learning transferable architectures for scalable image recognition" Paper Re...
 
3.unsupervised learing
3.unsupervised learing3.unsupervised learing
3.unsupervised learing
 
3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)
 
Introduction toDQN
Introduction toDQNIntroduction toDQN
Introduction toDQN
 

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

  • 1. PGGAN 논문 리뷰 모두의 연구소 GAN찮아 3기 김태엽 Karras, Tero Aila,Timo Laine, Samuli Lehtinen, Jaakko
  • 2. Contents 3. NetworksforcelebA-HQ 3-1.NetworksStructure 3-2.TrainingConfiguration 6.References 2. Contributions 1-2.Introduction 1.Introduction 1-1.Overview 2-1.ProgressiveGrowingofGANs 2-2.IncreasingVariationusingMinibatchStandardDeviation 2-3.NormalizationinGeneratorandDiscriminator 2-4.EqualizedLearningRate 4. NewMetricforAssessingResults 4-1.Backgrounds 4-2.TheNewMetric 5.Experiments 5-1.ImportanceofIndividualContributions 5-2.ConvergenceandTrainingSpeed 5-3.High-resolutionImageGenerationusingCelebA-HQ 5-4.LSUNresults 5-5.CIFAR10InceptionScores 2-3.PixelwiseFeatureVectorNormalizationInGenerator 6-1.References
  • 3. 1.Introduction 1. Overview  논문에서 제안한 것들 1. Progressive Growing of GANs : A new training methodology for GAN Grows both generator and discriminator progressively 2. Minibatch Standard Deviation : Improve variation in generated images Discourage generator from producing too homogeneous results 3. Normalization : Discourage unhealthy competition between two networks 3-1. Equalized Learning Rate : Make layers learn at same pace 3-2. Pixelwise Feature Vector Normalization : Avoid mode collapse 4. A new metric for evaluating GAN results : both in terms of image quality and variation
  • 4. 1.Introduction 1. Introduction •Sharp한 이미지를 만들 수 있다 •Evaluate하는 것이 느림 •Latent space가 없다 •픽셀에 대한 조건부 모델링 Autoregressive •훈련이 쉽다 •모델의 한계로 Blurry한 이미지를 만듬 •최근에 향상시키는 연구가 많이 나옴 VAE •Sharp한 이미지를 만듬 •Variation이 낮은 해상도로 제한됨 •학습과정이 Unstable함 GAN • 가장저명한GenerativeModel3가지 • 각각은명확한장단점을지니고있음
  • 5. 1.Introduction 1. Introduction •고해상도 이미지의 생성은 구별이 쉽기 때문에 생성하기 힘들다 •메모리 제약 조건때문에 minibatch를 줄여야 하고 training이 불안정해진다 •다채로운 이미지(variation)을 만들지 못함 Problem •Generator와 Discriminator를 점진적으로 키운다 •mode collapse를 방지하고 variation을 키우는 몇가지 tweak을 사용 •variation과 이미지 퀄리티를 평가하는 metric을 이용한다 Approach •training 속도를 향상시키고 높은 해상도에서 안정성을 향상시킴 •1024 x 1024의 고해상도의 이미지를 생성할 수 있음 •unsupervised CIFAR10에서 inception score 8.80을 기록함 Benefits
  • 6. 1. Progressive Growing of GANs 2.Contributions • 저해상도에서시작해서점진적으로네트워크에레이어를더해서해상도를높인다 • 이미지분포에서large-scale(전반적인얼굴형태)구조를먼저발견하게끔해준다 • 해상도를높일수록세부적인scale의디테일로관심을옮기게끔한다 • 모든scale을동시에학습하는것이아니다
  • 7. 1. Progressive Growing of GANs 2.Contributions • 레이어를더할때에는smooth하게fade시키는transition을두도록한다 • 이미학습된이전단계의레이어에suddenshock을방지 • alpha값은linearly하게0에서1로증가시킴 • toRGB는featurevector를RGBcolors로만들고fromRGB는RGBcolors를featurevector로변환
  • 8. 1. Progressive Growing of GANs 2.Contributions  Generator → Discriminator
  • 9. 1. Progressive Growing of GANs 2.Contributions  Discriminator를 학습시킬 때 네트워크의 현재 해상도에 맞춰서 real images 를 downscale하여서 넣도록 한다.  Resolution transition을 하는 중에는 real images의 두 해상도 사이를 선형보 간(interpolation)을 한다
  • 10. 1. Progressive Growing of GANs 2.Contributions 장점1. 안정적인 훈련 • 저해상도에선 class 정보가 적고 mode가 적기 때문에 이미지 생성이 훨씬 안정적이다. • latent vector를 직접 1024 x 1024에 바로 mapping시키는 방법과 비교했을 때 훨씬 더 간단한 질문을 요구하면서 해상도를 증가시킴 장점2. 학습 시간의 단축 • 학습 시간이 줄어들었고 비슷한 결과의 퀄리티를 얻는데 2-6배 빨리 얻을 수 있었다. 효과
  • 11. 2. Minibatch Standard Deviation 2.Contributions  GAN에서 training data에서 부분적인 variation만 캡쳐하는 경향이 있음 → Mode Collapse  이를 해결하기 위한 방안으로 Minibatch Discrimination이 제시되었음  Discriminator 끝 단에 Minibatch layer를 더하여 minibatch에 있는 이미지 들의 feature statistics를 계산함
  • 12. 2. Minibatch Standard Deviation 2.Contributions  Minibatch Standard Deviation은 Minibatch Discrimination을 단순화한 방법 → 추가적인 parameter 학습/새로운 hyperparameter가 필요 없음  먼저 전체 minibatch에 대해 각 feature의 spatial location에서의 표준편차를 구한다  이 계산한 값을 spatial location에서 모든 feature에 대한 평균을 내고 하나의 값으로 만든 뒤 concat한다
  • 13. 2. Minibatch Standard Deviation 2.Contributions  이 레이어를 어느 위치에나 들어갈 수 있으나 끝단 방향에 두는 게 가장 좋 은 성능을 보였다  다른 통계량을 실험하였지만 더 이상 variation을 향상시키지 못하였다
  • 14. 3. Normalization in Generator and Discriminator 2.Contributions  두 네트워크 사이의 불건전한 경쟁으로부터 escalation of signal magnitude 가 일어나기 쉬운 경향이 있음  이를 억제하기 위해 대부분 연구에선 Batch Normalization이 사용됨  초기에 covariate shift를 제거하기 위해 도입된 방법임  실제 GAN에서 필요한 것은 constraining signal magnitude and competition
  • 15. 4. Equalized Learning Rate (Runtime weight scaling) 2.Contributions  Weights을 그냥 gaussian(0, 1)로 initialization하였음  대신에 런타임에서 weights를 explicitly scaling 하였음  c는 He’s initializer에서 나오는 레이어당 normalization constant  RMSProp과 Adam과 같은 Adaptive stochastic gradient descent은 scale-invariance을 지닌다  파라미터 scale에 무관하게 gradient를 업데이트하는데 만약 파라미터 마 다 dynamic range가 다르다면 이를 조절하는데 시간이 많이 걸림
  • 16. 4. Equalized Learning Rate (Runtime weight scaling) 2.Contributions  저자들의 접근법은 모든 weight들에 대해 같은 dynamic range를 갖게 함→ 학습속도는 레이어 의 크기에 무관하게 되었음
  • 17. 5. Pixelwise Feature Vector Normalization 2.Contributions  Generator와 Discriminator가 경쟁의 결과로 magnitudes가 통제불능이 되는 것 을 방지 해야함  Generator에서 Conv layer마다 나오는 Feature Vector를 각 픽셀에 대해 단위 길이로 정규화 하였음  LSN(local Response Normalization)을 변형하여 구현하였음  𝑎𝑥,𝑦 ∶ originalfeaturevector , 𝑏𝑥,𝑦 ∶ normalizedfeaturevector,n ∶ featuremap갯수  대부분의 경우 결과물에 변화를 주진 않았지만 escalation of signal magnitudes를 효과적으로 방지함
  • 18. 4. Pixelwise Feature Vector Normalization 2.Contributions  Local Response Normalization
  • 19. 4. Pixelwise Feature Vector Normalization 2.Contributions
  • 20. 5. Pixelwise Feature Vector Normalization 2.Contributions  실제 코드에서 활용
  • 21. 1. Networks Structure 3.NetworksforcelebA-HQ • CelebA-HQ데이터셋을이용한PGGAN의네트워크구조
  • 22. 2. Training Configuration 3.NetworksforcelebA-HQ  Discriminator에게 800K개의 real image를 보여줄 때까지 4x4 해상도에서 시작 하여 네트워크를 학습함  두 가지 Phase를 번갈아 가면서 진행함 : 처음에 800K 이미지 동안 3-레이어 블록을 fade시키고 다음 800K 이미지 동안 안정화를 시킴  real image와 fake image 모두 범위는 [-1, 1]  Adam optimizer(α = 0.0001, β1=0, β2=0.99, 𝜖 = 10−8)  4x4에서 128x128까지는 minibatch size=16, 256x256에선 14, 512x512에선 6, 1024x1024에선 3으로 줄여가면서 메모리 부족을 방지
  • 23.  WGAN-GP loss를 사용했지만 Gulrajani et al과 다르게 미니배치 당 generator 와 discriminator의 최적화를 번갈아 가면서 함 → 𝑛𝑐𝑟𝑖𝑡𝑖𝑐 = 1  Discriminator loss에 다음과 같은 추가 term을 더하여 discriminator의 출력 값 이 0으로 부터 너무 멀리 떨어지는 것을 방지함 2. Training Configuration 3.NetworksforcelebA-HQ
  • 24. 1. Backgrounds 4.NewMetricforAssessingResults  서로 다른 GAN 끼리 결과를 비교하기 위해선 일일이 비교하고 방대한 분 량의 이미지를 조사해야 한다 → 이를 위한 자동화 된 Metric 필요  large-scale mode collapse를 찾아내는 MS-SSIM 과 같은 Metric들이 있음  하지만 색상이나 텍스처의 다양성과 같은 작은 효과에는 반응하지 않는다  또한 이미 존재하는 방법들은 training set의 이미지와의 유사도 측면에서 이미지 퀄리티를 평가하는게 아니다
  • 25. 1. Backgrounds 4.NewMetricforAssessingResults  Generator가 샘플을 제대로 만들어냈다면 모든 scale에 걸쳐서 local image structure가 training set과 유사해야 한다  저자들이 제안한 점 : 생성된 이미지와 타겟 이미지의 Laplacian pyramid representation에서 나온 이미지 조각의 분포 사이의 multi-scale statistical similarity를 고려하도록 하자!
  • 26. 2. The New Metric 4.NewMetricforAssessingResults  Laplacian pyramid representation : Gaussian pyramid와 비슷한데 각 피라미 드층은 본래의 이미지와 Gaussian Blur를 거친 이미지의 차이를 저장한다.  하나의 Laplacian pyramid 층은 특정한 spatial frequency band에 대응된다
  • 27. 2. The New Metric 4.NewMetricforAssessingResults  랜덤하게 16384(214)개의 이미지를 샘플 후 Laplacian pyramid의 각층에서 128개의 descriptors(feature)를 뽑아냄 → 한 층마다 총 2.1M개(221)의 descriptors를 뽑음  각각의 descriptor는 7x7 픽셀이고 3개의 color 채널을 지닌다.
  • 28. 2. The New Metric 4.NewMetricforAssessingResults  {𝑥𝑖 l } 과 {𝑦𝑖 l }를 각각의 color channel에 대한 평균과 분산으로 정규화를 한 뒤 에 둘 사이의 sliced Wasserstein distance(SWD)를 계산하였다  SWD가 작다 → 이미지 조각들의 분포가 유사하다 → 해당 해상도에서 훈련용 이미지와 생성된 이미지의 외관과 다양성이 유사하다  가장 낮은 해상도 16x16에서 뽑은 이미지 조각 사이의 거리는 large-scale image structure가 유사함을 의미함
  • 29. 1. Importance of Individual Contributions 5.Experiments
  • 30. 1. Importance of Individual Contributions 5.Experiments  Gularajani et al.(Baseline) Configuration : • α = 0.0001, β2 = 0.9, 𝑛𝑐𝑟𝑖𝑡𝑖 𝑐 = 5, 𝑒𝑑𝑟𝑖 𝑓𝑡 = 0 • Minibatch size = 64 • Progressive resolution, minibatch stddev, runtime weight scaling 미사용 • He initializer를 사용 • Generator의 activation을 relu로 바꾸고 마지막은 tanh로 바꿈 • Pixelwise norm 대신 Batch norm을 사용, Discriminator는 Layer normalization을 사용 • Latent vector는 128짜리 Normal distribution에서 샘플
  • 31. 1. Importance of Individual Contributions 5.Experiments
  • 32. 1. Importance of Individual Contributions 5.Experiments
  • 33. 2. Convergence and Training Speed 5.Experiments
  • 34. 3.High-ResolutionImageGenerationUsingCelebA-HQ Dataset 5.Experiments  기존의 데이터셋이 저해상도라서 1024x1024 해상도의 30K개의 High Quality 데이터셋을 만듬  4일동안 8개의 Tesla V100 GPUs를 사용하여 학습시킴
  • 35. 3.High-ResolutionImageGenerationUsingCelebA-HQ Dataset 5.Experiments  생성된 이미지에 대응되는 Nearest neighbors in training set
  • 38. 5. CIFAR10 Inception Scores 5.Experiments  Unsupervised Setting에서 CIFAR10 Inception score를 8.80을 찍음  CIFAR 10은 10가지 카테고리의 32x32 RGB 이미지  네트워크와 training setup은 celebA때와 똑같고 progression만 32x32로 제한
  • 39. 6.ConclusionandReferences • https://users.aalto.fi/~laines9/publications/karras2018iclr_poster.pdf • Laplacian Pyramid, http://sepwww.stanford.edu/data/media/public/sep/morgan/texturematch/ paper_html/node3.html • Laplacian Pyramid, https://en.wikipedia.org/wiki/Pyramid_(image_processing) • He initializer, http://andyljones.tumblr.com/post/110998971763/an- explanation-of-xavier-initialization • He initializer, https://arxiv.org/pdf/1502.01852v1.pdf • [요약] PGGAN, https://curt-park.github.io/2018-05-09/pggan/ • 2018 ICLR oral, Wenjing Wang, http://www.icst.pku.edu.cn/F/course/icb/Seminar/WenjingWang_180506/We njingWang_180506.pdf • https://github.com/tkarras/progressive_growing_of_gans • Local Response Normalization (LRN), yeephycho, http://yeephycho.github.io/2016/08/03/Normalizations-in-neural-networks/ • Karras et al. Progressive Growing of GANs for Improved Quality, Stability, and Variation, http://arxiv.org/abs/1710.10196 • Gulrajani et al. Improved Training of Wasserstein GANs , http://arxiv.org/abs/1704.00028 2. References

Editor's Notes

  1. 안녕하세요. Progresive GAN 발표를 맡게 된 김태엽이라고 합니다.
  2. 이번 발표는 다음과 같은 목차로 구성되어 있습니다. 먼저 Overview와 인트로덕션에서 논문에서 어떤 것들을 contribution을 했는지 개요를 살펴보겠습니다. 다음으로 핵심적인 아이디어라고 할 수 있는 Progressive growing를 살펴보고 PGGAN이 뛰어난 결과를 낼 수 있었던 부수적인 테크닉을 몇 개 더 살펴본 뒤 celebA 데이터셋을 이용한 네트워크에 대한 설명을 드리겠습니다. 그리고 저자들이 새롭게 고안한 결과를 평가하는 메트릭과 실험결과를 설명드리겠습니다. 마지막으로 자료출처를 말씀드리며 발표를 마치겠습니다.
  3. 먼저 논문에서 제안한 것들을 간단히 살펴보면 다음과 같습니다. 첫번째로 점진적으로 GAN의 네트워크를 키우는 새로운 방법론을 제안하였습니다. 그리고 Minibatch Standard deviation 이라는 생성된 이미지에서 variation을 향상시키는 방법을 제안했습니다. 이를 통해 generator가 비슷한 이미지만 생성하는 mode collapse현상을 줄일 수 있다고 합니다. 세 번째로 2가지 Normalization 테크닉을 제시하여 두 네트워크 사이의 불건전한 경쟁을 제한하도록 하였는데요. 하나는 레이어들이 똑같은 페이스, 즉 똑같은 속도로 학습을 하도록 하는 것이고 다른 하나는 generator에서 pixelwise normalization을 사용하여 mode collapse를 피할 수 있도록 하였습니다. 마지막으로 기존에 사용하던 GAN의 성능 평가 메트릭을 대신할 수 있는 새로운 메트릭을 제시하였습니다.
  4. 논문의 인트로덕션에선 대표적인 Generative Model 3가지를 언급하면서 시작하고 있습니다. Autoregressive model은 PixelCNN, PixelRNN과 같은 모델을 말하고 sharp한 이미지를 만들 수 있습니다. 대신에 evaluate하는게 느리고 latent space가 없습니다. 그리고 픽셀단위의 조건부확률을 통한 모델링이기 때문에 응용력이 제한된다고 합니다. VAE는 훈련이 쉽지만 모델의 한계로 blurry한 이미지를 만듭니다. 그리고 GAN은 sharp한 이미지를 만들지만 결과물의 다채로움이 낮은 해상도로 제한되고 학습과정이 unstable합니다. 이 세 가지 장점을 결합한 하이브리드한 접근법이 있다고 하는데 GAN에 비해 이미지 퀄리티가 떨어진다고 합니다.
  5. 이때 GAN에 대해서 좀 더 알아보면 현재 문제 상황은 다음과 같습니다. 고해상도 이미지의 경우는 discriminator에서 쉽게 구분을 하기 때문에 generator를 학습시키기가 어려웠습니다. 그리고 고해상도 이미지를 메모리를 많이 차지 하기 때문에 학습을 위해선 어쩔 수 없이 minibatch 사이즈를 줄여야 하고 이 때문에 training이 불안정해집니다. 또한 discriminator가 더 뛰어날 경우 mode collapse가 시작되는데 이 때문에 gradients가 커지고 generator, discriminator 두 네트워크 사이의 비정상적인 경쟁이 일어나게 됩니다. 이 때문에 generator는 다양한 이미지를 만들지 못하게 됩니다. 이런 문제점을 해결하기 위한 접근법으로 저자들은 Generator와 Discriminator를 점진적으로 키우고 mode collapse를 방지하고 variation을 키우는 몇 가지 tweak을 만들었습니다. 그리고 variation과 이미지 퀄리티를 평가하는 metric을 이용하였습니다. 그 결과 얻게 되는 이점은 training 속도가 향상되고 1024x1024 짜리 고해상도 이미지를 생성할 수 있었습니다. 또한 unsupervised CIFAR10에서 종전의 inception score 최고점이 7.90이었는데 이를 8.80까지 올렸습니다. inception score란 구글의 인셉션 이미지 classification model에 생성된 이미지를 넣어서 나오는 값으로 GAN의 성능을 평가하는 방법 중 하나입니다.
  6. 지금부터 저자들이 논문에서 기여한 바를 하나씩 살펴보겠습니다. 먼저 Progressive Growing of GAN인데요. 그림1처럼 저해상도의 이미지에서 시작해서 점진적으로 네트워크에 레이어를 더해서 해상도를 높이는 것입니다. 이때 각각의 레이어는 하나의 해상도에서 학습이 끝나면 그대로 freeze시키는 것이 아니라 레이어를 추가해도 이전 레이어의 weight도 계속 학습을 할 수 있게끔 두어서 전반적으로 네트워크가 학습되도록 합니다. 이런 식으로 하면 이미지 분포에서 large-scale 즉 전반적인 얼굴 형태같이 커다란 특징 부터 발견하게끔 해줍니다. 해상도를 높일수록 더 fine한 더 세부적인 scale로 디테일이 옮겨지도록 합니다. 이 구조는 이전 GAN과 학습하는 성향이 다른데요. 이전의 GAN들은 한꺼번에 모든 scale의 특징을 동시에 학습하였습니다. 참고로 여기 오른쪽에 만들어진 이미지는 loss function을 LSGAN loss를 사용하여 만든 이미지입니다.
  7. 이때 해상도를 2배로 하기위해 레이어를 더할 때에는 generator에서 나가고 discriminator에 들어오는 이미지를 smooth하게 fade시키는 transition을 일으키게 합니다. 마치 residual block처럼 다루어서 알파값을 0에서 1로 학습이 진행되면서 linear하게 증가시킵니다. 이렇게 하여 이미 학습된 이전 단계의 레이어에게 sudden shock가 오는 것을 방지합니다. 여기서 2x라고 되어있는 nearest neighborhood filetering을 써서 크기를 2배로 키운다는 뜻이고 0.5x라고 되어 있는 부분은 average pooling을 통해서 크기를 반으로 줄인다는 뜻입니다. 그리고 toRGB라고 되어 있는 부분은 feature vector를 RGB 컬러 즉 채널이 3짜리인 이미지로 만들고 fromRGB는 채널이3인 이미지로 부터 feature vector로 변환하는 것을 뜻합니다.
  8. generato에서 discriminator로 가게되는 상황을 그린 그림은 다음과 같습니다. 여기서 toRGB 블록이 1x1 커널을 사용해서 16채널 짜리 feature map을 channel 3개짜리인 이미지로 바꾸고 fromRGB는 이를 다시 16채널로 바꾸어주는 것을 볼 수 있습니다. Progressive growing이 일어날때는 오른쪽에 있는 Block이 하나씩 더해진다고 보면 되겠습니다. 저기서 Upsample이 앞서본 2배로 해상도를 올리는 필터링이고 Downsample이 averagpooling을 일으키는 부분입니다. 만약 Block이 하나 추가되어 fade transtion이 일어난다면 이런 식으로 연결된다고 보면 됩니다.
  9. 이때 Discriminator를 학습시킬 때에는 네트워크의 현재 해상도에 맞춰서 real image를 downsampe하여 넣도록 합니다. resolution transition을 하는 중에는 real image의 두 해상도 사이를 선형 보간합니다. 아래 그림은 저자들이 깃허브에 올려놓은 공식 코드에서 가져왔습니다. 제가 이해한게 맞다면 이 부분에서 네트워크에 training image를 넣을 때 선형보간 처리를 하여 리턴하는 부분입니다.
  10. 이렇게 점진적으로 GAN을 키우는 효과로 첫번째로 안정적인 훈련이 가능하다는 것입니다. 저해상도에선 class 정보가 적고 mode가 적기 때문에 이미지 생성이 훨씬 안정적입니다. 즉 구별해야 할게 적다보니깐 generator가 discriminator를 속일 수 있는 fake image를 생성하기 쉽다는 의미입니다. 따라서 기존의 GAN이 latent vector를 직접적으로 고해상도 이미지에 매핑되는 방법에 비해서 훨씬 더 간단한 질문들을 요구하면서 해상도를 증가시킬 수 있습니다. 또한 두 번쨰 장점으로 학습시간의 단축이 있는데 비슷한 결과의 퀄리티를 얻는데 2~6배 정도 빨리 얻을 수 있었다고 합니다.
  11. 다음으로 이미지의 다양성을 증가시키는 방법인 Minibatch stddev을 제시하였는데 이는 우리가 저번주에 살펴보았던 Minibatch Discrimiantion과 유사합니다. 먼저 GAN에선 training data에서 부분적인 variatio만 캡쳐하는 경향이 있는데 이것이 Mode collaps입니다. 이를 해결하기 위해 등장한 Minibatch discriminatio은 discriminator 끝단에 minibatch에 있는 이미지들의 feature statistics를 계산하는 레이어를 추가하는 것입니다. 이 레이어의 파라미터는 그림에 나온 텐서가 되며 다음과 같은 과정을 거쳐서 나온 output vector가 다음 레이어로 전달되는 구조입니다.
  12. 이때 Minibatch standard deviatio은 minibatch discrimination을 단순화한 방법으로 추가적인 파리미터와 새로운 하이퍼 파라미터가 필요없습니다. 어떻게 하는지 살펴보면 먼저 전체 Minibatch에 대해 각 feature의 spatial location에서의 표준 편차를 구합니다. 그리고 이 계산한 값을 spatial location에서 모든 feature에 대한 평균을 내고 하나의 값으로 만듭니다. 그리고 이 값을 복사해서 모든 spatial location과 minibatch에 대해 concat하는 방식으로 feature map을 추가하게 됩니다. 무슨 말인지 잘 이해가 안되실텐데요. 논문에 적혀 있는 내용을 그대로 번역해서 글로만 읽으면 잘 이해가 되지 않습니다. 그래서 코드를 같이 준비해왔습니다. 먼저 group사이즈를 최소 4이상으로 잡아서 feature map을 M개의 그룹으로 reshape합니다. 그런 뒤에 그룹에 대해서 표준 편차를 계산하고 이 표준편차를 채널과 width, height에 대해서 평균을 구합니다. 그렇게 되면 그룹 별로 단 하나의 값만 남게 되는데 tf.tile함수를 쓰서 이 값을 그룹, 채널, height, width의 shape로 replicate한 뒤 이를 처음 feature map과 concat하여 리턴하게 됩니다.
  13. 이 Minibatch Standard Deviation은 discriminator 네트워크 어디에나 들어갈 수 있지만 마지막 단을 향해서 두는게 가장 효과가 좋았다고 합니다. 다음 그림은 저자들이 구현한 discriminator 네트워크인데요 마지막 convolution layer 블록에 Minibatch stddev가 있는 것을 확인할 수 있습니다. 또한 저자들은 풍부한 다른 통계량을 통해 실험해보았지만 더 이상 variation을 증가시키지는 못했다고 합니다. 그리고 이외에도 variation을 향상시키는 다른 방법들이 있지만 자신들의 방법이 variation을 가장 많이 향상한다고 합니다.
  14. 다음은 두 네트워크에서 Normalization을 어떻게 할까에 대한 부분입니다. 먼저 일반적인 GAN에선 두 네트워크간의 불건전한 경쟁으로 부터 escalation of signal magnitud가 일어나기 쉽다고 합니다. 이 escalation of signal magnitude가 정확히 어떤 의미를 뜻하는 것인지는 모르겠지만 아마 gradient값이 마구 튀는 것을 의미하지 않을까 생각됩니다. 다시 말하자면 일반적인 GAN에선 학습을 할 때 특별한 제약조건이 없기 때문에 레이어의 weight와 bais의 scale을 자유롭게 바꾸기 떄문에 이들의 scale이 엄청나게 커질 수 있는 가능성이 있습니다. 그렇다면 back propagation을 할 때에 에러 시그널이 발산되어 학습이 잘 안될 수 있는 데 이것을 뜻하는 것 같습니다. 구글에서도 escalation of signal magnitude라고 검색을 해보면 이 논문만 검색결과로 뜨는 것으로 봐서 이 저자들만 쓰는 표현으로 보입니다. 어찌됐든 이를 방지하고자 Batch normalization을 통해서 레이어마다 들어가는 데이터를 배치별로 정규화하여서 gradient가 잘 흐를 수 있도록 합니다. 이런 normalization 테크닉은 원래는 covariate shift를 제거하기 위해 도입되었습니다. 이때 covariate shift란 학습 중에 레이어로 들어가는 인풋의 distribution이 바뀌게 되어서 학습에 지장이 가게 되는 현상을 뜻하는데 이 때문에 learning rate는 낮추거나 레이어의 weigh를 조심스럽게 초기화해야 한다고 알려져 있었습니다. 예를 들어 첫번째 배치를 통해 수정된 weight와 bais는 첫번째 배치와 분포가 다를 수 있는 두번째 배치를 가공해서 뒷 레이어에게 전달되므로 운 나쁘게 배치간 분포가 매우 다른 경우 레이어의 일관된 학습이 어려워 집니다. 그런데 저자들은 covariate shift가 문제점이 아니라는 것을 관찰했고 대신 signal magnitude와 불건전한경쟁에 제약조건을 걸어야 된다고 합니다.
  15. 이를 위해 저자들은 2가지 테크닉을 제시하였는데 그 중 첫번째가 Equalized learning rate입니다. 저는 처음에 learning rate라고 하길래 Optimizer의 learning rate를 어떻게 조작을 하는 것인 줄 알았는데 그게 아니고 레이어 간의 학습 속도를 동등하게 만들겠다는 것을 뜻합니다. 어떻게 하는가 하면 먼저 weight를 일반적인 gaussian(평균0, 표준편차 1)로 초기화합니다. 요즘에는 Xavier init등과 같이 조심스럽게 초기화를 조심스럽게 하는 트렌드를 따르지 않는 것입니다. 대신에 런타임에서 weight를 직접 scaling해버리는 식으로 처리합니다. 이때 He intitalizer라고 하는 Xavier initializer에서 개선된 weight initializatio을 하는 방법이 있는데 거기서 모든 입력 X에 대해 가중치 W가 곱해서 Y를 내는 선형 시스템으로 네트워크가 구성되어 있다고 가정하여 이론을 전개하여서 레이어의 weight의 분산은 다음과 같이 유도됩니다. 이때 n_l은 레이어 안으로 들어가는 인풋의 개수라고 보시면 됩니다. 이 2분의 n_l를 C로 이용하여 새롭게 weight를 정의합니다. 자주 사용되는 RMSProp이나 Adam과 같은 Adaptive stochastic gradient 경사법은 scale-invarinace를 지닌다고 합니다. 이 때문에 gradient를 업데이트할 때에 파리미터의 scale가 무관하며 만약 파라미터의 dynamic range가 다르다면 이를 조절하는데 시간이 오래 걸린다고 합니다.
  16. 따라서 학습속도가 파라미터마다 따로 따로 놀게 되는데 앞서 말한 runtim시에 weight scailing을 하게 되면 모든 weight들에 대해서 같은 dynamic range를 지니게 해서 학습속도가 똑같게 되도록 할 수 있다고 합니다. 다음은 이런 scaling을 하는 코드입니다. 처음에 he initializer에서 해당되는 표준편차를 구하고 만약 wscale을 사용하는게 True라면 weight에 wscale을 곱하는 형태로 사용하게 됩니다. 아래는 위에서 정의한 get_weight 함수를 호출하여 각각 dense와 conv layer에서 활용하는 것을 볼 수 있습니다.
  17. 다음으로 제안한 것은 Pixelwise Feature Vector Normalization이라는 방법입니다. generato와 discriminator가 경쟁의 결과로 signa이 통제불능이 되는 것은 방지하기 위해 generato의 conv layer마다 나오는 feature vecto를 픽셀에 대해 단위길이로 정규화를 하였습니다. 저자들은 Local response normalization이라는 방법을 변형하여 이를 구현하였는데 식은 다음과 같습니다. a는 conv layer에서 나온 오리지날 feature vector이고 b는 정규화되어 계산된 벡터입니다. 그리고 n은 featurm map의 개수를 의미합니다. 저자들은 이 pixelwise normalization을 사용하니깐 결과물에는 변화를 주진 않았지만 escalation of signal magnitude를 효과적으로 방지할 수 있었다고 합니다.
  18. Local Response Normalization의 오리지날 형태의 식을 보면 다음과 같습니다. Pixelwise Normalization과 다른 점은 beta값이 있고 sigma 합의 범위가 다르다는 것을 제외하곤 비슷한 scheme이라고 볼 수 있을 것 같습니다. 이를 그림으로 표현하면 다음과 같은데요. Conv layer의 5개의 filter를 통해 5개의 feature map의 나오게 되고 각각의 픽셀 중 전부가 아닌 일부만을 뽑아내서 제곱해서 합을 하여 결과로 나오는 normalized feature map의 하나의 픽셀을 구성하는 것을 볼 수 있습니다. 좀 더 알아보니깐 Local response normalization이 나오게 된 배경이 측면 억제라는 생물에서 신경 세포가 흥분될 때 주변 신경 세포를 억제하는 경향에서 유도된 아이디어라고 합니다. 자세히 보면 0보다 큰 값이 활성화가 되어 제곱으로 들어가 표준화에 사용되니깐 대략 그런 개념을 반영하여 만든 방법으로 보입니다.
  19. 뭔가 어려운 개념 같이 들렸지만 실제 구현코드를 보면 다음과 같이 간단하게 텐서 연산을 하는 함수로 구성되어 있습니다. feature map x를 tf.squar를 통해서 제곱하고 이를 평균을 냅니다. 그리고 tf.rsqrt함수는 1분의 root 어떤것을 리턴하는 코드입니다. 따라서 처음의 feature x를 이 값에 곱하면 위의 나오는 공식을 구현하게 된 것입니다.
  20. 다음은 실제 코드에서 PixelNoramlization이 어떻게 사용되는지를 보여주는 그림입니다. act는 activation을 뜻 하는데 Generator의 lrelu에 나온 값에 Pixelwise normalization layer가 따라서 나오게 됩니다.
  21. 그럼 지금부터 실제로 저자들이 어떻게 celebA-HQ 데이터셋을 이용한 PGGAN을 어떻게 만들었는지 보다 구체적으로 살펴보겠습니다. 먼저 네트워크 구조는 다음과 같습니다. 두 네트워크는 모두 기본적으로 3x3 커널을 사용하는 convolutional layer가 2개와 upsample이나 downsample을 하는 레이어가 stack이 되어 하나의 블록을 이루게 되고 이것이 반복되어 나타나게 됩니다. 앞서 말씀드렸듯이 generato의 마지막 1x1 커널을 사용하는 convolutional layer는 toRGB 블록에 대응되고 Discrimiantor에선 fromRGB에 대응됩니다. generato로 들어가는 latent vecto는 512차원이고 모두 알파값이 0.2인 leakyRelu를 activation으로 사용하고 마지막단을 linear activation을 사용하였습니다.
  22. 다음으로 training configuratio인데요. 전체 학습과정은 4x4해상도의 네트워크를 구성하고 Dsicrimator에게 총 800K개의 이미지를 보여줄 때까지 네트워크를 학습시킵니다. 이때 두 가지 phase를 거치면서 학습을 하는데요. 원래라면 처음에 한번 800K를 학습하고 나서 다음번에는 해상도를 2배로 늘리며 또 다시 800K로 돌려야 하는데 저자들은 그렇게 하지 않고 해상도를 한번 높이고 나면 다시 한번 더 똑같은 해상도의 네트워크 구조에서 800K를 다시 학습하도록 함으로써 안정화를 시키는 단계를 거쳤습니다. 예를 들어 4x4에서 8x8로 증가시켰을 때에는 fade를 걸면서 800K를 학습시키고 바로 16x16로 가는게 아니고 8x8을 유지한 상태에서 다시 800K개의 실제 이미지를 discrimiantor에게 보여주었다는 뜻입니다. 그리고 tanh를 쓰진 않았지만 real image와 fake image의 범위는 [-1, 1]로 맞춥니다. optimizer는 다음과 같은 셋팅의 adam optimizer를 사용했다고 합니다. 그리고 4x4에서 128x128까진 minibatch는 16, 256x256에선 14, 1024x1024에선 3, 이런 식으로 갈수록 minibatch를 줄여가면서 메모리 부족을 방지했습니다.
  23. 그리고 loss functio으로 WGAN-GP loss를 사용했다고 합니다. 이 loss 함수는 WGAN이 발표된 이후로 Improved Training of WGAN이라는 논문이 발표되었는데 거기서 나온 업그레이드된 WGAN loss입니다. 이 loss를 적용한 WGAN의 알고리즘은 다음과 같은데요. WGAN에선 discriminator를 critic이라고 부르고 n_critic이라는 값을 통해서 critic을 먼저 여러 번 학습을 시킵니다. 그런데 Progressive GAN의 저자들은 이 n_criti값을 1로 하여서 그냥 minibactch마다 generator와 discriminator가 번갈아가면서 최적화를 하도록 하였습니다. 여기 Gulrajnai는 improved WGAN의 논문 저자를 뜻합니다. 그리고 Disciriminator가 출력값이 0으로 부터 너무 멀리 떨어지는 것을 방지하기 위해 다음과 같은 loss term을 추가하였다고 합니다.
  24. 다음으로 GAN의 성능을 평가하는 새로운 메트릭을 소개하고 있습니다. 서로 다른 GAN끼리의 결과를 사람이 일일이 비교하고 방대한 분량의 이미지를 조사해야 합니다. 따라서 자동화된 metric의 필요성이 요구되었습니다. 이때 large-scale의 mode collapse를 찾아내는 MS-SSIM이라는 Metric이 있습니다. 하지만 이 메트릭은 색상이나 텍스처의 다양성과 같은 작은 범위의 scale에선 반응을 하지 않았습니다. 또한 이미지 존재하는 방법들은 training set의 이미지와의 유사도 측면에서 이미지 퀄리티를 평가하는 것이 아니었습니다.
  25. 이때 Generator가 샘플을 제대로 만든다면 모든 scale에 걸쳐서 local image structur가 training set과 유사해야 할 것입니다. 따라서 저자들은 새로운 metric을 제안했는데요. 이 metric은 생성된 이미지와 타켓 이미지의 Laplacian pyramid representation에서 나온 이미지 조각의 분포 사이의 multi-scale의 통계적인 유사도를 고려합니다.
  26. 먼저 라플라시안 피라미드 representation이 알아보면 어떤 이미지가 있다고 할때 gaussian blur로 필터링한 이미지를 만듭니다. 그리고 이 가우시안 블러를 사용한 이미지와 원래의 이미지의 차이를 구합니다. 이게 피라미드의 하나의 층을 구성합니다. 그 다음으로 블러된 이미지를 다운샘플을 하여 크기를 줄이고 같은 원리를 적용하여 다음 층을 구하여 쌓은 것이 라플라시안 피라미드 representatio입니다. 하나의 Laplacian pyrami는 특정한 spatial frequency band에 대응된다고 합니다.
  27. 저자들은 랜덤하게 2의14승 개의 이미지를 샘플하여서 라플라시안 피라미드 각층에서 128개의 descriptor를 뽑아내었습니다. 따라서 한 층마다 2의 21개의 descriptor를 뽑은 것입니다. 이때 descriptor란 featrue를 의미한다고 보시면 됩니다. 주로 컴퓨터 비전에선 decriptor라는 표현을 쓰고 패턴인식에선 feature라는 표현을 쓰는 것으로 알고 있습니다. 각각의 descriptor는 7x7x3의 텐서라고 생각하시면 될 것 같습니다. 각 l번째 층에서 trainig set, 즉 groundtruth의 이미지 조각은 x로 나타내고 생성된 이미지는 y로 표기를 합니다.
  28. 이때 각 층의 x와 y간의 color channel에 대해 평균과 분산으로 정규화를 한 뒤에 둘 사이의 sliced Wasserstein distance를 계산하였다고 합니다. 따라서 SWD가 작다는 뜻은 이미지 조각들의 분포가 유사하다는 뜻이고 이는 해당 해상도에서 훈련용 이미지와 생성된 이미지의 외관과 다양성이 유사하다는 것을 뜻합니다. 가장 낮은 해상도인 16x16에서 뽑혀진 이미지 조각 사이의 거리는 large-scale의 이미지 구조가 유사함을 의미하게 됩니다.
  29. 다음으로 저자들이 실험한 결과에 대해서 설명 드리겠습니다. 저자들은 Improved WGAN에서 제시된 training configuration을 베이스라인으로 하여서 하나씩 자신들의 contribution을 더함으로 SWD값과 MS-SSIM값을 측정해냈습니다. 이때 loss functio은 Improved WGAN에서 제시된 WGAN-GP loss를 사용하였다고 합니다. 데이터셋은 celebA과 LSUN 침실 데이터셋에서 128x128 짜리 해상도를 사용하였습니다. 일부러 capacity가 낮은 네트워크 구조를 선택하고 10M개의 이미지를 discriminator에게 보여줄때까지 학습함으로 traing configuration간의 차이를 크게 유도하였습니다. 표1에선 SWD와 MS-SSIM의 값이 나와있는데요. MS-SSIM는 10K개 쌍의 생성된 이미지에서 평균을 내어서 계산했고 SWD는 앞서 말씀드린 방법대로 계산하였다고 합니다. 각각의 training configuration이 만들어내는 이미지는 위에 나온 이미지와 같습니다. 이때 분명히 configuration (h)가 (a)보다 더 좋은 이미지를 만들어내는데 MS-SSIM값은 거의 바뀌지 않았습니다. 왜냐하면 결과물 사이의 variation만 측정하고 training set과의 유사도는 측정하지 않아서입니다. 그렇기 때문에 MS-SSIM은 성능 평가를 하는데 상대적으로 좋지 못한 메트릭입니다. 반면에 SWD값은 확실히 이미지 결과물이 좋을 수록 SWD가 낮은 값을 나타내므로 좋은 메트릭이라고 할 수 있습니다.
  30. 여기 나온 사항들이 베이스라인이 되는 a 모델의 configuration입니다. 앞서 제한했던 것들을 미사용하고 He intializer를 사용 한뒤에 generato의 actiavation을 relu와 tanh로 바꾸고 batch normalization과 layer normalization을 사용하였습니다. 그리고 latent space는 128짜리를 사용하였습니다.
  31. 이건 각각의 configuration에 따라 만들어진 이미지를 더 많이 보여주는 그림입니다. b에서 progressiv를 적용해도 c에서 min batch 사이즈를 64에서 16으로 줄이자 이미지가 확실히 안좋게 나오는 것을 볼 수 있습니다. 그리고 d에서 hyper paremeter를 조율하고 batch norm과 layer norm을 제거함으로써 학습을 안정화시키자 좋은 결과가 나온 것을 볼 수 있습니다.
  32. e*에서 improved gan에서 제시되었던 minibatch discriminatio을 사용한 것이고 그냥 e에선 저자들이 제안한 minibatch stddev를 사용한 것입니다. 그런데 mini batch nor을 쓴 것은 메트릭적인 측면에서 보면 향상되지 않았지만 저자들이 제안한 minibatch stddev는 메트릭값이 향상된 것을 확인할 수 있습니다. 평균 SWD가 줄어듬을 볼 수 있습니다. 그리고 f와 g에서 남은 contribution을 사용하자 SWD가 줄어드는 것을 볼 수 있습니다.
  33. 이 그림은 progressive growin을 적용했을 때의 효과를 보여줍니다. a는 gularajani에서 progressive를 적용하지 않은 것이고 오른쪽은 progressive를 적용한 결과입니다. 훨씬 좋은 optimum에 수렴하고 거의 2배 단위로 전체 training 시간이 줄어드는 것을 볼 수 있습니다. 그래프 왼쪽에 SWD값이 b에서 더 낮은 것을 볼 수 있고 그래프 기울기가 더 가파르니깐 더 빠른 속도로 수렴했습니다. c에서는 training speed가 progressiv를 적용했을 때 더 빨리 진행되는 것을 보여줍ㅂ니다. 예를 들어 60시간에 progressiv는 60시간만에 1024짜리까지 와서 약 600만장의 이미지가 처리된 것을 볼 수 있습니다. 반면에 그냥 고정된 레이어는 100백만장도 다 처리하지 못한 것을 볼 수 있습니다. non-progressive는 똑같은 양을 처리하기 위해선 520시간이 걸린다고 추정할 수 있고 따라서 5.4배의 speed up 효과를 얻을 수 있다고 볼 수 있습니다. 이렇게 된 이유는 progressive growin이 없다면 generato와 discriminator는 large-scale variatio과 small-scale detai에 대한 representatio을 동시에 찾아야 합니다. 그렇지만 progressive growin이 있으면 현재 존재하는 저해상도 레이어는 일찍 수렴하고 네트워크는 새로운 레이어가 추가되었을 때 조금만 늘어난 scale에 대한 representatio만 개선되기 때문입니다.
  34. 다음으로 Celeb HQ 데이터셋을 사용해서 Progressive GAN 에서 만든 이미지입니다. 이때 celeb HQ 데이터셋은 저자들이 celebA 데이터을 이용하여 직접 만든 1024x1024짜리 고해상도 이미지 데이터셋입니다. 총 30K개의 고해상도 이미지를 통해 학습하였고 4일동안 8개의 테슬라 GPU를 돌려서 학습시켰다고 합니다. 여기서 만든 이미지는 모두 WGAN-GP loss를 사용한 이미지이고 제일 앞에서 말씀 드렸듯이 LSGAN loss를 사용해서도 이미지를 만들수 있습니다.
  35. 여기 그림은 생성된 이미지와 trainin에 있는 실제 이미지와 가장 가까운 nearest neighbor을 보여줍니다. 일부러 비슷한것을 찾았기 떄문에 비슷 해보이기는 하지만 세부적인 디테일과 여러 scale에서 봤을 때 확실히 다른 이미지를 만들었음을 알 수 있습니다.
  36. 이 그림은 LSUN 데이터셋을 통해서 순수히 시각적으로 퀄리티가 얼마나 더 뛰어난지를 비교한 것입니다. 보면 progressive GAN의 결과가 더 깔끔하고 고해상도인것을 알 수 있습니다.
  37. 이건 LSUN에 있는 다른 카테고리에 있는 이미지를 합성한 것을 보여줍니다. 몇몇 카테고리에선 다른 모델이 좋았지만 전반적으로 Progressive GAN의 결과가 더 좋았다고 합니다.
  38. 마지막으로 CIFAR 10 Inception score에서 저자들은 celebA 데이터셋을 이용했던 네트워크와 똑같은 training configuratio에서 unsupervised settin으로 최고점인 8.80을 찍었다고 합니다. 이전에 최고점은 Splitting GAN이 달성한 7.90입니다. 이때 유일하게 수정한 부분은 progression 최대 해상도를 CIFAR10의 데이터셋의 해상도인 32x32로 제한하고 WGAN-GP의 regularization term의 gamma값을 엄청 크게 하는 trick을 사용했다고 합니다. https://www.youtube.com/watch?v=G06dEcZ-QTg&feature=youtu.be