生成对抗网络理论模型和应用综述

       深度学习包括监督学习、非监督学习和半监督学习

      生成对抗网络GANs已经成为非监督学习中重要的方法之一,其相对于自动编码器和自回归模型等非监督学习方法具有能充分拟合数据、速度较快、生成样本更锐利等优点。

       原始GANs模型通过MinMax最优化进行模型训练;条件生成对抗网络CGAN为了防止训练崩塌将前置条件加入输入数据;深层卷积生成对抗网络DCGAN 提出了能稳定训练的网络结构,更易于工程实现;InfoGAN 通过隐变量控制语义变化;EBGAN从能量模型角度给出了解释;ImprovedGAN 提出了使模型训练稳定的五条经验;WGAN定义了明确的损失函数,对G&D的距离给出了数学定义,较好地解决了训练坍塌问题。
       GANs模型在图片生成、图像修补、图片去噪、图片超分辨、草稿图复原、图片上色、视频预测、文字生成图片、自然语言处理和水下图像实时色彩校正等各个方面获得了广泛的应用。

1 .人工智能、机器学习、深度学习和GANs 网络的概念以及之间的关系

       人工智能(artificial intelligence,AI )亦称机器智能,是指由人工制造出来的系统所表现出来的智能。从泛化的角度看系统包括一切能模拟人的智能的程序和机器。

       机器学习(machine learning)是人工智能的一个分支,研究如何在经验学习中改善具体算法的性能。机器学习有多种分类标准,可以基于学习形式、学习策略、知识的表示形式、应用领域等多种分类方法分类。机器学习按照采用的技术不同可以分为:决策树、支撑向量机、最近邻法、径向基函数核、蒙特卡罗方法、变分法、随机森林和神经网络等。神经网络的层数扩展到三层或者三层以上,即为深度学习

      深度学习作为机器学习领域新的研究方法,其突破主要来自于三个方面的进步:GPU 芯片处理性能的巨大提升、数据爆炸性增长和机器学习与信号处理研究的进步。

生成对抗网络理论模型和应用综述_第1张图片

2 GANs 网络模型 

       生成模型通过观测数据学习样本与标签的联合概率分布P(X ,Y)进行训练,训练好的模型能够生成符合样本分布的新数据,它可以用于有监督学习和无监督学习。特别在无监督深度学习方面生成式模型占据重要位置,它可以在没有目标类标签信息的情况下捕捉数据的高阶相关性,通过学习真实数据的本质特征,刻画出样本数据的分布特征,生成与训练样本相似的新数据。

2 . 1 生成式模型

      生成式模型主要有:自动编码器(autoencoder )自回归模型(autoregressive models )生成对抗网络(generative adversarial networks,GANs)、等。

      自动编码器,用于高维复杂数据处理,包括自动编码器和改进版可变自动编码器(VariationalAu⁃toencoder ,VAE )。前者容易过拟合,后者使学习目标尽可能满足某个预设的先验分布,在概率图形模型(probabilistic graphical models)的框架中对问题形式化,也就是在概率图形模型中,在数据的对数似然上最大化下限(lower bound)。

      自回归模型,比如像素递归神经网络(pixelre ⁃current neural network,PixelRNN )这样的自回归模型通过给定的之前的像素(左侧或上部)对每个单个像素的条件分布建模来训练网络,类似于将图像的像素插入char-rnn 中,但该RNN 在图像的水平和垂直方向上同时运行,而不只是字符的1D 序列。

       生成对抗网络启发自博弈论中的二人零和博弈,由Goodfellowetal开创性地提出,包含一个生成模型(generative model ,G)和一个判别模型(discrim ⁃inativemodel ,D)。 生成模型捕捉样本数据的分布,判别模型是一个二分类器,用于判别输入数据是否真实。这个模型的优化过程属于二元极小极大博弈问题(minimaxtwo-playergame)。 该模型训练时固定一方,更新另一方的参数,交替迭代,使得对方的错误最大化。最终,G 能估测出样本数据的分布。

2 . 2 GANs 模型相对于另外的生成模型的优缺点

       GANs相较于可变自动编码器 VAE优点:VAE 模型性能的好坏直接依赖于其假设的近似分布q 的好坏,对于q 的选择需要一定的经验信息;并且受变分方法本身的限制,其最终模拟出的概率分布一定会存在偏置,而GANs本身不存在这个问题,且其原则上可以渐进地逼近任意概率分布,可以认为是一种非参数的产生式建模方法,如果鉴别器训练良好,那么生成器可以完美地学习到训练样本的分布。GANs是渐进一致的,但是VAE 有偏差。

       GANs相较于像素递归神经网络PixelRNN 的优点:PixelRNN 将图像的生成问题转化为像素序列的预测和生成问题,因此需要对每个像素逐个操作,而GANs直接对整幅图像进行衡量、评价和生成,生成采样的运行时间更短,一次产生一个样本。因此,GANs相对来说考虑了整体信息且速度相对较快。

       GANs的优点还在于:GANs框架理论上可以训练任何生成网络,大多数其他框架需要生成器有一些特定的函数形式,比如输出层必须是高斯化的;GANs可以训练生成靠近真实数据的地方产生样本点的模型,其他框架需要生成器整个都是非零权值;GANs没有必要遵循任何种类的因子分解去设计模型,所有的生成器和鉴别器都可以正常工作。

       GANs的劣势:训练GANs需要达到纳什均衡,GANs其训练过程的稳定性和收敛性难以保证;GANs很难学习生成类似文本的离散数据;GANs一次产生所有像素,很难根据一个像素值去猜测另外一个像素值。

补充

       纳什均衡是指博弈中这样的局面,对于每个参与者来说,只要其他人不改变策略,他就无法改善自己的状况。纳什证明了在每个参与者都只有有限种策略选择并允许混合策略的前提下,纳什均衡定存在。以两家公司的价格大战为例,价格大战存在着两败俱伤的可能,在对方不改变价格的条件下既不能提价,否则会进一步丧失市场;也不能降价,因为会出现赔本甩卖。于是两家公司可以改变原先的利益格局,通过谈判寻求新的利益评估分摊方案。相互作用的经济主体假定其他主体所选择的战略为既定时,选择自己的最优战略的状态,也就是纳什均衡。

2 . 3 GANs 网络模型
2 . 3 . 1 GANs
       生成对抗网络GANs自2014年提出,获得了巨大的成功,先后提出了以下GANs网络模型:条件生成对抗网络(conditional generative adversarial nets,CGAN)、拉普拉斯金字塔对抗网络(laplacianpyra ⁃mid of adversarial networks ,LAPGAN )、深度卷积生成对抗网络(deep convolutional generative adversarial networks ,DCGAN)、回归神经对抗网络(recur⁃rent adversarial networks ,GRAN)、自动编码生成对抗网络(autoencoding beyond pixels using a learned similarity metric ,VAEGAN )、基于信息最大化的可解释的特征学习深层对抗网络(interpretable representation learning by information maximizing generative adversarial nets ,InfoGAN )、Wasserstein 生成对抗网络(WGAN)等。

       GANs模型启发自博弈论中的纳什均衡,基本框架包含一对模型:生成模型(G)和判别模型(D)。主要目的是由判别器D 辅助生成器G 产生出与真实数据分布一致的伪数据。模型的输入为随机高斯白噪声信号z ;该噪声信号经由生成器G 映射到某个新的数据空间,得到生成数据G(z);接下来,由判别器D 根据真实数据x 与生成数据G(z)的输入来分别输出一个概率值,表示D 判断输入是真实数据还是生成虚假数据的置信度,以此判断G 的产生数据的性能好坏;当最终D 不能区分真实数据x 和生成数据G(z)时,就认为生成器G 达到了最优。
 

补充

       所谓高斯白噪声(White Gaussian Noise)中的高斯是指概率分布是正态函数,而白噪声是指它的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。这是考查一个信号的两个不同方面的问题。

正态分布(Normal distribution),也称“常态分布”,又名高斯分布(Gaussian distribution)。

       D 的目标是区分两者,使D(x)尽量大而同时使D(G(z))尽量小,两者差异尽可能大;而G 的目标是使自己产生的数据在D 上的表现D(G(z))尽量与真实数据的表现D(x)一致,让D 不能区分生成数据与真实数据。因此,模块的优化过程是一个相互竞争
相互对抗的过程,G&D的性能在迭代过程中不断提高,直到最终D(G(z))与真实数据的表现D(x)一致,此时G 和D 都不能再进一步优化。

生成对抗网络理论模型和应用综述_第2张图片

       公式中目标函数与朴素minimax问题相比,主要有三个变化:(1)加入求对数操作:对数算子的变换可以缓解数据分布偏差问题,比如减少数据分布的单边效应的影响、减少数据分布形式上的波动等。(2)加入求期望的操作:通过拟合G(z)得到的分布与通过拟合x 得到的分布尽量一致,不同于要求各个G(z)本身和各个真实数据x 本身相同,这样才能保证G 产生出的数据既与真实数据有一定相似性;同时又不完全同于真实数据,提高了模型的泛
化能力。(3)- D(G(z))改成1- D(G(z))。

       GANs模型不要求预先设定数据分布,也就是说不需要公式化描述 p(x),而是直接进行采用,理论上可以完全逼近真实数据,这也是GANs最大的优势。GANs模型的不足在于生成网络的输入缺少约束,对于较大的图片、较多像素的情形,简单GANs的方式不太可控,经常出现训练崩塌的情形。在GANs中,每次学习参数的更新过程,被设为D 更新k 回,G 才更新 1 回,也是出于类似的考虑。

2 . 3 . 2 CGAN
       为了解决GANs模型生成网络的高斯白噪声输入没有限制导致模型训练崩塌,一个改进方法是给GANs设置约束。CGAN对于原始GAN 的改进是在D 和G 的建模中分别加入条件变量,这一方式被实验证明非常有效。给定草稿图生成图片的方法都来自于这个思路。
2 . 3 . 3 DCGAN

       DCGAN是GANs模型发展中的一个里程碑,将有监督学习中的CNN 和无监督学习中的GAN 结合到了一起,确定了一套训练稳固的结构,便于工程实现。该模型实现细节包括:预处理环节,将图像 scale到tanh 的[- 1,1];mini-batch训练,batchsize 设置为128,所有的参数初始化由(0,0.02)的正态分布中随机取得;LeakyReLU 的斜率是 0.2;不同于之前模型采用momentum来加速训练,DCGAN使用调好超参的Adam optimizer;learning rate= 0.0002;将momentum参数 beta 从0.9 降为 0.5 来防止震荡和不稳定。
       该模型的贡献有:(1)批量正则(batch_norm ,BN):对G 的输出层和D 的输入层不用BN,而其他层都用BN,缓解了模型崩溃问题,有效避免了模型的振荡和不稳定问题;(2)输出层(outputlayer )采用合适的激活函数,从之前的sgd+momentum 到adam;
(3)stridedconvolutionalnetworks 替代传统CNN 中的pooling 层,是网络自动学习合适的采样核函数;(4)提出了潜在空间(latentspace )概念,实现了语义的算术加减;(5)语义遮盖(semanticmask ),在隐空间上,设置变量控制显示或者消失物体;(6)辨别过滤器(discriminatorfilter)通过分析filter ,GANs确实学习到了LSUN数据库中的床、窗口等特征。

补充

1. Relu:
            数学表达式:a = max(0, z)
            函数图像为:

生成对抗网络理论模型和应用综述_第3张图片
                  
           优点:由上图可以看出,Relu得到的SGD的收敛速度较快
           缺点:训练的时候很容易‘die'了,对于小于0的值,这个神经元的梯度永远都会是0,在实际操错中,如果learning rate很大,很可能网络中较多的神经元都'dead'了,即使是较小的learning rate,这种情况也很有可能发生。
        为了解决以上的问题,提出了leakyRelu激活函数:
    2. leakyRelu
            数学表达式:y = max(0, x) + leak*min(0,x)  (leak是一个很小的常数,这样保留了一些负轴的值,使得负轴的信息不会全部丢失)
            leakyRelu的图像:

生成对抗网络理论模型和应用综述_第4张图片
                        
 3. 在tf中的实现:
        Relu在tf中有官方的实现,可以直接调用函数 tf.nn.relu( features, name= None )
        leakyRelu的简单实现可以这么写: tf.maximum(leak * x, x),
          比较高效的写法为:
生成对抗网络理论模型和应用综述_第5张图片

 2 . 3 . 4 InfoGAN
       原始GAN 模型输出为G(z),没有利用生成网络输入自由度noise z 。InfoGAN做出了改进,将输出改为G(z ,c),将原始模型中的z 拆解成两部分:可解释、有隐含意义的一组隐变量 c(c _1、c _2、…、c _L)和不能再分解出有价值意义的noise z 。具体来说,学习生成图像时,图像有许多可控的有含义的维度,在MNIST 中,c 可以是一个高斯分布的值来表示手写体笔划的粗细;人脸数据库中,c 可以是一个控制眼睛大小、微笑程度和头发长短等信息的变量;而剩下的不能或者不必要描述的便是z 。

       InfoGAN 通过拆解先验的方式,让GANs能学习到更加可控的数据表示。首先,infoGAN 中的c 对于GANs的训练确实有帮助,使得生成模型生成更符合真实数据的结果,也能控制c 的维度,使得info ⁃GAN 能控制生成的图片在某一个特定语义维度的变化。

2 . 3 . 5 EBGAN
       EBGAN(energy-basedgenerativeadversarialnet ⁃work )从能量模型的角度对GANs进行了扩展,给出了解读GANs的另外一种角度。EBGAN将判别器看做是一个能量函数,这个能量函数在真实数据域附近的区域能量值比较小,而在其他非真实数据域区域都拥有较高能量值。因此,EBGAN中给予GANs一种能量模型的解释,即生成器是以产生能量最小的样本为目的,而判别器则以对这些产生的样本赋予较高的能量为目的。从能量模型的角度来看待判别器的价值在于可以用更多更宽泛的结构和损失函数来训练GANs结构,比如文中就用自编码器(AE)作为判别器实现整体的GANs框架。

2 . 3 . 6 ImprovedGAN
       对抗网络的目的是在高维非凸的参数空间中,找到一个纳什均衡,但是GANs网络使用梯度下降的方法只会找到低的损失,不能找到真正的纳什均衡。ImprovedGAN给出了5 条有助于GANs稳定训练、提高网络的收敛的经验:
(1)特征匹配(featurematching ):让生成器产生的样本与真实样本在判别器中间层的响应一致,即使判别器从真实数据和生成数据中提取的特征一致,而不是在判别器网络的最后一层才做判断,有助于提高模型的稳定性;
(2)最小批量判断(minibatchdiscrimination):在判别器中,不再每次对每一个生成数据与真实数据的差异性进行比较,而是一次比较一批生成数据与真实数据的差异性。这种做法提高了模型的鲁棒性;

补充

       鲁棒是Robust的音译,也就是健壮和强壮的意思。它是在异常和危险情况下系统生存的关键。比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性。所谓"鲁棒性",是指控制系统在一定(结构,大小)的参数摄动下,维持其它某些性能的特性。根据对性能的不同定义,可分为稳定鲁棒性和性能鲁棒性。以闭环系统的鲁棒性作为目标设计得到的固定控制器称为鲁棒控制器。

 (3)历史平均(historicalaveraging ):在生成器和判别器的目标函数中各加一个约束项,使得网络训练过程中,梯度不容易进入稳定的轨道,继续向均衡点更新;
(4)单边标签平滑(one-sidedlabelsmoothing):标签平滑将常规的0、1 取值的二值标签替换为如0.1,0.9 之类的平滑标签,增加网络的抗干扰能力。
单边平滑对于取值0 的标签保持不变;
(5)虚拟批量正则(virtual batch normalization ,VBN ):BN能够提高网络的收敛,但是导致layer 的输出和本次Batch内的其他输入相关,通过引入一个参考集合,每次将当前数据x 加入参考集合构建一个新的虚拟的批量数据,然后在此基础上进行归一化,以此缓解原始BN操作所引起的波动问题。

2 . 3 . 7 WGAN
       DCGAN虽然采用多层CNN 在工程上解决了训练坍塌问题,但是因为没有合适的拟合函数,训练过程中拟合的过程依旧震荡严重。WGAN理论贡献在于:(1)定义了可以明确计算的损失函数,彻底解决GAN 训练不稳定的问题,不再需要小心平衡生成器和判别器的训练,基本解决了模型崩塌(mode⁃collapse)问题,确保了生成样本的多样性。(2)使用Wasserstein 方法对G&D的距离给出了明确的数学定义。Wasserstein 距离也称为转移度量或者EM距离,它表示从一个分布转移成另一个分布所需的最小代价。

3 GANs 的应用

       GANs的最基本应用是生成一张可以欺骗生成网络的接近真实图片的虚假图片,后续根据生成网络的特点在其他多个方面获得了广泛的应用。
3 . 1 图片合成
       图片合成(image generating )是GANs网络的最基本应用场合。目前存在的问题有:合成图片的自然程度没有定量标准,只能主观判断生成图片的自然程度;生成图片的类型可以更泛化。
3 . 2 图像修补
      图像修补(imageinpainting )问题已经研究了一二十年,但是图片中间分割出1/ 9—1/ 4 面积进行修补问题,因为缺失的区域太大不能用局部非语义的
修补方法来实现,经典修补方法和纹理合成方法效果都很差。在计算机图像领域,填充大面
积缺失一般通过场景计算法(scenecompletion )在海量图像数据库中计算最近邻完成剪切—粘贴操作。但是,该方法只能填充移除整个对象的区域,对于任意区域,比如部分遮挡对象的变形区域效果不好。进一步说,之前的方法依赖于手工设计的距
离测度,比如用于近邻计算的gist 方法,效果不尽如人意。
       深度GANs模型(contextencoder)进行图片修补能根据缺失区域的周边区域进行语义层面的修补,比近邻法提供了更好的特征。ContextEncoder包括编码器Encoder和解码器Decoder两部分。En⁃coder类似AlexNet架构,输入图像尺寸227 × 227,后接五个卷积层和池化层,最后计算6 × 6 × 256 维特征。Decoder采用逐通道全连接层(channel-wise
fully-connectedlayer ),也就是一系列带有ReLU激活函数的上卷积层;采用重构损失(reconstruc⁃tionloss)和对抗损失(adversarialloss)的加权和作为

 

 3 . 3 超分辨
       图像增强,超分辨和在网络引起重大影响的去马赛克技术都有共同之处,都可以用GANs网络来完成。
       同一类别的图片,比如人脸图片从16× 16的低分辨率人脸图片增强到64× 64的高分辨率图片,已经可以使用GANs较好地实现,其思路是把16× 16低分辨率图片作为约束条件,生成最合理解释的真实图片。图1 是人脸图片超分辨的效果图,第一列是16× 16像素输入,第二列为32× 32的超分辨中间过程,第三列是64× 64的超分辨结果,第四列是真实原图。但是本文认为如此好的超分辨效果仅在小类别、规则分割的图片中适用,也就是说输入图片不是规整分割后的人脸图片,那么不可能有如此好的效果。

生成对抗网络理论模型和应用综述_第6张图片

 3 . 4 草稿图复原
       草稿图复原(sketch restored、sketch inversion)指的是输入绘制草图,生成现实彩色图片,其特例是人像复原。CNN 网络可以完成草稿图复原,GANs网络也可以完成同样目的。Imagetoimage模型给出了两类有对应关系的图片数据库的训练方法,找到数据库图片之间的关系,给出了一个通用的图片对图片互相转换的解决办法,例如卫星图和真实图的转换、街景图转换、草稿建筑物立面图和真实图转换、手提包轮廓图生成真实图片。

3 . 5 图片上色
       传统的图片上色方法没有利用海量数据,图片上色不能适用于各类型图片。
3 . 6 视频预测
       在处理静态图像生成任务的同时,GANs考虑时序信息就能扩展到视频处理领域。有的模型在生成器部分将动态前景部分和静态背景部分分开建模和生成,构建two-stream 的样本生成器,然后将产生的前景和背景进行组合,产生出视频;对于判别器,主要完成两个任
务:区分产生数据与真实数据,同时识别视频帧间行为,从而指导生成器产生数据。
3 . 7 文字生成图片
       图片生成文字也就是看图说话,这样的文献较多,而文字生成图片是一个反向的、更加具有挑战性的工作。有的模型实现了输入“粉色花瓣的花”,输出包含了这些要素的图像。该任务包含两个部分:一是利用自然语言处理来理解输入中的描述,二是生成网络输出一个准确、自然的图像对文字进行表达。该模型实现的任务相当于以文本描述为条件来产生图像,可作为原始的 conditionalGAN 模型的一种扩展和应用。该模型的实现方法是:文本进行编码后的特征与随机噪声信息串接输入产生器产生图像;而编码后的文本特征也同时作为监督信号输入判别器以构建目标函数。
3 . 8 自然语言处理
       虽然GANs在图像生成上取得了很好的成绩,但是并没有在自然语言处理(NLP)任务中取得让人惊喜的成果。其困难主要在于3点:(1)原始GANs主要应用在实数空间(连续型数据)上,在生成文本这个离散数据问题上不能工作;(2)在生成文本时,GANs对整个文本序列进行建模打分,对于部分生成的序列,难以判断其在之后生成整个序列时的分数;(3)生成文本大多采用RNN 模型,损失值会随着句子的长度成指数级累积。虽然GANs在自然语言处理NLP 上的研究目前没有达到领先水平,但是其在NLP 的应用方面也有许多研究进展。

3 . 9 水下图像实时色彩校正
WaterGAN实现了水下图像的实时色彩校正。该文的贡献有两点:一是采用GAN 网络生成海
量彩色图片对应的具有水下色散等特征的“类”水下虚拟图片;二是预测图片中对象的距离信息并给图片上色。

补充

奥坎姆剃刀律是一个定律,出自于英国,解释了事物发展的一个定律。

科学上普遍适用的所谓"节俭律"的简单说明。这条定律的意义,就在于说明,最可能的解释就是最好的解释,有时这条定律又被称为奥坎姆剃刀,是根据14世纪时一位英国哲学家兼神学家威廉·奥坎姆命名的。

你可能感兴趣的:(生成对抗网络理论模型和应用综述)