• 生成对抗网络(GAN)


    生成模型是深度学习领域难度较大且较为重要的一类模型。生成对抗网络能够在半监督或者无监督的应用场景下进行生成任务的学习。目前而言,生成对抗网络在计算机视觉、自然语言处理等领域取得了令人惊叹的成果。生成对抗模型是近年来复杂数据分布上无监督学习最具前景的方法之一。本文简单从生成对抗网络的定义、理论推导、模型缺点及相应对抗网络的变体等内容作出一定的归纳和总结。

    引言
    生成对抗网络(Generative Adversarial Network, GAN)是一种通过两个神经网络相互博弈的方式进行学习的生成模型。生成对抗网络能够在不使用标注数据的情况下来进行生成任务的学习。生成对抗网络由一个生成器和一个判别器组成。生成器从潜在空间随机取样作为输入,其输出结果需要尽量模仿训练集中的真实样本。判别器的输入则为真实样本或生成器的输出,其目的是将生成器的输出从真实样本中尽可能分别出来。生成器和判别器相互对抗、不断学习,最终目的使得判别器无法判断生成器的输出结果是否真实。

    例如,生成器可以看作货币造假者,目的是制造足够以假乱真的假币;判别器可以看作验钞机,负责判断钞票是否为假币,它能够随着假币质量的提高而不断升级,保持对假币的识别能力。

    定义
    给定数据分布
    ,希望设计生成器,使得生成器所产生的数据分布
    尽可能接近
    。为了学习相应的数据分布,首先随机初始化一个噪音分布
    ,然后将随机初始化的噪音分布作为生成器
    的输入,得到输出
    ;判别器
    判断
    是来自于初始数据分布,或者来自生成器的生成。

    生成对抗网络
    我们可以形式化地定义生成器和判别器:
    判别器
    的训练目标是最大化分类的准确率,而生成器
    的训练目标则是最小化判别器
    的准确率。二者的估值函数是完全相反的,因而形成了零和博弈。在博弈中,

    两名玩家按照极小化极大估值函数
    进行博弈的过程:

    生成对抗网络的批量学习算法定义在Algorithm 1。算法的核心思路为,迭代更新判别器和生成器的参数,直到判别器和生成器都能达到较好的效果。

    理论推导
    本节主要证明两个问题:

    生成对抗网络中的极小化极大值博弈问题中,存在全局最优解:

    通过Algorithm 1能够收敛到此全局最优解。
    全局最优解
    首先求解判别器估值函数的最大值。考虑对于任意的生成器
    ,判别器
    的最优解。给定生成器
    的情况下,判别器的优化目标是最大化估值函数
    。即最大化:
    要使积分的值最大化,需要使积分的内部最大化。设:

    求该函数的极大值:

    故判别器的最优解在
    取到。将
    代入估值函数
    ,得

    其次求解生成器估值函数的最小值。注意到,当
    时,有
    。进一步对
    作变换:

    其中,
    是Kullback-Leibler散度,定义为信息熵与交叉熵之比,衡量两分布之间的差异;
    是Jensen-Shannon散度,用以解决
    散度不对称的问题。
    散度和
    散度都是非负的,且
    散度只有在
    取到0。

    因此 C ( G ) C(G) C(G)在满足当且仅当
    的条件下,估值函数
    能够取到全局最小值
    。这意味着,在全局最优解的状态下,生成器能够产生与原始数据分布相同的样本。

    算法收敛性
    我们还需要证明,在Algorithm 1的算法中,如果

    的容量足够大,且在判别器每个更新步骤都能达到最优的情况下,生成器的输出分布
    收敛到
    。证明过程如下:

    考虑
    是关于
    的函数。对于每个
    来说,
    是凸的。凸函数上确界的子导数包括函数在达到最大值处的导数。即:如果对于任意的

    都是关于
    的凸函数,且
    ,假如
    ,则有:
    这相当于在给定相应
    的情况下,在最优
    处计算
    的梯度下降更新。随着判别器
    不断更新,
    不断更新。在判别器的更新步骤达到最优的状态下,生成器的输出分布也相应达到最优,而此最优正是全局最优。这证明了通过Algorithm 1可以收敛到全局最优解。

    缺点
    一个优秀的GAN应用需要有良好的训练方法,否则可能由于神经网络模型的自由性而导致输出不理想。GAN由于定义的特性,在训练中可能会出现以下问题:

    不稳定收敛
    当生成器和判别器都可以访问其整个策略集时,生成对抗网络具有唯一的全局最优点。但在实际场景中,我们可以访问的数据并不一定是整个策略集。而当它们具有受限策略集时,未必能够稳定收敛到全局最优点。

    模式崩溃
    GAN经常遭受模式崩溃,从输入数据中丢失整个模式以至于无法正确泛化。 例如,在包含每个数字的许多样本的MNIST数据集上训练的GAN可能只会生成数字0的图片。

    发生这种情况的一种原因是生成器与判别器相比学习速度太快。如果判别器
    保持不变,那么最优生成器将只输出的元素。例如,如果在生成MNIST数据集的GAN训练期间,对于几个epoch,判别器以某种方式更喜欢数字0比其他数字稍微多一点,则生成器可能会抓住机会只生成数字0。即使在判别器改进后,生成器也无法逃脱局部最小值。

    梯度消失
    如果判别器与生成器相比学习速度太快,那么判别器几乎可以完美地区分
    . 在这种情况下,生成器
    可能会有非常高的损失,无论它向哪个方向改变
    ,这意味着梯度都将会是接近于零,这会导致生成器无法学习。

    变体
    条件对抗网络
    条件对抗网络(Conditional Adversarial Network, CAN)在标准的GAN基础上,允许模型根据附加信息有条件地生成样本。具体来说,我们可以在原有生成器和判别器的输入端拼接额外信息y,y可以是类别标签,或是其他模态的任何信息。生成器
    的输入端接收噪音分布
    的采样,以及额外信息y,在判别器
    的输入端接收y,整体的目标函数变为:
    条件对抗网络的模型结构如图2所示:

    条件对抗网络
    通过条件对抗网络,可以实现符合特定要求的数据的生成。例如:生成给定标签的图片、可控文本生成等等。

    Wasserstein 生成对抗网络
    为了应对4.2节中出现的梯度消失问题,Wasserstein提出了一种新的生成对抗网络WGAN,它主要是从以下两个方面进行改进:

    将判别器的策略集限制为利普希茨连续。利普希茨连续函数限制了函数改变的速度,符合利普希茨条件的函数的斜率,必小于一个称为利普希茨常数的实数。即:
    . 这限制了判别器的斜率变化,抑制了判别器的学习速度,在一定程度上改进了生成器梯度消失的问题。
    将整个模型的估值函数改为:
    。这限制了生成器在初始时刻的梯度,有效地解决了梯度消失问题。
    总结
    本文就生成对抗网络的定义、原理、缺点以及相应的改进简要作了一份综述。生成对抗模型是近年来复杂数据分布上无监督学习最具前景的方法之一。GAN在图像生成、语义分割、数据增强等领域有着广泛的应用。GAN作为一种训练范式,在深度学习发展的当今仍然占有一席之地,如结合变分自编码器的VAEGAN,结合Attention机制的TransGAN等等。

  • 相关阅读:
    400G QSFP-DD SR8光模块应用场景解析
    算法:空间换时间(计数排序思想)
    心脑体漫画版本
    乘风破浪,遇见最佳跨平台跨终端框架.Net Core/.Net生态 - 官方扩展集锦(Microsoft.Extensions on Nuget)
    【操作系统】之gcc编译
    OS - 操作系统实战 - 学习/实践
    java毕业设计汽车4S服务管理系统mybatis+源码+调试部署+系统+数据库+lw
    【从头构筑C#知识体系】1.6 委托
    Python少儿编程小课堂(七)入门篇(7)for 循环语句
    宇视摄像机防水施工方法
  • 原文地址:https://blog.csdn.net/cuisidong1997/article/details/134426877