题目
An Introduction to Image Synthesis with Generative Adversarial Nets
摘要
近年来,生成性对抗网络(GAN)的研究得到了迅猛的发展。GAN提出于2014年,已经应用于计算机视觉和自然语言处理等各种应用,并取得了令人印象深刻的性能。在GAN的众多应用中,图像合成是最受关注的一种,这方面的研究已经证明了GAN在图像合成中的巨大潜力。本文给出了图像合成中使用的方法的分类,回顾了文本到图像合成和图像到图像翻译的不同模型,并讨论了一些评估指标以及GAN在图像合成中可能的未来研究方向。
引言
随着深层学习的最新进展,机器学习算法已经发展到能够在某些任务中竞争甚至击败人类的程度,例如ImageNet[1]上的图像分类、Go[2]和Texas Hold'em poker[3]。然而,我们仍然不能断定那些算法具有真正的“智能”,因为知道如何做某事并不一定意味着理解某事,而且对于真正智能的代理人来说,理解其任务是至关重要的。著名的物理学家理查德·费曼说:“我不能创造什么,我不能理解。”为了在机器学习的情况下使用这个引号,我们可以说,为了让机器理解它们的输入数据,它们需要学习创建数据。最有希望的方法是使用生成模型,该模型学习发现数据的本质并找到最佳分布来表示它。此外,通过学习生成模型,我们甚至可以绘制不在训练集中但遵循相同分布的样本。
作为一种新的生成模型框架,2014年提出的生成对抗网[4]能够生成比以往的生成模型更好的合成图像,自此成为最热门的研究领域之一。生成对抗网络包括两个神经网络,一个生成器和一个鉴别器,其中生成器试图产生欺骗鉴别器的真实样本,而鉴别器试图区分真实样本和生成的样本。GAN的研究主要有两条主线。一个是试图缓解GAN[5][6][7][8][9][10]的不稳定性和模式崩溃问题的理论线索,或者从不同的角度对GAN[5][6][7][9][10]进行公式化,如信息论[11]和基于能量的模型[12]。另一条主线是GAN在计算机视觉(CV)[5]、自然语言处理(NLP)[13]等领域的应用。
Goodfellow在NIPS 2016中给出了一个关于GAN[14]的伟大教程,其中他描述了生成模型的重要性,解释了GAN如何工作,将GAN与其他生成模型进行了比较,并讨论了GAN中的前沿研究课题。此外,最近有一篇关于GAN[15]的评论文章回顾了几种GAN体系结构和训练技术,并介绍了GAN的一些应用。然而,这两篇论文都属于一般范围,没有具体应用的细节。在本文中,我们特别关注图像合成,其目标是生成图像,因为它是迄今为止GAN应用最多的研究领域。除了图像合成,GAN在计算机视觉中还有许多其他的应用,如画中图像[16]、图像字幕[17][18][19]、对象检测[20]和语义分割[21]。
在自然语言处理中应用GaN的研究也是一个不断发展的趋势,如文本建模[13][22][23]、对话生成[24]、问答[25]和神经机器翻译[26]。然而,在NLP任务中训练GAN更加困难,并且需要更多的技术[13],这也使得GAN成为一个具有挑战性但令人感兴趣的研究领域。
本文的主要目的是综述GAN在图像合成中应用的各种方法,并指出现有方法的优缺点。将图像合成的主要方法分为直接法、分层法和迭代法。除了这些最常用的方法,我们还将简要提及其他方法。然后,我们详细讨论了图像合成中最重要的两个任务,即文本到图像合成和图像到图像翻译。我们还讨论了为什么GAN在某些任务中表现如此好的可能原因以及它在人工智能目标中的作用。本文的目的在于为那些想将GAN应用到他们的问题中的人提供一个简单的指导方针,并帮助进一步研究GAN。
本文的其余部分组织如下。在第二节中,我们首先回顾了GAN的一些核心概念,以及一些变体和培训问题。在第三节中,我们介绍了三种主要的图像合成方法和一些其他的图像合成方法。在第四节中,我们讨论了文本到图像合成的几种方法和一些可能的研究方向。在第5节中,我们首先介绍了用于图像到图像的翻译的有监督和无监督的方法,然后转向更具体的应用,如人脸编辑、视频预测和图像超分辨率。在第6节中,我们回顾了用于合成图像的一些评估度量,而在第7节中,我们讨论了鉴别器作为学习损失函数的作用。结论在第8节给出。
2 GAN 准备工作
在本节中,我们回顾了生成对抗网络(GAN)的一些核心概念和一些改进。
由θ参数化的生成模型G将随机噪声z作为输入,输出样本,因此输出可以看作是从分布中抽取的样本。同时,我们从数据中提取了大量的训练数据 X,并且生成模型G的训练目标是使用来近似。
生成对抗网络(GAN)[4]由两个独立的神经网络组成:一个产生器G,它接受随机噪声向量z,并输出合成数据;一个鉴别器D,它接受输入或并输出概率或,以指示它是合成的还是来自真实的数据分布,如图1所示。发生器和鉴别器都可以是任意的神经网络。首先GAN[4]使用完全连接的层作为其构建块。随后,DCGAN[5]提出了使用全卷积神经网络来获得更好的性能,从那时起,卷积层和置换卷积层已经成为许多GAN模型的核心部件。有关卷积(转置)算法的更多细节,请参阅此报告[27]。
训练产生器和鉴别器的原始方法是形成一个两人最小最大博弈,其中产生器G试图产生真实的数据欺骗鉴别器,而鉴别器D试图区分真实数据和合成数据[4]。待优化的值函数如等式1所示,其中表示真实数据分布,表示噪声分布。
然而,当鉴别器训练得比发生器好得多,可以以接近1的置信度拒绝来自的样本,因此损失饱和,G不能从零食中学到任何东西。为了防止这种情况,我们可以训练来使最小化,而不是训练G来使[4]最大化。虽然新的G损失函数给出了与原始梯度函数不同的梯度尺度,但它仍然提供了相同的梯度方向,并且不饱和。
2.1 有条件GAN Conditional GAN
在原始GAN中,我们无法控制要生成什么,因为输出仅依赖于随机噪声。然而,我们可以向随机噪声z中添加一个条件输入c,使得生成的图像由[28]定义。通常,条件输入向量c与噪声向量z相连,并且所得到的向量像在原始GAN中一样被放入生成器。此外,我们可以在c和z上执行其他的数据增强,如[29]所示。条件输入c的含义是任意的,例如,它可以是图像的类别、对象[28]的属性或者我们想要生成[30][31]的图像的文本描述的嵌入。
[30] S. Reed, Z. Akata, X. Yan, L. Logeswaran, B. Schiele, and H. Lee,“Generative adversarial text to image synthesis,” arXiv preprint arXiv:1605.05396, 2016.
[31] S. E. Reed, Z. Akata, S. Mohan, S. Tenka, B. Schiele, and H. Lee,“Learning what and where to draw,” in Advances in Neural Information Processing Systems, 2016, pp. 217–225.
2.2 带有辅助分类器的GAN GAN with Auxiliary Classifier
为了提供更多的辅助信息,并允许半监督学习,可以向鉴别器添加一个附加的特定于任务的辅助分类器,从而在原始任务和附加任务[32][6]上优化模型。这种方法的体系结构如图2所示,其中C是辅助分类器。添加辅助分类器允许我们使用预先训练的模型(例如,在ImageNet上训练的图像分类器),并且在AC-GAN[33]中的实验表明,这种方法可以帮助生成更清晰的图像以及减轻模式崩溃问题。使用辅助分类器还可以帮助诸如文本到图像合成[34]和图像到图像翻译[35]之类的应用。
2.3 有编码器的GAN GAN with Encoder
虽然GAN可以将噪声向量z变换为合成数据样本,但它不允许逆变换。如果将噪声分布作为数据样本的潜在特征空间,则GAN缺乏将数据样本x映射到潜在特征z的能力。为了允许这种映射,两个并发工作BiGAN[36]和ALI[37]建议在原始GAN框架中添加编码器,如图3所示。设为数据空间,为潜特征空间,编码器E以为输入,产生特征向量为输出。将鉴别器D修改为同时以数据样本和特征向量作为输入来计算,其中表示样本为真,表示数据由生成.