GAN学习系列-CycleGAN

GAN学习系列-CycleGAN

GAN学习系列-CycleGAN(1)

CycleGAN是由GAN(生成对抗网络)演化而来的一个深度学习模型。众所周知,在一系列视觉问题上是很难以找到匹配的高质量图像作为target来供模型学习的,比如说对于一个模糊的图像,不一定找到与之对应的清晰图像,这使得一系列的深度学习模型的适应性十分有限。

CycleGAN的诞生使上述问题有了明显的改善。CycleGAN特点就是通过一个循环,首先将图像从一个域转换到另一个域,然后,再转回来,如果两次转换都很精准的话,那么,转换后的图像应该与输入的图像基本一致。通过这样的的一个循环,CycleGAN将转换前后图片的配对,类似于有监督学习,提升了转换效果。

模型思路

①:核心思想

图中有两个映射:①:G:X→Y,②:Y→X。以及相关的两个对抗鉴别器(adversarial discriminators)Dx和Dy.

②:实现方式
在这里插入图片描述
过程通俗解释:G和F为两个变换,输入→目标的变换和目标→输入的逆变换,也是两个生成网络。②中阐述了两种变化的过程。由真实值x通过G变换生成虚假的Y,再用这个虚假的Y生成虚假的x,然后判断真实x和虚假x的区别。(感谢来自:https://blog.csdn.net/xiaoxifei/article/details/83830842 的分享)

损失函数

上述过程存在两个生成网络:G,F
两个判别网络,Dx和Dy。 所以损失函数的理解如下:

①:对D和G两个分别进行优化:
②:Cycle-Consistency Loss:
真实的x通过G生成虚假的Y,虚假的Y再生成虚假的x,我们想要真实x和虚假x之间的差距越小越好:
采用L1损失函数:
在这里插入图片描述
最终损失函数:
在这里插入图片描述
(感谢来自:https://blog.csdn.net/Teeyohuang/article/details/82729047 的分享)

网络架构

以下部分来自于(https://www.jianshu.com/p/64bf39804c80
在这里插入图片描述
在这里插入图片描述
简而言之,该模型通过从域DA获取输入图像,该输入图像被传递到第一个生成器GeneratorA→B,其任务是将来自域DA的给定图像转换到目标域DB中的图像。然后这个新生成的图像被传递到另一个生成器GeneratorB→A,其任务是在原始域DA转换回图像CyclicA,这里可与自动编码器作对比。这个输出图像必须与原始输入图像相似,用来定义非配对数据集中原来不存在的有意义映射

生成器:
在这里插入图片描述
①:利用卷积神经网络从输入图像中提取特征。将图像压缩成256个64*64的特征向量。
②:通过组合图像的不相近特征,将图像在DA域中的特征向量转换为DB域中的特征向量。作者使用了6层Reset模块,每个Reset模块是一个由两个卷积层构成的神经网络层,能够达到在转换时同时保留原始图像特征的目标。
③:利用反卷积层(decovolution)完成从特征向量中还原出低级特征的工作,最后得到生成图像。

鉴别器:
在这里插入图片描述
鉴别器本身属于卷积网络,需要从图像中提取特征,再通过添加产生一维输出的卷积层来确定提取的特征是否属于特定类别。

猜你喜欢

转载自blog.csdn.net/weixin_48905043/article/details/107633723
今日推荐