论文总结-Generative Adversarial Nets

Generative Adversarial Nets

  • 概述
  • 0. 摘要
  • 1. 介绍
  • 2. 相关工作
  • 3. 对抗网络
  • 4. 理论结果
    • 4.1全局最优解
    • 4.2收敛性
    • 4.3 理论证明的局限性
  • 5. 实验
  • 6. 优势和劣势
  • 7. 总结和未来方向

论文链接: Generative Adversarial Nets

概述

该论文为生成式对抗网络(GAN)的开山之作,文章提出了一个新的生成模型框架。花了一下午的时间读完这篇论文,在此对论文的内容作一简单的梳理。希望能给后来学习的人一点帮助。因为时间有限,难免会错误,也请各位指处。

0. 摘要

启发
对抗博弈过程
新生成模型GAN
生成模型
判别模型
G-产生数据分布
D-衡量样本来自G还是训练数据
  • 创新点
    同时训练两个对抗的模型
  • 唯一解:
    G→恢复训练数据分布
    D→处处等于 1 2 \frac{1}{2} 21
  • 训练过程
    最大化D的错误率
  • 训练方式
    使用反向传播进行训练(反向传播:每次训练更新权重)

1. 介绍

  • 深度学习想要完成的任务
    找一个模型来表示数据的概率分布。
  • 当前最成功的深度学习
    判别模型(分类),原因激活函数是具有良好梯度的分段线性单元。
  • 生成模型的定义
    生成模型可以描述成一个生成数据的模型,属于一种概率模型。通过这个模型我们可以生成不包含在训练数据集中的新的数据。
  • 生成网络的难点
    1)概率估计的困难;2)难以利用分段线性单元。
  • 对抗网络框架
    G→伪造团队
    D→警察,发现伪造
    G和D均使用多层感知机(MLP,一种神经网络模型)

2. 相关工作

论文中介绍了一些生成模型及其相关的难点。
比如玻尔兹曼机在求最大似然估计的时候,似然函数难以处理。
噪声对比估计在学习到小范围的分布后,效率下降。
下图为生成模型的分类:
论文总结-Generative Adversarial Nets_第1张图片
最新概率生成模型

  • 生成对抗网络(GANs)
    优点:生成样本细节清晰
    缺点:优化困难,训练过程不稳定性
  • 变分自动编码模型(VAE)
    优点:允许带隐变量的概率图模型学习与贝叶斯推断
    缺点:生成样本模糊
  • 自回归模型(Auto-regressive)
    优点:简单,稳定的训练过程
    缺点:采样效率低

3. 对抗网络

GAN基本框架:
论文总结-Generative Adversarial Nets_第2张图片

GAN的价值函数:
GAN
G G G是一个含有参数 θ g θ_{g} θg的多层感知机表示的可微函数。
D D D是一个含有参数 θ d θ_{d} θd的多层感知机表示的可微函数。
定义输入噪声 p z ( z ) p_{z}(z) pz(z),真实数据分布为 p d a t a p_{data} pdata
G ( z ) G(z) G(z)代表输入噪声 z z z产生的数据映射, p g p_{g} pg为生成分布。
D ( x ) D(x) D(x)代表 x x x来自于真实数据分布 p d a t a p_{data} pdata而不是生成分布 p g p_{g} pg的概率。
我们训练D提高判别样本是来自训练数据还是G产生的概率。
实际上,训练时会选择最大化 l o g D ( G ( z ) ) logD(G(z)) logD(G(z))而不是最小化 l o g ( 1 − D ( G ( z ) ) ) log(1-D(G(z))) log(1D(G(z))),因为该目标函数使得G和D动力学稳定点相同,且在训练初期该目标函数可以提供更强大的梯度。
论文总结-Generative Adversarial Nets_第3张图片
训练生成对抗网络如上图所示。(D:蓝色虚线;G绿色实线;训练数据:黑色虚线)
z z z x x x的“→”表示 x = G ( z ) x=G(z) x=G(z)的映射分布。由图可知,随着训练若干步后,最终D几乎稳定在一个值,而生成分布 p g p_{g} pg接近于 p d a t a p_{data} pdata。在下一节会对对抗网络进行理论分析证明(尽管最终作者提到 proofs do not apply,但还是说明了GAN具有一些理论依据)。

论文总结-Generative Adversarial Nets_第4张图片
上图为原文中算法1的截图。下面简单解释下这个算法的伪代码。
外层for循环为训练迭代次数,里层for循环为优化判别器D的次数。(不能够优化D到完成,这将导致过拟合,因此在优化D的k个步骤和优化G的一个步骤之间交替,只要G变化的足够慢,可以保证D保持在其最优解附近。)

  • 优化D的过程
    1)在噪声分布 p g p_{g} pg中采集一个minibatch(最小批量,深度学习不是每次训练就把所有样本投入进去,而是分批次的少量投入样本)
    2)在数据分布 p d a t a p_{data} pdata中采集一个minibatch
    3)通过随机梯度上升更新判别器
  • 优化G的过程
    1)在噪声分布 p g p_{g} pg中采集一个minibatch
    2)通过随机梯度下降更新生成器

4. 理论结果

4.1全局最优解

全局最优解为 p g = p d a t a p_{g}=p_{data} pg=pdata
对于固定的G,D的最优解有如下形式:
论文总结-Generative Adversarial Nets_第5张图片
证明请见原文。
因此目标函数可以重写为如下形式:
论文总结-Generative Adversarial Nets_第6张图片
最后可以证明当且仅当 p g = p d a t a p_{g}=p_{data} pg=pdata,即G生成的数据分布于真实数据无差别(生成模型能够完美复制数据的生成过程), C ( G ) C(G) C(G)有全局最小值 − l o g 4 -log4 log4

4.2收敛性

如果 G G G D D D有足够的学习能力,那么给定 G G G D D D可以达到其最优解,并且 p g p_{g} pg可以更新来优化
在这里插入图片描述
使得 p g p_{g} pg收敛于 p d a t a p_{data} pdata

4.3 理论证明的局限性

原文:In practice, adversarial nets represent a limited family of p g p_{g} pg distributions via the function G ( z ; θ g ) G(z; θ_{g}) G(z;θg), and we optimize θ g θ_{g} θg rather than p g p_{g} pg itself, so the proofs do not apply.
翻译:实际上,对抗网络通过 G ( z ; θ g ) G(z; θ_{g}) G(z;θg)产生分布 p g p_{g} pg,我们直接能优化 θ g θ_{g} θg而不是 p g p_{g} pg本身,因此证明不适用。

5. 实验

作者在一系列数据集上实验了该模型,包括MNIST、TFD和CIFAR-10,取得了较好的效果。
生成器的激活函数为ReLU和sigmoid,判别器的激活函数为maxout。
实验结果如下:
论文总结-Generative Adversarial Nets_第7张图片
论文中的训练生成样本如下图所示:
论文总结-Generative Adversarial Nets_第8张图片
我从网上找了一个基于MNIST数据集的GAN训练过程图
论文总结-Generative Adversarial Nets_第9张图片
这里挑选了第0, 5, 10, 20, 40, 60, 80, 100, 150, 250轮的迭代效果图。
在这个图中,我们可以看到最开始的时候只有中间是白色,背景黑色块中存在着很多噪声。
随着迭代次数的不断增加,生成器制造假图的能力也越来越强,它逐渐学得了真实图片的分布。

6. 优势和劣势

  • 优点:
    1)计算梯度时只用到了反向传播,而不需要马尔科夫链。
    2)训练时不需要对隐变量做推断。
    3)理论上,只要是可微分函数都能用于构建D和G,因而能够与深度学习结合来学习深度产生式网络(deep generative model)。
    4)统计角度上来看,G的参数更新不是直接来自于数据样本,而是使用来自D的反传梯度。

  • 缺点:
    1)生成器的分布 p g p_{g} pg没有显示的表达。
    2)比较难训练,D与G之间需要很好的同步,例如D更新k次而G更新1次。

7. 总结和未来方向

  • 条件生成模型 p ( x ∣ c ) p(x|c) p(xc)可以通过将 c c c作为G和D的输入来获得。
  • 给定 x x x,可以通过训练一个任意的模型来学习近似推理,以预测 z z z。这和wake-sleep算法训练出的推理网络类似,但是它具有一个优势,就是在生成器训练完成后,这个推理网络可以针对固定的生成器进行训练。
  • 能够用来近似模型所有的条件概率 p ( x S ∣ x S ′ ) p(x_{S}∣x_{S'}) p(xSxS),其中 S S S通过训练共享参数的条件模型簇的关于索引 x x x的一个子集。本质上,可以使用生成对抗网络来随机拓展MP-DBM。
  • 半监督学习:当标签数据有限时,鉴别器或推理网络的特征可以提高分类器的性能。
  • 效率改善:通过设计更好的方法来协调G和D,或者在训练期间确定样本z的更好分布,可以大大加快训练速度。

你可能感兴趣的:(机器学习,深度学习)