本文将按时间顺序总结gan的paper(非所有,会挑选个人认为比较重要的),并将参考其它博客(会给出链接),如有侵权,请私信删除。
更新于:2020/08/19
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.06-arXiv)LAPGAN:Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks【论文原文】
💡contributions:
- 利用拉普拉斯金字塔的原理由粗到细的生成图片;
- 由四个GAN网络组成,每个网络单独训练。
loss函数:
- 。。。
🔴(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.03-arXiv)Pixel-Level Domain Transfer【论文原文】
💡contributions:
- 风格迁移;
- 两个判别器,一个判别器与传统gan一致;
- 另一个判别器用来在训练的生成模型上加了一个pair-wise的损失,保证相关性。
网络结构:
(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.06-arxiv)ImprovedGAN:Improved Techniques for Training GANs【论文原文】【参考文章】
💡contributions:
- 得生成图片与真实图片的在中间特征的level上相匹配;
- 提出判别器应该考虑多个点(类似于一个点代表一种类别),而不是独立的计算每个点的梯度;
- 将判别器定义成一个分类器;
- 提出了一个inception model。
(2016.09-arxiv)SRGAN:Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network【论文原文】【参考文章】
💡contributions:
- 是第一个能恢复4倍下采样图像的框架;
- 将低分辨率转为高分辨率;
- 将基于mse的内容损失替换为基于VGG网络特征图计算的损失(感知损失的使用);
- 采用GAN的损失,提高细节信息。
(2016.10-arxiv)ACGAN:Conditional Image Synthesis with Auxiliary Classifier GANs【论文原文】【参考文章】
💡contributions:
- 在CGAN上的改进;
- 在D的输出部分添加一个辅助的分类器来提高条件GAN的性能;
- 提出 Inception Accuracy 这种新的用于评判图像合成模型的标准;
- 引进MS-SSIM用于判断模型生成图片的多样性。
🔴(2016.11-arxiv)Pix2pix:Image-to-Image Translation with Conditional Adversarial Networks【论文原文】【参考文章】
💡contributions:
- 提出了一个“图像到图像转换”的通用框架(去抖、去雾、去噪、超分?);
- 证明L1和cGAN结合,目标函数的性能最好;
- 生成器使用了U-Net结构,判别器使用了卷积PatchGAN分类器。
注:PatchGAN 将图像分成多个(N×N)patch,然后判断每个patch的“真与假”,将一张图片所有patch的结果取平均值作为最终的判别器输出,而不是判断整个图像 的“真与假”。作者认为这会强制实施更多约束,从而突出原图的高频细节。此外,PatchGAN具有更少的参数,并且比分类整个图像运行得更快。
🔴(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.02-arXiv)BS-GAN:BOUNDARY-SEEKING GENERATIVE ADVERSARIAL NETWORKS【论文原文】【原理解析】
💡contributions:
- 介绍了一种用离散数据训练GANs的方法,该方法使用来自鉴别器的估计差测度来计算生成样本的重要度,从而为训练生成器提供一个策略梯度。
🔴(2017.03-arXiv)Cycle-GAN:Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks【论文原文】
💡contributions:
- 训练数据无需pair;
- 增加一个内容损失函数保证内容的不变性。
cycle consistency loss函数:
🔴(2017.03-arXiv)TripleGAN:Triple Generative Adversarial Nets【论文原文】【参考文章】
💡contributions:
- 基于CGAN的改进,在标准的GAN的基础上引入了分类器C(可以训练得到标注模型);
- G和C分别对图像和标签之间的条件分布进行特征描述;
- D只需要专注于判别输入样本image-label的来源,并且使G和C都无限解决与真实配对数据。
🔴(2017.04-arXiv)WGAN-GP:Improved Training of Wasserstein GANs【论文原文】【原理解析】
💡contributions:
- 出了一种梯度惩罚策略,来取代WGAN中的weight clipping策略。
loss函数:
- 添加一个梯度惩罚项,满足Lipschitz条件。
🔴(2017.06-arXiv)FID:GANs Trained by a Two Time-Scale Update Rule Converge to a Local Nash Equilibrium【论文原文】【参考文章】
💡contributions:
- Frechet Inception 距离(FID)是评估生成图像质量的度量标准,专门用于评估生成对抗网络的性能,对现有的 Inception 分数(IS)的改进,分数越低越好;
- 结合了每个合成图像的条件类预测的置信度(质量)和预测类别的边缘概率积分(多样性);
(2017.10-ICLR)PGAN:PROGRESSIVE GROWING OF GANS FOR IMPROVED QUALITY, STABILITY, AND VARIATION【论文原文】
💡contributions:
- 渐进式地增加生成器和判别器的规模,训练过程中不断给G和D添加层;
- 为了防止新加入的层对原网络产生巨大影响,提出一种平滑的加入新层的方法。
训练过程:
- 渐进式
(2018.01-arxiv)?-GAN:Which Training Methods for GANs do actually Converge?【论文原文】【参考文章-优秀】
💡contributions:
- 总结之前GAN为什么收敛不稳定(从数学角度)。
🔴(2017.11-arXiv)StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation【论文原文】【参考文章】
💡contributions:
- 解决多领域间的转换问题,(CycleGAN等只能解决两个领域之间的转换);
- StarGAN加入了一个域的控制信息,鉴别器不仅仅需要学习鉴别样本是否真实,还需要对真实图片判断来自哪个域(类似于CGAN)。
- 新的东西就是标签c掩码向量的设计。
整个网络的处理流程如下:
- b) 将输入图片x和目标生成域c结合喂入到生成网络G来合成fake图片;
- a) 将fake图片和真实图片分别喂入到鉴别器D,D需要判断图片是否真实,还需要判断它来自哪个域;
- c) 与CycleGAN类似,还有一个一致性约束,将生成的fake图片和原始图片的域信息c’结合起来喂入到生成器G要求能输出重建出原始输入图片x。
🔴(2017.11-arXiv)Pix2pixHD: High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs【论文原文】【参考文章】
💡contributions:
- 使用CGANs从语义标签图生成高分辨率的逼真图像(2048x1024);
- 通过一个新的对抗损失和多尺度生成器、判别器来生成高清图像;
- 使用实例级物体分割信息,可进一步提高图像质量,实现对物体的灵活修改(物体增删,换类别);
- 提取实例级特征,实现一对多的图像生成,支持物体的特征编辑;
- 训练过程中,先训练G1,后训练G2,再一起fine-tune,其中G1是全局生成器,G2是局部增强生成器。
(2017.12-arxiv)PacGAN: The power of two samples in generative adversarial networks【论文原文】【参考文章】
💡contributions:
- discriminator基于多样本(真实的和生成的)做决策;
(2018.02-arxiv)?-GAN:CGANS WITH PROJECTION DISCRIMINATOR【论文原文】【参考文章】
💡contributions:
- 提出了一种新的GAN的判别器方式,用在了SAGAN和SNGAN中;
- 大胆抛弃 softmax 或者 sigmoid activation,用数字的大小直接代表属于某类的程度;
- ACGAN的特例?
- (d) 图为本文提出的结构,输入图片首先经过网络 Φ 提取特征,然后把特征分成两路:一路与经过编码的类别标签 y 做点乘,另一路再通过网络 Ψ 映射成一维向量。最后两路相加,作为神经网络最终的输出。注意这个输出类似于 W-GAN,不经过 sigmoid 函数映射,越大代表越真实。
(2018.02-ICLR)SNGAN:SPECTRAL NORMALIZATION FOR GENERATIVE ADVERSARIAL NETWORKS【论文原文】【原理推导】
💡contributions:
- 提出一种“严格”地解决了1-Lipshcitz约束的方法。
- 对权重矩阵做谱范数归一化就可以更好的训练。
感想:
- 对WGAN-GP的补充?
🔴(2018.04-ECCV)MUNIT:MultimodalUnsupervisedImage-to-ImageTransl Multimodal UNsupervised Image-to-image Translation【论文原文】
💡contributions:
- 基于UNIT的改进,可以在多个domain之间进行转换;
- 不需要配对图像;
- 将图像分解为内容和风格;
(a)各个域 Xi 中图像的编码形式为:共享目标空间 C 和域特有的风格空间 Si。每个编码器都有对应的反编码器(未在图中展示)。
(b)为了将某个 X1 中的图像(如猎豹)变换到 X2 中(如家猫),我们将输入图像的内容码和目标风格空间中的某个随机风格码进行重组。不同的风格码会得到不同的输出。
Image-to-Image 转化模型(MUNT)由分别各属于一个域的两个自编码器组成(在图中分别用红色和蓝色箭头表示),每个自编码器的隐编码由一个内容码 c 和一个风格码 s 构成。我们利用对抗目标(adversarial objectives)(图中点线)和双向重建目标(bidirectional reconstruction objectives)(图中短线)训练模型,其中对抗目标能保证转化的图像和目标域中真实图像难以区分,双向重建目标则用于同时重建图像和隐编码。
内容编码器:由多个用于对输入降低采样的 Strided Convulsion 层和多个进一步处理输入的 Residual Block 组成,其中所有的 Convulsion 层都进行了 Instance Normalization 处理。
风格编码器:由多个 Strided Convulsion 层、一个全局的 Average Pooling 层和一个全连接(Fully Connected)层组成。在这里我们没有使用 IN 层,因为 IN 会去除原始特征的均值和方差,而很多重要的风格信息都包含在其中。
🔴(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-arxiv)ESRGAN:Enhanced Super-Resolution Generative Adversarial Networks【论文原文】【参考文章】
💡contributions:
- 基于SRGAN的改进;
- 改进了网络结构,对抗损失(采用的ragan的discriminator),感知损失;
- 去除BN层(图四左),引入Residual-in-Residu Dense Block(RRDB)(图四右);
- 使用激活前的VGG特征来改善感知损失;
🔴(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。
🔴(2018.12-CVPR)Style-GAN:A Style-Based Generator Architecture for Generative Adversarial Networks【论文原文】【参考文章】
💡contributions:
- 通过分别修改每一层级的输入,在不影响其他层级的情况下,来控制该层级所表示的视觉特征。这些特征可以是粗的特征(如姿势、脸型等),也可以是一些细节特征(如瞳色、发色等);
- 实现对生成图像中特定尺度的属性的控制;
- 提出了新的高质量的人脸数据集(FFHQ,7万张1024×1024的人脸图片);
🔴(2019.03-arxiv)SPADE:Semantic Image Synthesis with Spatially-Adaptive Normalization【论文原文】【参考一】【参考二】
💡contributions:
- 输入一张语义分割的图像,生成一张对应的真实图像;
- 认为直接利用正则层会洗掉图像中原有的语义信息。提出了一种spatially-adaptive的正则化;
- 非条件正则层包括Local Response Normalization、BN、IN、LN等。然而条件正则层不同的是依赖于外部数据,例如Conditional BN、Adaptive IN等。条件正则用法为:首先将特征零均值单位方差化,然后利用一个可学习的affine转换进行去正则化。对于风格迁移任务,affine参数用来控制输出的整体风格。所以在整个空间空间坐标上是一致的。而本文提出的正则层应用一个空间变化的affine转换;
- 类似于BN,也是在通道维进行正则化,并利用学到的scale和bias进行调制;
有了SPADE,无需在生成器首层输入语义图,因为学习到的调制参数已经编码了关于标签布局的足够信息。因此,弃掉了生成器的编码器部分。更轻量,目前许多工作也是这样做的。上图是生成器结构:生成器相应的判别器利用多尺度结构,和pix2pixHD的那个一样。除了将最小二乘损失换成了hinge loss。
🔴(2019.05-arxiv)FUNIT:Few-Shot Unsupervised Image-to-Image Translation【论文原文】【参考文章】
💡contributions:
- 使得模型在测试时可以使用未出现过的图像类。网络模型主要使用生成对抗网络结构(GAN);模型由两部分组成:条件图像生成网络(Conditional image generator)和多任务对抗判别网络(Multi-task Adversarial Discriminator criminator)
- 只需少量样本(几张照片),就能将一张新图片中的一些姿势、五官分布等特征转换到这些样本图上
- 网络结构主要可以分为三部分:内容编码器(Content encoder)、类别编码器(Class encoder)、解码器(Decoder)。
内容编码器含有 4 个二维卷积层和 2 层残差网络,将内容图像映射成内容编码。
类别编码器含有 5 个二维卷积层和 1 个均值池化,分别将每个类别图像进行向量化,再取均值作为类别编码。
解码器含有多个自适应实例标准化残差网络(AdaIN Residual Blocks),即残差网络模型利用 AdaIN(Adaptive Instance Normalization)做归一化层。AdaIN 是风格迁移模型中的一个手段,本质是对 Instance Normalization(实例标准化)的改进,可以进行任意风格的图像迁移。除此之外,解码器还存有多个卷积层,将内容编码做仿射变换(即风格迁移,仿射变换的参数由类别编码经过全连接层变换得到),得到具有内容图像特征的类别图像类似图。通俗来讲,编码解码后实现了将豹哥(抽取类别图像猎豹面部特征)转换成大眼卖萌的猎豹(内容图像是大眼卖萌狗子)。
🔴(2019.05-ICCV)SinGAN:Few-Shot Unsupervised Image-to-Image Translation【论文原文】【参考一】【参考二:优秀】
💡contributions:
- 介绍了一种可以从单幅自然图像中学习的新型非条件生成框架–SinGAN。证明了其可以学习单一图像的完全分布,从噪声完全生成具有逼真细节、清晰纹理的自然图像;
- 设计了一个基于单张图片的图像生成模型,并将其应用到多个方向,包括图像随机生成,图像融合、手绘画转自然图像、图像编辑以及图像超分重建;
- 设计一种基于单张自然图像训练的非条件GAN网络(由噪声作为输入直接生成);
- 无需修改模型,直接应用于多种图像任务;
- GAN网络中的G网络与D网络具有相同的模型结构以及相同的感受野,并添加一种重建损失,保证GAN可以进行平稳训练;
- 设计一种coarse-to-fine的金字塔型GAN网络,每一层学习到前一层缺失的细节;
SinGAN的局限性主要表现在:
- 第一,当图像块的差异较大时,无法学到很好的分布,容易导致不真实的现象出现。
- 第二,生成图像的内容高度受限于训练图像提供的语义信息,换句话说就是“创造性”较差。
(2019.11-AIM)DSGAN:Frequency Separation for Real-World Super-Resolution 【论文原文】【等待更新】
💡contributions:
- 提出一种高低分频分离的图像超分架构(有助于纹理细节);
- 在下采样过程中引入自然图像特性;
- 可以在HR图像上进行无监督训练;
- LH由双三次下采样HR得到;
- 低频采用L1损失,高频采用对抗损失。
(2029.09-?)?-GAN:?【论文原文】【等待更新】
💡contributions:
- 等待更新。
训练过程:
- 等