Post

[Paper Review] StarGAN

StarGAN 논문 리뷰

About Code

English Ver

초록

  • 최근 연구들은 2개의 도메인에서 이미지 변환에 효과적인 성능을 보였지만, 3개 이상의 도메인을 다루는 접근에서는 한계를 보였다.
  • 이를 해결하기 위해하나의 모델을 사용하며 다중 도메인에 대한 이미지 변환을 수행하는 StarGAN을 제안한다.
  • 하나의 네트워크에 있는 여러 도메인에, 여러 데이터셋(RaFD, CelebA)을 학습시킴
  • 이로써 입력 이미지를 원하는 도메인으로의 유연한 변환을 수행

1. 서론

  • 다른 두 도메인의 학습데이터로 a 에서 b로 변환하는 학습을 수행
  • 이미지에서 여러 도메인 추출(머리색, 성별, 나이 등)
    • CelebA : 머리색, 성별, 나이 등을 추출
    • RaFD : 행복, 분노, 슬픔 등과 같은 감정 도메인 추출
  • RaFD로 학습하여 CelebA 이미지에 표정을 바꾸기 위해 두 데이터셋을 함께 학습

IMG_E790BB5F1968-1

  • 기존의 모델은 여러 도메인 간의 변환이 비효과적이며 비효율적이었다.
    • k개의 도메인이 존재할 경우 k(k-1)개의 generator를 학습시켜야 했기 때문
    • 각 generator는 전체 데이터셋을 모두 활용하지 못함
  • StarGAN은 하나의 generatordp 여러 도메인 간의 매핑 즉, 연결 자체를 학습
    • 2개의 이미지와 도메인 정보를 입력하면 대응하는 도메인간의 변환을 학습
    • 필요없는 레이블은 무시, 데이터셋에서 추출한 특정 레이블만 학습
  • GAN (Generative Adversarial Networks)
  • Conditional GANs
  • Img-to-Img Translation (CycleGAN)
    • 하나의 모델에 두 도메인 간의 관계만 학습

3. Star Generative Adversarial Networks

3 - 1. Muti-Domain Image-to-Image Translation

  • 다중 도메인 간 매핑을 하나의 G(generator)에 학습시키는 것이 목표
  • 입력 이미지 x, 출력 이미지 y, 목표 도메인 레이블 c : [G(x, c) -> y]
  • c 를 랜덤으로 생성해서 G가 유연하게 이미지를 변환할 수 있음
  • 하나의 D(discriminator)가 여러 도메인을 control할 수 있도록 보조적인 분류기가 존재
  • D : x → {Dsrc(x), Dcls(x)}.

Adversarial Loss

IMG_57FC6DAEAC7A-1

  • G는 loss 를 최소화하려하고, D는 이를 최대화하려고 한다.

Domain Classification Loss

  • G(x,c)로 생성된 이미지가 c로 분류되도록 하기 위해, D 맨 위에 classifier 추가
  • real Img의 도메인 분류 손실을 사용하여 D를 최적화

IMG_DD09A5BA8DC8-1

  • real Img의 도메인 분류 손실을 사용하여 D를 최적화
  • D cls(c′|x)는 D가 계산한 도메인 레이블의 확률 분포
  • D 는 이 loss 를 최소화함으로서 (real Img인 x, 레이블 c’)을 분류하는것을 학습

IMG_F4ECA0F27C1F-1

  • G는 생성한 이미지가 target 도메인인 c로 분류되게끔 하기 위해 이 loss를 최소화한다.

Reconstruction Loss

  • 위 loss를 최소화 한다 해도, 입력된 이미지에서 변환된 도메인을 제외하고 보존하는 것에 어려움이 있음

IMG_72F4C97DFD50-1

  • cycle consistency(순환 일관성) loss 적용
  • G에 변환된 이미지 G(x, c)와 원본 도메인 c’을 입력 → 원본이미지 재구성
  • 총 G를 2번 사용 (원본 → 변환된 이미지 → 원본 재구성)

Full Objective

  • optimize Fuctions of G and D

IMG_4F814845022B-1

  • λcls 와 λrec 는 분류, 재구성 손실에 영향을 주는 하이퍼 파라미터
  • λcls 는 1, λrec 는 10 사용

3 - 2. Training with Multiple Datasets

  • CelebA에는 머리색과 같은 속성이, RaFD에는 표정 속성이 있음
  • 이와 같은 다중 데이터셋에서는 G(x, c)에서 재구성할 때 필요한 c’레이블이 필요하기 때문에 문제가 생김

Mask Vector

  • make vector를 도입, 불특정한 레이블을 무시하고 명시된 레이블에 집중

mask_vecotr

  • c는 i번째 dataset의 레이블 벡터를 의미

Training Strategy

  • 다중 dataset을 학습할 때, domain 레이블은 mask vector로 정의하여 G에 입력
  • G의 구조는 하나의 dataset으로 학습하는 것과 다를바 없음
  • 모든 dataset의 확률분포를 만들기 위해 D의 보조 분류기를 확장
  • D가 특정 레이블에 대한 classification error를 최소하하는 과정을 통해 학습
    • CelebA 이미지로 학습을 진행할 때, D는 CelebA에 존재하는 label의 classification loss를 최소화
  • RaFD와 CelebA를 교대로 학습 진행 -> 모든 레이블 학습

4. Implementation

Imporve GAN Training

image

  • 위 수식으로 정의된 gradient penalty를 사용하는 Wasserstein GAN 사용

Network Acchitecture

  • CycleGAN에서 채택된 StarGAN의 Generator 네트워크 구성
    • convolutional layer (stride size : 2) -> downsampling
    • Residual Block of 6
    • transposed convolutional layer (stride size : 2) -> upsampling
  • G에만 표준화 적용

5. Experiment

5.1. Baseline Models

  • DIAT - image-to-image transform (2 domain)
    • 두 domain Img인 X, Y의 매핑을 학습
    • |x - F(G(x))| 로 매핑한 정규화를 통해 원본 Img의 특징 보존
  • CycleGAN - image-to-image transform (2 domain)
    • G(x)를 다시 G에 입력하여, 원본 이미지와의 손실 측정
  • IcGAN - cGAN에 기인
    • 매핑 G : {z, c} → x 에서 역매핑 Ez : x → z 및 Ec : x → c 역시 학습
    • 잠재 벡터를 보존하면서 조건 벡터만 변경하여 이미지를 합성

5.2. Datasets

  • CelebA
    • 유명인사의 얼굴 데이터의 7가지 domain
    • 머리색 (black, blond, brown), 성별, 나이
  • RaFD
    • 참여자들의 8가지 표정 데이터 수집

5.3. Training

  • Optimizer : Adam
  • batch size : 16
  • CelebA
    • learning rate : (epoch) (0 ~ 10) 0.0001, (11 ~ ) 0까지 점차 감소
  • RaFD
    • learning rate : (epoch) (0 ~ 100) 0.0001, (11 ~ ) 0까지 점차 감소
  • GPU : NVIDIA Tesla M40

5.4. Experimental Results on CelebA

  • DIAT, CycleGAN과 같은 교차 도메인 모델을 label의 모든 쌍을 학습시킴
  • 평가
    • 고정된 변환을 학습 하는 대신, StarGAN은 target 도메인에 대한 label에 따라 유연하게 변환할 수 있도록 학습
    • 다른 r교차 도메인들 보다 성능 Good
    • IcGAN보다 얼굴의 정체성을 유지
      • 합성곱 layer에서 활성화된 맵을 latent representation 로 저장하기 때문
      • latent repesentation : 이미지에서 발견된 특징들을 나타내는 숫자 배열

IMG_78CC5B591D7C-1 IMG_ADAA2C15EAE7-1

5.5. Experimental Results on RaFD

  • 무표정을 입력으로 RaFD의 여러 표정들을 학습
  • 각 도메인 당 약 500장의 데이터
  • 평가
    • StarGAN 모델이 가장 자연스러운 표정 생성
    • DIAT와 CycleGAN은 입력 이미지의 정체성은 유지, 하지만 선명도가 저하
    • IcGAN은 정체성 유지조차 실패
    • Why?
      • 타 모델은 2 domain학습시 1000개의 데이터 학습
      • StarGAN은 모든 domain의 데이터 약 4000개 사용

IMG_828603DA420E-1

  • RaFD로 분류기 학습 후, 생성된 이미지 분류 결과

RaFD cls

  • StarGAN이 classification error 가 가장 작음
  • 학습에 필요한 parameter가 타 모델에 비해 현저히 작음
    • -> StarGAN은 단 한쌍의 (G, D)를 사용하기 때문

      5.6. Experimental Results on CelebA + RaFD

IMG_0D6FA5D07ACF-1

  • CelebA 와 RaFD 데이터셋 둘 다 사용 (Multiple datasets) (with mask vector)
  • JNT(jointly train), SNG(single train)
  • joint training의 효과
    • JNT가 더 선명한 품질의 표정을 생성
    • SNG는 CelebA의 image translation을 학습 X 이기 때문
This post is licensed under CC BY 4.0 by the author.