-
StyleGAN(A Style-Based Generator Architecture for Generative Adversarial Networks)논문 리뷰/Generative Model 2024. 7. 27. 20:45
오늘은 2019년 CVPR에 게재된 StyleGAN 논문 리뷰를 해보고자 한다. 처음엔 논문 자체가 어렵게 적혀 있어 이해하기 힘들었는데, 나동빈님 유튜브를 보고 훨씬 쉽게 이해했다. 설명을 정말 잘하셔서.. 논문을 한 번 읽고 이 강의를 들으면 클리어하게 정리될 것이다!!
이 논문을 리뷰하기에 앞서 논문의 퍼포먼스를 먼저 살펴보자.
초고해상도의 사진 샘플들을 생성한 결과로, 여기 있는 모든 인물들은 실존 인물이 아니다! 얼굴의 주름, 표정, 배경 등에 이질감이 전혀 느껴지지 않고 뒤에서 살펴보겠지만 StyleGAN으로 인종, 머리색, 안경의 유무 등을 컨트롤 할 수 있다..!
논문이 다소 테크니컬하게 적혀있다고 생각할 수 있으나, 아이디어 위주로 보면 또 이해 못할 내용도 아닌지라, 나동빈님 유튜브와 함께 이해하는 것을 추천한다.
Abstract
Abstract부터 먼저 살펴보자. 이 논문은 기존 style transfer에서 아이디어를 일부 차용했으며, StyleGan은 사람의 얼굴이나 포즈 등의 중요한 high-level attribute와 주근깨, 머리카락이 흩날리는 정도인 stochastic variation을 구분해 어느정도 컨트롤할 수 있게 학습했다. 이 논문에서는 intermediate latent space를 이용해 latent space의 entanglement를 해소하고자 하였으며, 이를 통해 각각의 특성을 개별적으로 변경하는 것이 가능하게끔 했다. 또한 interpolation quality와 disentanglement를 측정하는 두 가지 척도(Perceptual path length와 Linear separability)를 제시하였으며, FFHQ라는 고해상도 사람 얼굴 데이터셋을 새롭게 제시했다.
Introduction
StyleGAN의 아이디어는 style transfer literature(X. Huang and S. J. Belongie. Arbitrary style transfer in real-time with adaptive instance normalization)에서 기인한다. 읽어보진 않았지만 "style"이라는 단어를 처음 쓴 논문이라서 이 논문에서 용어를 가져왔다고 하는게 아닌가 싶다.
StyleGAN은 여러가지 다양한 아이디어들을 포함하는 논문인데, 주요 아이디어는 다음과 같다.
- 학습된 상수 input을 입력으로 넣고, style을 입혀서 그림을 생성한다. (high-level attribute를 결정)
- noise를 따로 주입하므로써 stochastic variation을 결정
- 학습된 상수 input은 intermediate latent space를 걸쳐 가게 된다. 기존에는 input이 주어진 확률분포를 따르도록 강제했기 때문에 entanglement가 발생했는데, 이를 intermediate latent space로 옮김으로써 제약을 없애고 disentangled되도록 할 수 있기 때문이다.
- 기존의 방법론으로는 disentanglement를 측정하기 적절치 못하므로 perceptual path length(줄여서 PPL)과 Linear separability를 제안한다.
- 추가적으로 고해상도의 사람 얼굴 셋 FFHQ(Flickr-Faces-HQ)를 배포하였다.
Style-based generator
앞서 설명했듯이, StyleGAN에서는 latent code를 그대로 넣지 않고 latent space $Z$에서 intermediate latent space $W$로 가는 매핑 $f$를 정의해 intermediate latent vairable을 네트워크에 주입한다. 여기서 $F$는 8-layer MLP이며 매핑 $f$를 통해 결정된 $w$를 A라고 표시된 Affine transform에 주입하므로써 style $y = (y_s, y_b)$를 생성한다.
style은 AdaIN(Adaptive Instance Normalization)을 결정하며, AdaIN operation은 아래와 같이 정의된다.
여기서 content $x$는 normalized되며, style $y$에 의해 scale과 biase가 결정된다.
기존의 style transfer과 다르게, StyleGAN에서는 $y$를 샘플 이미지가 아닌 $A(w)$로 부터 구했으나 앞선 연구들에서 'style'이라는 단어를 이용해 선행 연구들을 진행했기 때문에 이 논문도 StyleGAN이라고 이름 붙였다. AdaIN을 사용한 이유는 별 이유 없이 잘 작동해서인 것으로 보인다.
intermediate latent vairable $w$와 함께 StyleGAN에서 중요한 input은 바로 'noise'이다. 여기서 noise는 uncorrelated Gaussian noise인 single-channel image로 각각의 layer에 주입하였으며, stochastic variation을 결정한다.
Quality of generated images
A에서 시작해서 B~F의 아이디어를 얹어 실험을 진행하였다.
A. Baseline Progressive GAN
B. + Tuning(include bilinear up / dowm)
C. + Add mapping and styles
D. + Remove traditional input
E. + Add noise inputs
F. + Mixing regularization
(A) StyleGAN은 ProgressiveGAN이라는 고해상도 이미지 샘플링에 아주 탁월한 성능을 보이는 모델을 baseline으로 아이디어를 하나씩 더해가며 성능을 실험해보았다.
* Progressive GAN은 저해상도에서 고해상도로 해상도를 점진적으로 증가시키는 모델로 아래 그림에서 진한 파란색으로 표시했다시피 layer의 해상도가 점점 올라가 4^2에서 1024^2까지 올라가도록 설계되어 있다.
(B) A에 더하여 bilinear up/downsampling operation, longer training, and tuned hyperparameters을 실행하며
(C) A, B에 더해 AdaIN 구조를 더하여 style을 고려할 수 있도록 하였으며
(D) A, B, C에서 input을 intermediate latent space로 보낼 수 있도록 하였다.
(E) noise input을 추가하므로서 stochastic variation을 고려할 수 있게 하였으며
(F) mixing regularization을 통해 이웃한 style들을 의존성이 낮아지게끔 학습하였다.
각 단계에서의 FID 값(GAN의 성능을 측정하는 지표의 일종으로 낮을수록 좋다)이 다음과 같이 주어지며, StyleGAN에서 나온 아이디어를 많이 사용할수록 FID가 낮아지는 것을 알 수 있다.
* StyleGAN에서 loss function은 WGAN-GP의 loss function을 사용했으며, 데이터셋에 따라 R1 regularization을 추가하기도 하였다.
Properties of the style-based generator
StyleGAN에서는 scale-specific modification으로 이미지를 합성할 수 있다. 각각의 style은 네트워크에 국한되어 있으며(localized), 특정 스타일을 수정하면, 이미지의 일부 특성만 수정할 수 있다. 이러한 특징은 우리가 원하던 특성인데, 기존 연구에서는 일부 스타일만 변경하고 싶어도, 다른 부분까지 변경되어 원하는 이미지를 얻지 못했기 때문이다.
(예를 들어 기존 이미지에 안경만을 추가하고 싶었지만, 안경을 추가하면서 추가적으로 얼굴의 변형이 생김)
이러한 localization은 AdaIN operation 덕분에 얻을 수 있는데, 각각의 content를 normalized한 뒤 style을 입히는 방식으로 동작하는 AdaIN은 normalization으로 인해 기존 content값이 아닌 style의 값에 의존하도록 한다.
Mixing Regularization
style의 localization을 위해 StyleGAN에서는 추가로 Mixing Regulaization을 수행한다. Mixing regularization은 일정 비율의 이미지를 하나의 latent code 대신 두 개의 random latent code를 사용하는 방식이다. 우리는 $z_1$과 $z_2$를 선택해 intermediate latent variable $w_1$, $w_2$를 얻고, 네트워크의 랜덤한 지점을 선택해 이전 지점에서는 $w_1$으로, 이후 지점에서는 $w_2$로 스타일이 정해지도록 한다.(이 방법은 style mixing이라고도 부른다) 이 기법은 네트워크가 인접한 스타일이 상관관계가 있다고 가정하는 것을 방지하도록 한다.
Stochastic variation
사람의 얼굴 중 머리카락의 위치, 주근깨, 모공 등은 stochastic하다고 여겨질 수 있다. 얼굴의 본질적인 모습은 바꾸지 않으면서, 사람 얼굴에서 stochastic한 feature는 randomized하기 위해 StyleGan에서는 noise를 주입한다. 전통적인 생성자는 단일 입력에 대해 이러한 stochastic한 부분을 만들기 위해 노력했으나, 실패하였다. StyleGAN에서는 per-pixel noise를 매 convolution마다 주입하므로써 이러한 문제를 극복했다.
저자는 이러한 stochastic variation에 노이즈가 관여하는 현상에 대해 다음과 같이 설명한다.
We find it interesting that the effect of noise appears tightly localized in the network. We hypothesize that at any point in the generator, there is pressure to introduce new content as soon as possible, and the easiest way for our network to create stochastic variation is to rely on the noise provided. A fresh set of noise is available for every layer, and thus there is no incentive to generate the stochastic effects from earlier activations, leading to a localized effect.
각 레이어에서 새로운 노이즈 세트가 제공되기 때문에 이전에 활성화된 구간에서 stochastic한 부분을 생성할 이유가 없어 noise가 stochastic variation에 관여하게 된다는 설명이다.
Disentanglement studies
우리는 latent space가 disentangle되기를 바라는데, 이는 latent space가 linear subspaces로 이루어지 있으며, 각각의 linear subspaces들은 variation의 한 파트를 결정하기를 바란다. 우리는 intermediate latent space $W$가 fixed distribution에 얽매어 있지 않도록 ('unwarp') 학습되었으면 한다. 실제로 생성자의 학습도 $W$ space를 unwarp하는 방향으로 학습되는데, 생성자 역시 그럴싸한 이미지를 학습하기 위해서는 disentangle representation을 이용하는 것이 더 유리하기 때문이다.
이 논문에서는 disentanglement를 측정하기 위해 2가지 척도 Perceptual path length와 Linear separability를 제안한다.
Perceptual path length
latent space의 두 포인트의 내분점은 양 끝 포인트의 특징을 적절하게 가지고 있을 것이라고 생각하기 쉽지만 실제로는 그렇지 않다. 내분점의 위치에 따라 이미지가 급격하게 변화하기도 하고, 양 끝 점에는 없던 새로운 특징을 포함하기도 한다. 이는 latent space가 entangle되어 있다는 말로 각각의 variation의 factor들이 완전히 분리되지 못하고 혼합되어 있다는 것을 의미한다.
이 논문에서는 latent space의 내분점의 변화에 따라 이미지가 얼마나 빠르게 변화하는지를 측정하기 위해 perceptual path length라는 개념을 제안한다. 직관적으로 적게 굴곡진 laent space가 많이 굴곡진 latent space에 비해 smooth한 변화를 가져올 것이라고 기대한다.
정의는 위와 같고, 여기서의 distance $d$는 perceptually-based pairwise image distance로 VGG16 모델을 사용한다. $z_1, z_2 ~ P(z)$, $t ~ U(0, 1)$이고, G는 생성자이며 $slerp$는 spherical interpolation을 의미한다.($lerp$는 linear interpolation을 의미한다.) 여기서 ${\epsilon}^2$로 나눠준 이유는 metric $d$가 quadratic이기 때문이며, expextation을 위해 1000개의 샘플을 계산한다.
$l_W$는 $W$ space가 $Z$ space와 달리 normalized되어 있지 않기 때문에 spherical interpolation 대신 linear interpolation을 수행한다는 점과 $W$ space에서 수행된다는 점을 제외하고는 차이가 없다.
Linear separability
linear separability는 latent space의 포인트들이 두 개의 명확한 집합으로 얼마나 잘 분리될 수 있는지를 측정하여, 각각의 집합이 이미지의 특정 이진 속성에 대응하도록 한다.
생성된 이미지에 라벨을 생성하기 위해, 우리는 보조적인 classification netowkr를 학습시켰으며, classifiers는 discriminator와 동일한 구조를 가지고,CELEBA 이미지셋으로 학습되어 40가지의 속성을 분류할 수 있도록 하였다.
각 속성에 대해 우리는 latent space point(또는 $W$ space point)를 기반으로 SVM을 통해 포인트를 분류하고, entropy $H(Y|X)$를 계산한다. 여기서 $X$는 SVM이 예측한 클래스이고, $Y$는 classifier의 예측한 클래스이다. 이는 샘플이 초평면의 어느 쪽에 위치하는지를 알았을 때, 샘플의 실제 클래스를 결정하기 위해 필요한 추가 정보의 양을 나타낸다. 낮은 값은 해당 latent factor에 대한 latent space direction이 일관적임을 시사합니다.
마지막으로 separability score를 $exp(\Sigma_{i}(H(Y_i|X_i))$를 계산한다. 여기서 $i$는 40개의 속성을 나타낸다.
'논문 리뷰 > Generative Model' 카테고리의 다른 글