---恢复内容开始---
Motivation
使用单组的生成器G和判别训练图片在多个不同的图片域中进行转换
效果确实很逆天,难怪连Good Fellow都亲手给本文点赞
Introduction
论述了Image translating的概念,GAN极大地提升了该领域的生成质量。具体到头像生成任务,作者定义attribute为图片特征(feature),如haircolor,age,gender等;domain被定义为 一系列共享了某个属性的图片,如女性图片和男性图片分属不同的domain。该文的训练数据集基于celebA(40 labels related to facial attributes such as hair color, gender, and age)和RaFD(8 labels for facial expressions such as ‘happy’, ‘angry’ and ‘sad’)。图1左边正是展示了由starGAN生成的图片怎样在celebA的各个不同域之间进行转换的例子,右边展示了交叉训练两个数据集,以把RaFD的表情域也应用在celebA的图片上面。
现有的GAN模型为了实现在k个不同的风格域上进行迁移,需要构建$k*(k-1)$个生成器,并且还不能跨数据集训练(标注不能复用)。StarGAN正是为了解决跨多个域、多个数据集的训练而提出的。在StarGAN中,并不使用传统的fixed translation((e.g., black-to-blond hair),而是将域信息和图片一起输入进行训练,并在域标签中加入mask vector,便于不同的训练集进行联合训练。本文贡献:
- 提出StarGAN模型,使用单组GAN模型进行跨domain和跨数据集的训练
- 展示了mask vector技术来实现上述的训练过程
- 训练了角色的面部属性和面部表情特征的各种图片
Ralated Work
- GAN(略)
- CGAN(略)
- Image2Image translating
pixel2pixel coGAN DiscoGAN CycleGAN
模型描述
1.损失函数
adv损失函数
和普通的GAN没太大区别,对G来说,输入为图片x和标签信息c。
Domain Classification 损失函数
对于真实图片:
对于生成图片:
Recstruntion 损失
使用了cycle损失的概念 ,看来循环训练的概念确实可以高质量的保留原有图片特征!!!!!!!!
综合上述各损失函数,得到StarGAN的总损失函数表达:
2.在多数据集上训练模型
对于不同的数据集来说,每一个数据集只能知道全体标注的一部分。如celebA并不知道RaFD中关于表情的“愤怒” “开心”等标签。但是在计算损失函数时,我们需要知道全部的标签信息,作者使用mask vector来解决这一问题。在StarGAN中构建了一个n-dimensional的one-hot vector m,其中n是数据集的数量(在论文中使用了两个数据集,故n=2),对于未知的数据集标签,统统设置为0向量
训练时,生成器G将忽略掉传入的C向量中的0向量,犹如在训练单数据集一样,而判别器D的auxiliary classifier则生成所有数据集的全部标签概率,但只和已知的真实标签做loss计算。
训练模型采用了Wasserstein GAN
---恢复内容结束---