1. 引言
生成对抗网络最早是在2014年由Open AI的Ian Good fellow等人提出的一种创新型模型 [1] 。它的出现为解决工程和数学领域中高维度概率密度分布中采样和训练的问题提供了帮助。随后经过两年对生成对抗网络的研究与总结,Ian Good fellow等人在2016年神经信息处理系统进展大会上对生成对抗网络的相关知识体系进行了汇总 [2] 。生成对抗网络的理论在此基础上被证明了是一种具有非监督学习性质的收敛模型,这就为其在后续的应用中提供了可行性和实践性。它能够在不需要假设数据分布的前提下,来对一种随机分布进行直接采样,进而得到全局最优解。生成对抗网络的优点之一是它回避了一些比较复杂的概率运算,在训练过程中不涉及到最大似然估计和马尔科夫链等复杂算法 [3] ,又因为生成对抗网络善于捕捉模型的分布方式等一些独特的优点,其概念和模型被学术界广泛接受。至此以后以生成对抗网络作为研究基础的拓扑结构以指数爆炸的速度发展着,从GAN ZOO中统计的自2014年以来以生成对抗网络作为研究基础的论文数量的数据中可窥见一斑。
为此,针对生成对抗网络非监督学习这一特点,本文着重分析了非监督学习相较于监督学习的优势,对比了一些主流的无监督生成模型;主要总结了相对于标准生成对抗模型扩展模型——条件生成对抗网络(CGAN, Conditional Generative Adversarial Nets)、深度卷积生成对抗网络(DCGAN, Deep Convolution Generative Adversarial Nets)、循环生成对抗网络(Cycle GAN, Cycle Conditional Generative Adversarial Nets)做出概括的应用。生成对抗网络及其各种衍生模型的进一步研究必将有效解决计算机视觉问题,而且利用生成对抗网络来提升机器理解世界的能力,也必将成为人工智能中的重要研究方向。
2. 监督学习与无监督学习
2.1. 深度学习的研究实质
伴随着Alpha Go成为第一个击败人类职业围棋世界冠军的人工智能机器人开始,机器学习又走回了人们的视野。至此,机器学习在经历了数十年的跌宕起伏发展之后,又迎来了它的第二次浪潮——深度学习。如今,深度学习俨然成为了21世纪计算机学科的热门研究方向之一。深度学习最重要也最广泛的应用是数据挖掘(Data Mining),它是利用大数据的方法来学习样本特征,并对其多特征的特点进行分类或者预测 [4] ,从而找到一些解决复杂问题的途径并提高执行效率的方法。由此看来,深度学习的实质是通过构建具有很多隐层的深度学习模型和海量的训练数据,来习得更有用的特征,从而最终提升机器分类或预测的准确性。
2.2.两种学习算法的区别和适用场景
从训练深度网络的方式上区分,大部分深度学习算法可以分为监督机器学习算法、无监督机器学习算法。
在通常情况下,深度学习所要训练的数据集中会包含很多特征,例如对于每一朵鸢尾花都有一个其所属品种类别。而描述的特征既可以是像鸢尾花品种这样可分类的,也可以是连续或者是二进制的 [5] 。以此根据预测器的特征来建立类标签(Class Label)分布的简明模型,然后对未来的实例进行预测。如果在这些实例中应用到的是已知标签,例如:Iris数据集中注明了每个鸢尾花的样本属于何种品种,通过监督学习算法对Iris数据集进行研究,来学习如何根据测量结果将样本划分为三个不同品种 [6] 。那么这种学习被称之为监督学习。相反,如果这些实例没有标签,那么称之为非监督学习 [7] 。
针对于训练集中数据的特征可以将监督学习的算法分成回归和分类两种,其中分类的问题占据了监督学习中的大部分。回归的目的是为了对连续数据进行预测,通过样本数据的每一个样本特征拟合接近于真实值的预测值。图1中红色部分表示了利用回归算法对追加了噪声的二元函数趋势的非线性拟合曲线图。而分类是建立在回归之上,根据已知训练的样本和特征向量标签,通过计算特征参数来建立判别函数以对特征样本进行分类,其输出是离散数据。而在无监督学习中,因其训练数据集中只有特征而没有标签,只能通过数据之间的相同的某种或多种属性将他们分成相似样本的集合,这种方法称之为聚类(Clustering) [8] 。在聚类分析中,希望能够找到一种算法能自动将相同元素分为紧密关系的子集或簇。

Figure 1. Nonlinear fitting curve (red line) for scatter plot of binary functions with added noise
图1. 对追加了噪声的二元函数散点图的非线性拟合曲线图
虽然以具有监督学习算法性质的卷积神经网络(CNN, Convolutional Neural Network)能够以很高的准确率识别物体,使得它在图像分类、物体检测、姿态估计、图像分割、人脸识别等领域崭露头角 [9] 。但是随着需要训练的模型大型化和复杂化,深度学习模型在训练监督型数据上往往需要花费大量的精力和时间,而且实际上需要训练的未标签数据要远远多于已标签数据,由此催生了基于无监督学习领域的发展,以期望建立一种可兼容小数据集进行训练的通用系统。
2.3.几种基于无监督学习生成模型算法的对比
生成模型在概率统计理论和深度学习领域是一种重要的模型,它是指利用随机的数据来生成一系列可以观测的数据模型 [10] 。主要的无监督学习生成模型对比如表1所示:

Table 1. Comparison of main generative models
表1. 主要的生成模型的对比
3. 生成对抗网络模型原理与框图
生成对抗网络的思想来源于极大极小对策和纳什均衡原理,其本质上是一个对抗博弈的过程 [11] 。它主要实现两个基本功能:根据模型分布来提供密度估计和生成样本数据。一个完整的生成对抗网络结构包含了一个生成网络(G,Generator)和一个判别网络(D,Discriminator),其基本结构如图2所示。

Figure 2.The basic framework of GAN
图2.生成对抗网络的结构示意图
G的输入是一个随机分布的噪声z,其分布用p(z)表示。它捕获真实数据x的分布p(x),并把随机噪声映射到新的数据空间,输出结果为G(z),并使G(z)尽量接逼近真实数据的分布p(x)。
D有两个输入,一个来源于真实数据中的样本x,另一个来自生成器所产生的伪造数据G(z)。D按照其输出的表现形式可以归类于一个二分器。它通过比对两个样本的数据分布,输出一个[0, 1]之间的标量,用于衡量生成器生成样本的好坏。按照设定,该值越接近于0表示生成的效果越差;相反,越接近于1表示生成效果越好。
由于最开始的G是从无标签的数据集中学习,输出随机分布的噪音,此时D的性能要远远好于G,所以往往需要在起初加快生成模型的收敛。随着时间的进行,在G提高生成能力的同时,D也不断地提高着对生成的样本判别能力,以期望得到更加“真实”的样本。这样两个网络始终维持在一个相互竞争的状态,就同时提高了各自的能力。理论上在两个模型达到纳什均衡状态后,可以认为G已经学到真实的数据分布,模型达到最优。两个模型都可以通过非线性映射函数的设计来实现,例如多层感知器(Multi-Layer Perception),但是在实际的操作中多数情况下采用深度神经网络模型来确保达到良好的训练效果。
4. 生成对抗网络的应用
4.1. 条件生成对抗网络
GAN的缺点之一是无法控制判别网络G所生成样本的形式,这是由于样本是随机产生的缘故。解决的方式之一是在G和D的输入层中附加一些类标签等辅助信息y [12] ,这时GAN就演变成为了CGAN。CGAN相较于GAN最主要区别在于:在CGAN中,G和D均需要对样本分布进行观察,例如在需要指定生成一张大树的图片时,D也需要判断这是否是一张包含大树的伪造图片 [13] ,这样每个网络就增加了能够描述生成或判别样本的能力。
利用CGAN可以实现一种图像——图像之间的转换,即图像翻译。图像翻译是计算机视觉领域图像处理不可或缺的任务之一。简言之,它能将图像的一个域的属性迁移到另一个域的属性之中,来实现图像内容的改变。利用CGAN模型不仅能够学习从输入图像到输出图像之间的映射,还可以学习只有一个损失函数来训练这种映射,这就解决了传统方法中不同模型需要不同的损失函数公式的问题,因而这种模型可以作为一种通用的方法来产生高清图片。图3和图4分别是应用CGAN将轮廓图和像素图转化成为了对应的实物图片 [14] ,以此提升了视觉效果。

Figure 3. Transform a contour map to physical map of a rucksack with CGAN
图3. 借助CGAN将包的轮廓图转换成为实物图

Figure 4. Transform a contour map to physical map of a building with CGAN
图4. 借助CGAN将建筑的轮廓图转换成为实物图
4.2. 深度卷积生成对抗网络
GAN的另一个缺点在于生成网络G的输出并不稳定,经常会导致无意义的输出。同时为了进一步优化生成样本图片质量并加快模型的收敛速度,文献 [15] 将GAN中的生成网络G和判别网络D均设计成为了有约束的卷积神经网络拓扑结构,其生成网络G的模型如图5所示。

Figure 5. The generator network structure of DCGAN
图5. 深度卷积生成对抗网络的结构示意图
训练大规模图像数据集,实现大规模景物理解,是深度卷积生成对抗网络(DCGAN, Deep Convolution Generative Adversarial Nets)所研究的课题之一。目前DCGAN可以在受限图像域上生成高质量的图片。图6是DCGAN的应用实例,它生成了不同于卧室图片数据集的、看似真实却虚拟的卧室图片。由于对于图片生成的“真实性”的好坏没有唯一的客观评判标准,只能通过设置和不断优化判别网络的性能,以尽可能的提升视觉效果作为目标,因此具有一定的主观性。同时DCGAN也清楚地表明对输入语义属性的算术操作可以得到清晰的解释,这也是DCGAN研究的意义所在。

Figure 6. Virtual bedroom images generated from sample distribution by utilizing DCGAN
图6. 利用DCGAN样本分布中产生的虚拟卧室图像
4.3. 循环生成对抗网络
Cycle GAN是基于CGAN在图像——图像翻译方向上的拓展。Cycle GAN解决了CGAN需要成对的训练数据的难题,它提供了一种将一张图片从原域X映射到目标域Y的方法,记做G:X → Y。如图7所示。由于训练集拥有庞大的训练样本,这种映射又是缺少约束的,容易生成目标域Y中与图片不相干的图片,以此来引入它的逆映射F:Y → X和一个循环一致性损失,最后使得F(G(X)) ≈ X。

Figure 7. Schematic diagram of Cycle GAN
图7. 循环生成对抗网络的结构示意图
应用Cycle GAN可以实现对原始图片做风格转换 [16] ,如图8将一匹普通马转换成为了一匹斑马,又如图9则是将一张夏天风格的图片转化成为了冬天的格调。但是Cycle GAN对图像的边缘化处理不到位,例如在图8的生成图样中,并不能将处理马匹的细节和绿色的草原分开来,所以在改变马的斑纹的同时,草地的颜色也黯淡下来。这都是生成对抗网络需要改进和加强的方面。

Figure 8. Transform a horse to a zebra by Cycle GAN
图8. 利用Cycle GAN普通马的图片转化为斑马

Figure 9. Transform summer to winter by Cycle GAN
图9. 利用Cycle GAN将夏天的景色转化为冬天风格
5. 总结
本文从监督学习和无监督学习的特点入手,通过比对无监督学习的主要生成模型,引入并详细地介绍了生成对抗网络模型。然后介绍了生成对抗网络在“真实”图像生成和图像翻译上有趣又实用的应用案例,为生成对抗网络的进一步发展提供了直观的理解。总体来说,GAN及其衍生模型所生成的图片具有灵活、内容丰富等优点,既能满足某些场景下需要关注图片的细节,以此选择生成高清、高分辨率的图片;有时又能在满足一定分辨率需求的前提下,选择压缩图像节省空间的操作等。GAN在无监督训练过程中存在着难以设置初始化、不稳定、模式崩溃(Mode Collapse)和对3D图像不支持等一系列缺点,虽然在一定程度上限制了生成图样的多样性和通用性,同时为确保模型收敛增加了设计和优化网络结构的难度,但是它与监督学习、半监督学习结合起来加速训练,通过对生成器添加标签或加入控制条件等指导最终的生成结果,不仅可以弥补GAN本身的不足,还可以解决传统机器学习模型所不能解决的很多问题。因此,随着生成对抗网络理论的不断突破、拓扑算法的扩展和各种应用的交叉完善,GAN的大家庭必定在人工智能领域大有可为。
NOTES
*通讯作者。