Generative Adversarial Nets
文章目录
Related work/Motivation
deep Boltzmann machine
基本上都有难以解决的似然函数,需要对似然梯度进行大量的近似(推动了generative machines model的发展)
Generative stochastic networks (GSN)
用bp训练而不是用大量近似
GAN通过舍弃GSN中的马尔科夫链延伸了generative machine的理念
variational autoen coders (VAEs)
VAE也给可微的生成网络配备了一个神经网络
不像GAN,VAE的第二个网络是一个用于近似推理的识别模型。GAN需要通过可见单元进行微分,所以不能对离散数据进行建模;VAE需要通过隐藏单元进行微分,所以不能有离散潜变量。
Noise-contrastive estimation (NCE)
NCE包括通过学习(可以使模型更好的从固定噪声分布中判别数据)的权重来训练生成模型。NCE的关键限制在于,判别器是用噪声分布和模型分布的概率密度的比值定义的,这就要求对两个概率密度分别进行评估和bp。
Predictability minimization PM
PM也用了两个神经网络互相竞争的思想,在PM中,每个隐藏单元被训练成与第二个网络的输出不同。在给定所有其他隐藏单元的值的时候,这个隐藏单元的值被预测出来。
- GAN中,两个网络的竞争是唯一训练标准;PM只是鼓励隐藏单元统计上独立的正则器,竞争并不是主要训练标准。
- GAN中,一个网络产生丰富高维的向量,这个向量被用于另一个网络的输入,并且力图使判别器不知道如何处理(不知道输入数据的真假);在PM中,两个网络的输出被比较,一个使得输出相似,一个使得输出变得不同,问题的最终输出是个标量。
- GAN是一个最小最大化问题,有一个一边想最大化一边想最小化的值函数。PM是一个优化问题,使得目标函数最小化。
adversarial examples
对抗样本是对分类网络的输入使用基于梯度的优化得到的样本,目的是寻找与数据相似但是会被误分类的样本。与GAN有所不同,因为对抗样本不是训练生成模型的工具,而是一种分析工具(比如分析出图片上人类所无法察觉的细小不同)。对抗样本的存在暗示GAN的训练是低效的,可能使得判别器自信地去识别一个类,但是却没有很好地模拟人来对于这个类的感知属性。
Model
公式
生成器的分布pg
数据x
先验的噪声变量pz(z)
对数据空间的映射G(z;θg) ,G 是一个(被一个拥有参数θg的多层感知机表示的)可微函数
D(x;θd) 输出一个标量
D(x)表示x来自于数据而不是来自于pg 的可能性
以生成图片为例,
G(z)表示生成网络生成的图片
D(x) 是指网络判断真实图片是否真实的概率(越接近于1越好)
D(G(z))是指网络判断生成器的图片是否真实的概率
G的目的是使得D(G(z))越大越好,D(G(z))越大,V(D,G)会变小,所以前面是minG。
D的目的是使得D(x)越大越好,然后为了尽可能判别出生成出来的图片,所以D(G(z))越小越好,V(D,G)会变大,所以前面是maxD。
训练过程图
D 蓝色虚线;G 绿色实线;数据分布 黑色点。
状态a,生成器生成饿分布和真实分布区别较大,而且判别器判别出的样本概率不是很稳定。
状态b,先训练判别器,此时判别器判别样本表现得非常好。
状态c,训练生成器G,使得其逼近真实样本分布。
状态d,生成器G分布模拟真实样本分布,判别器D一直输出0.5
伪代码
先训练k次判别器D,再训练一次生成器G。
训练D时,加上梯度,因为D希望V(D,G)越大越好。
相比之下,训练G时,V(D,G)越小越好,所以是减去梯度。
公式推导
- 全局最优时 pg =pdata
公式推导没看懂= =?
Experiment
数据集: MNIST,Toronto Face Database(TFD),CIFAR-10
Parzen窗概率密度估计
计算生成样本和最终真实样本的似然值
Discussion
disadvantages
- 没有pg(x)的显式表示
- D和G在训练中要同步良好
- 它很难去学习生成离散的数据,就像文本
advantages
- 不用马尔科夫链
- 半监督方式训练分类器