Machine Learning, Deep Learning

A Style-Based Generator Architecture for Generative Adversarial Networks (StyleGAN)

n.han 2021. 9. 9. 23:32

Karras, Tero, Samuli Laine, and Timo Aila. "A style-based generator architecture for generative adversarial networks." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019.

의 내용을 다른 논문/포스트들의 내용을 참조하여 덧붙이고 설명한 글 입니다.

1. Introduction&Motivation

1.1 GAN [1]
GAN(generative adversarial network)은 Goodfellow가 2014년에 제안한 머신러닝 프레임워크로, 두 네트워크가 서로 경쟁해가며 학습하는 Generative model.

GAN 구조. 출처: https://developers.google.com/machine-learning/gan/gan_structure

Generator는 꽤 그럴듯한 데이터를 만들도록 학습하고, Discriminator는 Generator가 생성한 가짜 이미지와 실제 이미지를 구별하는 능력 배양할 수 있도록 학습.

  • GAN 학습 과정. 출처: https://developers.google.com/machine-learning/gan/gan_structure

1.2. GAN의 한계와 StyleGAN의 Motivation
그러나 GAN은 black box처럼 Latent space의 성질과 이미지 생성 과정을 이해하기 어려움. 이 한계를 극복하고자, StyleGAN이 제안. StyleGAN은 이미지 생성 과정(Image synthesis process)를 제어할 수 있을 뿐만 아니라, latent space가 disentangled되는 효과가 있음.

2. Architecture

Style-based generator의 구조

StyleGAN과 GAN 과의 핵심적인 차이는 generator에 있음. 일반적인 generator는 latent z이 입력되고 upsample되며 이미지가 생성. StyleGAN의 generator는 latent z가 Mapping network를 거쳐 disentangle한 w를 만들고, Synthesis network에서 초기 constant tensor가 upsampling 되가면서 주입되는 AdaIN/Noise을 통해 Style이 입혀지는 구조. 

2.1. AdaIN [2]

Adapative Instance Normalization(AdaIN)은 Style Transfer Network에서 이미지의 Style을 변경하는데 활용. 

AdaIN을 활용한 Style Transfer Network

이미지의 Latent space에서 Transfer를 원하는 Style의 latent code와 AdaIN을 수행. 구체적으로 content input x와 style input y를 받고, x의 평균과 분산을 y의 평균과 분산으로 맞춰줌.

AdaIN 연산
Style Transfer Network에서 생성한 이미지 예제

2.2. Latent mapping/disentanglent

Mapping network는 input vector를 disentangled 되게 하여, visual feature들을 control하는데 그 목적이 있음. 전통적인 generator에서는 특정 분포(예를 들어 Gaussian)에서 sampling된 latent z가 generator로 직접 입력됨.

Generator의 입력과 loss. 출처: https://jonathan-hui.medium.com/gan-wasserstein-gan-wgan-gp-6a1a2aa1b490

그 과정에서 training set의 visual feature들이 input space에 얽히며 mapping(entanglement)되어, visual feature를 control할 수 있는 능력이 제한. 예를 들어 training set의 인물들이 대부분 검은 머리라면, 갈색 머리의 인물 이미지를 생성하기가 어려움(b). 그러나 Mapping network를 활용하면 intermediate latent vector w가 training set의 distribution에 제한되지 않아 자유롭게 Mapping되어 feature들이 disentanglement되는 효과가 있고, feature control 능력이 향상됨(c).

2.3. Stochastic variation

얼굴의 주름, 머리카락과 같은 세부적인 시각적 특징들은 생성한 이미지를 더 사실적이고 다양하게 만듦. 이런 stochastic한 특징들을 만들기 위해 GAN의 인풋 벡터에 노이즈를 더할 수 있지만, GAN의 Visual feature들이 entanglement되는 현상에 의해 여러 특징에 영향을 주게 됨. StyleGAN에서는 AdaIN과 비슷하게 노이즈를 더 함으로써, 각 레벨에서 더해지는 스타일에 약간의 Variation을 주게 됨.

 

3. Training techniques

3.1. ProGAN(PGGAN) [3]

StyleGAN은 ProGAN의 아이디어를 차용하여 고해상도의 이미지를 생성. GAN은 고해상도(1024X1024)의 이미지를 생성하기 어려움. 이에 ProGAN 연구진은 저해상도의 이미지(예를 들어, 4X4)부터 학습하고, 더 높은 해상도를 위한 Layer를 더한 후 그 다음으로 높은 해상도의 이미지를 학습하는 과정을 반복.

ProGAN Architecture. 출처: https://towardsdatascience.com/explained-a-style-based-generator-architecture-for-gans-generating-and-tuning-realistic-6cb2be0f431

이런 Progressive한 학습 방식을 통해 저해상도의 이미지에서 기반이 되는 feature들을 학습하고, 점차 디테일한 feature들을 학습해나감으로써 고해상도의 이미지를 생성할 수 있었음.

이미지 해상도를 높여가며 학습해나가는 과정. 출처: https://towardsdatascience.com/explained-a-style-based-generator-architecture-for-gans-generating-and-tuning-realistic-6cb2be0f431

3.2. Mixing regularization/Style Mixing

Synthetic network의 각 level에서는 intermediate latent vector w를 사용하는데, 이는 network의 level들이 correlate되는 현상을 야기할 수 있음. 이를 개선하기 위해 둘 이상의 w를 생성하고, Progressive한 학습 과정에서 임의의 layer가 더해질 때 w를 교체하는 Mixing regularization을 활용. 예를 들어 4^2-8^2의 Resolution image를 학습할 때는 w1를, 16^2-32^2는 w2를, 나머지는 w3를 활용하여 학습.

방식은 모든 데이터셋에서 성능 향상을 보이지 않지만, 매우 흥미로운 예상치 못한 효과를 보입니다. 아래 비디오에서 보이는 것처럼 여러 이미지를 논리적으로 조합하는 능력입니다.  이 모델은 A에서 낮은 수준의 특징을, B에서 높은 수준의 특징을 가져와 조합해 이미지를 생성합니다. 왼쪽의 세 사진를 생성할 때 사용한 서로 다른 w 벡터를, style mixing(해상도 별로 스타일 벡터를 다르게 주어서)하면 세 이미지의 스타일을 모두 가진 오른쪽과 같은 사진이 탄생하게 됩니다.
출처: https://comlini8-8.tistory.com/11 [컴린이 탈출기 ver 2.0 ٩( ᐛ )و]

https://www.youtube.com/watch?v=kSLJriaOumA

3.3. Truncation trick in W

생성되는 이미지들의 variation을 줄여 품질을 향상 시키거나, variation을 높여 다양한 이미지가 생성되도록 조절. 학습이 종료된 후 intermediate vector들을 평균하여 학습 데이터의 일반적인 특징들을 가진 이미지를 생성할 수 있는 w_avg를 찾음. 새로운 이미지를 생성할 때 w를 w_new = w_avg + ψ(w-w_avg)로 변환. ψ의 절대값이 작을수록 평균적인 이미지를 생성하고, 생성되는 이미지들의 variation이 줄어듦. ψ가 음수로 값이 작아질수록 w로 생성되는 이미지와 반대되는 이미지가 생성.

4. Results

CelebA, FFHQ로 FID 테스트 결과.

FID는 Generative model의 성능 평가 지표로, 생성된 이미지들의 feature 분포와 학습 이미지들의 feature 분포 간 거리를 계산. 이미지의 feature를 추출하는 네트워크로 보통 inception v3를 활용. 분포 간 거리 계산으로 feature의 평균, 공분산을 계산하여 두 정규 분포 간 Wasserstein distance를 측정.

FID 계산

References

[1] Goodfellow, Ian; Pouget-Abadie, Jean; Mirza, Mehdi; Xu, Bing; Warde-Farley, David; Ozair, Sherjil; Courville, Aaron; Bengio, Yoshua. "Generative Adversarial Nets." Proceedings of the International Conference on Neural Information Processing Systems (NIPS 2014). pp. 2672–2680.

[2] Huang, Xun, and Serge Belongie. "Arbitrary style transfer in real-time with adaptive instance normalization." Proceedings of the IEEE International Conference on Computer Vision. 2017.

[3] Karras, Tero, et al. "Progressive growing of gans for improved quality, stability, and variation." arXiv preprint arXiv:1710.10196 (2017).