CycleGan

CycleGAN的一个重要应用领域是Domain Adaptation(域迁移:可以通俗的理解为画风迁移),比如可以把一张普通的风景照变化成梵高化作,或者将游戏画面变化成真实世界画面等等。以下是原论文中给出的一些应用:

当我们固定住生成器的参数训练判别器时,判别器便能学到更好的判别技巧,当我们固定住判别器参数训练生成器时,生成器为了骗过现在更厉害的判别器,被迫产生出更好质量的图片。两者便在这迭代学习的过程中逐步进化,最终达到动态平衡。

这是一开始GAN被提出时的思想,而在CycleGAN中,我们不仅想要生成器产生的图片y'数据集Y中的图片画风一样,我们还希望生成器产生的y'图片跟他的输入图片x  内容一样(比如我们输入一张带房子的照片,我们希望产生梵高画风的房子图片,而不是其他内容的图片,比如向日葵、星夜等等,否则意义就不是很大了。因为在一些APP中,我们通常想把自己拍摄的照片变成梵高画作嘛~)。

为了做到这一点,论文作者提出了Cycle Consistency Loss,即将图片y'再放入生成器 F中,产生的新图片X' 和最开始的图片 X 尽可能的相似

即我们希望 F(G(x)) = x

有了这样的约束,我们才能希望生成器将我们的输入照片的风格转化为梵高画风,而不是从梵高的作品中随便挑一张图片来应付我们了事。Cycle Consistency Loss在原论文中的插图解释为

 因此,CycleGAN的Loss由两部分组成,

即 

  •  保证生成器和判别器相互进化,进而保证生成器能产生更真实的图片
  •  保证生成器的输出图片与输入图片只是风格不同,而内容相同

 

  • 训练生成器时, Dx ,Dy参数被固定,只有G,F  的参数可调,因此:

 LOSSgan 保证了生成器产生的图片越来越真实(风格越来越像另一个种类型的图片)

LOSScycle保证了生成器产生的图片内容大致不变

即训练判别器Dx时,应最大化 D(x) 的值(让判别器给真实图像 x 高分)

同时,应该极小化D(F(y))的值(让判别器给生成的图像F(y)  低分),从而提升判别器的判别能力。更新的Dy过程与此类似。

用L1和L2 loss重建的图像很模糊,也就是说L1和L2并不能很好的恢复图像的高频部分(图像中的边缘等),但能较好地恢复图像的低频部分(图像中的色块)。为了能更好得对图像的局部做判断,作者提出patchGAN的结构,也就是说把图像等分成patch,分别判断每个Patch的真假,最后再取平均!作者最后说,文章提出的这个PatchGAN可以看成所以另一种形式的纹理损失或样式损失。在具体实验时,不同尺寸的patch,最后发现70x70的尺寸比较合适。因为更小的PatchGAN具有更少的参数,运行速度更快,并且可以应用于任意大的图像。

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值