StarGAN

박정재·2022년 4월 10일
1

DL Paper Review

목록 보기
2/2

StarGAN Review

StarGAN은 하나의 뉴럴 네트워크를 이용해 다중 도메인(multi domain) 사이에서의 이미지 변환이 가능하다.

  • 하나의 네트워크만 사용함으로써 모델 파라미터 측면에서 공간 효율적이다.
  • 다양한 도메인에서 사용되는 데이터셋을 함께 활용할 수 있다.
    • ex) 얼굴 이미지를 처리할 때, 다양한 얼굴 관련 feature에 대한 정보를 multi domain으로 generator가 잘 학습할 수 있다.

StarGAN의 동작 원리

Discriminator

  • 이미지가 들어왔을 때, real/fake인지 구분을 제대로 할 수 있도록 한다.
  • Real image 같은 경우에는 real로 구분하도록 만들고 어떤 domain인지 class에 대한 정보 또한 분류할 수 있도록 만든다.
  • Conditional GAN의 architecture를 따른다고 볼 수 있다.

Generator

  • Input image와 특정 target domain의 vector 값을 같이 받아서 image가 target domain으로 바뀐 fake image를 만들 수 있도록 한다.
  • 그 다음, fake image는 original domain과 묶어서 다시 원본 이미지와 유사한 형태로 이미지가 나올 수 있도록 한다.
    • Cycle loss로 구성해서 input image의 content/identity는 유지한채 domain 관련한 정보만 잘 바뀔 수 있도록 만드는 것이다.

  • Fake image가 discriminator를 속일 수 있도록 한다.

  • StarGAN은 multi domain 상에서 동작할 수 있도록 하고 CGAN에 cycle consistency loss를 추가한 것이라고 볼 수 있다.

StarGAN Loss Function

Adversarial Loss

  • Vanilla GAN의 loss와 유사하다.
  • 실제로는 안정적인 학습을 위해 Wasserstein GAN의 loss에 gradient penalty를 이용한 것으로 대체해 구성되어 있다. GAN 기반의 모델들이 이 loss를 많이 사용한다고 한다.

Domain Classification Loss

  • Generator에서 특정 domain으로 바꾼 다음에 바뀐 이미지가 target domain으로 분류될 수 있도록 학습이 진행된다.
  • Discriminator에서 real image의 정상 domain 값으로 분류할 수 있도록 학습이 진행된다.

Reconstruction Loss

  • Generator가 만든 이미지가 원본 이미지의 identity를 잘 유지할 수 있도록 한다.

최종목적 함수

  • 논문에서 classification을 위한 가중치는 1, reconstruction를 위한 가중치는 10을 주었다. 원본 이미지의 content preserve를 중요시 여긴 것을 알 수 있다.

Mask Vector

  • Multiple dataset에서의 학습을 위하여 Mask vector m을 사용한다.
  • 여러 개의 dataset을 사용할 시, 각 dataset의 label과 mask vector를 concatenate한다.
  • Mask vector가 [1, 0]이라면 CelebA dataset의 label을 사용한다는 표시이다.
  • 하나의 데이터셋(SNG/RaFD dataset)를 사용했을 때보다 두 개의 데이터셋(JNT)을 사용했을 때, 데이터가 더 증가하므로 성능이 더 좋은 것을 확인할 수 있다.

Training with Multiple Datasets


Results


Mode Collapse (GAN의 문제)

  • Discriminator와 generator의 학습이 서로 상호작용을 하며 학습이 진행되어야 하는데, 한 쪽이 너무 학습이 잘 되어버리면 mode collapse가 발생한다고 한다.
    • Discriminator의 학습이 너무 잘 되어서 생성된 이미지를 완벽히 구분할 수 있다면, generator는 어떠한 이미지를 내더라도 discriminator를 속일 수 없고 학습이 더 이상 진행되지 않을 것이다. 반대의 경우도 마찬가지이다.
  • 이런 현상이 발생한다면, generator는 한 종류의 이미지만 계속 생성하게 된다고 한다.
  • StarGAN에서 mode collapse를 피하기 위해 adversarial loss를 WGAN-GP loss로 사용한 것으로 보인다.

CycleGAN


Reference

profile
Keep on dreaming and dreaming

0개의 댓글