本文主要是介绍生成式对抗网络(GAN)综述——粗浅入门,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
2017年十月份时做了关于GAN综述的PPT汇报(http://download.csdn.net/download/sir_chai/10104778),并上传了PPT及相关参考资料,这篇博文主要是对PPT进行解读。
第一页
今天我要给大家介绍的是GAN(GenerativeAdversarial Networks)生成式对抗网络的研究进展与展望,GAN是一个比较新的生成模型方法,在2014年由Hinton的博士生lan Goodfellow提出,随后关于GAN的改进型在学术界研究的如火如荼,到目前为止仍有很大的发展空间,所以如果对GAN感兴趣的话可以随后深入探索,当然,对于初学者,小柴小有告诫:做我们感兴趣的事,才能如痴如醉,乐此不疲,并且打定只做这一件事,才能把事情做好,贪多只会心力交瘁,一事无成。共勉之。下面以一个小故事进入正题:就是说,男朋友在给女朋友照相,照好后拿给女朋友看,女票说,不行不行,角度不好,显得脸多大啊。于是,男朋友寻找合适角度重新照,照好后又拿给女票看,女票说,不行不行,采光不好,都成黑脸包公了。于是,男朋友继续改进。。。寻找合适位置充分采光,照好后又拿给女票看,女票喜上眉梢,笑着说,这次可以了。这个小故事虽然简单,但却形象的展现了生成式对抗网络的思想,请大家记住这个故事,后续详细介绍将会进行印证。
第二页
1、GAN的提出背景。2、基本核心理论。3、实现模型和应用领域。4、结论。5、思考与展望
这是本文将要介绍的章节目录,在第3章的实现模型和应用领域里,我会重点介绍一下GAN在图像生成、P图软件、聊天机器人等软件方面的应用。
第三页
1、GAN的提出背景
(1)人工智能的热潮
随着计算能力的提高和各行业数据量的剧增 , 人工智能取得了快速发展。学术界普遍认为人工智能分为两个阶段 :感知阶段和认知阶段。在认知阶段 , 机器能够对世界的本质有一定的理解 , , 理解无论对人类还是人工智能都是内在的表现 , 无法直接测量 , 只能间接从其他方面推测 . 如何衡量人工智能的理解程度?著名学者 Feynman 有句名言 “What I cannot create, I do not understand. ( 不可造者 , 未能知也 .)”。 而 GAN 作为典型的生成式模型 , 其生成器具有生成数据样本的能力 . 这种能力在一定程度上反映了它对事物的理解 . 因此 ,GAN 有望加深人工智能的理解层面的研究。
(2)生成模型的积累
生成式模型不仅在人工智能领域占有重要地位 ,生成方法本身也具有很大的研究价值 .GAN 提出之前 , 生成式模型已经有一定研究积累,模型训练过程和生成数据过程中的目标函数难解、计算复杂度较高、效率较低等局限无疑是生成式模型的障碍。
(3)神经网络的深化
随着深度学习技术在各个领域取得巨大成功 , 神经网络研究再度崛起 . 神经网络作为深度学习的模型结构 , 得益于计算能力的提升和数据量的增大 , 一定程度上解决了自身参数多、训练难的问题 , 被广泛应用于解决各类问题中 。而GAN的生成器和判别器均为神经网络。
(4)对抗思想的成功
从机器学习到人工智能 , 对抗思想被成功引入若干领域并发挥作用 . 博弈、竞争中均包含着对抗的思想。
第四页
2、GAN的基本核心理论
Fig.1 生成式对抗网络的计算流程和一般结构
一个GAN主要包含两个独立的神经网络:生成器(Generator)和判别器(Discriminator)。生成器的任务是,从一个随机均匀分布里采样一个噪声z,然后输出合成数据G(z);判别器获得一个真实数据x或者合成数据G(z)作为输入,输出这个样本为“真”的概率。 在训练的过程中,生成器努力地欺骗判别器,而判别器努力地学习如何正确区分真假样本,这样,两者就形成了对抗的关系,最终我们的目标就是生成器生成足以以假乱真的伪样本。上述小故事正好形象化的描述了GAN的基本原理。
第五页
GAN的目标函数如公式所示。D(x)表示判别器认为x是真实样本的概率,而1-D(G(z))则是判别器认为合成样本为假的概率,取对数相加就能得到公式1的形式。训练GAN的时候,判别器希望目标函数最大化,也就是使判别器判断真实样本为“真”,判断合成样本为“假”的概率最大化;与之相反,生成器希望该目标函数最小化,也就是降低判别器对数据来源判断正确的概率。
第六页
假设在训练开始时,真实样本分布、生成样本分布以及判别模型分别是图中的黑线、绿线和蓝线。可以看出,在训练开始时,判别模型是无法很好地区分真实样本和生成样本的。接下来当我们固定生成模型,而优化判别模型时,优化结果如第二幅图所示,可以看出,这个时候判别模型已经可以较好的区分生成数据和真实数据了。第三步是固定判别模型,改进生成模型,试图让判别模型无法区分生成图片与真实图片,在这个过程中,可以看出由模型生成的图片分布与真实图片分布更加接近,这样的迭代不断进行,直到最终收敛,生成分布和真实分布重合。
但GAN也存在一些问题。实际应用中,由于生成器的更新依赖于判别器,所以,如果判别器学习得不好,生成器也会学习得不好。为了缓解这个问题,在实际训练中,我们常常让判别器更新若干次之后,再让生成器更新一次。
第七页
3.实现模型与应用领域
——GAN在优化方法上的改进
GAN的训练过程还是非常不稳定,而且生成的数据的多样性仍不如真实样本,此谓“模式收缩”(mode collapse)。后来,研究者们通过一系列的理论研究,发现导致训练不稳定以及模式收缩的主要原因是,最早的GAN中对真实分布与模拟分布的距离度量方法不合适,于是提出用更平滑的度量来代替原来的方法,使用Wasserstein距离代替Jensen-Shannon距离。并依据Wasserstein距离设计了相应的算法,即WGAN。新的算法与原始GAN相比,参数更加不敏感,训练过程更加平滑。
第八页
3.实现模型与应用领域
——GAN在计算机视觉上的应用
Fig.1生成某种类别的图像(PPGN模型)
Fig.2根据文字描述生成图像(PPGN模型)
图像生成的任务主要分两种,第一种是生成某种类别的图像,第二种是根据用户的描述生成符合描述的图像。第一种图像生成的任务已经取得了很好的效果,其生成的火山图像整体上已经可以达到以假乱真的效果。但在多物体的复杂图像上效果就差得多,这个任务的难点在于,生成器并不是学到了如何生成每个物体之后把它们组合起来,而是尝试一次到位生成整张图像。如图2所示,根据文字生成的图像只能够让人分辨出大概的内容。
第九页
3.实现模型与应用领域
——GAN在计算机视觉上的应用
Fig.1 风格迁移(CycleGAN模型)
Fig.2 人脸变换(IcGAN模型)
Fig.3 看图写作(RTT-GAN模型)
图像转换可以包含很多种,例如把一张夏天的图像转换成冬天的样子。普通马与斑马的相互变换。对人脸做变换的例子,从黑发变金发、从直发变爆炸头、把微笑变成露齿笑甚至改变性别。根据图片中的事物自动生成描述文章。
第十页
3.实现模型与应用领域
——DCGAN模型举例
Fig.1 图像生成的判别模型:CNN
Fig.2 图像生成的生成模型:DCGAN
在图像生成过程中,如何设计生成模型和判别模型呢?深度学习里,对图像分类建模,刻画图像不同层次,抽象信息表达的最有效的模型是:CNN(convolutional neural network,卷积神经网络)。CNN是深度神经网络的一种,可以通过卷积层(convolutional layer)提取不同层级的信息,如上图所示。CNN模型以图片作为输入,以图片、类别抽象表达作为输出,如:纹理、形状等等。前几天做了CNN综述PTT(http://download.csdn.net/download/sir_chai/10168463)
那么生成图像的模型应该是什么样子的呢?想想小时候上美术课,我们会先考虑构图,再勾画轮廓,然后再画细节,最后填充颜色,这事实上也是一个多层级的过程,就像是把图像理解的过程反过来,于是,人们为图像生成设计了一种类似反卷积的结构:Deep convolutional NN for GAN(DCGAN)。DCGAN采用一个随机噪声向量作为输入,如高斯噪声。输入通过与CNN类似但是相反的结构,将输入放大成二维数据。通过采用这种结构的生成模型和CNN结构的判别模型,DCGAN在图片生成上可以达到相当可观的效果。 以前做了DCGAN在图像取证系统中的应用PPT(http://download.csdn.net/download/sir_chai/10154183)
第十一页
3.实现模型与应用领域
——GAN在自然语言处理上的应用
Seq-GAN运用了强化学习中的策略梯度方法。
4.结论
GAN 通过训练得到的生成式模型和判别式模型, 在图像和视觉计算、语音和语言处理、信息安全等领域具有重大的应用价值 .
5.思考与展望
下一步发展,应该是能根据不同任务自动设计神经网络模型的算法了,让我们拭目以待。
20171222
这篇关于生成式对抗网络(GAN)综述——粗浅入门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!