1、第七章深度生成对抗网络7.1基本原理7.2GAN网络设计7.3GAN的模型改进7.4GAN在图像中的应用DCGANof4517.1基本原理第七章深度生成对抗网络of4521历史发展生成对抗网络(GANs,generative adversarial networks)是由Ian Goodfellow等人在2014年的Generative Adversarial Networks一文中提出。Facebook的人工智能主管Yann Lecun对其的评价是:“机器学习在过去10年中最有趣的想法”。GANs的潜力巨大,因为它们可以学习模仿任何数据分布。也就是说,GANs经过学习后,可以创造出类似于我们
2、真实世界的一些东西,比如:图像、音乐、散文等等。从某种意义来说,它们是“机器人艺术家”,有些确实能够让人印象深刻。美国麻省理工科技评论评选的2018年“全球十大突破性技术”:给所有人的人工智能(云端 AI)、对抗性神经网络对抗性神经网络、人造胚胎、“基因占卜”、传感城市、巴别鱼耳塞、完美的网络隐私、材料的量子飞跃、实用型 3D 金属打印机、零碳排放天然气发电第七章深度生成对抗网络of4537.1基本原理2.基本原理 GAN使用神经网络来指导神经网络,思想非常奇特。仿佛两个武术初学者,从零基础开始,互相对决、相互讨论、共同进步,最后一同达到武学顶峰。这不仅是机器学习想达到的理想结果,也是人类想要
3、达到的最终结果。生成式对抗网络的核心思想是博弈论中的二元论和博弈。第七章深度生成对抗网络of4547.1基本原理2.基本原理 GAN结构:主要包括一个生成器G和一个判别器D。生成器 G是一个生成数据的网络,它接收一个随机的噪声z,并通过这个噪声生成数据G(z);判别器D是一个判别网络,用来判别输入数据是不是“真实的”。它的输入参数是生成器生成的数据或真实数据x,输出D(x)代表 x 为真实图片的概率,如果为1,就代表判别为真实的数据,而输出为 0,就代表判别为不真实的数据,即为假的数据。第七章深度生成对抗网络of4557.1基本原理2.基本原理 GAN就是通过生成网络G(Generator)和
4、判别网络D(Discriminator)不断博弈,进而使G学习到数据的分布。其学习过程就是生成器G 和判别器 D 的极大极小博弈的过程。判别器 D 是为了更准确地区分G(z)和 x,并且识别出生成数据和真实数据,把判别后的输出概率二分化,就是让判别器输出的真实数据D(x)的概率尽可能最大,而判别器输出的生成数据D(G(z)的概率尽可能最小。生成器 G 的作用就是使自己生成的数据尽 可能与真实数据一致,让判别器 D 无法区分。因此判别模型和生成模型的性能在它们互相竞 争、互相对抗的过程中不断提高,最理想的结果就是D(G(z)与真实数据的表现D(x)相同,此时G和D到最优。第七章深度生成对抗网络o
5、f4567.1基本原理2.基本原理2.基本原理 GAN就是通过生成网络G(Generator)和判别网络D(Discriminator)不断博弈,进而使G学习到数据的分布,如果用到图片生成上,则训练完成后,G可以从一段随机数中生成逼真的图像。Z 是随机输入的数据网络生成图像x真实图像第七章深度生成对抗网络of4577.1基本原理GAN训练过程中真实分布和生成分布的动态演化,对抗网络的训练过程实际上是生成数据的分布不断拟合真实数据的分布的过程。7.1基本原理7.2GAN网络设计第七章深度生成对抗网络7.3GAN的模型改进7.4GAN在图像中的应用DCGANof458第七章深度生成对抗网络of45
6、97.2GAN网络设计生成式对抗网络的创新性在当时引起了极大的轰动,到底什么是呢?生活中我们想要提高自己的某种能力,通常会选择什么方式呢?效率最高的方式也许是选择一个比你更加厉害的人进行对弈,通过和他对弈以提高自已能力。因为在对弈的过程中,你会思考和分析自己的缺陷以及如何改进才能在下一次击败对手。第七章深度生成对抗网络of4510GAN网络的训练是判别网络和生成网络的对抗和博弈过程生成网络:用于生成数据,根据输入给定噪声生成数据,生成让判别网络难以区分真伪的数据判别网络:用于判断数据是生成的还是真实的,而判别网络则尽可能能区分其输入数据的真伪性,训练过程:是将两个网络不断地做对抗,固定一个网络
7、的同时训练另外一个网络,重复这个过程,直到生成网络最终可以产生与真实样本相似数据甚至超越真实数据的质量。7.2GAN网络设计第七章深度生成对抗网络of45117.2GAN网络设计第七章深度生成对抗网络of45127.2GAN网络设计第七章深度生成对抗网络of45137.2GAN网络设计判别器D优化为优化判别器D时,应将生成器G固定。假设已经得到生成样本G(z),这时只需要优化真实样本D(x),就是希望真实样本经过判别器优化后得到的结果越大越好,真实样本预测的概率越接近1,证明优化结果越好。对于假样本,则是希望优化后输出的概率越小越好,即D(G(z)越小,越接近于0越好,为了统一为最大化,将第二
8、项中D(G(z)改为1-D(G(z)。第七章深度生成对抗网络of45147.2GAN网络设计生成网络G(x)训练:第七章深度生成对抗网络of45157.2GAN网络设计KL 散度及JS 散度的定义,有第七章深度生成对抗网络of45167.2GAN网络设计优化生成器G的目标函数为优化生成器G时,判别器D固定,与判别模型无关,所以式中只有生成样本,且希望生成的样本与真实的样本一致,即希望D(G(z)越大越好,接近于1,但是为了形式的统一性,将其变形为1-D(G(z),且希望它越小越好。将两个优化后的模型合并就变成生成式对抗网络的目标函数。那么博弈的最后期望结果是什么呢?在最理想的状态下,生成器G可
9、以生成足以“以假乱真”的图片G(z)。但对于判别器D来说,它难以判定生成器G生成的图片究竟是不是真实的,因此D(G(z)=0.5。此时,就得到了一个生成器的生G,并达到生成“乱真”图片的目的。7.2GAN网络设计第七章深度生成对抗网络of4517GAN网络训练流程:7.2GAN网络设计第七章深度生成对抗网络of4518生成式对抗网络-优点和缺点缺点:l产生了更好的样本(图像更锐利、清晰)l生成对抗式网络框架能训练任何一种生成器网络l不需要设计遵循任何种类的模型,任何生成器网络和任何鉴别器都会有用l无需反复采样l解决不收敛的问题。梯度下降只有在凸函数的情况下才能保证实现纳什均衡l无需预先建模,模
10、型过于自由不可控优点缺点7.3GAN的模型改进7.2GAN网络设计7.1基本原理第七章深度生成对抗网络7.4GAN在图像中的应用DCGANof45197.3GAN的模型改进第七章深度生成对抗网络of4520最初的GAN是以多层全连接网络为主体,由于其结构为全连接网络,因此参数量极大,调参难度也较大,导致训练难度也提高了,并且对较复杂的数据集来说,效果很不理想。许多学者提多了GAN的多种变体以弥补其存在的缺陷。7.3GAN的模型改进第七章深度生成对抗网络of45211.1.SGANSGAN半监督生成对抗网络(Semi-supervisedGAN,SGAN)。它可以将真实数据x和它的类别信息同时输
11、入到判别器中,所以判别模型最终不仅可以判别图像的来源,也可以判别图像的类别。在这种情况下,整个对抗网络判别器D有了更好的判别能力,同时加入了类别c之后,增强了生成器G图片的生成质量。7.3GAN的模型改进第七章深度生成对抗网络of45222.InfoGAN2.InfoGAN(InformationMaximizingGAN,InfoGAN)互信息生成对抗网络InfoGAN InfoGAN,是在GAN的基础上引入了一个潜在代码c,c可以包含多个变量。在对抗网络生成器中为了避免网络没有监督,所以使用了c,并在目标函数中加了一项来表示互信息的程度。在InfoGAN中,可以通过调整c来改变生成图片的属
12、性,例如调整数字的粗细和倾斜度。7.3GAN的模型改进第七章深度生成对抗网络of45233.3.CGAN(ConditionalGan,CGAN)针对GAN本身不可控的缺点,条件生成式对抗网络加入了监督信息,指导GAN网络。生成器G和判别器D都添加了条件变量c,其中c可以是类别信息,也可以是模态数据。将增添的信息c分别传送给生成器G和判别器D,从而组成CGAN。如果条件变量c是类别信息,那么就是把无监督的GAN模型改进成有监督的模型,即为条件生成式对抗网络,且CGAN的生成模型G中,新的输入是由pz(z)和c组成。7.3GAN的模型改进第七章深度生成对抗网络of4524 4.AC-GAN4.A
13、C-GAN (Auxiliary Classifier Auxiliary Classifier GANGAN,AC-GAN)AC-GAN)有辅助分类器的生成式对抗网络AC-GAN。相比于其他的生成式网络,其最大的特点在于,AC-GAN判别器不仅能判别真假,还可以将判别的信息进行分类。在实际训练中,最终的目标函数不仅有真实的数据来源的概率,还有正确的分类标签概率。AC-GAN可以将标注信息输入到生成器中,然后生成相应的图像标签,摒弃在判别器D中调节损失函数,让分类图片的正确率更高。7.3GAN的模型改进第七章深度生成对抗网络of4525AC-GAN的损失函数为式中,S是判别图片来源,C是判别图
14、片的类别标签。判别器D的损失函数是最大化的Ls+Lc,生成器G的损失函数是最大化的Ls-Lc,7.3GAN的模型改进第七章深度生成对抗网络of45265WGANWGAN(WassersteinGAN)从目标函数的角度改进模型,也就是从理论上解决了GAN在训练过程中存在梯度消失的问题,并没有改变生成网络和判别网络的结构,WGAN为后续更深层次的改进提供了思路。推导朴素GAN网络的训练过程可知:当判别网络最优时,其目标函数等价于优化真实分布和生成分布的JS(Jensen-Shannon)散度。朴素GAN存在梯度消失的训练问题是因为JS散度存在当两个分布互不重叠时,其值会趋向于一个常数的特性。此外,
15、朴素GAN调参困难并且训练容易失败的原因之一是当真实分布与生成分布是高维空间上的低维流形时,两者重叠部分的测度为0的概率为1。WGAN用Wasserstein-1距离(又称EarthMover距离)来替代JS散度。真实分布与生成分布的Wasserstein-1距离定义如下:7.3GAN的模型改进第七章深度生成对抗网络of4527其中,Pr,Pg分别表示真实分布和生成分布,表示Pr,Pg的联合分布。Wasserstein-1距离弥补了JS散度的缺陷:当互不重叠时,Pr,Pg仍然可以可以清楚地表示两个分布的距离,其对偶式定义如下:对偶式中的fw 表示判别网络,其与朴素GAN中的判别网络不同的是,W
16、GAN不需要判别网络的输出值限定在0,1之间,而是fw越大表示其越接近真实分布;反之,越接近生成分布。表示Lipschitz常数为1。7.3GAN的模型改进第七章深度生成对抗网络of4528生成网络的损失函数为:由于Lipschitz连续在判别网络上难以约束,为了更好地表达Lipschitz转化成权重剪枝,即参数,其中c为常数。因此WGAN判别网络的目标函数为:7.3GAN的模型改进第七章深度生成对抗网络of45297.3GAN的模型改进第七章深度生成对抗网络of45307.3GAN的模型改进第七章深度生成对抗网络of45316.LSGAN(Least Squares Generative A
17、dversarial Networks)WGAN和WGAN-GP已经基本解决了GAN难以训练的问题,但是其收敛速度都比GAN慢,因此Mao等人在WGAN的基础上提出了最小二乘GANLSGAN。LSGAN的基本想法是为判别网络提供平滑且非饱和梯度的损失函数,因此使用了GAN的对数损失函数,LSGAN的判别网络的损失函数定义如下:生成网络的目标函数如下:其中,a,b,c满足b-c=1;b-a=2。即LSGAN用散度取代了朴素GAN的JS散度,优点在于训练稳定并且提高了生成数据的质量和多样性,为后续的GAN变体提供了思路。7.3GAN的模型改进第七章深度生成对抗网络of4532a,b,c满足b-c=
18、1;b-a=2,如7.3GAN的模型改进第七章深度生成对抗网络of45332.LSGAN7.3GAN的模型改进7.4GAN在图像中的应用DCGAN7.2GAN网络设计7.1基本原理第七章深度生成对抗网络of45347.4 GAN在图像中的应用DCGAN第七章深度生成对抗网络of4535目前,GAN 已被用于创造听起来十分真实的语音,以及非常逼真的假图片。百度使用GAN构建语音识别框架科大讯飞通过GAN与传统深度学习框架的结合在语音合成领域获得了很大的进展阿里巴巴的城市大脑项目团队使用GAN来生成用以进行车牌识别的训练数据集。芯片公司英伟达的研究人员们用明星照片训练出了一个GAN系统,而这个系统
19、则生成了数百张根本不存在、但看起来十分真实的人脸照片。另外一个研究团队则生成了看起来十分逼真的梵高油画。7.4 GAN在图像中的应用DCGAN第七章深度生成对抗网络of4536生成式对抗网络-图像超分辨率7.4 GAN在图像中的应用DCGAN第七章深度生成对抗网络of4537生成式对抗网络-图像去雨7.4 GAN在图像中的应用DCGAN第七章深度生成对抗网络of4538生成图像的模型是图像理解的逆过程,因此设计了一种类似反卷积的结构:深度卷积对抗神经网络(DeppConvolutionalGAN,DCGAN),卷积层代替了全连接层并去掉了池化层.DCGAN生成网络结构1.生成网络(反卷积结构)
20、下面介绍DCGAN在图像分割中的应用。7.4 GAN在图像中的应用DCGAN第七章深度生成对抗网络of4539在用于图像分割的数据集中,需要对数据集进行预处理,通过人工对每张图进行前后景标注,这样的标注结果称为标签,将原始图像和标注后的图像成为一个样本对。人工标注图像和原图像称为正样本对,DCGAN生成图像与原图像称为负样本对。最后将数据集输入判别网络(D)完成进行判别。该网络的损失函数定义为:上式中的E表示数学期望。判别网络的训练过程是最大化准确率,即最小化损失函数的过程而生成器(G)训练的目的是最小化D的准确率。2.判别网络7.4 GAN在图像中的应用DCGAN第七章深度生成对抗网络of4
21、540图9-4DCGAN应用于图像分割7.4 GAN在图像中的应用DCGAN第七章深度生成对抗网络of4541优化D:优化G:7.4 GAN在图像中的应用DCGAN第七章深度生成对抗网络of45423.生成式对抗网络DCGAN的生成网络结构如下图所示,输入原始图形,通过不断地卷积,最终输出前后景分割图像DCGAN应用于图像分割的生成网络7.4 GAN在图像中的应用DCGAN第七章深度生成对抗网络of4543DCGAN应用月图像分割的判别网络判别网络结构如下图所示,输入原始图像和分割图像,通过不断地卷积,最终使用sigmod分类,判断正负样本对。7.4 GAN在图像中的应用DCGAN第七章深度生成对抗网络of4544目前,GAN在图像领域最擅长的是图像生成,其中有直接法、分层法、迭代法。直接法就是朴素GAN网络结构,一个生成器和一个判别器,其结构是直接的、没有分支,DCGAN就是其中最经典之一。与直接法相反,分层法使用了两个生成器和两个鉴别器,SS-GAN是其中一种。迭代法又不同于分层法,迭代法可以实现生成网络之间的权重共享,LAPGAN是其中一种。未来,将GAN网络应用于其他领域是主要研究方向。第七章深度生成对抗网络of4545