3. Star Generative Adversarial Networks
3.1. MultiDomain ImagetoImage Translation
学习目标是训练一个能够在multiple domains之间相互生成的生成器G
定义x为输入图像,y为生成图像,c为target domain label,于是有G(x,c)→y
判别器D包含两部分,一部分是常规的判别真假的判别器Dsrc,另一部分是auxiliary classifier Dcls
Figure3展示了StarGAN的训练过程

Adversarial Loss
Ladv=Ex[logDsrc(x)]+Ex,c[log(1−Dsrc(G(x,c)))](1)
Domain Classification Loss
对于判别器D,需要正确地将real image x预测为所对应的domain c′
Lclsr=Ex,c′[−logDcls(c′∣x)](2)
对于生成器G,需要最小化fake image G(x,c)被预测为domain
Lclsf=Ex,c[−logDcls(c∣G(x,c))](3)
Reconstruction Loss
对于生成器G,只考虑公式(1)和(3)无法保证G只修改图像中与target domain有关的部分,修改与target domain无关的部分,因此引入文献[8, 32]中提出的cycle consistency loss
Lrec=Ex,c,c′∥x−G(G(x,c),c′)∥1(4)
Full Objective
LD=−Ladv+λclsLclsr(5)
LG=Ladv+λclsLclsf+λrecLrec(6)
注:D需要最大化Ladv,所以加上了一个负号
实验中设置λcls=1,λrec=10
3.2. Training with Multiple Datasets
如果涉及多个数据集,每个数据集的attribute是不一样的
Mask Vector
引入mask vector m用于指示label中哪些分量是已知的
假设使用n个数据集,则mask vector m是一个n维的one-hot向量,并且将domain label扩展为
c~=[c1,⋯,cn,m](7)
其中ci表示第i个数据集的attribute的0-1向量
假设当前图像属于第k个数据集,那么ck为表示attribute的0-1向量,其它ci(i=k)为全0向量
(个人认为这个mask vector的设计一般般)
4. Implementation
Improved GAN Training
为了使GAN的训练过程更加稳定,同时生成高质量的图像,将公式(1)替换为WGAN-gp的版本
Ladv=Ex[Dsrc(x)]−Ex.c[Dsrc(G(x,c))]−λgpEx^(∥∇x^Dsrc(x^)∥2−1)2(8)
其中x^是一组真实图像和假图像的线性组合,实验中设置λgp=10
Network Architecture
只对生成器G使用instance normalization,判别器D的结构为PatchGAN