原文:Generative Adversarial Nets
开始阅读:
摘要:
我们提出了一个通过对抗过程来估计生成模型的新框架,其中我们同时训练两个模型:捕获数据分布的生成模型G和估计样本来自训练数据而不是G的概率的判别模型D。G的训练过程是最大化D犯错的概率。这个框架对应于一个极大极小的二人博弈。在任意函数G和D的空间中,存在一个唯一解,G恢复训练数据分布,D处处等于1/2。在G和D由多层感知器定义的情况下,整个系统可以通过反向传播进行训练。在训练或生成样本过程中,不需要任何马尔可夫链或展开近似推理网络。通过对生成的样本进行定性和定量评估,实验证明了该框架的潜力。
ps:对马尔科夫链的解析:GitHub (zhihu.com)
简介
深度学习的前景是发现丰富的分层模型[2],这些模型表示人工智能应用中遇到的各种数据的概率分布,例如自然图像、包含语音的音频波形和自然语言语料库中的符号。到目前为止,深度学习中最显著的成功涉及到判别模型,通常是那些将高维、丰富的感官输入映射到类标签的模型[14,22]。这些惊人的成功主要是基于反向传播和dropout算法,使用分段线性单元,具有特别良好的梯度。深度生成模型的影响较小,因为在最大似然估计和相关策略中出现的许多难以处理的概率计算难以近似,并且由于难以在生成环境中利用分段线性单元的好处。我们提出了一种新的生成模型估计方法来避免这些困难。
在提出的对抗网络框架中,生成模型与对手进行了竞争:一个判别模型,该模型学习确定样本是来自模型分布还是来自数据分布。生成模型可以被认为类似于一组伪造者,试图制造假币并在不被发现的情况下使用,而判别模型类似于警察,试图检测假币。这个游戏中的竞争促使两队改进他们的方法,直到假货与正品无法区分。
该框架可以为多种模型和优化算法生成特定的训练算法。在本文中,我们探讨了生成模型通过多层感知器传递随机噪声生成样本的特殊情况,而判别模型也是多层感知器。我们把这种特殊情况称为对抗性网络。在这种情况下,我们可以只使用非常成功的反向传播和dropout算法[17]来训练这两个模型,并且只使用正向传播从生成模型中采样。不需要近似推理或马尔可夫链。
ps:感知机:
感知机是一种简单的二分类线性分类器,由美国科学家Frank Rosenblatt在1957年提出。它是神经网络和机器学习发展中的重要里程碑之一。
感知机的基本思想是通过将输入特征与对应的权重相乘,并加上一个偏置项,将输入映射到输出标签。具体而言,感知机通过计算以下公式来进行分类:
y = sign(wx + b)
其中,y是输出标签(+1或-1),w是特征权重向量,x是输入特征向量,b是偏置项,sign()函数为符号函数。
感知机的训练过程使用“感知机学习规则”(Perceptron Learning Rule)来调整权重和偏置项,以使模型能够正确分类训练样本。该规则基于随机梯度下降算法,对每个错误分类的样本进行权重的更新。
感知机的优点是简单高效,适用于线性可分的分类问题。然而,感知机只能解决线性分类问题,无法处理非线性分类任务。后续的发展扩展了感知机的功能,例如多层感知机(Multi-Layer Perceptron,MLP)通过添加隐藏层来解决复杂的非线性问题,并成为现代神经网络的基础。
相关工作
具有潜在变量的有向图形模型的另一种选择是具有潜在变量的无向图形模型,如受限玻尔兹曼机(rbm)、深度玻尔兹曼机(DBMs)及其众多变体。这些模型中的相互作用被表示为非规范化的势函数的乘积,通过对随机变量的所有状态的全局求和/积分进行规范化。这个量(配分函数)和它的梯度对于除了最平凡的实例之外的所有实例来说都是难以处理的,尽管它们可以通过马尔可夫链蒙特卡罗(MCMC)方法来估计。混合给依赖MCMC的学习算法带来了一个重大问题。
深度信念网络(Deep belief networks, dbn)[16]是包含单个无向层和多个有向层的混合模型。虽然存在一种快速的近似分层训练标准,但dbn会导致与无向和有向模型相关的计算困难。
无向层(Undirected Layer):无向层是一种基于无向图的层,也称为生成式模型或受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)。无向层中的神经元之间没有方向性的连接,神经元之间的连接是随机的,且没有明确的输入和输出概念。无向层被用于训练和生成数据,可以通过学习数据的分布来捕捉数据中的特征和结构。无向层在深度学习中起到了重要的作用,被用于构建深度信念网络(Deep Belief Networks)等模型。
有向层(Directed Layer):有向层是一种基于有向图的层,也称为判别式模型。有向层中的神经元之间存在明确的输入和输出概念,神经元之间的连接是有方向性的,信息从输入神经元流向输出神经元。有向层常见的类型包括前馈神经网络(Feedforward Neural Network)中的全连接层(Fully Connected Layer)和卷积神经网络(Convolutional Neural Network)中的卷积层(Convolutional Layer)。有向层通常用于解决分类、回归等判别问题,可以通过学习输入和输出之间的映射关系来进行预测。
也有人提出了不近似或限制对数似然的替代标准,如分数匹配[18]和噪声对比估计(NCE)[13]。这两种方法都要求学习到的概率密度解析指定到一个归一化常数。请注意,在许多具有多层潜在变量(如dbn和DBMs)的有趣生成模型中,甚至不可能推导出可处理的非规范化概率密度。一些模型,如去噪自编码器[30]和收缩自编码器,其学习规则与应用于rbm的分数匹配非常相似。在NCE中,就像在这项工作中一样,采用判别训练标准来拟合生成模型。然而,生成模型本身不是拟合一个单独的判别模型,而是用于从固定噪声分布的样本中区分生成的数据。
由于NCE使用固定的噪声分布,在模型在一小部分观察变量上学习到近似正确的分布后,学习速度会显著减慢。
分段线性单元(Piecewise Linear Unit,简称PLU)是一种激活函数,用于神经网络中的某些层或神经元的非线性转换。
与传统的激活函数如Sigmoid和ReLU不同,分段线性单元将输入范围划分为多个线性段,并在每个段内使用线性函数来进行变换。具体而言,分段线性单元可以表示为:
PLU(x) = a(i)x + b(i)
其中,x是输入,a(i)和b(i)是线性段i的斜率和截距。每个线性段都有自己的参数,因此分段线性单元可以学习不同的线性变换来适应不同的数据模式。
分段线性单元的优点之一是它具有较强的表达能力,可以近似任意复杂的非线性函数。同时,由于分段线性单元是线性函数的组合,因此其导数在大部分区域上保持恒定,便于梯度计算和反向传播算法的优化。
分段线性单元在一些任务中表现良好,特别是那些需要对输入数据进行细粒度分割的场景,例如图像分割、对象识别等。常见的分段线性单元包括分段线性函数(Piecewise Linear Function)、整流线性单元(Rectified Linear Unit,ReLU)以及其变体,例如带有斜率参数的PReLU等。
需要注意的是,分段线性单元并非适用于所有问题,选择合适的激活函数要根据具体的任务和数据特点进行评估和调整。
最后,一些技术不涉及明确定义概率分布,而是训练生成机器从期望的分布中提取样本。这种方法的优点是这种机器可以被设计成通过反向传播来训练。最近在该领域的突出工作包括生成随机网络(GSN)框架[5],它扩展了广义去噪自编码器[4]:两者都可以被视为定义参数化马尔可夫链,即学习执行生成马尔可夫链一步的机器的参数。与GSNs相比,对抗网络框架不需要马尔可夫链进行采样。由于对抗网络在生成过程中不需要反馈回路,因此它们能够更好地利用分段线性单元,这提高了反向传播的性能,但在反馈回路中使用时存在无界激活的问题。最近通过反向传播来训练生成机器的例子包括最近关于自动编码变分贝叶斯[20]和随机反向传播[24]的研究。
对抗网络
当模型都是多层感知器时,对抗性建模框架最容易应用。为了了解生成器在数据x上的分布pg,我们定义了输入噪声变量pz(z)的先验,然后将到数据空间的映射表示为G(z;θg),其中G是由参数为θg的多层感知器表示的可微函数。我们还定义了第二个多层感知器D(x;θd)输出单个标量。D(x)表示x来自数据而不是pg的概率。我们训练D以最大化为训练样例和G的样本分配正确标签的概率。我们同时训练G以最小化log(1 - D(G(z))):
![]()
生成对抗网络是通过同时更新判别分布(D,蓝色,虚线)来训练的,这样它就可以区分数据生成分布(黑色,虚线)px和生成分布pg (G)(绿色,实线)的样本。下面的水平线是z被采样的区域,在这种情况下是均匀的。上面的水平线是x域的一部分。向上的箭头显示了映射x = G(z)如何在变换后的样本上施加非均匀分布pg。G在高密度区域收缩,在pg的低密度区域膨胀。(a)考虑一个接近收敛的对抗对:pg与pdata相似,D是一个部分准确的分类器。
(b)在算法的内循环中,D被训练来区分样本和数据,收敛到D∗(x) = pdata(x) pdata(x)+pg(x)。(c)对G进行更新后,D的梯度引导G(z)流向更有可能被分类为数据的区域。(d)经过几个步骤的训练,如果G和d有足够的能力,他们会达到一个点,因为pg = pdata,两者都不能提高。鉴别器无法区分这两个分布,即D(x) = 12。
理论结果
这一部分楼主还没有看懂,全是理论推导,各种变量,感兴趣的小伙伴可以看一下GAN论文阅读——原始GAN(基本概念及理论推导)_StarCoo的博客-优快云博客
实验
我们在一系列数据集上训练了对抗网络,包括MNIST[23]、多伦多人脸数据库(TFD)[28]和CIFAR-10[21]。发电机网络使用整流器线性激活[19,9]和s形激活的混合,而鉴别器网络使用maxout激活[10]。Dropout[17]应用于鉴别器网络的训练。虽然我们的理论框架允许在生成器的中间层使用dropout和其他噪声,但我们只使用噪声作为生成器网络最底层的输入
在图2和图3中,我们展示了训练后从生成器网络中抽取的样本。虽然我们没有声称这些样本比现有方法生成的样本更好,但我们相信这些样本至少与文献中更好的生成模型具有竞争力,并强调了对抗性框架的潜力。
优点和缺点
与以前的建模框架相比,这个新框架有优点也有缺点。缺点主要是没有显式表示的pg (x)和D必须同步与G在训练(特别是G不能训练太多没有更新,为了避免“Helvetica场景”,即G崩溃太多相同的z值x的值有足够的多样性模型pdata),负链的玻耳兹曼机之间必须保持最新的学习步骤。它的优点是不需要马尔可夫链,只需要反向获取梯度,在学习过程中不需要推理,并且可以将各种各样的函数纳入模型。表2总结了生成对抗网络与其他生成建模方法的比较。
上述优点主要是计算性的。对抗性模型也可以从生成器网络中获得一些统计优势,这些生成器网络不直接使用数据示例更新,而是只使用流过鉴别器的梯度。这意味着输入的组件不会直接复制到生成器的参数中。对抗网络的另一个优点是,它们可以表示非常清晰,甚至退化的分布,而基于马尔可夫链的方法要求分布有些模糊,以便链能够在模式之间混合。
wwwwww
最后看不懂了 之后在更吧