对于非监督domain mapping, 要学习的是数据集A到数据集B的一种映射。即 GAB 可以将A的一个样例映射到B中的一个相似物。人来采用dual learning,提出了训练两个模型, GAB 和 GBA 。使得 x ( x 是A的一个样例)经过 GAB ,再经过 GBA 仍旧与 x 尽量相似,当然对于 y 是一个B的样例,也有类似。
这种思想有2017年出了N篇论文。主要有:DiscoGAN[1], DualGAN[1], CycleGAN[3]等等吧。。
这篇论文的主要贡献:提出一种distance的约束,使得非监督domain mapping可以one sided。我可以只训练一个G_{AB}就够了,不用训练G_{BA}
这个总结不错。。。
这个就是最普通的GAN损失。
这个就是现在特别火的对偶学习了。A的一件东西你通过 GAB 转换到了B中去,那么这件东西通过 GBA 转换回来,肯定差不多一样的吧~~
所以有:
先说Adversarial constraints的弱点,这种约束太弱,因为这种mapping会有很多种。这是因为假设 GAB 将A中的n张图map到B中的n张图,那么对B的这n张图随意加一些扰动,扰动后的图也是一种可以接受的mapping。因此这种mapping空间极大,这种约束是一个很弱的约束。circularity constraint约束的引入是一个加强。毕竟 GBA 要让加了扰动的B的图映射回去,所以会减少the amount of admissible permutations.
为了进一步加强约束,Distance Constraints使得映射具有distance perserving的能力。A的两幅图通过 GAB 映射到B中,那么映射后的两幅图在之间的距离应该保持。
作者提出这个其实只是为了和cyclegan进行比较,因为cyclegan默认的代码的batchsize=1。啊,那distance gan可是基于2幅图片的啊,所以做作者就将一幅图片分成两半(比如左一半,右一半)从而得到distance约束。
这种self-distance约束其实并不是一个好的约束,至少从实验结果可以看出。
比如在car2car,这是对于一个3D数据集分成A,B。显然 GAB 是学习这种 角度不变性。这种模型mapping不会涉及到形状的巨大变化,主要是逐点的映射, 貌似Distance+cycle会有较好的效果。而对于car2head,这种具有外观巨大变化,以前的cyclegan是无法处理的(论文中给出cat2dog失败例子),cyclegan只能处理外观几乎一样(horse2zero之类的)。但是可以看到distance约束有更好点的效果。self dist效果不好也是比较容易解释的因为毕竟是单幅图像内部的距离约束。比如是图片的左右部分的距离约束,那么车和人脸不都具有很强的对称性吗?这种单幅图中的距离约束就会不那么work。
参考论文:One-Sided Unsupervised Domain Mapping[5]