【极简笔记】CycleGAN

【极简笔记】Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks(CycleGAN)

论文地址:https://arxiv.org/abs/1703.10593

文章核心贡献是提出了一种双向GAN模型,通过双向adversarial loss和cycle loss的约束使得生成器的映射域更加逼真。该方法在训练过程中对图片要求是unpaired,即给出的是两个图像域,需要学习域之间的映射。
【极简笔记】CycleGAN_第1张图片
记需要学习的从域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)=Eypdata(y)[(DY(y)1)2]+Expdata(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)=Expdata(x)[||F(G(x))x||1]+Eypdata(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_第2张图片

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

你可能感兴趣的:(【极简笔记】CycleGAN)