1.Why study generative modeling?

人们可能很自然地想知道为什么生成模型值得研究,尤其是那些只能够生成数据而不能提供密度函数估计的生成模型。毕竟,当应用于图像时,这样的模型似乎只提供了更多的图像,而世界上并不缺少图像。

研究生成模型有几个原因,包括:

●从生成模型中进行训练和采样是对我们表示和操作高维概率分布能力的极好测试。高维概率分布是广泛的应用数学和工程领域的重要研究对象。

●生成模型可以通过几种方式整合到强化学习中。强化学习算法可分为两类:基于模型的模型和没有模型的模型,其中基于模型的算法是包含生成模型的算法。时间序列数据的生成模型可以用来模拟可能的未来。这样的模型可以通过多种方式用于规划和强化学习。给定世界的当前状态以及智能体可能采取的假设行动,用于规划的生成模型可以了解世界未来状态的条件分布。智能体可以查询具有不同潜在动作的模型,并选择模型预测的可能会产生期望状态的动作。关于此类模型的最新例子,请参见Finn等人(2016b),关于此类模型用于规划的最新例子,请参见Finn和Levine(2016)。生成模型用于强化学习的另一种方法是在一个虚构的环境中实现学习,在这种环境中,错误的行为不会对智能体造成真正的损害。生成模型还可以通过跟踪不同状态被访问的频率或之前尝试的不同操作来指导探索。生成模型,特别是GANs,也可以用于逆强化学习。其中一些与强化学习的联系将在第5.6节中进一步描述。

●生成模型可以用丢失的数据进行训练,并可以对丢失数据的输入进行预测。数据丢失的一个特别有趣的例子是半监督学习,其中许多甚至大多数训练示例的标签都丢失了。现代的深度学习算法通常需要非常多的标记示例才能很好地概括。半监督学习是减少标签数量的一种策略。该学习算法通过学习大量未标记的例子来提高泛化能力,这些例子通常比较容易获得。生成模型,特别是GANs,能够很好地执行半监督学习。这将在第5.4节中进一步说明。

●生成模型,尤其是GANs,使机器学习能够处理多模态输出。对于许多任务,一个输入可能对应许多不同的正确答案,每个答案都是可以接受的。一些传统的机器学习模型训练方法,如最小化期望输出和模型预测输出之间的均方误差,不能训练出能产生多种不同正确答案的模型。这种场景的一个例子是预测视频中的下一帧,如图3所示。

Figure 3:洛特等人。(2015)很好地说明了能够建模多模态数据的重要性。在本例中,训练模型以预测视频序列中的下一帧。视频描绘了一个人头部移动三维模型的计算机渲染。左边的图像显示了一个实际的视频帧的例子,该模型可以理想地预测这个视频帧。中间的图像显示了使用实际下一帧和模型预测下一帧之间的均方误差训练模型时发生的情况。模型被迫为下一帧的外观选择一个答案。因为有许多可能的未来,对应于头部位置的细微差别,模型选择的单个答案对应于许多细微差别图像上的平均值。这导致耳朵几乎消失,眼睛变得模糊。使用额外的GAN损耗,右边的图像能够理解有许多可能的输出,每一个输出都是清晰的,并且可以识别为真实的、详细的图像。

●最后,许多任务本质上需要从一些分布中生成真实的样本。

一些本质上需要产生好样本的任务的例子包括:

●单帧图像超分辨率:在这个任务中,目标是获取一个低分辨率的图像并合成一个高分辨率的等效物。生成式建模是必需的,因为这个任务要求模型向图像中输入比原来输入的更多的信息。与低分辨率图像相对应的高分辨率图像有很多。模型应该从可能的图像中选择概率分布的样本图像。选择一幅所有可能图像的平均值的图像将产生一个结果,太模糊,令人不愉快。见图4。

Figure 4:Ledig等人(2016)展示了优秀的单幅图像超分辨率结果,表明使用训练生成模型从多模态分布生成真实样本的好处。最左边的图像是原始的高分辨率图像。然后对其进行下采样以生成低分辨率图像,并使用不同的方法尝试恢复高分辨率图像。双三次法仅仅是一种不使用训练集统计量的插值方法。SRResNet是一种经过均方误差训练的神经网络。SRGAN是一个基于GANbased的神经网络,它在SRGAN的基础上进行了改进,因为它能够理解有多个正确的答案,而不是对多个答案求平均值以获得单个的最佳输出。

●任务的目标是创造艺术。最近的两个项目都证明了生成模型,特别是GANs,可以用来创建交互式程序,帮助用户创建符合用户想象中的粗糙场景的真实图像。参见图5和图6。

Figure 5:Zhu等人(2016)开发了一种交互式应用程序,称为交互式生成对抗网络(iGAN)。用户可以画一个图像的草图,而iGAN使用GAN生成最相似的真实图像。在这个例子中,用户潦草地画了几条绿色的线,iGAN把它变成了一片草地,用户画了一个黑色的三角形,iGAN把它变成了一座详细的山。创造艺术的应用程序是研究创造图像的生成模型的众多原因之一。iGAN的视频演示可以通过以下URL获得:https://www.youtube.com/watch?v=9c4z6YsBGQ0。

Figure 6:Brock等人(2016)开发了内省的对抗网络(IAN)。用户对照片进行粗略的修改,比如在用户希望添加黑发的区域使用黑色颜料作画,IAN将这些粗糙的笔触转化为符合用户需求的逼真图像。使用户能够对照片媒体进行实际修改的应用程序是研究生成图像模型的众多原因之一。以下是IAN的视频演示:https://www.youtube.com/watch?v=FDELBFSeqQs

●图像到图像的转换应用程序可以将航空照片转换成地图或将草图转换成图像。有一长串创造性的应用程序很难预测,但一旦被发现就很有用。请参见图7。

Figure 7:Isola等人(2016)提出了一个概念,他们称之为图像到图像的转换,包括图像的多种转换:将卫星照片转换成地图,将草图转换成逼真的图像,等等。因为许多转换过程对于每个输入都有多个正确的输出,所以有必要使用生成式建模来正确地训练模型。特别是,Isola等人(2016)使用了GAN。图像到图像的转换提供了许多例子,说明一个有创造力的算法设计者如何发现生成模型的几个意想不到的用途。在未来,可能会发现更多这样的创造性用途。

所有这些以及生成模型的其他应用都提供了令人信服的理由来投入时间和资源来改进生成模型。

2 How do generative models work? How do GANs compare to others?

我们现在已经知道了生成模型可以做什么,以及为什么我们希望建立一个生成模型。现在我们可以问:一个生成模型实际上是如何工作的?特别是,与其他生成模型相比,GAN是如何工作的?

2.1 Maximum likelihood estimation

为了在一定程度上简化讨论,我们将关注通过最大似然原理工作的生成模型。不是每个生成模型都使用最大似然。一些生成模型默认不使用最大似然,但可以这样做(GANs属于这一类)。通过忽略那些不使用最大似然的模型,并且通过关注通常不使用最大似然的模型的最大似然版本,我们可以消除不同模型之间一些更分散注意力的差异。

为了在一定程度上简化讨论,我们将重点讨论通过最大似然原则工作的生成模型。并不是每个生成模型都使用最大可能性。一些生成模型默认情况下不使用最大可能性,但可以这样做(GANs属于这一类)。通过忽略那些不使用最大似然的模型,并关注那些通常不使用最大似然的模型的最大似然版本,我们可以消除不同模型之间一些更分散注意力的差异。

最大似然的基本思想是定义一个模型,该模型提供由参数θ参数化的概率分布的估计。然后我们将可能性称为模型分配给训练数据的概率:A,对于包含m个训练示例x的数据集。

最大似然原则简单地说就是为模型选择使训练数据的似然值最大化的参数。这在log空间中是最简单的,这里是和而不是乘积。这个和简化了关于模型的似然导数的代数表达式,并且当在数字计算机上实现时,更不容易出现数值问题,比如几个非常小的概率相乘产生的下溢。

在方程2中,我们使用了S表示正v的性质,因为对数是一个处处递增且不改变最大值位置的函数。

最大似然过程如图8所示。

Figure 8:最大似然过程包括从数据生成分布中抽取几个样本,形成一个训练集,然后将模型赋予这些点的概率向上推,以最大化训练数据的似然。这个例子显示了不同的数据点如何向上推到密度函数的不同部分,适用于一维数据的高斯模型。密度函数必须和为1这一事实意味着我们不能简单地把无限可能性分配给所有的点;当一个点在一个地方向上推时,它不可避免地在其他地方向下拉。由此产生的密度函数抵消了来自不同位置的所有数据点的向上力。

我们也可以把最大似然估计看作是最小化数据生成分布和模型之间的KL散度:(4)

如果我们能够精确地做到这一点,那么如果pdata位于pmodel(x;θ)分布族中,那么模型将精确地恢复pdata。实际上,我们不能访问pdata本身,只能访问由来自pdata的m个样本组成的训练集。我们用这些来定义pdata,这是一个经验分布,它只在m个点上放置质量,近似于pdata。最小化pdata和pmodel之间的KL发散完全等同于最大化训练集的对数似然。

有关最大似然估计和其他统计估计的更多信息,请参见Goodfellow等人的第5章。(2016年)。

2.2 A taxonomy of deep generative models

如果我们把注意力限制在通过最大化似然性来发挥作用的深层生成模型上,我们可以通过对比它们计算似然性及其梯度的方式,或者对这些量的近似来比较几个模型。如前所述,这些模型中的许多经常与最大似然以外的原理一起使用,但是我们可以检查它们中每一个的最大似然变量,以减少方法之间的分散差异。按照这种方法,我们构建了如图9所示的分类法。这种分类树的每一片叶子都有一些优点和缺点。GANs的设计避免了树中已有节点的许多缺陷,同时也引入了一些新的缺点。

Figure 9:通过极大似然原则学习的深层生成模型在表示或近似似然的方式上是不同的。在这棵分类树的左分支上,模型构建了一个显式的密度pmodel(x;θ),因此一个显式的可能性,可以最大化。在这些显式密度模型中,密度可能在计算上是可处理的,也可能是难以处理的,这意味着为了使可能性最大化,有必要进行方差近似或蒙特卡罗近似(或两者都做)。在树的右分支上,模型并不明确表示数据所在空间上的概率分布。相反,该模型提供了一种与这种概率分布较少直接交互的方式。通常,与概率分布相互作用的间接手段是从中抽取样本的能力。有些隐式模型提供了从分布中取样的能力,它们使用马尔可夫链;该模型定义了一种随机转换现有样本的方法,以便从相同的分布中获得另一个样本。其他的可以在一个单独的步骤中生成一个样本,不需要任何输入。虽然GANs使用的模型有时可以用来定义一个显式的密度,但是GANs的训练算法只利用模型生成样本的能力。因此,GANs使用来自树的最右叶的策略进行训练:使用直接从模型所表示的分布中采样的隐式模型。

2.3 Explicit density models

在图9所示的分类法的左分支中,是定义了显式密度函数pmodel(x;θ)。对于这些模型,最大似然化很简单;我们简单地将模型对密度函数的定义代入到似然表达式中,然后沿着梯度向上。

显式密度模型存在的主要困难是设计一个模型,该模型可以捕获要生成的数据的所有复杂性,同时仍然保持计算的可处理性。面对这一挑战,有两种不同的策略:(1)如第2.3.1节所述,仔细构建其结构保证其可处理性的模型;(2)如第2.3.2节所述,允许对可能性及其梯度进行可处理近似的模型。

2.3.1 Tractable explicit models

在图9的分类树的最左边,是定义了一个显式密度函数的模型,该函数在计算上是可处理的。目前可处理的显式密度模型主要有两种:完全可见的信念网络和非线性独立分量分析。

Fully visible belief networks

完全可见的信念网络(Frey等人,1996;Frey,1998)或FVBNs是使用概率链规则将n维向量x上的概率分布分解为一维概率分布的乘积的模型:(5)。在撰写本文时,FVBNs是生成式建模的三种最流行的方法之一,与GANs和变分自动编码器并列。它们构成了DeepMind(如WaveNet)复杂生成模型的基础(Oord et al., 2016)。WaveNet能够生成真实的人类语言。FVBNs的主要缺点是每次必须生成一个条目:首先是x1,然后是x2,等等,所以生成一个样本的成本是O(n)。在WaveNet这样的现代fvbn中,每个xi上的分布是由一个深度神经网络计算的,因此这n个步骤中的每一步都涉及大量的计算。此外,这些步骤不能并行化。因此WaveNet需要两分钟的计算时间来生成一秒钟的音频,目前还不能用于交互式对话。GANs被设计成能够并行生成所有x,从而产生更大的生成速度。

Nonlinear independent components analysis

另一类具有显式密度函数的深层生成模型是基于定义两个不同空间之间的连续、非线性转换。例如,如果存在一个潜在变量向量z和一个连续的、可微的、可逆的变换g,使得g(z)在x空间中产生一个模型的样本,那么(6)。如果密度pz是可处理的,并且g-1的雅可比行列式是可处理的,则密度px是可处理的。换言之,z上的简单分布与以复杂方式扭曲空间的变换g相结合,可以在x上产生复杂的分布,如果g经过精心设计,密度也可处理。

具有非线性g函数的模型至少可以追溯到Deco和Brauer(1995)。该家族的最新成员是真正的NVP(Dinh等,2016)。有关由实际NVP生成的ImageNet样本的一些可视化效果,请参见图10。非线性ICA模型的主要缺点是它们对函数g的选择施加了限制。特别地,可逆性要求意味着潜变量z必须具有与x相同的维数。GAN的设计要求对G的要求很少,特别是允许使用维度大于X的Z。

有关用于定义FVBNs的概率链式法则或用于定义非线性ICA模型的确定性转换对概率密度的影响的更多信息,请参见Goodfellow et al.(2016)的第3章。

总之,定义明确的、可处理的密度的模型是非常有效的,因为它们允许直接在训练数据的log-likelihood上使用优化算法。然而,提供可处理密度的模型族是有限的,不同的族有不同的缺点。

2.3.2 Explicit models requiring approximation

为了避免具有可处理密度函数的模型的设计要求所带来的一些缺点,已经开发了其他模型,这些模型仍然提供显式密度函数,但使用了难以处理的模型,需要使用近似来最大化可能性。这些方法大致分为两类:一类是使用确定性近似(通常指变分方法),另一类是使用随机近似(即马尔可夫链蒙特卡罗方法)。

Variational approximations

变分方法定义了一个下界:(7)。一个最大化L的学习算法保证至少可以获得与L同样高的对数似然值。对于许多模型族,即使在对数似然值不高的情况下,也可以定义一个在计算上易于处理的L。目前,在深度生成模型中最流行的变分学习方法是变分自编码器(Kingma, 2013;Rezende et al., 2014) or VAE。变分自编码器是三种最受欢迎的深度生成建模方法之一,与FVBNs和GANs一起成为本文的研究热点。变分方法的主要缺点是,当使用的近似后验分布太弱或先验分布太弱时2,即使有一个完美的优化算法和无限的训练数据,L与真似然之间的差距也会导致pmodel学习真正的pdata以外的东西。GANs被设计成无偏的,因为在有足够大的模型和无限的数据的情况下,GAN博弈的Nash均衡正好对应于恢复pdata。在实际应用中,变分方法通常获得很好的似然性,但被认为是产生低质量样本的方法。目前还没有一个好的定量测量样品质量的方法,所以这是一个主观的观点,而不是一个经验事实。关于从VAE中提取的一些示例,请参见图11。虽然很难指出GAN设计的一个方面,并说它能产生更好的样品质量,但人们通常认为GAN能产生更好的样品。与FVBNs相比,VAEs被认为更难优化,但GANs在这方面并没有改善。有关变分近似的更多信息,请参见Goodfellow等人的第19章。(2016年)。

2经验上,具有高度灵活的先验或高度灵活的近似后验的VAE可以获得接近其自身对数似然的L值(Kingma等人,2016;Chen等人,2016b)。当然,这是在边界的最大值上测试目标和边界之间的差距;在目标的最大值上测试差距会更好,但不可行。VAEs获得的可能性与其他方法相比是有竞争力的,这表明他们也接近目标的最大值。在个人谈话中,L. Dinh和D. Kingma曾推测一个模型家族(Dinh et al., 2014;Rezende和Mohamed, 2015;金玛等,2016;Dinh等人,2016)可用作为VAE先验或近似后验是通用逼近器。如果这能被证明,它将证明VAEs是渐近一致的。

Markov chain approximations

大多数深度学习算法使用某种形式的随机逼近,至少是使用少量随机选择的训练示例来形成用于最小化期望损失的小批量。通常,只要能够快速生成一个合理的样本(例如,从训练集中选择一个示例是一种廉价的操作),并且样本间的方差不太大,基于抽样的近似方法就可以很好地工作。一些模型需要使用马尔可夫链技术生成更昂贵的样本。马尔可夫链是通过反复抽取样本来生成样本的过程。马尔可夫链方法根据转移算子q对x进行多次更新,有时可以保证x最终收敛于pmodel(x)中的一个样本。不幸的是,这种收敛可能非常缓慢,而且没有明确的方法来测试链是否已经收敛,因此在实践中,人们经常过早地使用x,在它真正收敛成为来自pmodel的一个公平的样本之前。在高维空间中,马尔可夫链变得不那么有效。Boltzmann机器(Fahlman等人,1983年;Ackley等人,1985年;Hinton等人,1984年;Hinton和Sejnowski,1986年)是一个生成模型家族,依赖Markov链来训练模型或从模型生成样本。玻尔兹曼机器是2006年开始的深度学习复兴的一个重要组成部分(Hinton等人,2006;Hinton,2007),但它们现在很少被使用,可能主要是因为潜在的马尔可夫链近似技术还没有扩展到像ImageNet生成这样的问题。此外,即使马尔可夫链方法具有良好的可伸缩性,可用于训练,但与单步生成方法相比,使用马尔可夫链方法从训练模型生成样本是不可取的,因为多步马尔可夫链方法具有较高的计算成本。基于这些原因,GANs被设计成避免使用Markov链。有关马尔可夫链蒙特卡罗近似的更多信息,请参见Goodfelle等人的第18章。(2016年)。有关玻尔兹曼机器的更多信息,请参阅同一本书的第20章。

一些模型同时使用变分和马尔可夫链近似。例如,深Boltzmann机器使用这两种近似(Salakhutdinov和Hinton,2009)。

2.4 Implicit density models

有些模型甚至不需要显式定义密度函数就可以训练。相反,这些模型提供了一种方法来训练模型,同时只与pmodel进行间接交互,通常是从pmodel中取样。这些构成了图9所示的生成模型分类的第二个分支,位于右侧。

其中一些基于从pmodel中抽取样本的隐式模型定义了一个Markov链转移算子,该算子必须运行多次才能从模型中获取样本。在这个家族中,主要的例子是生成随机网络(Bengio等人,2014)。如第2.3.2节所述,马尔可夫链通常无法扩展到高维空间,并增加了使用生成模型的计算成本。GANs的设计就是为了避免这些问题。

最后,我们的分类树最右边的叶子是隐式模型家族,它可以在一个步骤中生成一个样本。在引入GANs时,GANs是这个家族中唯一值得注意的成员,但从那时起,基于核化矩匹配的其他模型加入了GANs (Li et al., 2015;Dziugaite等人,2015)。

2.5 Comparing GANs to other generative models

总之,GANs的设计是为了避免与其他生成模型相关的许多缺点:

●它们可以并行生成样本,而不是使用与x的维数成比例的运行时,这是相对于fvbn的一个优势。

●生成器功能的设计几乎没有限制。 相对于Boltzmann机器(这是因为概率分布很少允许可处理的马尔可夫链采样),相对于非线性ICA(这是生成器必须是可逆的,并且潜码z必须具有与样本x相同的维数)而言,这是一个优势。

●不需要马尔科夫链。这是一个优势,相对于玻尔兹曼机和GSNs。

●不需要变分界,在GAN框架中可用的特定模型族已经被认为是通用逼近器,所以甘斯分布已经被认为是渐近一致的。一些VAEs被推测为渐近一致的,但这还没有被证明。

●GANs被主观地认为比其他方法产生更好的样品。

同时,GAN具有一个新的缺点:训练它们需要找到游戏的Nash平衡,这比优化目标函数更困难。

3 How do GANs work?

我们现在已经看到了一些其他的生成模型,并解释说GANs的工作方式与它们的工作方式不同。但是甘斯是如何工作的呢?

3.1 The GAN framework

GAN的基本思想是在两个玩家之间建立游戏。其中之一被称为生成器。生成器创建的样本旨在与训练数据来自相同的分布。另一个玩家是鉴别者。鉴别器检查样品以确定它们是真的还是假的。鉴别器使用传统的监督学习技术进行学习,将输入分为两类(真类和假类)。这个生成器被训练来欺骗鉴别器。我们可以把生成器想象成伪造者,试图制造假币,而鉴别者想象成警察,试图允许合法货币流通,并抓住伪钞。为了在这个游戏中取得成功,伪造者必须学会制造与真钱难以区分的货币,而生成器网络必须学会从与训练数据相同的分布中抽取样本。该过程如图12所示。

Figure 12:在一个游戏中,GAN框架使两个对手互相竞争。每个参与者由一组参数控制的可微函数表示。通常,这些函数是作为深层神经网络来实现的。游戏分两个场景进行。在一个场景中,训练示例x从训练集中随机抽样,并被用作第一个参与者(鉴别器)的输入,鉴别器由函数D表示。鉴别器的目标是在假设所示输入的一半是真的一半是假的情况下,输出其输入是真的而不是假的概率。在第二种情况下,根据潜在变量从模型的先验中随机抽取生成器的输入z。鉴别器然后接收输入G(z),这是由生成器创建的伪样本。在这个场景中,两个玩家都参与。鉴别器努力使D(G(z))接近0,而生成器努力使相同的量接近1。如果两个模型都有足够的容量,则该博弈的纳什均衡对应于从与训练数据相同的分布中得出的G(z),并且对于所有x,D(x)=1/2。

在形式上,GANs是一个包含潜在变量z和观测变量x的结构化概率模型(详见Goodfellow et al.(2016)的第16章对结构化概率模型的介绍),其图形结构如图13所示。

Figure 13:GANs的图形化模型结构,也与VAEs、稀疏编码等共享。它是一个有向图模型,每一个潜在变量都影响着每一个观测变量。一些GAN变体消除了其中一些连接。

博弈中的两个参与者由两个函数表示,每个函数对其输入和参数都是可微的。鉴别器是以x为输入、以θ(D)为参数的函数D。生成器由以z为输入、以θ(G)为参数的函数G定义。

两个玩家都有根据两个玩家的参数定义的成本函数。鉴别器希望最小化J(D),并且必须在仅控制θ(D)的情况下这样做。生成器希望最小化J(G),并且必须在仅控制θ(G)的情况下这样做。因为每个玩家的成本取决于另一个玩家的参数,但是每个玩家不能控制另一个玩家的参数,所以这个场景最直接地描述为一个游戏,而不是一个优化问题。优化问题的解是(局部)最小值,即参数空间中所有相邻点的成本均大于或等于的点。博弈的解是纳什均衡。在这里,我们使用局部差分纳什均衡的术语(Ratliff等,2013)。在这种情况下,纳什均衡是一个元组(θ(D),θ(G)),它是相对于θ(D)的J(D)的局部最小值和相对于θ(G)的J(G)的局部最小值。

The generator

生成器只是一个可微函数G。当z从某个简单的先验分布中采样时,G(z)产生从pmodel中提取的x的样本。通常,深神经网络用于表示G。注意,函数G的输入不需要对应于深神经网络的第一层的输入;可以在整个网络的任何点提供输入。例如,我们可以将z分成两个向量z(1)和z(2),然后将z(1)作为输入输入到神经网络的第一层,将z(2)添加到神经网络的最后一层。如果z(2)是高斯的,这使得x在给定z(1)的条件下是高斯的。另一种流行的策略是将加性或乘性噪声应用于隐层,或将噪声连接到神经网络的隐层。总的来说,我们看到对生成器网络的设计有很少的限制。如果我们希望pmodel在x空间上有完全的支持,我们需要z的维数至少和x的维数一样大,G必须是可微的,但这是唯一的要求。特别要注意的是,任何可以用非线性ICA方法训练的模型都可以是一个GAN生成器网络。与变分自编码器的关系更为复杂;GAN框架可以训练VAE框架不能训练的一些模型,反之亦然,但是这两个框架也有很大的交集。最明显的区别是,如果依靠标准的反向传播,VAEs不能在生成器的输入端有离散变量,而GANs不能在发生器的输出端有离散变量。

The training process

训练过程由同时进行的SGD组成。在每个步骤中,将采样两个小批:数据集中的x值的小批和从模型的先验潜在变量中提取的z值的小批。同时两个梯度的步骤是:一个更新θ(D)来减少J (D)和一个更新θ(G)减少J (G)。在这两种情况下,都可以使用您选择的基于梯度的优化算法。Adam (Kingma and Ba, 2014)通常是个不错的选择。许多作者建议一个玩家比另一个玩家运行更多的步骤,但到2016年底,作者的观点是,在实践中效果最好的协议是同步梯度下降,每个玩家一个步骤。

3.2 Cost functions

3.2.1 The discriminator’s cost, J(D)

到目前为止,为GAN设计的所有不同游戏的鉴别器J(D)都使用相同的成本。它们仅在用于生成器的成本J(G)方面有所不同。

鉴别器的成本为(8)。

这只是一个标准的交叉熵代价,当用sigmoid输出训练一个标准的二分类器时,这个代价最小。唯一的区别是分类器是在两个小批量数据上训练的;一个来自数据集,其中所有示例的标签都是1,另一个来自生成器,其中所有示例的标签都是0。

所有版本的GAN游戏鼓励鉴别器最小化方程8。在所有情况下,鉴别器都具有相同的最优策略。现在鼓励读者完成第7.1节中的练习,并复习第8.1节中给出的解决方案。这个练习展示了如何推导出最佳鉴别器策略,并讨论了该解决方案的形式的重要性。

我们可以看到,通过训练鉴别器,我们可以得到每点x处的比率pdata(x)/pmodel(x)(9)的估计值。对这个比率的估计值使我们能够计算出各种各样的差异及其梯度。这是一项关键的近似技术,它将GANs与变分自编码器和玻尔兹曼机区分开来。其他深层生成模型基于下界或马尔可夫链进行逼近;GANs基于监督学习来估计两种密度之比,并以此为基础进行近似。GAN近似易受监督学习的失败:过拟合和欠拟合。原则上,通过完美的优化和足够的训练数据,这些失败是可以克服的。其他模型做出的其他近似也有其他的失败之处。

由于GAN框架可以自然地用博弈论的工具来分析,我们称之为GANs对抗。但我们也可以认为它们是合作的,因为鉴别器估计出这个密度比,然后与生成器自由地共享这个信息。从这个角度来看,鉴别器更像是一个老师在指导生成器如何改进,而不是一个对手。到目前为止,这种合作的观点并没有导致数学发展的任何特殊变化。

3.2.2 Minimax

到目前为止,我们只指定了鉴别器的成本函数。完整的游戏规范要求我们为生成器指定一个成本函数。这个游戏最简单的版本是零和游戏,其中所有玩家的成本总和总是零。在这个版本的游戏中,(10)。

因为J(G)与J(D)直接相关,我们可以用一个指定鉴别器收益的值函数来总结整个博弈:(11)。

零和博弈也被称为极大极小博弈,因为它们的解包含了外部循环的极小化和内部循环的极大化:(12)。

极大极小对策主要是有趣的,因为它很容易服从理论分析。Goodfellow等(2014b)利用GAN博弈的这种变体证明了该博弈中的学习类似于最小化数据与模型分布之间的Jensen-Shannon散度,并且如果两个参与者的策略都能在函数空间中直接更新,则博弈收敛于均衡。在实际应用中,由于采用了深度神经网络来表示参与者,并且在参数空间中进行了更新,因此这些依赖于凸性的结果并不适用。

3.2.3 Heuristic, non-saturating game (启发式,非饱和博弈)

在极大极小对策(方程10)中用于生成器的成本对于理论分析是有用的,但在实践中表现不是特别好。

最小化目标类和分类器预测分布之间的交叉熵是非常有效的,因为当分类器输出错误时,成本不会饱和。代价最终会达到饱和,趋近于零,但只有在分类器已经选择了正确的类时才会这样。

在极小极大博弈中,鉴别器使交叉熵最小化,而生成器使相同的交叉熵最大化。这对生成器来说是不幸的,因为当鉴别器成功地以高置信度拒绝生成器样本时,生成器的梯度将消失。

为了解决这个问题,一种方法是继续对生成器使用交叉熵最小化。我们没有翻转鉴别器成本上的符号以获得生成器的成本,而是翻转用于构造交叉熵成本的目标。生成器的成本变成:(13)。

在minimax博弈中,生成器最小化了鉴别器的对数正确概率。在这个游戏中,生成器最大化了鉴别器出错的对数概率。

这个版本的游戏是启发式的动机,而不是由一个理论的关注。该版本游戏的唯一动机是确保每个玩家在游戏失败时都有一个强大的梯度。

在这个版本的游戏中,游戏不再是零和游戏,不能用单一的价值函数来描述。

3.2.4 Maximum likelihood game

我们可能希望能够使用GANs进行最大似然学习,这意味着最小化数据与模型之间的KL散度,如公式4所示。实际上,在第2节中,我们说GANs可以选择性地实现最大可能性,以简化与其他模型的比较。

在GAN框架内,有多种方法来近似方程4。Goodfellow(2014)表明,在判别器为最优的假设下,使用(14)(其中σ是logistic-sigmoid函数)相当于最小化方程4。

这个等价性在期望中成立;在实践中,KL散度上的随机梯度下降法和GAN训练法都在真实期望梯度周围存在一定的方差,这是由于使用了抽样(x为最大似然,z为GANs)来构造估计梯度。这种等价性的演示是一个练习(第7.3节和第8.3节中的解决方案)。

3.2.5 Is the choice of divergence a distinguishing feature of GANs?

(散度的选择是GANs的一个显著特征吗?)

作为我们研究GANs如何工作的一部分,我们可能想知道究竟是什么使它们能够很好地生成样本。

在此之前,很多人(包括作者)认为GANs产生了清晰的、真实的样本,因为他们最小化了Jensen-Shannon散度,而VAEs产生了模糊的样本,因为他们最小化了数据和模型之间的KL散度。

KL发散不是对称的;最小化DKL(pdata||pmodel)不同于最小化DKL(pdata||pmodel)。最大似然估计执行前者;最小化Jensen-Shannon散度与后者更相似。如图14所示,后者可能会产生更好的样本,因为使用这种差异训练的模型更倾向于生成仅来自训练分布模式的样本,即使这意味着忽略某些模式,而不是包含所有模式,而是生成一些不来自任何训练集的样本模式。

Figure 14:KL散度的两个方向不相等。当模型的容量太小而无法适应数据分布时,差异最为明显。这里我们展示了一个一维数据x上的分布的例子。在这个例子中,我们使用两个高斯函数的混合作为数据分布,一个高斯函数作为模型族。由于单个高斯分布无法捕获真实的数据分布,散度的选择决定了模型所做的权衡。在左边,我们使用最大似然准则。该模型选择了两种模式的平均值,使得两种模式的概率都很高。在右边,我们使用KL散度参数的逆序,模型选择只捕获两种模式中的一种。它也可以选择另一种模式;这两个都是KL散度反方向的局部最小值。我们可以认为DkL (pdatallpmodel)更倾向于将高概率放在数据发生的任何地方,而DkI (pmodel||pdata)更倾向于将低概率放在数据不发生的任何地方。从这个角度来看,人们可能会期望DkI (pmodel||pdata)生成更直观的样本,因为该模型不会选择在数据生成分布的模式之间生成不寻常的样本。

一些新的证据表明,使用Jensen-Shannon散度并不能解释为什么GANs会生成更清晰的样本:

●现在可以使用最大似然法来训练GANs,如第3.2.4节所述。这些模型仍然会产生清晰的样本,并且仍然会选择少量的模式。参见图15。

Figure 15:f-GAN模型能够最小化许多不同的发散。由于经过最小化DKL(pdata||pmodel)训练的模型仍然会产生清晰的样本,并且倾向于选择少量的模式,因此我们可以得出结论,使用Jensen-Shannon散度并不是GANs的一个特别重要的区别特征,也不能解释其样本趋向清晰的原因。

GANs经常选择从很少的模式产生;小于模型容量所施加的限制。反向KL倾向于从模型能够生成的尽可能多的数据分布模式中生成;它通常不喜欢较少的模式。这表明模态崩溃是由散度选择以外的因素驱动的。

总的来说,这表明GANs选择生成少量的模式是由于训练过程中的缺陷,而不是由于它们的目标是最小化的分歧。这将在5.1.1节中进一步讨论。GANs产生清晰的样品的原因还不完全清楚。可能使用GANs训练的模型族与使用VAEs训练的模型族是不同的(例如,使用GANs很容易使模型中x的分布更复杂,而不仅仅是基于生成器输入的各向同性高斯分布)。也可能GANs所做的近似与其他框架所做的近似有不同的效果。

3.2.6 Comparison of cost functions

我们可以把生成器网络看作是一种奇怪的强化学习。而不是被告知一个特定的输出x,它应该与每个z相关联,生成器采取行动并获得相应的奖励。特别要注意的是,J (G)根本没有直接提到训练数据;所有关于训练数据的信息都是通过判别器获得的。

●生成器不仅可以观察奖励函数的输出,还可以观察它的梯度。

●奖励函数是非平稳的;奖励基于鉴别器,鉴别器根据生成器的策略变化进行学习。

在所有情况下,我们都可以将从选择特定z值开始的采样过程视为一个获得单个奖励的事件,与对所有其他z值采取的操作无关。给生成器的奖励是单个标量值D(G(z))的函数。我们通常认为这是成本(负回报)。在D(G(z))中,生成器的成本总是单调递减的,但是不同的游戏被设计成沿着曲线的不同部分使这种成本递减得更快。

图16显示了GAN游戏的三个不同变体的成本响应曲线与D(G(z))的关系。我们看到,最大似然博弈在成本上给出了非常高的方差,大部分的成本梯度来自于非常少的z样本,它们对应的样本最有可能是真实的而不是虚假的。启发式设计的非饱和成本具有较低的样本方差,这可以解释为什么它在实践中更成功。这表明方差减少技术可能是提高GAN(尤其是基于最大似然性的GAN)性能的重要研究领域。

Figure 16:生成器为生成样本G(z)而接收的成本仅取决于鉴别器如何响应该样本。鉴别器分配给样本的真实概率越大,生成器接收到的成本就越低。我们看到,当样本可能是假的时,极小极大值对策和极大似然对策在曲线的平坦左端都有很小的梯度。启发式非饱和成本避免了这个问题。最大似然法还存在一个问题,即几乎所有的梯度都来自曲线的右端,这意味着每个小批量的梯度计算都是由极少数的样本控制的。这表明,方差减少技术可以成为提高遗传算法性能的一个重要研究领域,特别是基于最大似然的遗传算法。图摘自古德费罗(2014)。

3.3 The DCGAN architecture

如今,大多数GANs至少松散地基于DCGAN架构(Radford et al.,2015)。DCGAN代表深卷积GAN。尽管在DCGANs之前,GANs既深又复杂,但DCGAN这个名称对于指代这种特定的架构风格是有用的。DCGAN体系结构的一些关键见解是:

●在鉴别器和发生器的大部分层中使用批量归一化(Ioffe和Szegedy, 2015)层,鉴别器的两个小批量分别归一化。生成器的最后一层和鉴别器的第一层没有批量归一化,这样模型就可以知道正确的数据分布的均值和规模。请参见图17所示。

Figure 17:DCGAN使用的是生成器网络。图转载自Radford et al.(2015)。

●整体网络结构主要借鉴全卷积网络(Springenberg et al., 2015)。该体系结构既不包含池化层,也不包含反池化层。当生成器需要增加表示的空间维数时,它使用步长大于1的转置卷积。

●使用Adam优化器而不是带有动量的SGD。

在DCGANs之前,LAPGANs (Denton et al., 2015)是唯一一个能够缩放到高分辨率图像的GAN版本。LAPGANs需要一个多阶段的生成过程,其中多个GANs在一个图像的拉普拉斯金字塔表示中生成不同层次的细节。DCGANs是第一个学习在一次拍摄中生成高分辨率图像的GAN模型。如图18所示,DCGANs能够生成高质量的图像,当对图像的有限域(如卧室图像)进行训练时。DCGANs也清楚地证明了GANs学会了以有意义的方式使用潜代码,潜空间中的简单算术运算可以清晰地解释为对输入语义属性的算术运算,如图19所示。

Figure 18:在LSUN数据集上训练DCGAN生成的卧室图像样本。

Figure 19:DCGANs证明了GANs可以学习一种分布式表示,将性别概念从戴眼镜的概念中分离出来。如果我们从一个戴眼镜的男人的概念的表示开始,然后减去代表一个没有戴眼镜的男人的概念的向量,最后加上代表一个没有戴眼镜的女人的概念的向量,我们得到代表一个戴眼镜的女人的概念的向量。生成模型正确地将所有这些表示向量解码成图像,这些图像可以被识别为属于正确的类。图片来自Radford等人(2015)。

3.4 How do GANs relate to noise-contrastive estimation and maximum likelihood? (GANs如何与噪声对比估计和最大似然相关?)

当试图理解GANs是如何工作的时,人们自然会想知道它们是如何与噪声对比估计(NCE)联系在一起的(Gutmann和Hyvarinen,2010)。Minimax-GANs使用来自NCE的成本函数作为其价值函数,因此这些方法似乎在面值上密切相关。事实证明,他们实际上学到了非常不同的东西,因为这两种方法专注于游戏中不同的玩家。粗略地说,NCE的目标是学习鉴别器中的密度模型,而GANs的目标是学习定义生成器的采样器。虽然这两个任务在质量层面上似乎密切相关,但任务的梯度实际上是完全不同的。令人惊讶的是,极大似然与NCE密切相关,对应于玩一个具有相同值函数的minimax博弈,但对两个参与者中的一个使用一种启发式更新策略而不是梯度下降。图20总结了这些连接。

Figure 20:Goodfellow(2014)证明了minimax-GANs、噪声对比估计和最大似然之间的以下联系:这三个都可以解释为使用相同值函数玩minimax博弈的策略。最大的区别在于pmodel的位置。对于GANs,生成器是pmodel,而对于NCE和MLE,pmodel是鉴别器的一部分。除此之外,这些方法之间的区别在于更新策略。GANs学习梯度下降的两个球员。MLE使用梯度下降学习鉴别器,但对生成器有一个启发式更新规则。具体地说,在每个鉴别器更新步骤之后,MLE复制鉴别器内部学习到的密度模型,并将其转换为用作生成器的采样器。NCE从不更新生成器;它只是一个固定的噪声源。

4 Tips and Tricks

实践者使用一些技巧来提高GANs的性能。很难判断这些技巧有多有效;它们中的许多在某些情况下似乎是有益的,而在另一些情况下则是有害的。这些应该被视为值得尝试的技术,而不是一成不变的最佳实践。

NIPS 2016还举办了一场关于对抗性训练的研讨会,由Soumith Chintala主持的一场名为“如何训练GAN”的特邀演讲。这次演讲的目的与本教程的这一部分大致相同,只是提供了不同的建议。要了解本教程中没有包含的技巧和技巧,请查看与Soumith的演讲相关的GitHub存储库:https://github.com/soumith/ganhacks

4.1 Train with labels

以任何方式使用标签,形状或形式几乎总是导致模型生成的样本的主观质量的显著提高。这是Denton等人(2015)首先观察到的,他们构建了类条件的GANs,生成的样本比从任何类中都可以自由生成的GANs好得多。后来,Salimans等人(2016)发现,即使生成器没有明确包含类信息,样本质量也会提高;训练鉴别器识别真实物体的特定类别就足够了。

目前还不完全清楚为什么这种把戏会奏效。可能类信息的合并为训练过程提供了有助于优化的有用线索。也有可能这个技巧并没有给样本的质量带来客观的改善,而是使样本偏向于人类视觉系统所关注的特性。如果是后者,那么这个技巧可能不会产生一个更好的真实数据生成分布模型,但是它仍然有助于创建供人类观众欣赏的媒体,并且可能有助于RL智能体执行依赖于与人类相关的环境的相同方面的知识的任务。

很重要的一点是,只将使用这种方法得到的结果与使用相同方法得到的其他结果进行比较;使用标签训练的模型只能与其他使用标签训练的模型进行比较,类条件模型只能与其他类条件模型进行比较。将使用标签的模型与不使用标签的模型进行比较是不公平的,也是一种无趣的基准测试,就像卷积模型在图像任务上的表现通常会优于非卷积模型一样。

4.2 One-sided label smoothing

当鉴别器估计两个密度的比率时,GANs就会发挥作用,但是深度神经网络容易产生高度自信的输出,这些输出识别正确的类,但概率太高。特别是当深层网络的输入是反向构造时更是如此;分类器倾向于线性外推,并产生非常自信的预测(Goodfellow et al., 2014a)。

为了鼓励鉴别器估计软概率,而不是推断出非常可靠的分类,我们可以使用一种称为单边标签平滑的技术(Salimans et al., 2016)。

通常我们用方程8来训练鉴别器。我们可以在TensorFlow (Abadi et al., 2015)的代码中这样写:(...)。

单边标签平滑的思想是将实际示例的目标替换为略小于1的值,如.9:(...)。

这防止了鉴别器中的极端外推行为;如果它学会预测与某个输入接近1的概率相对应的非常大的logits,它将受到惩罚,并鼓励它将logits降低到一个更小的值。

重要的是不要平滑假样品的标签。假设我们使用的目标1+α的真实数据和目标0+β的假样本。则最优鉴别器函数为(15)。

当β为零时,用α平滑只会缩小鉴别器的最佳值。当β为非零时,最优判别函数的形状发生变化。特别是在pdata(x)非常小,pmodel(x)比较大的区域,D (x)在pmodel(x)的伪模态附近会有一个峰值。鉴别器因此会强化发生器中的错误行为;生成器将被训练生成与数据相似的样本,或者生成与它已经生成的样本相似的样本。

单边标签平滑是对更老的标签平滑技术的一个简单修改,该技术至少可以追溯到20世纪80年代。Szegedy等人(2015)证明了在卷积网络环境下,标签平滑是一种优秀的对象识别正则化器。标签平滑与正则化之所以如此有效的一个原因是,它不会鼓励模型在训练集中选择一个错误的类,而只会降低对正确类的信心。如果正则化器上的系数设置得足够高,其他正则化器(如权值衰减)常常会导致一些错误的分类。wald - farley和Goodfellow(2016)的研究表明,标签平滑可以帮助减少对抗性例子的脆弱性,这表明标签平滑可以帮助鉴别器更有效地学习抵抗生成器的攻击。

4.3 Virtual batch normalization

自从DCGANs引入以来,大多数GAN体系结构都涉及到某种形式的批处理规范化。批量规范化的主要目的是改进模型的优化,通过重新参数化模型,使每个特征的均值和方差由与该特征相关的单个均值参数和单个方差参数确定,而不是由所有特征的所有权重之间的复杂交互作用来确定用于提取特征的层。这种重新参数化是通过减去平均值并除以该特征在小批量数据上的标准差来完成的。规范化操作是模型的一部分,这一点很重要,这样back-propagation将计算定义为始终规范化的特征的梯度。如果特征在学习后经常重新规范化,而没有将规范化定义为模型的一部分,则该方法的效果要小得多。

批处理规范化非常有用,但对于GANs有一些不幸的副作用。使用不同的小批量数据计算训练的每一步的标准化统计,导致这些标准化常数的波动。当小批量大小很小时(当试图将一个大的生成模型拟合到有限的GPU存储器中时通常是这样),这些波动可能变得足够大,以至于它们对GAN生成的图像的影响比输入z的影响更大。示例见图21。

Figure 21:两个小批量,每个16个样本,由使用批量规范化的生成器网络生成。这些小批量说明了使用批量规范化时偶尔出现的一个问题:小批量中特征值的平均值和标准偏差的波动可能比小批量中单个图像的单个z代码产生更大的影响。此处显示为一个小批次,包含所有橙色样品,另一个包含所有绿色样品。小批量中的示例应该彼此独立,但在这种情况下,批量规范化导致它们相互关联。

Salimans等(2016)引入了缓解此问题的技术。参考批次规范化包括两次运行网络:一次是在参考示例的小批量上进行的,这些参考示例在训练开始时被采样一次,并且从未被替换;一次是在当前的小示例上进行训练。使用参考批次计算每个特征的平均值和标准偏差。然后,使用这些计算出的统计数据对两个批次的特征进行归一化。参考批次归一化的缺点是模型可能过度适合参考批次。为了略微缓解此问题,可以改用虚拟批处理规范化,其中使用该示例与参考批处理的并集来计算每个示例的规范化统计信息。参考批次归一化和虚拟批次归一化均具有以下特性:训练微型批次中的所有示例均相互独立处理,并且生成器生成的所有样本(定义参考批次的样本除外)均为i.i.d.

4.4 Can one balance G and D?

许多人有一种直觉,认为有必要以某种方式平衡两方,以防止一方压倒另一方。如果这种平衡是可取和可行的,那么它还没有以任何令人信服的方式得到证明。

作者认为,GANs是通过估计数据密度和模型密度的比值来工作的。只有当鉴别器是最优的时,这个比率才被正确地估计出来,所以鉴别器可以压倒生成器。

有时,当鉴别器变得过于精确时,生成器的梯度可能会消失。解决这个问题的正确方法不是限制鉴别器的能力,而是在梯度不消失的情况下使用博弈的参数化(第3.2.3节)。

有时,如果鉴别器变得过于自信,生成器的梯度会变得非常大。解决这个问题的更好方法是使用单面标签平滑(第4.2节),而不是降低鉴别器的精度。

为了最好地估计比率,鉴别器应该始终是最优的,这种想法建议在每次训练生成器一步时,训练鉴别器k>1步。实际上,这通常不会导致明显的改善。

还可以通过选择模型大小来平衡生成器和鉴别器。实际上,鉴别器通常更深,有时每层的滤波器比生成器多。这可能是因为鉴别器能够正确估计数据密度和生成器密度之间的比率是很重要的,但它也可能是模式崩溃问题的产物,因为生成器在当前的训练方法中往往不使用其全部容量,从业者可能看不到太多好处增加发电机容量。如果能克服模式崩溃问题,生成器的尺寸可能会增加。目前尚不清楚鉴别器大小是否会按比例增加。

5 Research Frontiers

GANs是一个相对较新的方法,许多研究方向仍然是开放的。

5.1 Non-convergence

研究人员应该努力解决的最大问题是不收敛问题。大多数深层模型都是用一种寻找低成本函数值的优化算法来训练的。虽然许多问题会干扰优化,但优化算法通常会取得可靠的下坡进度。GANs要求找到一个有两个玩家的游戏的平衡点。即使每个玩家在更新时都成功地向下移动,相同的更新也可能会使另一个玩家向上移动。有时这两个参与者最终达到了一个平衡,但在其他情况下,他们重复地撤销彼此的进展,却没有达到任何有用的地方。这是一个游戏的普遍问题,并不是GANs所独有的,所以解决这个问题的一般方法将有广泛的应用。

同时梯度下降收敛于某些博弈,但不是所有博弈。

在minimax GAN游戏(第3.2.2节)中,Goodfellow等人(2014b)表明,如果更新是在函数空间中进行的,则同时梯度下降收敛。在实际应用中,这些更新是在参数空间中进行的,因此证明所依赖的凸性性质并不适用。目前既没有关于深度神经网络参数更新时GAN博弈收敛的理论争论,也没有关于深度神经网络参数更新时GAN博弈不收敛的理论争论。

在实践中,GANs曲线似乎经常摇摆不定,有点像8.2节中的玩具例子,这意味着它们从生成一种样本到生成另一种样本的过程中并没有最终达到平衡。

可能在GAN游戏中遇到的最常见的有害不收敛形式是模式崩溃。

5.1.1 Mode collapse

模式崩溃,也称为Helvetica场景,是在生成器学习将几个不同的输入z值映射到相同的输出点时发生的问题。在实际应用中,完全模态崩溃是罕见的,但部分模态崩溃是常见的。局部模式崩溃是指生成器生成包含相同颜色或纹理主题的多个图像,或包含同一只狗的不同视图的多个图像的场景。模式崩溃问题如图22所示。

Figure 22:二维玩具数据集上的模式崩溃问题的说明。在第一行中,我们看到了模型应该学习的目标分布pdata。它是二维空间中高斯混合体。在下面的行中,随着GAN的训练,随着时间的推移,我们看到了一系列不同的分布。生成器不会一次收敛到包含训练集中所有模式的分布,而只会一次生成一个模式,而是在鉴别器学会拒绝每个模式时在不同模式之间循环。图片来自Metz等(2016)。

可能会出现模式崩溃,因为GAN游戏的maximin解决方案不同于minimax解决方案。 当我们找到模型(16)时,G*从数据分布中抽取样本。当我们交换最小值和最大值的顺序并求出(17)时,关于生成器的最小值现在位于优化过程的内部循环中。因此,生成器被要求将每个z值映射到鉴别器认为最有可能是真的而不是假的单个x坐标。同时的梯度下降并不能明显地使最小最大值优先于最大最小值,反之亦然。我们使用它,希望它的行为像minmax,但它的行为往往像max min.

如第3.2.5节所述,模式崩溃似乎不是由任何特定的成本函数引起的。通常断言,模式崩溃是由于使用Jensen-Shannon散度引起的,但事实并非如此,因为使DKL(pdata||pmodel)逼近最小的GANs面临相同的问题,并且生成器经常崩溃为甚至比Jensen-Shannon发散所需要的模式更少。

由于模式折叠问题,GANs的应用通常局限于模型可以产生少量不同输出的问题,通常是目标是将一些输入映射到多个可接受输出之一的任务。只要GAN能够找到少量这些可接受的输出,它就是有用的。一个例子是文本到图像的合成,其中输入是图像的标题,输出是匹配该描述的图像。有关此任务的演示,请参见图23。在最近的工作中,Reed等人(2016a)已经表明,对于这类任务,其他模型比GANs具有更高的输出多样性(图24),但是StackGANs (Zhang等人,2016)似乎比以前基于GAN的方法具有更高的输出多样性(图25)。

Figure 23:使用GANs的文本-图像合成。图片来自Reed等人(2016b)。(1)这只小鸟有粉红色的胸脯和王冠,黑色的初级和次级鸟。(2)这个壮美的家伙几乎全身都是黑的,长着红色的鸡冠和白色的脸颊。(3)这种花的花瓣是明亮的粉紫色,带有白色的柱头。(4)这种黄白色的花有薄薄的白色花瓣和圆形的黄色雄蕊。

Figure 24:由于模式崩溃问题,GANs对于文本到图像的任务具有较低的输出多样性。图片来自Reed等人(2016a)。

Figure 25:与其他基于GAN-based的文本-图像模型相比,StackGANs能够实现更高的输出多样性。图片转载自Zhang等人(2016)。(1)这种蓝色的小鸟有一个短而尖的喙,翅膀是棕色的(2)这只鸟完全是红色的,有黑色的翅膀和尖尖的喙(3)一种小型鸟,有奶油色的腹部和短而尖的喙(4)一种有黑色头部和翅膀的小鸟,特征是翅膀是灰色的。模式崩溃问题可能是GANs研究者应该努力解决的最重要的问题。一种尝试是小批量功能(Salimans等人,2016)。小批量特征的基本思想是允许鉴别器将示例与生成的小批量样本和实际的小批量样本进行比较。通过在潜在空间中测量到这些其他样本的距离,鉴别器可以检测样本是否与其他生成的样本异常相似。小批量功能运行良好。强烈建议直接复制与介绍它们的文章一起发布的Theano/TensorFlow代码,因为特性定义的微小变化会导致性能的大幅降低。

在CIFAR-10上训练的Minibatch GANs获得了很好的结果,大多数示例都可以识别为特定的CIFAR-10类(图26)。当在128*128 ImageNet上训练时,很少有图像被识别为属于特定的ImageNet类(图27)。图28显示了一些更好的图像。

Figure 26:在CIFAR-10上训练的Minibatch GANs获得了很好的结果,大多数样本可以被识别为特定的CIFAR-10类。(注:此模型使用标签进行训练)

Figure 27:在128*128 ImageNet上使用标签训练的Minibatch GANS生成的图像偶尔可以识别为属于特定的类。

Figure 28:当在128*128 ImageNet上训练时,Minibatch GANs有时会生成非常好的图像,正如这些精选的示例所展示的那样。

Minibatch GANs充分减少了模式崩溃问题,使得其他问题,如计数、透视和全局结构的困难成为最明显的缺陷(分别为图29、图30和图31)。这些问题中的许多都可以通过设计更好的模型架构来解决。

Figure 29:在128*128 ImageNet上的GANs似乎在计数上有问题,经常产生身体部位数量错误的动物。

Figure 30:在128*128的ImageNet上的GANs似乎在三维透视的概念上有问题,经常生成的对象的图像太平面或高度轴向对齐。作为对读者鉴别器网络的测试,其中一幅图像是真实的。

Figure 31:128 * 128 ImageNet上的GAN似乎无法协调全局结构,例如绘制“ Fallout Cow”(一种具有四足和两足结构的动物)。

解决模式崩溃问题的另一种方法是展开GAN(Metz等人,2016)。 理想情况下,我们希望找到G *。 实际上,当我们同时遵循两个玩家的V(G,D)的梯度时,在计算G的梯度时,我们实际上忽略了max操作。实际上,我们应该把maxD V (G, D)作为G的代价函数,并通过最大化操作进行反向传播。通过最大化操作进行反向传播的策略有很多种,但是许多策略,例如基于隐式微分的策略,是不稳定的。展开GANs的思想是在鉴别器中建立一个描述k个学习步骤的计算图,然后在计算生成器上的梯度时反向传播所有k个学习步骤。充分最大化鉴别器的值函数需要数万步,但Metz等人(2016)发现,即使展开10步或更少的步骤,也可以显著减少模式丢弃问题。这种方法还没有扩展到ImageNet。有关玩具问题上展开的GANs的演示,请参见图32。

Figure 32:展开的GANs能够在二维空间中拟合混合高斯的所有模式。从Metz等人复制的图像。(2016年)。

5.1.2 Other games

如果我们关于如何理解一个连续的、高维的非凸博弈是否会收敛的理论能够得到改进,或者如果我们能够开发出比同时梯度下降更可靠的收敛算法,那么除了GANs之外的几个应用领域将会受益。即使只局限于人工智能研究,我们也能在许多场景中找到游戏:

●真正玩游戏的代理,如AlphaGo (Silver et al., 2016)。

●机器学习安全,其中模型必须抵抗敌对的例子(Szegedy et al., 2014;Goodfellow等,2014a)。

●通过领域对抗性学习进行领域适应(Ganin et al., 2015)。

●密码学的对抗机制(Abadi和Andersen, 2016)。

这绝不是一份详尽的清单。

5.2 Evaluation of generative models

与GANs相关的另一个非常重要的研究领域是,尚不清楚如何定量地评估生成模型。获得良好似然的模型可能会产生糟糕的样本,而产生良好样本的模型可能会产生糟糕的样本。没有明确合理的方法来定量评分样本。GANs比其他生成模型更难评估,因为很难估计GANs的可能性(但这是可能的,参见Wu et al.(2016))。Theis等人(2015)描述了评价生成模型的许多困难。

5.3 Discrete outputs

GAN框架对生成器的设计施加的唯一真正要求是生成器必须是可微的。不幸的是,这意味着生成器不能生成离散的数据,比如一个热词或字符表示。消除这一限制是一个重要的研究方向,它可以释放GANs对NLP的潜力。至少有三种明显的方法可以解决这个问题:

1.使用强化算法(Williams, 1992)。

2.使用具体分布(Maddison et al., 2016)或Gumbel-softmax (Jang et al., 2016)。

3.训练生成对可解码为离散值的连续值采样(例如,直接采样词嵌入)。

5.4 Semi-supervised learning

GANs已经非常成功的一个研究领域是将生成模型用于半监督学习,这是在最初的GAN论文中提出的,但没有得到证明(Goodfellow等人,2014b)。

至少从CatGANs引入以来,GANs已经成功地应用于半监督学习(Springenberg, 2015)。目前,MNIST、SVHN和CIFAR-10的半监督学习的最新技术是通过特征匹配GANs获得的(Salimans等人,2016)。通常,使用50000个或更多标签在这些数据集上训练模型,但是特征匹配的GANs能够在很少的标签下获得良好的性能。对于不同数量的标签(从20到8,000不等),它们可以在几个类别中获得最先进的性能。

如何利用特征匹配GANs进行半监督学习的基本思想是将一个n类的分类问题转化为n + 1类的分类问题,再加上与伪图像对应的类。将所有的真实类相加,得到图像为真实的概率,使得在GAN博弈中使用分类器作为鉴别器。即使使用未标记的数据(已知为真实数据)和来自生成器的样本(已知为虚假数据),也可以对真假鉴别器进行训练。分类器也可以被训练来识别有限数量的真实的、有标记的实例上的单个真实类。该方法由Salimans等人(2016)和Odena(2016)同时开发。早期的CatGAN使用了一个n类鉴别器,而不是一个n+1类鉴别器。

未来对GANs的改进可能会进一步改进半监督学习。

5.5 Using the code

GANs学习图像x的一个表示z。我们已经知道,这个表示可以捕获x的有用的高级抽象语义属性,但是利用这个信息可能有些困难。

使用z的一个障碍是,在给定输入x的情况下很难获得z。Goodfellow等人(2014b)提出了使用类似于生成器的第二网络对p(z | x)进行采样的方法,但没有进行演示,这与生成器对p(x)进行采样的方法类似。到目前为止,这一思想的完整版本,使用一个完全通用的神经网络作为编码器,并从任意强大的p(z | x)近似中采样,还没有得到成功的证明,但Donahue等人。(2016)演示了如何训练确定性编码器,Dumoulin等人。(2016)演示了如何训练从后验高斯近似采样的编码器网络。进一步的研究可能会开发出更强大的随机编码器。

5.6 Developing connections to reinforcement learning

研究人员已经发现了GANs与行为-批评方法(Pfau和Vinyals, 2016)、反向强化学习(Finn等,2016a)之间的联系,并将GANs应用于模仿学习(Ho和Ermon, 2016)。这些与RL的联系可能会继续产生结果,对GANs和RL都是如此。

6 Plug and Play Generative Networks

PPGNs是新的,还没有很好的理解。模型是复杂的,关于如何设计模型的大多数建议都是基于经验观察而不是理论理解。因此,本教程不会对PPGNs的具体工作方式说太多,因为这在将来可能会变得更加清楚。简而言之,PPGNs基本上是一种用Markov链生成图像的近似Langevin采样方法。使用去噪自动编码器估计Langevin采样器的梯度。去噪自编码器的训练有几个损失,包括GAN损失。一些结果如图33所示。如图34所示,GAN损耗对于获得高质量图像至关重要。

Figure 33:PPGNs能够从ImageNet类生成各种高分辨率的图像。图片来自Nguyen等人(2016)。

Figure 34:GAN损失是PPGNs的重要组成部分。如果没有它,用于驱动PPGNs的去噪自动编码器不会产生令人信服的图像。

7 Exercises

本教程包括三个练习来检查您的理解。答案在第8节中给出。

7.1 The optimal discriminator strategy

如等式8所述,鉴别器的目标是最小化关于θ(D)的J(D)。假设鉴别器可以在函数空间中进行优化,那么D(x)的值对于x的每个值都是独立指定的。D的最优策略是什么?为了得到这个结果,需要做哪些假设?

7.2 Gradient descent for games

考虑一个极大极小博弈,两个玩家各控制一个标量值。最小化玩家控制标量x,最大化玩家控制标量y。这个游戏的值函数是V (x, y) = xy。(19)

●这个游戏有平衡点吗?如果是,在哪里?

●考虑同时梯度下降的学习动力学。为了简化这个问题,把梯度下降看作一个连续的时间过程。在学习率为无穷小的情况下,用偏微分方程组描述梯度下降:(20)(21)。

求出这些动力学所遵循的轨迹。

7.3 Maximum likelihood in the GAN framework

在本练习中,我们将推导出在GAN框架内产生(近似)最大似然学习的代价。我们的目标是设计J(G),这样,如果我们假设鉴别器是最优的,那么J(G)的期望梯度将与DKL(pdatakpmodel)的期望梯度相匹配。解决方案的形式是(22)。

这个练习包括确定f的形式。

8 Solutions to exercises

8.1 The optimal discriminator strategy

我们的目标是在函数空间中最小化J(D)(23),直接指定D(x)。

我们首先假设pdata和pmodel在任何地方都不是零。如果我们不做这个假设,那么在训练过程中,一些点就永远不会被访问,并且具有未定义的行为。

为了使关于D的J最小,我们可以写下关于单个项D(x)的函数导数,并将它们设为0:J(D)=0。通过求解这个方程,我们得到(25)。

估计这个比率是GANs使用的关键近似机制。该过程如图35所示。

Figure 35:一个关于鉴别器如何估计密度比率的例子。在这个例子中,为了简单起见,我们假设z和x都是一维的。从z到x的映射(用黑色箭头表示)是不均匀的,因此在z值聚集得更密集的地方,pmodel(x)(用绿色曲线表示)更大。鉴别器(蓝色虚线)估计数据密度(黑点)与数据和模型密度之和之间的比率。当鉴别器输出较大时,模型密度过低;当鉴别器输出较小时,模型密度过高。通过跟随鉴别器上坡,可以学习产生更好的模型密度;每一个G(z)值都应该朝着D(G(z))增加的方向轻微移动。图转载自Goodfellow等(2014b)。

8.2 Gradient descent for games

值函数V(x,y)=xy是具有鞍点的连续函数的最简单的例子。通过在三维中可视化值函数,很容易理解这个游戏,如图36所示。

三维可视化清楚地告诉我们在x=y=0处有一个鞍点。这是一个博弈的均衡。我们也可以通过求解导数为零的地方找到这一点。

并不是每个鞍点都是一个平衡点;我们要求一个参与者参数的无穷小扰动不能降低该参与者的成本。这个游戏的鞍点满足这个要求。这是一种病态的平衡,因为当固定另一个玩家的参数时,值函数作为每个玩家参数的函数是恒定的。

为了求解梯度下降的轨迹,我们取导数,得到(27)(28)。通过对方程28的微分,我们得到(29)。

这种形式的微分方程有正弦作为其解的基函数集。对于考虑边界条件的系数,我们得到(30)(31)。

这些动力学形成一个圆形轨道,如图37所示。换言之,具有无穷小学习率的同时梯度下降将永远围绕平衡点运行,其半径与初始半径相同。随着学习率的提高,同时梯度下降有可能永远向外螺旋。同时的梯度下降永远不会接近平衡。

Figure 37:当应用于V (x, y) = xy时,具有无穷小学习速率的同时梯度下降将在恒定半径下无限地绕轨道运行,而不是在x = y = 0处接近平衡解。

对于某些游戏,同时梯度下降确实收敛,而对于其他游戏,如本例中的游戏,则不收敛。对于GANs,没有关于同时梯度下降是否应该收敛的理论预测。解决这个理论问题,并开发保证收敛的算法,仍然是重要的开放研究问题。

8.3 Maximum likelihood in the GAN framework

我们希望找到一个函数f使得J(G)(32)的期望梯度等于DKL(pdata||pg)的期望梯度。

首先我们取KL散度对参数θ的导数(33)。

现在我们要找出f使得方程32的导数与方程33匹配。首先对32式求导:(34)。

为了得到这个结果,我们做了两个假设:

1.我们假设pg(x)= 0,这样我们就可以使用等式pg(x)= exp(log pg(x))。

2.我们假设可以使用莱布尼茨规则来改变微分和积分的顺序(具体来说,函数及其导数都是连续的,并且函数在x取无穷值时消失)。

我们看到J(G)的导数非常接近于我们想要的;唯一的问题是,期望是通过从pg中抽取样本来计算的,而我们希望它是通过从pdata中抽取样本来计算的。我们可以用一个重要的抽样技巧来解决这个问题;通过设置f(x) = pdata(x)/pg(x),我们可以调整每个生成器样本对梯度的贡献,以补偿从生成器而不是从数据中提取的梯度。

注意,在构造J(G)时,我们必须将pg复制到f(x)中,使f(x)对pg的参数的导数为0。幸运的是,如果我们获得pdata(x)/pg(x)的值,这是很自然的。

从第8.1节,我们已经知道鉴别器估计期望的比率。利用代数,我们可以得到f(x)的一个数值稳定的实现。如果定义鉴别器以在输出层应用logistic sigmoid函数,其中D(x)=σ(a(x)),则f(x)==exp(a(x))。本练习摘自Goodfellow(2014)展示的结果。从这个练习中,我们看到鉴别器估计一个密度比,可以用来计算各种发散。

9 Conclusion

GANs是一种生成模型,它使用有监督学习来逼近一个难处理的成本函数,就像Boltzmann机器使用Markov链来逼近其成本,VAE使用变分下界来逼近其成本一样。GANs可以使用这种有监督比率估计技术来逼近许多成本函数,包括用于最大似然估计的KL散度。

GANs是相对较新的,仍然需要一些研究,以发挥其新的潜力。特别是,训练GANs需要在高维、连续、非凸对策中找到Nash均衡。研究人员应该努力为这种情况开发更好的理论理解和更好的训练算法。在这方面的成功将改善许多其他应用,除了GANs。

GANs对于许多不同的最先进的图像生成和操作系统都是至关重要的,并且有潜力在未来实现许多其他应用。

NIPS 2016 Tutorial:Generative Adversarial Networks学习记录相关推荐

  1. Generative Adversarial Networks 生成对抗网络的简单理解

    1. 引言 在对抗网络中,生成模型与判别相竞争,判别模型通过学习确定样本是来自生成模型分布还是原始数据分布.生成模型可以被认为是类似于一组伪造者,试图产生假币并在没有检测的情况下使用它,而判别模型类似 ...

  2. 【论文学习】《Parallel WaveGAN: A fast waveform generation model based on generative adversarial networks》

    <Parallel WaveGAN : A fast waveform generation model based on generative adversarial networks wit ...

  3. 深度学习之生成式对抗网络 GAN(Generative Adversarial Networks)

    一.GAN介绍 生成式对抗网络GAN(Generative Adversarial Networks)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一.它源于2014年发表的论文:& ...

  4. GAN网络学习入门之:A Beginner's Guide to Generative Adversarial Networks (GANs)-翻译

    译自:https://wiki.pathmind.com/generative-adversarial-network-gan 你可能认为编码者不是艺术家,但是编程是一个极具创意的职业.它是基于逻辑的 ...

  5. 生成式对抗网络Generative Adversarial Networks(GANs)

    1. 前言 2. 参考资料 3. 研究背景 4. GAN的框架 4.1 对抗框架(Adeversarial Nets) *关于"无监督学习"的说明 4.2 Minimax two- ...

  6. 史上最全GAN综述2020版:算法、理论及应用(A Review on Generative Adversarial Networks: Algorithms, Theory, and Applic)

    ** ** 史上最全GAN综述2020版:算法.理论及应用** 论文地址:https://arxiv.org/pdf/2001.06937.pdf ** 摘要:生成对抗网络(GANs)是近年来的一个研 ...

  7. Generative Adversarial Networks in Computer Vision: A Survey and Taxonomy(计算机视觉中的GANs:综述与分类)

    Abstract: 生成对抗网络(GANs)在过去几年得到了广泛的研究.可以说,他们最重要的影响是在计算机视觉领域,在挑战方面取得了巨大的进步,如可信的图像生成,图像之间的翻译,面部属性操纵和类似领域 ...

  8. 论文翻译:2019_Bandwidth Extension On Raw Audio Via Generative Adversarial Networks

    论文地址:原始音频的带宽扩展通过生成对抗网络 博客作者:凌逆战 博客地址:https://www.cnblogs.com/LXP-Never/p/10661950.html 摘要 基于神经网络的方法最 ...

  9. ESRGAN - Enhanced Super-Resolution Generative Adversarial Networks论文翻译——中英文对照

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com ...

  10. ESRGAN - Enhanced Super-Resolution Generative Adversarial Networks论文翻译——中文版

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com ...

最新文章

  1. 客快物流大数据项目(五十):项目框架初始化
  2. java 国际化 properties_java处理国际化和读取properties文件代码片段
  3. python基础代码事例-数据科学Python基础(附示例代码和练习题目)
  4. document的window对象
  5. 计算机视觉行业迎来大发展,多角度解读未来前景
  6. 【Python】3D Axis
  7. 如何用Python写一个Package
  8. shop--7.店铺编辑和列表--店铺列表展示 前端
  9. 【华为云技术分享】STM32L476移植华为LiteOS系列教程------背景知识 1
  10. Android-动画简介
  11. redis内存知识点
  12. 三维坐标绕轴坐标旋转公式
  13. ASP.NET数据分页技术(4)
  14. Partition does not end on cylinder boundary
  15. Atitit mysql insert perf enhance 批量插入数据库性能 目录 1.1. 案一:使用ignore关键字 1 2. 异步插入 2 2.1. 其它关键:DELAYED  做为
  16. FCKeditor的JSP版漏洞
  17. Python爬虫整站爬取安居客新房房源数据
  18. 引领IT大迁徙 Emulex持续优化应用交付
  19. 什么是模型管理和模型运维?
  20. 2019年新年书单 |不可错过的区块链好书 请查收

热门文章

  1. 基于强化学习工具箱的自适应巡航控制系统
  2. mysql ix锁_mysql锁详解
  3. 浏览器发送POST请求
  4. V2X协议栈介绍及说明(含框图)
  5. MacBook Pro 2018款充电口不能用解决办法
  6. Python-illegal multibyte sequence
  7. linux skb 存放数据,请教关于在linux网络驱动层对skb网络数据..._网络编辑_帮考网...
  8. skb_buff结构体解析
  9. 所谓“生活的艺术“, 就是悠闲二字
  10. Brave与Uphold合作推出钱包以奖励用户浏览