Advertisement

生成对抗网络

阅读量:

前言

本人对于深度学习算是刚入门的小白一枚,在学习过程中经常遇到不懂的知识点和技术难点时会感到有些困惑与压力。为了更好地理解和掌握相关技术知识,在深入研究了一些大牛的技术博客后发现自己的思维有时候会停滞不前,并希望通过将这些学习心得整理成文的方式达到巩固知识、提升写作能力的目的。同时我也希望通过这篇文章与同样处于学习阶段的小白们分享彼此的经验与感悟,在交流中共同进步吧!

生成对抗网络

该模型由Goodfellow等人在2014年提出,并且其核心特征是包含两个相互对抗的网络结构。其中一个是生成器网络(generator network),另一个是判别器网络(discriminator network)。顾名思义是我们最容易理解的方式。

生成机制是一种能够逐步构建的结构(尽管并非完全可靠)。它将这些随机分布的数据转换为与训练数据相似的空间,并探索数据分布间的潜在关联。
识别器不仅接受原始数据而且还能处理由生成机制提供的结果。通过分析判断数据性质其输出结果直接给出概率值。


Goodfellow最初提出生成对抗网络(GAN)的目的就是为了构建一个能够有效模仿真实数据分布的生成模型。该生成模型基于真实数据的统计特性能够自动生成新的样本数据。然而由于精确地建模真实的数据分布对于现有的技术而言几乎是不可行的而且评估生成模型是否成功地捕捉到了这种复杂的分布更是难度极大因此研究者们转而采用使用另一个神经网络来进行判别与评估的目的。

作为一个补充说明,在阅读原文的思想后有同感的是生成对抗网络其本质与机器学习中的EM算法具有相似之处 值得进一步深入学习探讨

下面正式转述作者的想法
首先,在讨论深度玻尔兹曼机时作者表达了强烈的不屑一顾的态度原文是:This quantity (the partition function) and its gradient are intractable for all but the most trivial instances, although they can be estimated by Markov chain Monte Carlo (MCMC) methods.
换句话说即使是最简单的实例划分函数及其梯度也难以计算(尽管可以通过马尔科夫链蒙特卡罗方法进行估计)。
其次 深度信念网络的表现令人糟糕至极 在小规模的数据集上都难以得到有效训练(其梯度计算存在严重问题)。

随后又对其表达了不屑一顾的态度(归因于它们结构上的相似性)。在进一步分析其局限性时指出:这两个方法都要求学习的概率密度必须被解析为其对应的归一化常数;否则将无法完成训练任务。

原理

下一步将是利用数学公式展示生成对抗网络的卓越性能(当然是用公式)

生成器旨在欺骗判别器,并通过最大化函数D(x)接近1的同时最小化函数D(G(z))使其接近0来实现这一目标。判别器不仅致力于提升自身的鉴别能力,并将所有生成样本均被判别为假以达到最佳效果。为了实现这一目标,在训练过程中我们采用对数似然损失并构建一个minimax问题:

minimax

这段话的意思是说:我们可以这样理解这个式子:寻求使V(D,G)达到最大值的D(其中要求D(x)尽可能趋近于1),同时寻求使V(D,G)在达到上述最大值时尽可能小的G(即要求D(G(z))尽量趋近于1)。

表面上看似存在矛盾。由于D和G这两个参数,在其中一个参数被预先设定为特定值的情况下才能确定另一个参数的具体取值方式。然而,在实际问题中往往会遇到这样的情况:这两个参数都是未知的。因此,在无法预设所有参数的情况下,默认采用迭代方法来逐步逼近合理的数值解是可行的。

为了使迭代运算能够顺利进行,在处理的数学表达式中必须满足收敛性条件。同时,在这一过程中生成网络不仅识别并建模真实的数据分布模式,并且这一判别器不仅能够有效地区分真伪样本,在处理过程中都能给出中立的概率判断。

换句话说,生成网络达到了以假乱真的程度。


我们暂且不考虑证明的过程,试着想象一下这个过程是怎么进行的.首先是从概率分布的变化情况来分析.

训练过程

上文展示的概率分布曲线呈现出显著差异:蓝线代表判别网络输出结果的分布特征;黑线反映真实样本在样本空间中的分布规律;绿线则显示由生成网络所产出的数据分布情况;底部两条水平线标记着从噪声空间映射到样本空间的具体操作边界。
(a) 图表中先对生成器进行训练后再优化判别器;由于初次生成的数据量有限导致判别器出现局部识别偏差从而形成明显的峰值区域。
(b) 图表中将最大化过程嵌入到判别器训练环节使得判别器能够更加精确地捕捉数据特征。
(c) 图表中在完成判别器优化后进一步针对生成器识别出的虚假样本展开针对性优化使生成模型逐步逼近真实数据分布区域。
(d) 经过多轮迭代后模型最终实现了从模仿到欺骗的目标状态

证明

作者所提出的证明方案是这样的:首先针对max 问题这一核心问题进行求解,在该框架下需要实现使生成样本判别器输出值趋近于1的同时,并使得生成器输出的判别器结果趋近于0。

对于固定的G(z),我们总可以直接写出D(x)的最佳值:

这里写图片描述

这个式子既是直观的概念(基于古典概型),也是可证的;回顾时,我们之前提出的minimax问题:

这里写图片描述

假使G固定,那么最大化V(G,D)就相当于下式积分取最大:

这里写图片描述

而可以证明,积分在满足下式时取最大,证毕。

这里写图片描述

对于\mathbf{min}问题,在已经找到满足条件的\mathbf{D}的情况下,请问如何选择\mathbf{G}以使\mathcal{V}(\mathbf{D},\mathbf{G})达到最小值? 将前面所述的过程结果代入。

这里写图片描述

此时潜在变量仅为pz,在这种情况下可以将pdata视为固定值。其中pz作为生成器网络分布的关键因素起着重要作用,在最小化上式中的目标函数时需要特别注意这一点。为了最小化上式中的目标函数,在作者的研究中已提供相关理论支持;不过进一步查阅相关参考文献可能有助于深入理解这一过程(如我的后续补充材料)。这种情况下显得颇为不便。

经过训练后,在真伪样本上的预测概率均达到0.5的情况下(如图2所示),我们能直观上判断出该系统已达到平衡状态。这表明判别网络无法有效地区分真伪样本

也就是说

这里写图片描述

对于任意x的取值情况而言,在这种情况下该等式恒成立为0.5;这一结果表明,在pz等于pdata时才能满足条件。

算法

十分直观且易于理解。
需要注意的是作者无论是在编写流程还是进行证明的过程中都采用了"多层感知器"这一技术基础。
然而生成对抗技术不仅限于全连接神经网络 在卷积神经网络领域同样展现了其强大的应用潜力

伪算法

我不打算将本实验的结果进行公开分享;
因为相关的参考资料已经非常丰富。
至此关于生成对抗网络的基本理论知识已进行讲解;
现在还不确定是否能够达到预期的效果。
如果有任何意见或建议,请随时提出;
我们评论栏见。

关于min过程的知识体系

全部评论 (0)

还没有任何评论哟~