GANs - 生成对抗网络系列论文学习笔记
最近对生成对抗网络(GANs, Generative Adversarial Networks)相关研究感兴趣,阅读了一些论文。
GANs - 生成对抗网络系列论文学习笔记
本文主要按照论文发表的时间顺序概览生成对抗网络领域的主要研究。
0 背景
相关资料:
新智元介绍文章:必读!生成对抗网络GAN论文TOP 10
GitHub相关专题:nightrome / really-awesome-gan
1 GANs
Goodfellow I, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[C]//Advances in neural information processing systems. 2014: 2672-2680.
生成对抗网络(GANs, Generative Adversarial Networks)由Ian Goodfellow等人于2014年提出。
已有研究主要关注概率分布函数的参数估计,通过参数方法实现生成器。但似然函数难以处理,需要大量近似。例如:深层波兹曼机依赖似然函数。因此需要生成模型,避免依赖形式明确的似然函数。
GANs通过同时对抗训练两个模型:生成模型
生成模型
判别模型
对抗网络框架(adversarial nets
framework),包含:生成模型
以造假币者(counterfeiters)为例:造假币者即生成模型,而分辨和调查假币的警察就是判别模型。造假币者和警察互相对抗,在对抗中,造假币者不得不制造更加逼近真币的假币,而警察也会在持续的对抗中提升自己的判别能力。总而言之,对抗带来的训练会提高判别模型和生成模型各自的能力。
该论文中的生成模型和判别模型均通过多层感知机实现。
2 Conditional GANs
Mirza M, Osindero S. Conditional generative adversarial nets[J]. arXiv preprint arXiv:1411.1784, 2014.
条件生成对抗网络(Conditional GANs(在一些论文亦中称为cGANs), Conditional Generative Adversarial Nets)由Mehdi Mirza和Simon Osindero在2014年提出。
Conditional GANs是在GANs的基础上发展出的新模型,其主要特点是可以对生成器和判别器施加条件。
GANs为无条件生成模型,无法控制数据生成模式。GAN的值函数(value
func)的
相较于GAN中的值函数中的
作者在MNIST手写字符数据集上做了单模态(unimodal)实验,以真实手写字符样本为x,对应数字为y,训练Conditional GANs来生成指定类别(数字0~9)所对应的手写字符图像。作者在Flickr的图文数据上开展了多模态(multimodal)实验,以图片为x,用户生成元数据(UGM, user-generated metadata)为y,训练Conditional GANs来生成tag-vectors。评价方法:为每个图片生成100个样本,其中每个样本计算top-20近义词,统计以上100×20个词,取其中top-10最频繁词作为图片的生成标记(generated tags)
3 DCGANs
Radford A, Metz L, Chintala S. Unsupervised representation learning with deep convolutional generative adversarial networks[J]. arXiv preprint arXiv:1511.06434, 2015.
深度卷积生成对抗网络( DCGANs, deep convolutional generative adversarial networks)由Alec Radford、Luke Metz和Soumith Chintala在2015年提出。
DCGANs可以学习从目标部分到场景的多层表示(图像特征提取),利用GANs结构来学习大量无标记数据得到可复用的特征表示继而用于有监督学习任务。
论文主要包含以下四点内容:
- DCGAN:提出并评价了一系列限制条件,主要用于解决GANs训练不稳定问题。详细参阅论文第3节APPROACH AND MODEL ARCHITECTURE的论述和Architecture guidelines for stable Deep Convolutional GANs总结框。
- 指出判别器在图像分类任务上相较于其它无监督学习算法有优势。
- 指出GANs习得的过滤器可以学会描绘特定目标。
- 指出生成器的向量算术属性可以便捷地操纵生成样本的语义质量。
该论文在的典型实验,通过尝试控制输入噪声,继而完全移除生成模型生成图像中的窗户,说明了生成模型通过训练学习到了场景中的物体特征。
4 Improved Techniques for Training GANs
Salimans T, Goodfellow I, Zaremba W, et al. Improved techniques for training gans[C]//Advances in neural information processing systems. 2016: 2234-2242.
本文由Tim Salimans等人于2016年发表。
本文提出了一系列对GANs模型的训练的改进方法以实现收敛的GANs,改进技术包含:
- Feature matching
- Minibatch discrimination
- Historical averaging
- One-sided label smoothing
- Virtual batch normalization
没细看,不展开写。
5 pix2pix
Isola P, Zhu J Y, Zhou T, et al. Image-to-image translation with conditional adversarial networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 1125-1134.
本文由Phillip Isola等人于2017年发表于ICCV。
本文主要研究图到图变换(image-to-image translation)问题。
cGANs不仅学习图到图之间的映射,还学习实际任务的损失函数。
已有研究存在问题:
- 需要人工设计有效的损失函数
- 设计有效的损失函数十分困难
思路:可否寻找更高层面上的目标取代因具体任务而人工设计的损失函数?
cGANs模型非常适合实现图到图变换问题: 1. GANs通过对抗(最小最大化博弈)来训练生成器和判别器,无须人工设计指定任务的损失函数; 2. cGANs可输入条件控制输出,适合用于实现可控的图到图翻译。
本文主要贡献:
- 阐述cGANs在广泛的图到图变换任务上的有效性;
- 提出一个简单且效果不错的框架,并分析架构选择细节
本文框架特点: 1. 生成器基于U-Net架构; 2. 判别器基于卷积PatchGAN分类器。
本文生成器的目标: 1. 既要骗过判别器; 2. 又要输出接近真值的图像。
因此增加L2/L1惩罚项,以减小生成图像与真值图像的差异。使用L1相较于L2可减少生成图像模糊。本文的生成器通过dropout机制引入并控制GANs的噪声
本文于项目pix2pix关联,各个社群的人们把pix2pix应用到了各不相同的图到图变换任务上。
6 StackGAN
Zhang H, Xu T, Li H, et al. Stackgan: Text to photo-realistic image synthesis with stacked generative adversarial networks[C]//Proceedings of the IEEE International Conference on Computer Vision. 2017: 5907-5915.
StackGAN由Han Zhang等人于2017年发表于ICCV。
StackGAN实现的功能基于自然语言文本描述,生成256×256的仿真照片级图像(photo-realistic images)。
基于GANs生成高分辨率图像主要难题:真实自然图像的分布与应用模型的分布在高维像素空间中难以重叠。已有研究类似于本文Stage-Ⅰ GAN的工作,只能生成粗略的低分辨率图像。
StackGAN设计思路: 模仿人类绘画,将高清图像生成分解为两个子问题:
- 从无到有:从文本到低分辨率粗略图;
- 从有到精:从低分辨率粗略图+文本到高分辨率精细图。
StackGAN模型结构:
Stage-Ⅰ GAN:输入时文本描述,输出是仅含形状和色彩的初步生成图像。
Stage-Ⅱ GAN:输入时Stage-Ⅰ GAN输出的初步图像和文本描述,输出是高清的、逼真摄影细节的图像
本文还提出了条件增强(Conditioning
Augmentation)技术。相较于以往研究把文本嵌入(text
embedding)
条件增强技术的方案是从独立高斯分布
Kullback-Leibler divergence (KL divergence):
相对熵(relative entropy),又称为KL散度,信息散度,信息增益。衡量两个概率分布之间的差异度。
通过将该项作为正则化项,在训练生成模型时,梯度下降最小化生成模型目标函数(包含该正则化项),可以减小独立高斯分布
本文使用了Inception score来计算评价矩阵(evaluation
metrics)来评价生成模型。
7 CycleGAN
Zhu J Y, Park T, Isola P, et al. Unpaired image-to-image translation using cycle-consistent adversarial networks[C]//Proceedings of the IEEE international conference on computer vision. 2017: 2223-2232.
CycleGAN由Jun-Yan Zhu等人于2017年发表于ICCV。
CycleGAN主要研究的是如何在没有成对样本的情况下,学习把图像从领域X转换到领域Y?(成对训练数据难以获得)
本文提出了循环一致性损失(cycle consistency loss)来应对这种高度欠约束的映射学习。
思路是,在没有成对数据的情况下,通过学习两个图片集各自特征,实现相互转换。
初步思想:
- 生成模型:
, ,根据 中的样本生成类 样本; - 判别模型:判别
(或 )是生成样本还是真实的 中样本。
根据初步思想建立的对抗网络模型会遇到问题,因为
为了应对mode collapse难题,作者提出模型必须是循环一致的(cycle
consistent)。
循环一致性损失包含:
正向(forward)循环一致性:从x到G(x),再通过F(G(x))逆向变换回去须接近原始x。
反向(backward)循环一致性:从y到F(y),再通过G(F(y))逆向变换回去须接近原始y。
循环一致性损失计入了正向一致性损失(从x开始变换)和反向一致性损失(从y开始变换)。损失通过计算L1范数距离取得。
完整的目标损失:计入
Gitalking ...