【1.介绍】
GAN网络可以看成是两个网络模型对抗,一个是生成网络模型G,一个是识别网络模型。生成式网络模型G是一个用来生图片的网络,该模型的输入为一个随机的噪声z,通过这个噪声来生成相应的图片,该图片记做G(z)。识别网络模型D是一个判断网络,它用来判断网络是不是真是的样本。输入的样本图像为x,x即可能来自于模型G所产生,也可能来自于真实的样本,D(x)表示x为真实样本的概率,输出为1表示100%的真实图片,为0表示真实图片。生成网络G的目的就是尽量生成真实的图片去欺骗识别网络D,识别网络D的目的就是就是区分出生成网络G和真实样本的图片。打个比喻,G网络就像一个造假币的犯罪分子,D网络就像一个验钞机,G尽可能地想骗过D网络,D网络尽可能地识别出哪些是真币哪些是假币。G和D模型都是一个多层感知机,它们均使用BP和dropout算法进行训练,G模型采用前向算法生成图像。
【2.实现方式与算法】
为了学习生成器关于数据x上的分布, 我们定义输入噪声的先验变量(z),然后使用G(z;θg)来代表数据空间的映射。这里G是一个由含有参数 的多层感知机表示的可微函数。我们再定义了一个多层感知机D(x;)用来输出一个单独的标量。D(x) 代表x 来自于真实数据分布而不是的概率,我们训练D来最大识别网络是否为真实样本的概率.我们同时训练G来最小化log(1−D(G(z)))。换句话说,D和G的训练是关于值函数V(G,D)的极小化极大的二人博弈问题:
[1]
在训练的内部循环中优化D到完成的计算是禁止的,并且有限的数据集将导致过拟合。相反,我们在优化D的k个步骤和优化G的一个步骤之间交替。只要G变化足够慢,可以保证D保持在其最佳解附近。该过程如算法1所示。
实际上,方程1可能无法为G提供足够的梯度来学习。训练初期,当G的生成效果很差时,D会以高置信度来拒绝生成样本,因为它们与训练数据明显不同。因此,log(1−D(G(z)))饱和。因此我们选择最大化logD(G(z))而不是最小化log(1−D(G(z))) 来训练G,该目标函数使G和D的动力学稳定点相同,并且在训练初期,该目标函数可以提供更强大的梯度。
图1:训练对抗的生成网络时,同时更新判别分布(D,蓝色虚线)使D能区分数据生成分布(黑色虚线)中的样本和生成分布 (G,绿色实线) 中的样本。下面的水平线为均匀采样z的区域,上面的水平线为x的部分区域。朝上的箭头显示映射x=G(z)如何将非均匀分布作用在转换后的样本上。G在高密度区域收缩,且在的低密度区域扩散。(a)考虑一个接近收敛的对抗的模型对:与相似,且D是个部分准确的分类器。(b)算法的内循环中,训练D来判别数据中的样本,收敛到:。(c)在G的1次更新后,D的梯度引导G(z)流向更可能分类为数据的区域。(d)训练若干步后,如果G和D性能足够,它们接近某个稳定点并都无法继续提高性能,因为此时=。判别器将无法区分训练数据分布和生成数据分布,即D(x)=1/2。
算法1.生成对抗网络的minibatch随机梯度下降训练。判别器的训练步数,k,是一个超参数。在我们的试验中使用k=1,使消耗最小。
【3.理论证明】
在模型容量和训练时间足够大时,我们希望算法1可以使收敛为。以下的证明也是基于样本容量和训练时间足够长。我们将在3.1节中显示,这个极小化极大问题的全局最优解为=。我们将在3.2节中展示使用算法1来优化等式1,从而获得期望的结果。
3.1全局最优:=
首先任意给生成器G,考虑最优判别器D。
命题1.固定G,最优判别器D为:
[2]
证明:给定任意生成器G,判别器D的训练标准为最大化目标函数V(G,D):
[3]
对于任意的(a,b)∈R2∖{0,0},函数y→a*log(y)+b*log(1−y)在[0,1]中的处达到最大值。无需在Supp()∪Supp()外定义判别器,证毕。
[4]
定理1.当且仅当=时,C(G)达到全局最小。此时,C(G)的值为−log4。
证明.=时,=1/2(公式2)。再根据公式4可得,C(G)=log1/2+log1/2=−log4。为了看仅当=时C(G)是否是最优的,观测:
然后从C(G)=V(,G)减去上式,可得:
C(G)=−log(4)++ [5]
其中KL为Kullback–Leibler散度。我们在表达式中识别出了模型判别和数据生成过程之间的Jensen–Shannon散度:
C(G)=−log(4)+2⋅ [6]
由于两个分布之间的Jensen–Shannon散度总是非负的,并且当两个分布相等时,值为0。因此C∗=−log(4)为C(G)的全局极小值,并且唯一解为=,即生成模型能够完美的复制数据的生成过程。
3.2算法1的收敛性
命题2.如果G和D有足够的性能,对于算法1中的每一步,给定G时,判别器能够达到它的最优,并且通过更新来提高这个判别准则。
[7]
则收敛为。
证明.如上述准则,考虑V(G,D)=U(,D)为关于的函数。注意到U(,D)
为的凸函数。该凸函数上确界的一次导数包括达到最大值处的该函数的导数。换句话说,如果且对于每一个α,是关于x的凸函数,那么如果,则。这等价于给定对应的G和最优的D,计算pg的梯度更新。如定理1所证明,是关于的凸函数且有唯一的全局最优解,因此,当的更新足够小时,收敛到,证毕。
实际上,对抗的网络通过函数G(z;θg)表示分布的有限簇,并且我们优化而不是本身。使用一个多层感知机来定义G在参数空间引入了多个临界点。然而,尽管缺乏理论证明,但在实际中多层感知机的优良性能表明了这是一个合理的模型。
【4.实验】
我们在一系列数据集上,包括MNIST、多伦多面数据库(TFD)和CIFAR-10,来训练对抗网络。生成器的**函数包括修正线性**(ReLU)和sigmoid**,而判别器使用maxout**。Dropout被用于判别器网络的训练。虽然理论框架可以在生成器的中间层使用Dropout和其他噪声,但是这里仅在生成网络的最底层使用噪声输入。
我们通过对G生成的样本应用高斯Parzen窗口并计算此分布下的对数似然,来估计测试集数据的概率。高斯的σ参数通过对验证集的交叉验证获得。Breuleux等人引入该过程且用于不同的似然难解的生成模型上。结果报告在表1中。该方法估计似然的方差较大且高维空间中表现不好,但确实目前我们认为最好的方法。生成模型的优点是可采样而不直接估计似然,从而促进了该模型评估的进一步研究。
表1.基于Parzen窗口的对数似然估计。MNIST上报告的数字是测试集上的平均对数似然以及在样本上平均计算的标准误差。在TFD上,我们计算数据集的不同折之间的标准误差,在每个折的验证集上选择不同的σ。在TFD上,在每一个折上对σ进行交叉验证并计算平均对数似然函数。对于MNIST,我们与真实值(而不是二进制)版本的数据集的其他模型进行比较。
训练后的生成样本如下图2、图3所示。虽然未声明该方法生成的样本由于其它方法生成的样本,但我们相信这些样本至少和文献中更好的生成模型相比依然有竞争力,也突出了对抗的框架的潜力。
图2.来自模型的样本的可视化。最右边的列示出了相邻样本的最近训练示例,以便证明该模型没有记住训练集。样品是完全随机抽取,而不是精心挑选。与其他大多数深度生成模型的可视化不同,这些图像显示来自模型分布的实际样本。此外,这些样本是完全不相关的,因为,采样过程并不依赖马尔科夫链混合。a)
MNIST;b) TFD;c) CIFAR-10(全连接模型);d)
CIFAR-10(卷积判别器和"解卷积"生成器)
图3.通过在完整模型的z空间的坐标之间进行线性内插获得的数字。
【5.优势和劣势】
新框架相比以前的模型框架有其优缺点。缺点主要为的隐式表示,且训练期间,D和G必须很好地同步(尤其,不更新D时,不必过度训练G,为避免"Helvetica情景"。否则,x值相同时G丢失过多z值以至于模型多样性不足),正如Boltzmann机在学习步间的不断更新。其优点是无需马尔科夫链,仅用反向传播来获得梯度,学习间无需推理,且模型中可融入多种函数。表2总结了生成对抗网络与其他生成模型方法的比较。
表2.生成建模中的挑战:对涉及模型的每个主要操作的深度生成建模的不同方法遇到的困难的总结。
上述优势主要在计算上。对抗的模型也可能用数据实例,仅用流过判别器的梯度,从间接更新的生成模型中获得一些统计优势。这意味输入部分未直接复制进生成器的参数。对抗的网络的另一优点是可表示很尖,甚至退化的分布,而基于马尔科夫链的方法为混合模式而要求模糊的分布。
【6..结论和未来研究方向】
该框架允许许多直接的扩展:
-
条件生成模型p(x∣c)可以通过将c作为G和D的输入来获得。
-
给定x,可以通过训练一个任意的模型来学习近似推理,以预测z。这和wake-sleep算法训练出的推理网络类似,但是它具有一个优势,就是在生成器训练完成后,这个推理网络可以针对固定的生成器进行训练。
-
能够用来近似模型所有的条件概率,其中S通过训练共享参数的条件模型簇的关于x索引的一个子集。本质上,可以使用生成对抗网络来随机拓展MP-DBM。
-
半监督学习:当标签数据有限时,判别网络或推理网络的特征不会提高分类器效果。
-
效率改善:为协调G和D设计更好的方法,或训练期间确定更好的分布来采样z,能够极大的加速训练。
本文已经展示了对抗模型框架的可行性,表明这些研究方向是有用的。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:GAN生成式对抗网络总结 - Python技术站