简介
Unsupervised cross-domain image generation.Cited-476.Open source(unofficial):https://github.com/taey16/DomainTransferNetwork.pytorch
关键字
域迁移,域适应,无监督,深度学习,机器学习
正文
1. 任务和思路
把含标签的域中的样本转换到相关的不带标签的域中,希望转换后的样本保持类别标签。
为了达到这样的目的,在转换的过程中希望这些样本的语义保持不变而且这些语义在两个域的表达是共同不变的,那就希望有个语义映射的函数来完成这样的任务,即有。当然为了保证是符合域的分布,还需要判别器来帮忙,判别的对象是样本,而不是特征,因此还要有个生成器帮忙把生成为样本,最后整个思路就清晰啦,有三个组件,提取特征,将提取好的特征生成对应域的样本,判别生成的样本是否符合的分布。
2. 结构
结构含3个部分,分别是可以提取两个域样本特征的,可以生成目标域样本的生成器,可以判别样本是否属于目标域的判别器,如图(文献Fig1)所示:
这里的结构有点像VAE-GAN,不同的是VAE的encoder参数是训练出来的,而这边的f(encoder)是预先训练好的,从预先训练好的这点上来看,又有点儿像Cycada,区别是Cycada是利用了分类的预测标签来保持语义,DTN(本文)是利用分类器的特征层(softmax前的最后一层)来对齐语义。还有一点,这边的判别器是3个输出的。
3. 训练过程和损失函数
训练过程类似GAN,合在一起当作GAN中的生成器,就是判别器;和交替训练更新参数,对应的损失分别如下,注意这里的是事先在源域训练好的。
首先是更新的损失:
接下来是更新的损失:
第1项是判别损失;
第2项是源域的特征重构损失;
第3项是目标域的样本重构损失;
第4项是目标域的样本平滑正则化;
4. 实验
(1)语义保持
先是SVHN向MNIST的转换,使用语义保持来说明,语义保持的度量使用MNIST上训练好的分类器来计算,结果如图(文献Table1,Table2):
(2)视觉效果(真实人脸卡通人脸)
这里与Gatys的风格迁移作了对比(文献Fig5),a+b合成c(风格迁移),d(本文算法)的效果:
参考资料
[1] Taigman, Yaniv, Adam Polyak, and Lior Wolf. "Unsupervised cross-domain image generation." arXiv preprint arXiv:1611.02200 (2016).