GAN | CycleGAN | 风格迁移

GAN是解决风格迁移的深度学习方法,本文将做出简要介绍。

一、GAN

      GAN由生成网络G和对抗网络D组成,G用于接收一个噪声z,从而生成图片G(z);D是一个判别网络,判别一张图片x是不是“真的”我们所需得到的目的图片或者是由G生成的(此时图片是“假的”),即D(x)。

      生成网络G和对抗网络D在训练时候互为动态的博弈过程。

      损失函数:

           

      x为真实图片,z表示输入G的随机噪声。

      GAN之所以能产生对抗博弈的训练过程和效果是因为GAN把训练过程分为了两个部分:

      优化D:

      优化G:

  

      将D和G用CNN来表达就是适用于图像处理的DCGAN了。


二、CycleGAN

      传统的GAN的G是将随机噪声转换为图片,但风格迁移中我们需要将图片转为图片,所以这个时候就要将图片作为G的输入,而G则是学习一种映射了。但是用单独一个GAN的训练是不稳定,可能导致所有照片全部映射到同一张图片的mode collapse。此时CycleGAN被提出以解决这个问题,CycleGAN是将两个GAN组合起来,其目的是实现非成对image的转换,特别适用于图像风格迁移中。为了使得GAN更加稳定,引入了此双向映射的机制,即A—>B的GAN和B—>A的GAN,同时加入了一个cycle_loss,cycle_loss是采用L1损失。所以我们可以得到CycleGAN的损失函数:

GAN | CycleGAN | 风格迁移_第1张图片

      前两个loss的LG是普通的GAN损失,即A—>B的GAN和B—>A的GAN损失,其此cycle_loss为:

      作者实现时还加入了一种Identity_loss的损失,应该可以提高稳定性吧。




你可能感兴趣的:(深度学习)