[요약] StarGAN

paper

1. 문제제기: 기존의 image-to-image translation 연구는 3개 이상의 도메인에서 안정적으로 동작하지 않음. 두 도메인의 짝이 다른 짝과 독립적으로 학습되기 때문. 예를들어 도메인이 3개일 때는 3X2개의 generator가 필요해짐.

2. 아이디어: 싱글 모델로 다수의 domain에 대한 image-to-image translation을 해볼 수는 없을까? 가령 CelebA dataset의 facial attiributes(hair color, gender, and age…)를 각각의 도메인으로 간주하고 그 사이에서의 이미지 변환이 가능하며, CelebA의 이미지 데이터에 RaFD에서 학습한 표정들에 대한 도메인으로 이미지의 변환도 가능한 모델. 단 하나의 generator와 단 하나의 discriminator로!

3. 목적함수

4. Multiple Datasets에 대한 학습: 서로 다른 dataset을 함께 활용하는 jointly training을 위해서는 현재 training data에 해당하는 label vector에만 초점을 맞추어야 함. 이를 위해 mask vector를 이용. mask vector는 현재의 학습데이터와 상관없는 label에 대해서는 0을 할당해준다. 이 논문의 실험에서는 CelebA와 RaFD datasets을 이용하였는데, 이에 대한 2개의 label vector가 사용되었고 그 뒤에 하나의 mask vector가 붙는다. (2개의 label vector는 각각 facial attributes와 facial expression에 대한 one-hot vector일 것이다.) 즉, CelebA의 데이터로 학습을 하고 있을때는 discriminator와 generator는 CelebA와 관련된 label에 대한 classification loss만을 줄인다.

5. 아키텍쳐: CycleGAN의 아키텍쳐를 차용. latent space에서의 차원을 많지 줄이지 않는 residual block으로 구성된 네트워크(Appendix 7.2참고). 또한 CycleGAN의 70X70 patchGAN을 활용한 것으로 보인다.

6. 실험: 질적 평가로 AMT를 이용. Baseline인 DIAT, CycleGAN, IcGAN에 비해 상당히 좋은 성능을 보였다. 인상적인 것은 Single dataset으로 학습시켰을 때보다 multiple dataset으로 학습시킨 결과가 확연히 좋았다는 것. 아마도 서로 다른 dataset에서의 공통적인 low-level task(가령 facial keypoint detection or segmentation)를 향상시키기 때문인 것으로 사료됨. 재밌는 것은 mask vector를 잘못 입력하는 경우 전혀 의도치 않은 데이터가 생성된다는 것. 여기서 mask vector가 최초의 의도대로 동작됨을 알 수 있다.

7. 결론: 성공적 ㅋ