PyTorch学习6--GAN

生成式对抗网络(GAN, Generative Adversarial Networks )

一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。模型通过框架中(至少)两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。原始 GAN 理论中,并不要求 G 和 D 都是神经网络,只需要是能拟合相应生成和判别的函数即可。但实用中一般均使用深度神经网络作为 G 和 D 。一个优秀的GAN应用需要有良好的训练方法,否则可能由于神经网络模型的*性而导致输出不理想。

简单来说:
Generator: 生成器,目标是让生成的数据接近真实数据
Discriminator: 分类器,目标是能够鉴别真实数据和生成的假数据

PyTorch学习6--GAN
DCGAN: DCGAN把上述的G和D换成了两个卷积神经网络。D可以理解为一个分类的卷积网络。G则是一个全卷积网络。但不是直接换就可以了,DCGAN对卷积神经网络的结构做了一些改变,以提高样本的质量和收敛的速度。
PyTorch学习6--GAN
CycleGAN: CycleGAN本质上是两个镜像对称的GAN,构成了一个环形网络。两个GAN共享两个生成器,并各自带一个判别器,即共有两个判别器和两个生成器。一个单向GAN两个loss,两个即共四个loss。

CycleGAN的网络架构如图所示:
PyTorch学习6--GAN
PyTorch学习6--GAN

  • 编码:第一步利用卷积神经网络从输入图象中提取特征。将图像压缩成256个64*64的特征向量。
  • 转换:通过组合图像的不相近特征,将图像在DA域中的特征向量转换为DB域中的特征向量。作者使用了6层Reset模块,每个Reset模块是一个由两个卷积层构成的神经网络层,能够达到在转换时同时保留原始图像特征的目标。
  • 解码:利用反卷积层(decovolution)完成从特征向量中还原出低级特征的工作,最后得到生成图像。
    PyTorch学习6--GAN
上一篇:在图像生成领域里,GAN这一大家族是如何生根发芽的


下一篇:XMC-GAN:从文本到图像的跨模态对比学习