【极简笔记】Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks(CycleGAN)
论文地址:https://arxiv.org/abs/1703.10593
文章核心贡献是提出了一种双向GAN模型,通过双向adversarial loss和cycle loss的约束使得生成器的映射域更加逼真。该方法在训练过程中对图片要求是unpaired,即给出的是两个图像域,需要学习域之间的映射。
记需要学习的从域X到域Y的映射为G(生成器),反向映射为F(生成器)。在域Y有判别器 DY D Y ,在域X有判别器 DX D X ,用对抗学习的方式训练,不仅要求判别器能够尽可能区分真实图片与生成图片,而且要求两次映射后的误差尽量小,即 F(G(X))≈X,G(F(Y))≈Y F ( G ( X ) ) ≈ X , G ( F ( Y ) ) ≈ Y 。
Adversarial Loss(文中指出least-squares loss比negative log likelihood更稳定):
LGAN(G,DY,X,Y)=Ey∼pdata(y)[(DY(y)−1)2]+Ex∼pdata(x)[DY(G(x))2] L G A N ( G , D Y , X , Y ) = E y ∼ p d a t a ( y ) [ ( D Y ( y ) − 1 ) 2 ] + E x ∼ p d a t a ( x ) [ D Y ( G ( x ) ) 2 ]
Cycle Loss(文中指出尝试使用adersarial loss但并没有 L1 L 1 范数效果好):
Lcyc(G,F)=Ex∼pdata(x)[||F(G(x))−x||1]+Ey∼pdata(y)[||G(F(y))−y||1] L c y c ( G , F ) = E x ∼ p d a t a ( x ) [ | | F ( G ( x ) ) − x | | 1 ] + E y ∼ p d a t a ( 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 G A N ( G , D Y , X , Y ) + L G A N ( F , D X , Y , X ) + λ L c y c ( G , F )
G∗,F∗=argminG,FmaxDX,DYL(G,F,DX,DY) G ∗ , F ∗ = arg min G , F max D X , D Y L ( G , F , D X , D Y )
GAN网络使用论文Perceptual losses for real-time style transfer and super-resolution中结构。在训练判别器时使用最近的50张生成图片进行训练而不是最新的单张。实验室
λ=10 λ = 10 , 使用Adam优化器,batchsize=1,lr=0.0002,前100 epochs不变之后线性衰减至0.
文章与许多其他baseline进行了对比,均有更好效果。还对CycleGAN各部分loss拆分得到的模型进行训练,比较发现还是完整的模型好。以及在艺术画到真实照片的转换过程中,文章发现在CycleGAN基础上加入identity loss能够有效保护图像色调一致。

文章也指出了CycleGAN的缺点,由于生成器模型的关系,更倾向于改变输入图像的外表而非形状。以及当输入图像中包含,训练过程中输入域所不包含的物体时,生成器的映射会产生多样的变化。
