第 39 卷第 2 期
2018 年 2 月
通 信 学 报
Journal on Communications
Vol.39 No.2
February 2018
生成式对抗网络研究进展
王万良,李卓蓉
(浙江工业大学计算机科学与技术学院,浙江 杭州 310024)
摘 要:生成式对抗网络(GAN, generative adversarial network)对生成式模型的发展具有深远意义,自提出后立
刻受到人工智能学术界和工业界的广泛研究与高度关注,随着深度学习的技术发展,生成式对抗模型在理论和应
用上得到不断推进。首先,阐述生成对抗模型的研究背景与意义,然后,详细论述生成式对抗网络在建模、架构、
训练和性能评估方面的研究进展及其具体应用现状,最后,进行分析与总结,指出生成式对抗网络研究中亟待解
决的问题以及未来的研究方向。
关键词:深度学习;生成式对抗网络;卷积神经网络;自动编码器;对抗训练
中图分类号:TP183
文献标识码:A
doi: 10.11959/j.issn.1000-436x.2018032
Advances in generative adversarial network
College of Computer Science and Technology, Zhejiang University of Technology, Hangzhou 310024, China
WANG Wanliang, LI Zhuorong
Abstract: Generative adversarial network (GAN) have swiftly become the focus of considerable research in generative
models soon after its emergence, whose academic research and industry applications have yielded a stream of further
progress along with the remarkable achievements of deep learning. A broad survey of the recent advances in generative
adversarial network was provided. Firstly, the research background and motivation of GAN was introduced. Then the re-
cent theoretical advances of GAN on modeling, architectures, training and evaluation metrics were reviewed. Its
state-of-the-art applications and the extensively used open source tools for GAN were introduced. Finally, issues that re-
quire urgent solutions and works that deserve further investigation were discussed.
Key words: deep learning, generative adversarial network, convolutional neural network, auto-encoder, adversarial
training
1 引言
近年来,深度学习在计算机视觉[1,2]、自然语言
处理[3,4]、语音[5]等多个应用领域中都取得了突破性
进展,其动机在于建立能够模拟人类大脑神经连接
结构的模型,在处理图像、文本和声音等高维信号
时,通过组合低层特征形成更加抽象的高层表示、
属性类别或特征,进而对数据进行层次化表达[6~8]。
深度学习的模型可大致分为判别式模型和生成式
模型,目前,深度学习取得的成果主要集中在判别
式模型,即将一个高维的感官输入映射为一个类别
标签[9,10],这些成果主要归功于反向传播(BP, back
propagation)算法[11]和 Dropout 算法[12,13]对模型的
训练。著名物理学家 Richard 指出,要想真正理解
一样东西,我们必须能够把它创造出来。因此,要
想令机器理解现实世界,并基于此进行推理与创
造,从而实现真正的人工智能,必须使机器能够通
过观测现实世界的样本,学习其内在统计规律,并
基于此生成类似样本,这种能够反映数据内在概率
分布规律并生成全新数据的模型为生成式模型。
收稿日期:2017-05-24;修回日期:2018-01-17
基金项目:国家自然科学基金资助项目(No.61379123)
Foundation Item: The National Natural Science Foundation of China (No.61379123)
2018032-1
·136·
通 信 学 报
第 39 卷
然而,相对判别式模型来说,生成式模型的研
究进展较为缓慢,究其原因主要是较高的计算复杂
度。典型的生成式模型往往涉及最大似然估计、马
尔可夫链方法、近似法等[14]。受限玻尔兹曼机(RBM,
restricted Boltzmann machine)[15]及其扩展模型(如
深度置信网络[16]、深度玻尔兹曼机[17])采用最大似
然估计法,即令该参数下模型所表示的分布尽可能
拟合训练数据的经验分布。最直接的方法是利用梯
度上升法求得对数似然函数最大值,但由于样本分
布未知且包含归一化函数(也称配分函数)而无法
给出参数梯度的解析解,替代方法是基于采样构建
以数据分布为平稳分布的马尔可夫链,以获得满足
数据分布的样本,然后利用蒙特卡罗迭代对梯度进
行近似,这种方法计算复杂。变分自编码器(VAE,
variational autoencoder)[18]采用近似法,其性能优
劣取决于近似分布的好坏,而该近似分布的假设需
要一定的先验知识,此外,由于受变分类方法的局
限,VAE 对概率分布的估计是有偏的,在学习过程
中 对 目 标 函数 下 界 而 不是 目 标 函 数进 行 逼 近 。
PixelRNN[19]是自回归模型的一种,将图像生成问题
转化为像素序列预测学习问题,假设每个像素的取
值只依赖于空间中某种意义的近邻,通过给定的像
素对每个像素的条件分布进行建模,采样效率较
低 。 上 述 生成 式 模 型 的复 杂 训 练 使之 只 能 生 成
MNIST[20]和 CIFAR-10[21]等简单数据集的图片,并
不适用于较大尺度的复杂图像。
生成式模型是一个极具挑战的机器学习问题,
主要体现在以下 2 点。首先,对真实世界进行建模
需要大量先验知识,建模的好坏直接影响生成式模
型的性能;其次,真实世界的数据往往非常复杂,
拟合模型所需计算量往往非常庞大,甚至难以承
受。针对上述两大困难,Goodfellow 等[22]提出一种
新型生成式模型——生成式对抗网络(GAN, gen-
erative adversarial network),开创性地使用对抗训练
机制对 2 个神经网络进行训练,并可使用随机梯度
下降(SGD, stochastic gradient descent)实现优化。
这避免了反复应用马尔可夫链学习机制带来的配
分函数计算,不需变分下限也不需近似推断,从而
大大提高了应用效率[23]。尽管 GAN 从提出至今不
过两年半时间,但关注和研究热度急速上升,并已
从学术界延伸至工业界,Google、OpenAI、Facebook
和 Twitter 等知名人工智能企业纷纷投入大量精力
研究和拓展 GAN 的应用[24~27]。目前,GAN 已成功
应用于图像生成 [28~30]和视频生成 [31,32]领域,此
外,若干研究工作[33~35]已成功将 GAN 应用在强
化学习中。
本文论述了 GAN 在建模、架构、训练和性能
评估方面的最新研究进展及其具体应用现状,最后
进行分析与总结,指出生成式对抗网络研究中亟待
解决的问题。
2 生成式对抗网络
2.1 基本思想
受博弈论中二元零和博弈的启发,GAN 的框架
中包含一对相互对抗的模型:判别器和生成器。判
别器的目的是正确区分真实数据和生成数据,从而
最大化判别准确率;生成器则是尽可能逼近真实数
据的潜在分布。为了在博弈中胜出,二者需不断提
高各自的判别能力和生成能力,优化的目标就是寻
找二者间的纳什均衡。GAN 示意[36]如图 1 所示,
生成器(点划线框内的多层感知机)的输入是一个
来自常见概率分布的随机噪声矢量 z,输出是计算
机生成的伪数据;判别器(虚线框内的多层感知机)
的输入是图片 x(x 可能采样于真实数据,也可能采
样于生成数据),输出是一个标量,用来代表 x 是
真实图片的概率,即当判别器认为 x 是真实图片时
输出 1,反之输出 0[22]。判别器和生成器不断优化,
当判别器无法正确区分数据来源时,可以认为生成
器捕捉到真实数据样本的分布。
2.2 标准模型
1) 极大极小博弈
生成器和判别器可以是任意可微函数,因此,
可以利用随机梯度下降法(SGD)进行优化,而采
用 SGD 的前提是建立一个目标函数来判断和监视
学习的效果。由于判别器是一个二分类模型,因此,
可用交叉熵表示其目标函数,即
J D
(
)
= −
1
E
2
1 E
2
x
( ) [
( ) [
z
x p
~
data
z
~
p
z
D x
log ( )
]
−
log(1
−
D G
(
z
( )))
]
(1)
其中,E 是求期望,G 和 D 分别表示生成器与判别
器的可微函数,x 是真实数据样本,z 是随机噪声矢
量,G(z)是判别器的生成数据。式(1)第一项表示 D
判断出 x 是真实数据的情况,第二项则表示 D 判别
出数据是由生成器 G 将噪声矢量 z 映射而成的生成
数据。由于 G 与 D 进行二元零和博弈,因此,生
2018032-2
第 2 期
王万良等:生成式对抗网络研究进展
·137·
图 1 GAN 示意
)
= −
J G
成器 G 的目标函数 (
优化问题可描述为如下极大极小博弈问题。
min max
G
D
V D G
J D
(
E
x p
~
=
x
( )
(
)
data
,
)
。因此,GAN 的
log
⎡
⎣
(
log 1
( )
D x
⎤
⎦
(
D G
−
+
( )
z
)
)
⎤
⎦
E
z
~
p
z
( )
z
⎡
⎣
(2)
由于在训练初期缺乏足够训练,G 所生成的数
据不够逼真,因此,D 很容易就能将生成数据与真
实数据区分开来,导致 G 得不到足够梯度。因此,
文献[22]提出,通过最大化 logD(G(z))而不是最小化
log(1−D(G(z))来训练 G 是一个更好的策略。
2) 非饱和博弈
为了解决生成器的弱梯度问题,除了采用文
献[22]的方法外,还可以把极大极小博弈替换成非
饱和博弈,即
J D
(
)
= −
J G
(
)
= −
⎧
⎪
⎪
⎪
⎨
⎪
⎪
⎪⎩
1
E
2
1 E
2
1
2
E
x
( ) [
( ) [
z
x p
~
data
z
~
p
z
log (
D G
z
( ))
z
~
p
z
( )
z
D x
log ( )
]
−
log(1
−
D G
(
z
( )))
]
(3)
换言之,G 用自己的伪装能力来表示自己的目标
函数,而不是简单直接地取 J(D)的相反数。从而均衡
不再完全由价值函数 min max V(G,D)决定,即使 D 准
确地拒绝了所有生成样本,G 仍可以继续学习。
2.3 泛化模型
Goodfellow 等[22]从博弈论的角度阐释了 GAN
的思想,即 GAN 的训练目标是使生成器 G 与判别
器 D 达到纳什均衡,此时,生成模型 G 产生的数
据分布完全拟合真实数据分布。若从信息论角度理
解,GAN 所最小化的实际上是真实数据分布和生成
分布之间的 Jensen-Shannon 散度。Goodfellow[37]认
为 Kullback-Leibler 散度比 Jensen-Shannon 散度更
适用于 GAN 的目标函数构建,Sønderby 等[38]和
Kim 等[39]基于 Kullback-Leibler 散度对 GAN 进行建
模,通过最小化两者之间的交叉熵进行训练。文献[40]
对 此 进 行 拓 展 , 提 出 的 f-GAN 将 基 于 Jensen-
Shannon 散度的 GAN 建模泛化为基于 f-散度的优化
目标,从而将 Kullback-Leibler 等经典散度度量也包
含在 f-散度中。
2.4 网络结构实现
在生成器 G 和判别器 D 的网络结构方面,朴
素生成式对抗网络[22]通过多层感知机(MLP, mul-
ti-layer perceptron)来实现。由于卷积神经网络
(CNN, convolutional neural network)较 MLP 有更
好的抽象能力,DCGAN[28]将朴素生成式对抗网络
的 MLP 结构替换为 CNN 结构,考虑到传统 CNN
所包含的池化层并不可微,DCGAN 用步进卷积网
络(strided convolution)及其转置结构分别实现判
2018032-3
·138·
通 信 学 报
第 39 卷
别器 D 和生成器 G,用于训练过程的空间降采样和
升采样。该研究工作提出了 GAN 架构下的一种具
体且有效的实现方式和经验指导,成为后续许多理
论研究和应用研究的基础。另外,朴素 GAN 的定
义域为实数且生成器 G 和判别器 D 均可微,这样
设计是为了根据 D 的梯度信息对生成数据进行微
调,从而提高生成数据质量。然而,当数据是离散
时此方式并不可行,这也是在自然语言处理中应用
生成对抗网络的主要障碍。为了生成离散序列,
TextGAN[41]和 SeqGAN[42]等模型往往通过循环神
经网络实现判别器 D,通过 CNN 实现生成器 G。
3 GAN 的架构
3.1 条件生成式对抗网络
GAN 的最大优点体现在其对抗训练方式通过
对 p(x)直接采样来逼近真实样本,利用反向传播即
可获得梯度而不需复杂的马尔可夫链和推断过程,
从而大大简化了计算。然而,文献[22]使用 z 作为
先验,但生成式模型如何利用这个先验却是无法控
制的。换言之,GAN 的学习模式过于自由而导致
GAN 的训练过程和结果都不可控。为了提高 GAN
的稳定性,Mirza 等[43]提出条件生成式对抗网络
(cGAN, conditional GAN),将条件变量 y 作为模
型的附加信息以约束生成过程,这种条件变量可以
是类别标签甚至还可以是不同模态的数据。GAN 的
架构如图 2 所示。图 2(a)是 cGAN 的概念图,可以
看出,cGAN 在朴素 GAN 的基础上将条件变量 y
与 z 同时输入生成器 G 中,在判别器 D 中,真实样
本 x 和条件变量 y 同时作为判别函数的输入。因此,
cGAN 的目标函数在朴素 GAN 的基础上进一步改
写为
min max
G
D
(4)
cGAN 需要同时对 z 和条件变量 y 进行采样,
其中,对随机噪声采样是简单的,但生成条件变量
则需多加考虑。最常见的一种方法是直接从训练数
据中获取条件变量,例如,文献[43]的条件变量采
用的是类别标签 y,其同时作为生成器和判别器的
附加输入层。然而,这种情况下生成器可能会记住
这些训练样本从而达到虚假的最优。针对这个问
题,Gauthier[44]提出在训练过程中基于训练样本的
条件变量值构造核密度估计(也称为帕尔森窗口估
(
D x y
(
D G y
log
⎡
⎣
(
log 1
V D G
)
⎤
⎦
(
z
E
E
x p
~
⎡
⎣
⎤
⎦
)
=
+
−
)
)
x
( )
z
( )
z
~
p
z
data
(
,
)
计),对条件变量进行随机采样。文献[43]和文献[44]
都 是 以 类 别 标 签 作 为 条 件 变 量 , 与 之 不 同 ,
LAPGAN[45]和 GRAN[32]的条件变量是上一级所生
成的图片,利用前一步得到的生成结果进行训练,
相当于将复杂分布的建模问题转化为一系列简单
子问题,从而问题得以大大简化。金字塔中每一级
都通过使用 cGAN 来训练一个单独的生成性卷积网
络 Gi,以避免模型过拟合,这是 LAPGAN 的显著
特点和最大优势。StackGAN[46,47]本质上也是一种
cGAN,基于前一层所生成的分辨率较低图片及文
字信息生成分辨率较高的图片。
Chen 等[48]提出的 InfoGAN 是条件生成式对抗
网络中的另一重要模型。同样地,InfoGAN 的生成
器 G 的输入包含条件变量,不同的是,这个条件变
量是从噪声矢量中拆分出来的结构化隐变量。朴素
GAN 利用其唯一的输入信号z 能生成与真实数据相
一致的模型分布,然而人们并不清楚它究竟是如何
将 z 的具体维度与数据的有效语义特征对应起来
的,因此,也就无法通过控制 z 以生成期望的数据,
针对这个问题,InfoGAN 通过从噪声矢量中拆分出
结构化的隐变量,进而使生成过程具备可控性且生
成结果具备可解释性。具体地,InfoGAN 将朴素
GAN 中的 z 进行拆解,从而 InfoGAN 中输入的先
验变量可拆分为:1)一组用于表示数据语义特征
的结构化隐变量,用 c 表示这部分具有可解释性的
先 验 , 例 如 , 对 于 MNIST 数 据 集 来 说 , 可 用
c1,c2,…,cL 表示光照方向、笔画粗细和字体的倾斜角
度等;2)不能再压缩的、无法描述的非结构化噪
声矢量 z,将 z 和 c 同时输入生成器,如图 2(b)所示。
根据信息论,互信息 I(x;y)度量了 y 的信息对 x 不确
定性的减少量,因此,为了学习重要的语义特征,
可通过最大化隐变量 c 和生成分布 G(z,c)的互信息
I(c;G(z,c))使生成过程中的重要特征在生成过程中
得到充分学习。InfoGAN 的价值函数为
V D G V D G
min max (
I
G
c G c
z
( , ))
(5)
I( ;
λ
=
−
)
(
)
,
,
D
利用结构化隐变量 c 的可解释性,InfoGAN 能
控制生成样本在某个特定语义维度的变化,从而使
生成器能生成更符合真实样本的结果。通过引入变
分分布逼近真实样本分布,并与互信息下限的优化
进行交替迭代,从而实现具体优化。
3.2 双向生成式对抗网络
GAN 通过将简单的隐变量分布映射至任意复
2018032-4
第 2 期
王万良等:生成式对抗网络研究进展
·139·
图 2 GAN 的架构
杂的数据分布来生成令人信服的自然图像[28,45],这
表明 GAN 的生成器能对隐空间中的数据分布进行
语义线性化,学习到隐空间中数据的良好特征表
达。然而,GAN 缺少一种有效的推断机制,未能学
习从数据空间映射至隐空间的逆映射[49]。为解决这
个问题,Donahue 等[50]和 Dumoulin 等[51]将单向的
GAN 变为双向的 GAN,从而既能进行有效推断又
保证了生成样本质量。Donahue 等[50]提出的双向生
成式对抗网络(BiGAN, Bidirectional GAN),除了
学习标准 GAN 中的生成器 G 和判别器 D 外,还学
习了一个将数据映射至隐式表达的编码器 E,如
图 2(c)所示。Dumoulin 等[51]提出的 ALI 与 BiGAN
一样,通过编码器 E 学习到的特征表达有助于训练
判别器 D,通过同时训练编码器和解码器以迷惑生
成器,使判别器难以区分究竟是真实样本及其编码
还是生成样本及其隐变量,换言之,双向生成对抗网
络的生成器判别的是联合样本(x, z)而不是样本 x。
3.3 自编码生成式对抗网络
基于变分自动编码器的生成模型[15]能学习一
种可以用于半监督学习或图像修复等辅助任务的
近似推断机制,但该方法的最大似然训练模式会使
生成样本比较模糊[52]。而基于 GAN 的生成模型虽
然生成样本质量更优,但缺少一种有效的推断机
制[53]。Larsen 等[54]将 VAE 和 GAN 并入同一个无监
督生成模型中,当将编码器和解码器看作一个生成
模型整体时,这个生成模型和判别器构成了扩展的
生成式对抗模型;若将解码器和判别器看作一个整
体时,这个整体相当于解码器,并与编码器共同构
成了扩展的自编码器,因此,该模型结合了 GAN
和 VAE 的优点。Che 等[55]在此基础上提出将 VAE
的重构误差作为遗失模式的正则项,进而提高 GAN
的稳定性和生成样本质量。对抗自编码器(AAE,
adversarial autoencoder)[56]将利用自编码器得到的
重构误差和对抗训练得到的隐变量与目标分布之
间的误差进行组合,从而既能通过自编码器进行推
断又能得到结构化的隐变量。
3.4 组合生成式对抗网络
通过对朴素 GAN 进行堆叠、平行或相互反馈,
来调整 D 和 G 的组合方式。Wang 等[57]提出 GAN
的自组合和级联组合,前者对经过不同迭代次数的
同一模型进行组合,既充分利用模型组合的效果又
可避免其带来过多额外计算,后者将多个不同的
cGAN 进行级联,通过门函数将未被充分利用的训
练数据传入下一个 GAN 进行重复使用,如图 3(a)
所示。Liu 等[58]提出的 CoGAN 包含一对 GAN,每
个 GAN 负责生成一个领域的图片,如图 3(b)所示。
在训练过程中,共享生成器低层和判别器高层的参
数,共享的参数使这一对 GAN 所生成的图片相似,
其余不共享的参数使每个 GAN 所生成的图片不完
全相同。Im 等[59]提出生成式对抗的平行化 GAP,
即不让判别器与固定且唯一的生成器进行对抗训
练,而是同时训练几组 GAN,并令每个判别器周期
性地与其他 GAN 的生成器进行对抗训练,如图 3(c)
所示。GAP 适用于 GAN 的任何扩展模型,因此,
可将 GPU 分配给不同的 GAN 衍生模型(如 DCGAN
和 LAPGAN)进行并行计算。并行对抗训练能增加
判别器所处理的模式数量,从而有效避免模式坍塌
问题,因此,可将 GAP 视为正则化手段。Zhu 等[60]
提出的 CycleGAN 包含 2 个判别器 Dx 和 Dy,用于
鼓励图片在 2 种不同风格之间的迁移。Li 等[61]提出
TripleGAN,在生成器 G 和判别器 D 的基础上额外
增加一个分类器 C,G 和 C 的目的都是使 D 难辨真
假,C 的引入避免了判别器 D 既需判别生成样本又
需对生成样本进行分类。
2018032-5
·140·
通 信 学 报
第 39 卷
Dk
图 3 GAN 的不同组合方式
4 训练与评估
4.1 训练机制
GAN 的训练可采用交替优化方法,即固定 G
的参数以更新 D 的参数,然后固定 D 的参数以更
新 G 的参数。Goodfellow 等[22]指出,当生成器 G
固定时,存在唯一的最优判别器 D*=
;当
p
data
p
+g
data
p
pg=pdata 时,生成器 G 达到最优,此时 D*=0.5,即
最优判别器 D*无法区分真实数据与生成数据。在
训练过程中如何平衡生成器 G 和判别器 D 非常关
键,理论上,当固定生成器的参数时,判别器的参
数不断更新直至最优,然而在实际应用中,往往判
别器 D 的参数更新 k 次后,生成器 G 的参数才更新
一次。
GAN 的判别器 D 和生成器 G 都是可微函数,
因此,可用随机梯度下降进行训练。在判别器 D 接
近最优时,生成器 G 的损失函数 Ez[log(1−D(G(z))]
实 质 上 是 最 小 化 真 实 分 布 和 生 成 分 布 之 间 的
Jensen-Shannon 散度。然而,当真实分布和生成分
布的支撑集是高维空间中的低维流形时,这 2 个分
布 的 重 叠 部 分 测 度 为 零 的 概 率 为 1 , 此 时 ,
Jensen-Shannon 散度是常数 log2,导致训练梯度消
失 。 针 对 这 个 问 题 , Arjovsky 等 [62] 提 出
Wasserstein-GAN(WGAN),用 Wasserstein 距离
代替 Jensen-Shannon 散度来衡量真实分布和生成分
布的距离。由于 Wasserstein 距离较 Jensen-Shannon
散度具有更佳的平滑性,解决了梯度消失问题,因
此,理论上 WGAN 彻底解决了训练不稳定问题。
而且,Wasserstein 距离的连续性和可微性能够提供
持续的梯度信息,因此,WGAN 不要求生成器 G
与 判 别 器 D 之 间 严格平 衡 。WGAN 中 用 一 个
Lipschitz 连续性约束对应着 GAN 判别器 D 的批评
函数 f,在如何进行 Lipschitz 约束的问题上,WGAN
采用了权值截断,然而,带有权值截断的优化器会
在一个比 1-Lipschitz 小的空间中搜索判别器,导致
判别器偏向非常简单的函数,此外,截断后梯度在
反向传播过程中会出现梯度消失或弥散。针对这个
问题,Gulrajani 等[63]提出用梯度惩罚代替权值截断
来进行 Lipschitz 约束,以获得更快的收敛速度和更
高的生成样本质量。此外,朴素 GAN 没有对生成
分布做任何假设,要想拟合任意分布必须给判别
器 D 引入无限建模能力,而这容易导致过拟合。
Qi 等[64]对判别器的无限建模能力进行约束,通过将
损失函数限定在满足 Lipschitz 连续性约束的函数
类上并使用(真实样本,生成样本)这样的成对统
计量来学习批评函数 f,迫使两者之间必须配合,
从而实现建模能力的按需分配。
上述研究工作的共同之处在于梯度信息是一
阶的,Metz 等[65]提出在训练时对判别目标函数进行
展开优化,即生成器当前决策是基于判别器因该决
策而采取的后续 k 个决策而生成的,这个方法在本
质上是用二阶甚至高阶梯度指导生成器的训练。在
标准 GAN 的训练中,生成器和判别器的参数更新
都是在其他模型参数固定的前提下对自身参数使
用梯度下降法进行更新,而该研究工作中提出的代
理损失函数使得模型参数基于其他模型参数的变
化而进行更新,具体地,在对生成器使用梯度下降
法进行参数更新后,基于判别器的后续 k 步参数更
新再去调整生成器的梯度。这种额外的信息能使生
成器的概率分布更加平均,从而判别器的下一步不
易坍塌至某一个点,但由于对判别目标函数的展开
优化涉及二阶甚至高阶梯度,因而计算非常复杂。
4.2 训练技巧
GAN 的训练技巧研究大大加快了 GAN 的研究
和应用进展,目前,研究工作[24]是围绕训练技巧展
2018032-6
第 2 期
王万良等:生成式对抗网络研究进展
·141·
开的,此外,也有很多研究工作[28,38]提出了针对具
体训练问题的技巧,本节将对常用的训练技巧进行
简单介绍。
仅以最大化判别器的输出为优化目标容易导
致 判 别 器 过 训 练 ,Salimans 等 [24]提 出 特 征 匹 配
(feature matching),将判别器学到的特征作为生成
器附加信息,以使生成样本尽量匹配这些统计特
征,此时判别器的作用是指出能有效区分真假数据
的特征。与其他机器学习算法一样,GAN 所得到的
标签最好是经过平滑处理的,例如,将用 0 和 1 表
示类别的离散标签替换为更加平滑的 0.1 和 0.9。标
签平滑最近被证明能有效降低对抗样本对神经网
络的干扰[66],对于 GAN 而言,标签平滑能避免判
别器向生成器传递过大的梯度信号,从而防止算法
坍塌至极端样本。经标签平滑处理的最优判别器从
原来的 D*=
变为 D*=
,
p
α
data
p
data
p
β+
model
p
+
model
p
data
p
+
model
p
data
然而,这带来了新问题:由于 pmodel 出现在分子中,
当 pdata 接近 0 而 pmodel 较大时,pmodel 所生成的样本
便不会趋向真实样本。因此,Salimans 等[24]提出单
边标签平滑,仅对真实样本的标签进行平滑,而生
成样本的标签始终设为 0。然而,Sønderby 等[38]认
为标签平滑在贝叶斯最优分类器不唯一时并不奏
效,进而提出在样本中而不是标签中加入噪声。加
入噪声后贝叶斯最优判别器是唯一的,由于训练分
布变宽,判别器不易过拟合,从而可对判别器进行
更多次训练。
Ioffe 等[67]提出的批归一化(BN, batch nor-
malization)每次取一批而不是单独一个数据进行归
一化,从而使数据变得更加集中,利用批归一化是
GAN 的常用训练技巧之一。例如,Springenberg 等[68]
在判别器的所有层以及生成器除最后一层外的所
有层中均采用了批归一化,使激活值产生边界,有
效防止了生成器的模式震荡并改善了判别器的泛
化性能;此外,批归一化在 DCGAN[28]中的使用明
显改善了网络的优化。然而,批归一化难免使网络
的输出高度依赖于与输入数据 x 位于同一批的其余
数据,那么,当批内数据过于相似时,对生成器的
输入进行批归一化会导致生成图片内出现强相关。
针对这个问题,Salimans 等[24]提出“参照批归一化”,
即取一批固定数据作为参照数据集,待处理的输入
数据依据参照数据集的均值和标准差进行批归一
化,而这种方法的缺陷在于归一化效果依赖于参照
数据集的选取。鉴于此,进一步提出“虚拟批归一
化”[24],在对输入数据进行归一化时,将输入数据
加入参照数据集中形成新的数据集——虚拟数据
集,对此数据集进行批归一化处理,能有效避免生
成数据与参照数据过于相似。由于虚拟批归一化需
对 2 批数据进行前馈计算,开销较大,故只在生成
器中使用。
4.3 模型评估
常见的生成式模型评价指标有平均对数似然、
核密度估计和生成样本的视觉保真度[37,52],这些方
法分别适用于不同的生成式模型,而对 GAN 目前
仍没有一个标准的定量评估指标。文献[22,43]通过
帕尔森窗口法对 GAN 进行评估,帕尔森窗口法是
一种非参数的密度函数估计方法,既不需利用样本
分布的先验知识,也不需对样本分布作任何假设,
是一种从样本出发研究数据分布的方法。然而当数
据的维度很高时,即便大量的样本也不能保证通过
帕尔森窗口估计可逼近模型的真实分布,样本维数
越高,采用帕尔森窗口估计的效果越差。文献[45]
提出了人工检视,通过 AMT(amazon mechanical
turk)平台让人类标注者判断所见图片是真实样本
还是生成样本。这种情况下,标注者充当着判别器
的角色,而生成器是经过训练的 GAN,当标注者获
得反馈信息时,判别的准确性会极大地提高。
人工检视的问题在于成本高昂和主观性强,为
降低人工检视所需的实验成本,Salimans 等[24]提出
一种与人工检视高度相关的替代方法将人工检视
过程自动化,由于该评价方式是基于 Inception 模型[69]
的,因而取名为 Inception 得分。基于 Inception 得
分的强分类器能以较高置信度生成优质样本,然而
仅当样本足够多时,Inception 得分才能有效评价生
成样本的多样性。Che 等[55]进一步指出,假设一个
生成器能生成很好的样本而这些样本都是同一种
模式的,这种情况下,尽管生成器发生了模式坍塌,
但它依然能够获得很高的 Inception 得分。因此,对
于有标签的数据集,Che 等[55]提出一种“MODE 得
分”来同时评价视觉保真度和样本多样性。
文献[28]提出基于分类性能对模型进行评估,
这种方法最突出的问题是评估结果高度依赖于分
类器的选择。例如,文献[28]中采用最近邻分类器,
而欧氏距离对图像来说并不是一种很好的相似性
度量。Im 等[59]提出一种针对 GAN 的评估方法 GAM
(generative adversarial metric),令 2 组 GAN 互相
2018032-7
·142·
通 信 学 报
第 39 卷
竞争、互为评委。尽管 GAM 是一个有效的评估标
准,但是 GAM 要求相互比较的判别器在留存测试
数据集的误差率不相上下,然而,对于进行并行对
抗训练的模型,其判别器的泛化性会有明显提升,
致使并行训练与非并行训练的模型之间错误率差
别较大,从而无法使用 GAM 对模型进行评估,鉴
于此,Im 等[59]进一步提出了 GAM Ⅱ,去除 GAM
的上述限制,仅度量这些判别器的平均(或者最差)
错误率。
5 GAN 的应用
GAN 作为一种生成式模型,最直接的应用就是
数据生成,即对真实数据进行建模并生成与真实数
据分布一致的数据样本[14],如图像、视频、语音、
自然语言文本等。此外,GAN 还可用于机器学习中
的半监督学习。本节将从计算机视觉、语言与语音、
半监督学习以及其他领域对GAN 的应用进行介绍。
5.1 计算机视觉领域
目前,GAN 应用最成功的领域是计算机视觉,
包括图像和视频生成,如图像翻译[30,60,70~72]、图像
超分辨率[26]、图像修复[73]、图像上色[74]、人脸图像
编辑[75~80]以及视频生成[31,32]等。
文献[60,70,72]将 GAN 应用于图像翻译,例如,
根据轮廓图像生成照片、根据白天图像生成对应夜景
等,如图 4 所示[70]。Zhu 等[71]进一步将图像翻译拓展
使多模态图像翻译,大大增加了生成图像的多样性,
如图 5 所示。除了从二维图像到二维图像的翻译外,
Gadelha 等[30]提出的 PrGAN 能够以一种完全无监督
的训练方式将给定的一系列甚至是一张 2D 图像翻译
为该物体的 3D 体素形状和深度信息。
Ledig 等[26]提出一个用于超分辨率的生成式对抗
网络 SRGAN,该模型的目标函数由对抗损失函数和内
容损失函数共同构成,其中,对抗损失函数通过训练
判别器区分真实图片和由生成器进行超分辨重构的图
片,从而能够学习自然图片的流形结构,通过峰值信
噪比和结构相似性等指标对重建图像进行评估,结果
表明 SRGAN 的效果比现有最先进的采用深度残差网
络优化均方差更接近高分辨率原图。Pathak 等[73]将
cGAN[43]应用到图像修复,以图像缺失部分的周边像素
为条件训练生成式模型,生成完整的修复图像,利用对
抗思想训练判别器对真实样本和修复样本进行判断,经
对抗训练后,生成器所生成的修复图像与遮挡区块周边
是连贯的,而且是符合语义的,如图 6 所示[73]。人脸
图像去遮挡是图像复原的延伸应用,Zhao 等[81]训练判
别器区分真实无遮挡人脸图像和基于有遮挡图像而复
原的人脸图像,能有效移除人脸图像中的遮挡物并用
于人脸识别。文献[75~80]将 GAN 应用于人脸图片编
辑。GAN 除了能够生成高质量的自然图像(例如手写
字体[22]、卧室[28,82]、人眼[83]和人脸[84]等)外,还能生
成抽象的艺术作品[85]。
(a) 根据轮廓图像生成照片 (b) 根据白天图像生成对应夜景
图 4 图像翻译
(a) 输入 (b) 多模态输出
图 5 多模态图像翻译
2018032-8