生成对抗网络理论框架、衍生模型与应用最新进展

2019-01-24 08:26赵增顺高寒旭滕升华常发亮DapengOliverWu
小型微型计算机系统 2018年12期
关键词:卷积损失函数

赵增顺,高寒旭,孙 骞,滕升华,常发亮,Dapeng Oliver Wu

1(山东科技大学 电子通信与物理学院,山东 青岛 266590)2(山东大学 控制科学与工程学院,济南 250061)3(佛罗里达大学 电子与计算机工程系,美国 佛罗里达州 盖恩斯维尔 32611)

1 引 言

近年来,深度学习技术在计算机视觉[1,2]、自然语言处理[3,4]和语音识别[5]等领域得到了广泛应用.深度网络使用大规模数据集进行训练,在图像语义理解和内容生成方面明显优于先前的方法.但深度网络模型多为有监督训练,模型依赖于大量的标注数据和长时间的训练.以此为背景,Goodfellow等人提出的生成对抗网络(Generative Adversarial Networks,GAN)[6]不需要假设分布便可以从潜在空间中推断出真实样本,Yann Lecun将其称为“过去十年机器学习界最酷的想法”.GAN作为一种学习生成模型的新方法,在各种具有挑战性的任务中表现优异,如逼真图像生成[7,8]、视频帧生成[9,10]、艺术风格迁移[11,12]等.

本文主要介绍基于生成对抗网络的图像领域的应用.首先对生成对抗网络的基本模型及其衍生模型作了简要介绍;简要介绍了其训练方法;重点介绍了生成对抗网络的具体应用.

2 生成对抗网络模型

2.1 基本模型理论

GANs由Goodfellow等人[6]在2014年提出,其来源于博弈论中的二人零和博弈,包含一个生成模型和一个判别模型.给定随机噪声变量z服从先验分布pz(z)(如高斯分布),生成模型G通过这个噪声生成样本,记作G(z).将真实样本x和生成样本G(z)分别输入判别模型D,判别模型输出表示置信度的概率值,用于判断真假使用,概率值大于0.5则判断为真,概率值小于0.5则判断为假.当D最后无法区别出真实数据x和生成数据G(z)时则停止训练,此时达到生成器与判别器之间判定误差的平衡.

GAN的目标函数如下所示,整个优化过程可以视为一个最大-最小化问题.

其中,pdata(x)是真实数据,pz(x)是生成数据.当训练判别器D时,希望真实数据的判别值越大越好;同时希望对生成数据的判别值logD(x)越小越好,所以log(1-D(G(z)))也是越大越好.训练中使用梯度上升,使价值函数的值越来越高.同理,当训练生成器G时,希望价值函数的值越小越好,即使用梯度下降来训练生成器的参数.其结构如图1所示.

图1 GANs的结构[13]Fig.1 Structure of GANs[13]

2.2 GAN模型变体

与其他生成式模型[14,15]相比较,生成对抗网络可以比其他模型产生更好的样本(图像更锐利、清晰).与PixelRNN[14]相比,GAN生成一个样本的运行时间更短.与VAE(Variational AutoEncoders)[15]相比,GAN在理论上可以渐进地逼近任意概率分布,克服了VAE最终模拟的结果必然存在偏置的问题.但是GAN依然存在不收敛、模型过于自由不可控和崩溃问题.鉴于此,对GAN提出了一些改进[16-25].

2.2.1 cGANs

区别于其他生成式模型,GAN的生成器使用一种分布直接进行采样而无需预先建模,从而真正实现理论上完全拟合真实数据分布,这是GAN最大的优点.然而简单GAN的方法对尺寸较大的图像无法进行有效控制,为了稳定GAN,自然想到给GAN增加条件约束,于是便产生了Conditional Generative Adversarial Nets(CGAN)[16].cGANs的结构如图2所示.在生成模型(G)和判别模型(D)的建模中均引入条件变量y,使用额外信息y对模型增加条件,可以指导数据生成过程.这些条件变量y可以基于多种信息,例如类别标签,用于图像修复的部分数据,来自不同模态的数据.如果条件变量y是类别标签,可以视为CGAN将无监督的GAN变成有监督模型的一种改进.经过证明,这个改进是十分有效的,并在后续的相关工作[17,25,31]中得到了广泛的应用.Mehdi Mirz等[16]的工作是在MNIST数据集上以类别标签为条件变量,生成指定类别的图像.

图2 cGANs的结构[13]Fig.2 Structure of cGANs[13]

2.2.2 卷积GANs

卷积神经网络在有监督学习的各项任务中大放异彩,但在无监督学习领域应用却较少.LAPGAN(Laplacian Generative Adversarial Networks)[17]是建立在GAN和cGAN基础上的成功尝试,由具有K层的拉普拉斯金字塔框架的卷积GAN级联构成.拉普拉斯金字塔顶端用来训练普通的GAN,生成器输入只有噪声.而后像素更高的图像用来训练cGAN,输入不仅有噪声,还有同级高斯金字塔的图像经过上采样后得到的图像.正是由这种粗糙到精细的方式,使得LAPGAN能够产生更高分辨率的图像.

另外,Radford等人[18]将有监督学习中的CNN与无监督学习中的GAN结合到了一起,提出了一种称为DCGAN(Deep convolutional GAN)的网络结构.该网络由四个卷积层作为鉴别器,其实质就是一个没有pooling的全卷积网络.DCGAN能有效地学习物体的特征,且在训练过程中表现更加稳定.

2.2.3 WGAN

与DCGAN[18]不同,WGAN[19]从损失函数的角度对GAN做出了改进,损失函数改进置换即使在全连接层上也能得到很好的结果.WGAN理论上给出了GAN训练不稳定的原因,即交叉熵(Jensen-Shannon divergence)不适合衡量不相交部分的分布的距离,转而使用Wassertein距离去衡量生成数据分布和真实数据分布的距离,解决了训练不稳定和模式崩溃的问题.实际上,WGAN没能完全解决GAN训练稳定性问题, WGAN中采用Lipschitz限制的方法需要把判别器参数绝对值截断到不超过固定常数c.对此Gulrajani提出了WGAN-GP[20],更换了梯度惩罚,判别器能学到合理的参数取值,解决了WGAN收敛缓慢的问题.

2.2.4 其他模型

Chen等[21]将信息理论与GAN相结合提出了InfoGAN模型.该模型将噪声z的具体维数与数据的语义特征相关联推导出可解释的特征,实现了对噪声z的高效利用.Improved GAN[22]提出了对于GANs新的结构和训练过程:特征匹配;最小批量判断;历史平均;单边标签平滑;虚拟批量归一化.Yu等[23]将GAN与RNN(Recurrent Neural Network)结合提出了SeqGAN,解决了GAN的输出为连续实数分布而无法产生离散空间的分布的问题.Mao等[24]提出了LSGAN(Least Squares Generative Adversarial Networks),其使用最小二乘损失函数代替GAN的损失函数,缓解了GAN训练不稳定和生成图像质量差及多样性不足的问题.ACGAN[25]和Improved GAN[22]利用标签信息,可生成更高质量的图片,稳定性良好.更进一步地,Zhou等[26]以ACGAN和Imporved GAN为基准提出了AMGAN( Activation Maximization Generative Adversarial Network),AMGAN可看做是Improved GAN和辅助分类器的组合.作者提出的AM评分可用于样本质量度量,并证明Inception Score可用于多样性度量.AMGAN优于其他模型[20,23,25],并在Cifar-10获得了最高的评分(8.91).训练模型时利用标签信息,表1给出了各种模型的从属类别.

表1 各网络模型类别Table 1 Category of each network model

3 训练方法

3.1 随机梯度下降

考虑到进行优化的函数:

其中,参数w用于估计Q(w)的最小值,Qi为数据集的第i个观测值.

与标准的梯度下降算法在整个训练集上更新目标函数的参数不同,随机梯度下降(Stochastic gradient descent,SGD)仅使用单样本来更新和计算参数的梯度,因此我们可以频繁地更新权重,使其快速收敛.

w:=w-η▽Qi(w)

其中η是学习率,▽Qi(wt)是Qi相对于w的梯度.SGD通常用于小批量,一般包含少量数据点.在实践中通常采用动量法,以加速SGD收敛.SGD算法的其他扩展如Adagrad,Adadelta和Adam都可以很好地训练深度网络.

3.2 反向传播

4 应 用

4.1 图像合成

生成对抗网络在图像处理方面最广泛的应用之一就是图像合成:Reed等[7]首次提出利用GAN实现文字描述合成图像,它以DCGAN[18]作为基础模型,实现了输入“粉色花瓣的花”,输出包含这些要素的图像;Behnza[8]的研究能够学习语义上有意义的面部表征,并在二元交互中生成适当的面部表情.

4.1.1 图像补全

图像补全旨在合成图像总缺失或损坏的部分.Pathak等[27]首次提出将GAN应用于图像补全,提出深度GANs模型(Context Encoder).该模型结合Encoder-Decoder网络和GAN,以完全无监督的方式进行训练,Encoder-Decoder部分用于学习图像特征和生成图像待修补区域对应的预测图,GAN部分用于判断生成图像来自训练集或预测集的可能性,当生成的预测图与ground truth在图像内容上达到一致,并且GAN的判别器无法判断预测图是否来自训练集或预测集时,则模型参数达到最佳值.但是此模型存在的弊端是其全连接层不能保存精确的空间信息.对此,Li等[28]提出上下文感知语义修补方法CASI,将图像上下文输入全卷积生成网络,图像缺失区域使用掩码操作进行填充,然后通过合成操作将其放置在图像上下文中.

与文献[27]方法类似,Yeh[29]使用DCGAN[18]实现图像补全,并使用Adam进行优化,能成功预测缺失区域的信息,还原度较高.Yang[30]提出了一种基于图像内容和纹理约束的图像合成方法,可以通过建模全局内容约束和卷积神经网络的局部纹理约束来合成缺失的图像区域.缺点是迭代速度慢.

4.1.2 图像风格转换

人眼能够很有效地的辨别出不同画家不同流派绘画风格这种很抽象的东西,而多层网络的实质其实就是找出更复杂、更内在的特性.图像风格转换同样分为有监督和无监督的方式.

想要将草图生成理想图像,需要添加细节信息(颜色、纹理等).Isola等[31]对cGAN作出了改进:在目标函数中加入了L1约束项(用于约束生成图片和原始图片偏差不至于太大);生成器中用U-net结构代替ecoder-decoder;鉴别器使用PatchGAN[32]的判别方式(在图像的每个N×N块上去判断是否为真).但是,基于cGAN[16]提出的模型必须要求成对数据(paired data),Zhu等[33]提出了一个不成对(unparied data)的图像到图像转换模型—CycleGAN,解决了模型需要成对数据进行训练的难题.该模型架构基于[34],由两个生成器和两个判别器构成,其中生成器包括编码器、转换器和解码器,鉴别器属于卷积网络,需要从图像中提取特征.在具体实现时,采用生成质量更高的LSGAN[24]替换原始GAN使训练过程更加稳定,对Dx,Dy进行滞后更新避免模式震荡.然而,CycleGAN对非成对图片集的成功转换集中在色彩和贴图转换上,诸如几何形态上的上的转换(如猫→狗)大多没有成功.Perera等[12]将无监督图像到图像的转换问题扩展到多个输入设置,将来自多个模态的配对图像作为输入并转换到指定域.Xian等[11]提出可以由草图生成理想图像的TextureGAN,用户将示例纹理“拖”到场景中的草图,系统即可自动填充该目标区域的纹理.TextureGAN使用的是文献[35]的网络架构,但其重新定义了特征损失和对抗损失,并引入新的损失(风格损失、像素损失、颜色损失)来改善纹理细节.

4.1.3 3D图像生成

生成对抗网络可用于3D图像的生成,受文献[18]的启发,Wu等[36]结合对抗网络和传统的体积卷积网络提出了3D-GAN模型.3D-GAN在3D数据上进行训练,其生成器包含5个体积全卷积层,它从概率潜在空间随机采样生成对象,鉴别器判断输入对象的真伪.Gadelha等[37]提出的投影生成对抗网络(PrGANs)可以从2D图形集合中学习3D形状的概率分布,此模型包括3D形状生成器,视点生成器,投影模块和鉴别器.其中,判别器仅显示2D图像,投影模块捕获3D表示,并在传递给判别器之前将其转换为2D图像.不断迭代训练周期,生成器通过改进生成的3D体素形状完善投影效果.

4.2 图像分类

早期GAN模型主要应用于无监督学习,而将GAN应用到分类问题时,需要对网络做改动,Improved GANs[22]属于半监督分类方法.Luc等[38]训练了一个CNN语义分割网络(用于对单幅图像进行基于像素的分类)和一个对抗网络(用于区分标签图和预测出来的概率图)实现对图像内容的分类,具体操作是先将分割网络的两种训练图片输入对抗网络中,再用sigmoid函数进行二分类,文中提出的混合损失函数,就是将交叉熵损失和GAN的损失结合起来.文献[38]属于有监督分类方法.

4.3 图像超分辨率

超分辨率是从观测到的低分辨率图像重建出相应的高分辨率图像,训练后的模型可以生成照片般逼真的细节.但生成对抗网络生成的图片质量不是很好,Ledig等[39]针对这一问题作出优化,用参数化的残差网络表示生成器,用VGG分类网络作为判别器.此外,作者提出了一个全新的损失函数,该损失函数包括两部分:对抗损失(adversarial loss)与内容损失(content loss).其中,内容损失可被看作为重建的高分辨率图像和原始高分辨率图像之间特征图(feature map)的欧式距离(Euclidean distance)损失.由于这一全新损失函数使用,生成对抗网络能够恢复降采样后的图像的生动纹理和小颗粒细节,使超分效果更接近人的视觉感受.然而,VGG网络无法捕捉超分辨率任务中所需的高频细节,对此,Wu等[40]提出一个新的框架—SRPGAN.首先使用双三次插值对低分辨率图像进行缩放,经过生成器的编码与解码后,生成高分辨率图像.将真实图像和生成图像分别输入鉴别器并提取特征,得到对抗损失和感知损失,最后将两种损失函数与内容损失结合,从而得出D和G的总目标函数.从实验结果可以看出,SRPGAN[40]在细节恢复方面超越了SRGAN[39].

4.4 其他应用

4.4.1 医学图像

Dong Nie等[41]首次将GAN框架应用于合成医学图像领域,提出通过三维全卷积神经网络(3D FCN)学习从MR(magnetic resonance)图像到CT(Computed Tomography)图像的非线性映射,并将3D FCN作为GAN中的生成器.为生成更加逼真的CT图像,除传统的重建误差损失之外又增加了一个对抗性损失项.此外,作者采用Auto-Context Model(ACM),为使ACM具有上下文感知能力,其每个阶段都使用GAN架构进行训练.结果表明,3D GAN模型显著优于当前三种先进的模型(Atlas,SR,SRF+),不仅如此,此模型还可以应用于诸如超分辨率、图像去噪等涉及医学图像分析生成的其他任务中.

GANCS[42]是一种新型的CS(compressed sensing)框架,它采用LSGAN[24]学习纹理细节,并使用l1逐像素损失来控制高频噪声.GANCS结合了生成对抗网络的优势,用于MRI(Magnetic Resonance Imaging)重建有良好的效果.SegAN[43]是一种新型端到端对抗神经网络,旨在分割医学图像.SegAN使用全卷积神经网络作为分割器来生成预测的分割图像,并提出具有多尺度L1损失函数的对抗批评网络,对抗批评网络最大限度地挖掘生成的分割图像和ground truth之间的特征差异,使分割器能够准确地学习ground truth分割对抗的特征.

4.4.2 图像安全

图像隐写术可以保证图像的安全,Denis等[44]提出将DCGAN[18]模型应用于图像隐写问题.此文考虑的是从文本到图像的嵌入,并引入了隐写生成对抗网络模型SGAN.SGAN包含三部分:生成器网络G、鉴别器网络D和隐写分析网络S(steganalyser,确定图像是否包隐藏的秘密消息),但它仅适于使用相同的密钥嵌入.与现有采用DCGAN的工作不同,Shi等人基于WGAN[19]提出了SSGAN[45],它解决了文献[44]存在的问题,更适合随机密钥嵌入.另外,此模型生成的图像更加高质.

传统的隐写术会使原图像发生改变,为克服这一弊端,Liu等[46]提出了基于ACGAN[25]无覆盖信息隐藏方法.首先构建代码字典进行文本信息K到类别标签C的映射,然后生成加密图像以实现信息的隐藏,最后由鉴别器提取加密信息.实验表明此方法能够有效抵抗现有隐写分析算法的检测,并且其隐藏通信具有良好的可靠性和安全性.但由此产生的图像不够清晰,仍需进一步的改进,下一步可以考虑使用更复杂的Wasserstein GAN[19]构建更逼真的图像.

4.4.3 视频预测

视频预测是指对于给出的静态图片或者一段连续视频帧Z1,Z2,…,Zn,可以预测随后的视频帧Zn+1,Zn+2,…,Zn+t(t为需要预测的帧的数量).Mathieu等[47]将生成对抗网络扩展到视频处理领域,采用对抗网络进行视频帧预测,拟解决使用l1或l2损失函数造成的图像模糊问题,使预测的图像更加锐利.此外,文中将生成器的损失函数定义为对抗损失、l2损失与图像梯度差分损失的加权和.Vondrick和Torralba[10]提出了一个通过变换现有帧中像素来生成未来帧的模型.文献[9]在DCGAN的基础上提出“two streams”架构[48]视频预测模型,双流指的是静止的背景流和移动的前景流,它们之间相互独立,其中,单流架构由时空卷积和反卷积组成,双流架构可以对静态背景和动态前景建模.该模型中生成网络输入的是低维的潜在编码向量,输出高维视频,判别网络的任务是判别生成场景和真实场景,同时识别视频帧间的运动.作者从Flickr下载超过200万条视频进行模型的训练,激活函数采用ReLU,模型训练完成后,可以从单副图像上直接预测32帧(64×64分辨率)图像,经测试,其中有20%的人认为这些生成的视频是真实的.

5 结束语

GANs作为无监督生成模型一个强大的算法框架,已经在计算机视觉领域得到了广泛应用.相比于传统的生成式网络模型,GANs可以从潜在空间和数据之间的映射和逆映射中学习高度非线性的映射,克服了需要依赖真实数据的缺点,由此生成模型能够生成合理的图像.凭借深度神经网络的强大功能,改进GAN并将GAN应用于各种领域仍有巨大的机会.

猜你喜欢
卷积损失函数
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
函数备考精讲
两败俱伤
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
关于函数的一些补充知识
高中数学中二次函数应用举隅オ
菜烧好了应该尽量马上吃
损失