摘要

GAN的训练需要图片是两两匹配的,这样经过训练后,生成器可以逐步生成一张让判别期无法判断真伪的图片。但实际上会碰到一些非匹配的图片,于是就提出了非匹配的图片转换(Unpaired image-to-image),一种在没有成对例子的情况下学习将图像从源域X转换到目标域Y的方法。使得

xG(x)F(G(x))xx \rightarrow G(x) \rightarrow F(G(x)) \approx x

其中xx是原图,G(x)G(x)是经过生成器处理后的转换图片,再经过生成器FF的还原后,还原图片需要尽可能的和原图相同。

相关工作

  • GANs
  • 匹配与非匹配的图片转换
  • 一致性损失计算
  • 风格迁移

系统阐述

  • 目标:找到合适的函数F和G,使得原图和转换后的图片尽可能相似。
  • 结构:由两组生成对抗网络组成;第一组生成对抗网络有生成器GG(实现G:XYG: X \rightarrow Y的映射)和鉴别器DyD_y(判别图像是目标图片还是转换图片);第二组生成对抗网络有生成器FF(实现F:YXF: Y \rightarrow X的映射)和鉴别器DxD_x(判别图像是原图还是还原图片)。

结构示意图

Adversarial Loss

提出对抗一致性损失计算,每个判别器应该尽可能的区分图片来自于哪个领域。

LGAN(G,DY,X,Y)=Eypdata(y)[logDY(y)]Expdata(x)[log(1DY(G(x))]LGAN(G,DX,X,Y)=Eypdata(y)[logDX(F(G(x)))]Expdata(x)[log(1DX(x)]L_{GAN}(G, D_Y , X, Y ) = E_{y∼pdata(y)}[log D_Y (y)]E_{x∼pdata(x)}[log(1 − D_Y (G(x))] \\ L_{GAN}(G, D_X , X, Y ) = E_{y∼pdata(y)}[log D_X (F(G(x)))]E_{x∼pdata(x)}[log(1 − D_X (x)]

根据GAN的基础知识,判别器DYD_Y应该尽可能地区别转换图片与目标图片,所以得到上述公式,目标是minGmaxDYLGAN(G,DY,X,Y)min_Gmax_{D_Y}L_{GAN}(G, D_Y , X, Y )minFmaxDXLGAN(G,DX,X,Y)min_Fmax_{D_X}L_{GAN}(G, D_X , X, Y )

Cycle Consistency Loss

从理论上使用对抗学习可以使生成的分布逼近于目标域的分布,且使反转后的分布近似于源域的分布,但是实际中发现,或出现Mode Collapse问题。如下图所示:

这里写图片描述

即我们生成的分布(红色)很可能会偏向于目标分布(蓝色)的某一部分(图中表示为一座峰)。例如训练集有很多种类别(如猫狗牛羊),但是我们只能生成狗(或猫或牛或羊),虽然生成的狗的图片质量特别好,但是!整个G就只能生成狗,根本没法生成猫牛羊,陷入一种训练结果不好的状态。这和我们对GAN的预期是相悖的。

基于上述问题,作者提出了前向和反向的循环一致性损失:

Lcyc(G,F)=Expdata(x)[F(G(x))x1]+Eypdata(y)[G(F(y))y1].L_{cyc} (G, F ) = E_{x∼pdata} (x) [∥F (G(x)) − x∥_1 ] + E_{y∼pdata(y)}[∥G(F(y)) − y∥_1].

Full Objective

最终目标函数为:

L(G,F,DX,DY)=LGAN(G,DY,X,Y)+LGAN(F,DX,Y,X)+λLcyc(G,F)L(G, F, D_X , D_Y ) =L_{GAN}(G, D_Y , X, Y ) + L_{GAN}(F,D_X,Y,X) + λL_{cyc}(G,F)

在整个处理过程中,我们通过一个中间表示将图像映射到自身,即图像转换到另一个域。

实现过程

网络结构

训练细节

使用最小二乘损失替换负的log似然损失。利用该损失训练过程更稳定,且得到了更好的结果:

LGAN(G,DY,X,Y)=Eypdata(y)[(DY(y)1)2]Expdata(x)[(DY(G(x))2)]L_{GAN}(G, D_Y , X, Y ) = E_{y∼pdata(y)}[(D_Y (y) - 1)^2]E_{x∼pdata(x)}[(D_Y (G(x))^2)]

评价指标

baseline

  • CoGAN;
  • Pixel loss+GAN;
  • Feature loss+GAN;
  • BiGAN/ALI;
  • pix2pix;

实验结果

无论是单独的周期和GAN + backward 都不能产生与目标域相似的图像。GAN alone和GAN + forward导致模式崩溃,不管输入的照片是什么,都产生相同的标签映射。