生成式对抗网络(GAN)-(Generative Adversarial Networks)算法总结(从原始GAN到....目前)

本文将按时间顺序总结gan的paper(非所有,会挑选个人认为比较重要的),并将参考其它博客(会给出链接),如有侵权,请私信删除。
IS 可以反应图像的生成质量(越大越好),FID 则会更假注重生成的多样性(越小越好)。
IS_score=233(真实图片)
SAGAN的IS=52.52、FID=18.65
BigGAN的IS=166

🔴(2014.06-arXiv)GAN:Generative Adversarial Nets论文原文

💡contributions:

  • 开山之作;
  • 原理:生成网络和判别网络的互相对抗。生成网络尽可能生成逼真样本,判别网络则尽可能去判别该样本是真实样本,还是生成的假样本。
  • 采用JS散度作为评判依据。

loss函数(原始gan损失函数的详细解释):

  • 损失值只由discriminator计算提供。D(x)结果要么为real(1),要么为fake(0)。
    在这里插入图片描述

(2014.11-arXiv)CGAN:Conditional Generative Adversarial Nets论文原文

💡contributions:

  • 将G和D网络的输入都添加了类别标签,通过训练,既可以通过给与生成器给定的标签能够得到给定的输出。

loss函数:

  • 跟原始GAN一样的结构;只是多了个条件标签
    在这里插入图片描述

🔴(2015.11-ICLR)DCGAN:Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks论文原文

💡contributions:

  • 在GAN上加了一系列的训练技巧。
  • 去掉了G和D网络中的polling layer;
  • 去掉全连接的隐藏层;
  • 在G网络中最后一层之前所有的层使用RELU,最后一层使用Tanh;
  • 在D网络中的每一层使用LeakRELU。

网络结构:

在这里插入图片描述

(2016.06-NIPS)InfoGAN:Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets论文原文】【参考文章

💡contributions:

  • 让网络学到了可解释的特征;
  • 添加互信息函数;
  • 训练完成后,可以通过给与生成器特定的隐含编码得生成包含特定特征的数据;
  • 跟CGAN的区别(CGAN输入的标签y是指定的-监督学习,infoGAN输入的latent C 是通过训练得到的-无监督学习)

loss函数:

  • V(D,G)为原始GAN的损失函数。只是添加了一个互信息损失函数。
    在这里插入图片描述

🔴(2016.11-arXiv)LSGAN:Least Squares Generative Adversarial Networks论文原文

💡contributions:

  • 采用最小二乘loss作为评判依据。

loss函数:

  • abc参数的选择:1、a=-1 b=1 c=0(b-c=1 and b-a=2);2、a=0、c=b=1(c=b)
    在这里插入图片描述

🔴(2017.01-arXiv)WGAN:Wasserstein GAN论文原文】【原理解析

💡contributions:

  • 采用地球移动距离(EM, Earth-mover distance),也叫 Wasserstein 距离,作为评判依据。
  • 判别器最后一层去掉sigmoid;
  • 生成器和鉴别器的loss不取log;
  • 每次更新鉴别器的参数之后将其绝对值截断到不超过一个固定常数;
  • 不用基于动量的优化算法。

loss函数:

  • 将原始GAN的JS散度换成EM距离作为评判标准;可以计算两个无交集的分布之间的距离。

在这里插入图片描述

🔴(2017.04-arXiv)WGAN-GP:Improved Training of Wasserstein GANs论文原文】【原理解析

💡contributions:

  • 出了一种梯度惩罚策略,来取代WGAN中的weight clipping策略。

loss函数:

  • 添加一个梯度惩罚项,满足Lipschitz条件。
    在这里插入图片描述

(2017.10-ICLR)PGGAN:PROGRESSIVE GROWING OF GANS FOR IMPROVED QUALITY, STABILITY, AND VARIATION论文原文

💡contributions:

  • 渐进式地增加生成器和判别器的规模,训练过程中不断给G和D添加层;
  • 为了防止新加入的层对原网络产生巨大影响,提出一种平滑的加入新层的方法。

训练过程:

  • 渐进式
    在这里插入图片描述

(2018.01-?)?-GAN:Which Training Methods for GANs do actually Converge?论文原文】【参考文章-优秀

💡contributions:

  • 总结之前GAN为什么收敛不稳定(从数学角度)。

(2018.02-ICLR)SNGAN:SPECTRAL NORMALIZATION FOR GENERATIVE ADVERSARIAL NETWORKS论文原文】【原理推导

💡contributions:

  • 提出一种“严格”地解决了1-Lipshcitz约束的方法。
  • 对权重矩阵做谱范数归一化就可以更好的训练。

感想:

  • 对WGAN-GP的补充?

🔴(2018.05-arXiv)SAGAN:Self-Attention Generative Adversarial Networks论文原文

💡contributions:

  • 使用SNGAN的Spectral normalization;
  • 引入了Attention机制,让生成器和判别器可以自动学习图像中的重要目标(全局);
  • 在训练过程中,给予G和D不同的学习速率,以平衡两者的训练速度;

attention机制:

  • (1)f(x),g(x)和h(x)都是普通的1x1卷积,差别只在于输出通道大小不同;
  • (2)将f(x)的输出转置,并和g(x)的输出相乘,再经过softmax归一化得到一个Attention Map;
  • (3)将得到的Attention Map和h(x)逐像素点相乘,得到自适应的注意力feature maps.

在这里插入图片描述

🔴(2018.07-arxiv)RSGAN:The relativistic discriminator: a key element missing from standard GAN论文原文】【参考文章

💡contributions:

  • 依据图灵思想:打乱了数据,是否还能分辨出来?。
  • 还提出了一个 RaSGAN,a 是 average 的意思,就是用整个 batch 的平均来代替单一的真/伪样本。
  • 解决了SGAN(standard)存在的问题:训练生成器时,真实样本没有参与,所以判别器必须把关于真实样本的所有属性记住,这样才能指导生成器生成更真实的样本。

loss函数:

  • RGAN:
    在这里插入图片描述
  • RaGAN:
    在这里插入图片描述

🔴(2018.09-ICLR)Big-GAN:PROGRESSIVE GROWING OF GANS FOR IMPROVED QUALITY, STABILITY, AND VARIATION论文原文】【参考文章

💡contributions:

  • batch-size=2048;增加每层的通道数;
  • 采用先验分布 z 的“截断技巧”,根据IS和FID值进行阈值选择,允许对样本多样性和保真度进行精细控制;
  • 正交正则化的思想引入 GAN,为截断技巧提供帮助;
  • 传统的 GAN 都是将 z 作为输入直接嵌入生成网络,而 BigGAN 将噪声向量 z 送到 G 的多个层而不仅仅是初始层。(FPN?)

共享嵌入:

  • 如下,左图所示将噪声向量 z 通过 split 等分成多块,然后和条件标签 c 连接后一起送入到生成网络的各个层中,对于生成网络的每一个残差块又可以进一步展开为右图的结构。可以看到噪声向量 z 的块和条件标签 c 在残差块下是通过 concat 操作后送入 BatchNorm 层,这种嵌入方式就是共享嵌入,线性投影到每个层的 bias 和 weight。共享嵌入与传统嵌入的差别是,传统嵌入为每个嵌入分别设置一个层,而共享嵌入是将z与c的连接一并传入所有BatchNorm。
    在这里插入图片描述

(2029.09-?)?-GAN:?论文原文】【等待更新】

💡contributions:

  • 等待更新。

训练过程:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章