본문 바로가기

Research Review

[MultiModal] StyleGAN

 

📍 본 논문에서는 기존의 GAN들과는 다르게 generator architecture에 초점을 맞춘 새로운 네트워크를 제시한다.

특히 style-transfer에서 주로 사용되던 AdaIN을 최초로 generator architecture에 도입했다. ProGAN의 아이디어를 가져와 progressive growing training을 함으로써 다른 스케일들에서 이미지의 스타일을 컨트롤할 수 있다.

기존 GAN 구조는 필연적으로 entanglement할 수밖에 없음을 다시 확인해주며 disentanglement를 재정의하고, 좋은 latent space란 무엇이고, 이를 어떻게 이해하면 될 지에 대한 답을 제시한다.

 

 

 

  • StyleGAN Style-based generator를 사용한 GAN구조
  • generator를 제외한 다른 부분(discriminator&loss)은 대체로 PGGAN의 구조를 그대로 사용
  • PGGAN → 학습과정에서 layer를 추가하는 방식의 고해상도 이미지 생성 GAN model

 

📌 Mapping Network

  • latent code로부터 이미지가 생성되지 않고 constant input으로부터 이미지 생성
  • latent code로부터 스타일을 만들어 이미지 생성과정에 주입시킴으로써 새로운 이미지 생성
  • 먼저 mapping network를 통해서 latent code z를 intermediate latent code인 w로 바꿔주게 될 경우, entanglement한 latent space Z가 아니고 좀 더 data distribution에 가깝고 disentanglement한 latent space W로부터 생성되므로 더 좋은 이미지 샘플들을 얻을 수 있고 high-level attributes의 seperability또한 얻을 수 있음

 

 

📌 AdaIN

  • style-transfer를 위한 Normalizaton Method
  • content 이미지 x에 style 이미지 y의 스타일을 입힐 때 사용하는 normalization

 

 

📌 Noise Injection ( stochastic variation )

  • stochastic 한 특성을 가지는 부분들이 생성된 fake image의 identity나 인지적인 특성에 영향을 주지 않고 randomness를 가지고 바뀌게 함으로써 생성되는 이미지의 사실성/다양성 증대
  • Stochastic variation → 머리카락 배치, 모공, 주근깨 같이 아주 세밀하고 때에 따라 달라지는 특징 Noise추가는 stochastic variation에만 영향을 주고, Styleblock과 AdaIN으로 만드는 high-level attribute에는 영향X
  • 일반적인 generator들에서는 stochastic variation을 네트워크가 학습하도록 했음 즉, 생성되는 이미지의 randomized aspects들의 randomness를 generator network가 구조적으로 이미지를 만드는 것을 학습함과 동시에 사실성과 다양성을 위한 randomness또한 학습해야 했던 것 저자들은 이럴 경우 network capacity또한 불필요하게 소모되고, 생성된 이미지에서 반복적인 패턴처럼 보이도록 randomness를 패턴처럼 잘못 학습할 수도 있기에 적절하지 못하다고 생각

 

📌 Constant Input

  • synthesize network의 input
  • StyleGAN이 Train되는 과정에서는 learnable하게 학습되고, Test(혹은 generation) 과정에서 새로운 이미지를 생성해낼 때는 고정되어 있는 값이기에 Constant Input이라고 명명됨 즉, generation과정에서 고정된 c만을 사용하기에 learned constant input이라고 함
  • random한 noise에서 시작하는 것보다 contant에서 시작하는 것이 더욱 성능이 좋았음
  • learnable input을 넣어줌으로써 네트워크가 학습하면서 이미지를 생성함에 있어서 일종의 initalizatoin을 학습해 constant c를 구축, generation 과정에서 고정해서 사용

 

 

 

📌 Progressive Growing

  • pggan의 메인 아이디어
  • low resolution image부터 학습을 시작해서 progressive하게 layer를 추가해가면서 resolution을 올려가며 학습을 해나감으로써 학습이 안정적이고, 고해상도 이미지를 잘 만들어내게 됨
  • 낮은 resolution의 layer에서는 얼굴형이나 피부색, 머리 스타일 같은 대략적인 특징을 만들고, 높은 resolution으로 갈 수록 머리 색이나 세부적이고 세밀한 특징 생성
  • synthesis network = 'AdaIN + Progressive GAN'

 

📌 Style Mixing

  • localization → style의 특정 subset을 변경하는 것이 이미지의 특정 부분을 변경하는데 효과 즉, layer의 특정한 부분을 바꾸는 것이 이미지 어떤 부분을 바꾸는 것에 영향
  • 서로 다른 이미지를 생성해내는 intermediate latent vector w1과 w2를 특정 level ( crossover point)을 기준으로 이전까지는 w1의 style정보를 이후부터는 w2의 style정보를 넣어 이미지를 생성하도록 학습시키는 것
  • 인접한 두 level의 style간의 correlation이 생기는 것을 막도록 하는 일종의 Regularization을 해줌으로써 localization이 개선되고 실제로 FID에서도 성능적 향상을 보였음
  • 학습 과정에서 mixing 사용 → mixing regularizatoin test 과정에서 mixing 사용 → style mixing

 

📌 Disentanglement

  • 기존 GAN → 학습 데이터의 분포를 따르도록 학습 학습 데이터에서 보기 힘든 데이터들을 잘 생성해내지 못하고, 데이터셋 및 입력 잠재 분포로부터 featrue가 완전히 disentangled하게 학습할 수 없음
  • 저자들이 재정의한 Disentanglement → 'latent space가 하나의 variation factor를 컨트롤할 수 있는 linear subspace들로 구성된 상태’
  • 기존의 Z-space를 non-linear mapping을 학습하는 Mapping Network를 통해서 기존의 학습 데이터 분포의 density를 더 잘 반영하고 variation factor가 더 linear하게 움직일 수 있는 W-space로 mapping

 

 

 

 

 

 

Reference

[Paper Review] StyleGAN : A Style-Based Generator Architecture for Generative Adversarial Networks (1)

[Code Review] StyleGAN : A Style-Based Generator Architecture for Generative Adversarial Networks (2)

[논문리뷰]StyleGAN : A Style-Based Generator Architecture for Generative Adversarial Networks

[GAN 시리즈] StyleGAN 논문 리뷰 -1편