机器学习(Python+sklearn+TensorFlow 2.0)-第2版 微课视频版 课件 -09-生成对抗网络_第1页
机器学习(Python+sklearn+TensorFlow 2.0)-第2版 微课视频版 课件 -09-生成对抗网络_第2页
机器学习(Python+sklearn+TensorFlow 2.0)-第2版 微课视频版 课件 -09-生成对抗网络_第3页
机器学习(Python+sklearn+TensorFlow 2.0)-第2版 微课视频版 课件 -09-生成对抗网络_第4页
机器学习(Python+sklearn+TensorFlow 2.0)-第2版 微课视频版 课件 -09-生成对抗网络_第5页
已阅读5页,还剩55页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

机器学习第九章生成对抗网络生成对抗网络生成对抗网络(GenerativeAdversarialNetwork,GAN)是一类包含了深度神经网络的用于生成样本的模型的统称。

与其它神经网络一样,生成对抗网络也要学习样本中蕴含的数据分布知识。

与其它神经网络不一样,它不是用来预测而是用来生成,即生成新的可以“以假乱真”的样本。GAN在图像生成、图像处理、序列数据生成、半监督学习、对象检测、语音合成、视频合成、对抗样本和信息隐藏等领域都有重要应用。9.1生成对抗网络框架9.2反卷积与图像生成9.3在图像处理领域的典型应用第九章生成对抗网络GAN主要由一个生成器和一个判别器组成。生成器用来生成新的样本,这些样本不是真实的样本,称之为假样本(fakesample)。而来自真实样本集中的样本是真实的,称之为真样本(realsample)。生成足够“真”的假样本,是GAN的目标,比如,在常用的图像生成应用中,就是生成一幅与目标图像风格相似的“难以区分”的假图像。9.1生成对抗网络框架4生成器一般采用神经网络,它的输入是由随机数组成的向量。生成器的作用就是将随机数向量映射到假样本。判别器一般也采用神经网络,它的输入是真样本和假样本。判别器的作用是区分出真样本和假样本。因此,它是一个二分类器。生成器和判别器之间是相互对抗的关系。生成器要生成使判别器出错的假样本,而判别器要尽量识别出假样本。GAN的训练也是一个迭代的过程。在每一轮迭代中,分别优化判别器网络的参数和生成器网络的参数。在优化判别器网络的参数时,要固定生成器网络的参数。在优化生成器网络的参数时,要固定判别器网络的参数。9.1生成对抗网络框架5说明GAN框架的结构和运行过程的简单示例生成器和判别器都采用全连接层神经网络。样本的特征的维数为2,因此,可以将样本看成平面上的点。真样本采样自平面上以(5,5)为中心的正方形区域。输入生成器的随机数向量(示例采用2维向量,也可以采用更高维的向量)采样自原点(0,0)为中心的正方形区域。9.1生成对抗网络框架6假样本集的中心从原点(0,0)附近经过曲折的移动,逐渐靠近真样本集的中心(5,5)。说明生成器逐步学习到了真实样本的分布规律,生成的假样本具有真样本的特征了。通过notebook课堂演示示例,并解释代码。

9.1生成对抗网络框架7

9.1生成对抗网络框架8在训练过程中,先是利用生成器生成假样本与真实样本一起训练判别器,然后再固定判别器来训练生成器。通过精心设计的损失函数,使得生成器和判别器的训练目标是完全对抗的,生成器要生成假样本迷惑判别器,而判别器则要分清哪些是假样本、哪些是真样本。在首次提出生成对抗网络的论文中,将这种尽力让对手得到最小回报的对抗网络的问题归结为两方极小极大博弈问题(two-playerminimaxgame)。生成对抗网络正是在这种对抗中,通过多轮迭代训练,使生成器逐渐学到了真实样本的分布,生成了让判别器难以区分的样本。9.1生成对抗网络框架9利用MNIST数据集进行生成数字图像实验9.1生成对抗网络框架109.1生成对抗网络框架9.2反卷积与图像生成9.3在图像处理领域的典型应用第九章生成对抗网络上采样生成器的作用就是将随机数向量映射为假样本。在实际应用中,假样本往往是高维度的,例如在图像生成时的图像数据,在音乐生成时的音乐数据,等等。因此,生成器实际上是将低维度的向量转化为高维度的张量。与把用来减少数据数量的池化操作称为“下采样”一样,通常将这种扩张数据数量的操作称为“上采样(up-sampling)”。实现上采样的常用方法还有插值、反池化和反卷积等。9.2反卷积与图像生成12反卷积运算普通的卷积运算通常是将高维度的数据转化为低维度的数据。在GAN中,生成器常采用一种被称为“反卷积(deconvolution)”的运算来实现将低维度的数据转化为高维度的数据。与插值和反池化不同,反卷积运算的模型中的参数值不是事先确定的,而是要通过学习得到。9.2反卷积与图像生成13反卷积运算1.卷积核移动步长为1的卷积运算的反卷积运算卷积运算示例(第八章)9.2反卷积与图像生成14反卷积运算1.卷积核移动步长为1的卷积运算的反卷积运算9.2反卷积与图像生成15对应的反卷积运算示例新示例可以看作原示例的逆向操作,它将原来的输出张量作为输入张量,经过与卷积核的运算得到与原输入张量形状相同的输出张量。要注意的是,反卷积并不能完全恢复原来有信息,它得到的输出张量只是在形状上与原输入张量相同,而内容一般是不一样的。

9.2反卷积与图像生成16

9.2反卷积与图像生成17

9.2反卷积与图像生成18

9.2反卷积与图像生成19

9.2反卷积与图像生成20

9.2反卷积与图像生成21反卷积运算1.卷积核移动步长为1的卷积运算的反卷积运算另外一种转化为步长为1的卷积运算的方式:该方式中,先要将卷积核反转(注意不是转置,而是上下、左右对称交换位置)。为了使卷积操作后的输出张量达到4×4的形状,需要对2×2的输入张量在各个方向上进行2层零填充,达到6×6的形状。将卷积核反转后,并对输入张量进行填充后,再进行正常的步长为1卷积运算。可见两种方式的反卷积运算的输出结果相同。9.2反卷积与图像生成22

9.2反卷积与图像生成23

9.2反卷积与图像生成24在这种移动元素的方式中,将右边的元素向右边依次移动,中间空出来位置用0补空。对应卷积操作中卷积核的移动,也将这儿的元素移动次数称为“步长(strides)”,其值为补空的0元素的个数加1。示例元素移动的步长为5,记为s=5。

9.2反卷积与图像生成25

9.2反卷积与图像生成26

9.2反卷积与图像生成27

9.2反卷积与图像生成28

9.2反卷积与图像生成29

9.2反卷积与图像生成30

9.2反卷积与图像生成31

9.2反卷积与图像生成32

9.2反卷积与图像生成33

9.2反卷积与图像生成34DCGAN使用反卷积运算来实现利用MNIST数据集生成数字图像实现反卷积运算的网络层由tf.keras.layers.Conv2DTranspose()实现。在应用该函数时要注意其输出张量的形状,计算公式如下:反卷积运算的输入为7×7×256。该反卷积运算的卷积核的数量是128,卷积核的大小是5,移动步长是1,采用same填充,因此,其输出张量大小为7×7×128。9.2反卷积与图像生成35通过notebook课堂演示示例,并解释代码。DCGAN9.2反卷积与图像生成36DCGANDCGAN的生成器模型该生成器使用了4个反卷积层,使4×4大小的张量逐步扩张到8×8、16×16、32×32、64×64。9.2反卷积与图像生成37DCGAN基于CIFAR-10数据集的彩色图像生成实验9.2反卷积与图像生成389.1生成对抗网络框架9.2反卷积与图像生成9.3在图像处理领域的典型应用第九章生成对抗网络有条件生成样本前述的GAN和DCGAN生成的样本是随机的,无法生成指定类别(标签)的样本,应用范围有限。条件生成对抗网络cGAN(ConditionalGenerativeAdversarialNets)实现了按指定标签生成对应类别的样本。cGAN的基本思想是在模型中加入类别信息,通过类别信息来“有监督地”生成样本和训练模型,即在生成时指定要生成的假样本的标签、在判别时将样本及其标签看成一个整体来判断是真实的还是假造的。指定的标签也称为条件,条件生成对抗网络就是实现了按条件生成样本的网络。9.3在图像处理中的典型应用40有条件生成样本对比GAN的基本组成,cGAN的组成如下所。实现cGAN的重点在于如何将样本及其标签信息一起输入模型中。对于这个问题,提出了多种解决方法。下面用一个示例来说明在图像生成领域通常采用的方法。9.3在图像处理中的典型应用41有条件生成样本Fashion-MNIST数据集是包含了10个类别的图像的灰度图片数据集。每张图像的像素大小为28×28,训练集有60000个样本,测试集有10000个样本。9.3在图像处理中的典型应用42通过notebook课堂演示示例,并解释代码。有条件生成样本

第1轮训练后生成的图片

第10轮训练后生成的图片9.3在图像处理中的典型应用43有条件生成样本

第50轮训练后生成的图片9.3在图像处理中的典型应用44图像转换pix2pix和CycleGAN在黑白照片上色、图像风格迁移、照片自动滤镜、人像自动美颜等众多图像转换应用中都取得了不错的效果。实际上,这两个模型是由同一研究团队先后提出,它们在结构上有许多相同的地方。与前面介绍的生成对抗网络不同,pix2pix网络和CycleGAN网络不是从随机数出发产生新图像,而是从一张图像出发产生一张新图像。根据应用的目标不同,产生的新图像与原图像相比,或者风格不同,或者颜色不同,或者修改了局部,等等。9.3在图像处理中的典型应用45图像转换在训练时,输入pix2pix网络和CycleGAN网络的训练样本,是由两类不同风格的图片组成。pix2pix模型要求训练样本是成对的数据,而CycleGAN模型无此要求,只需要相似即可。例如,当希望将白天照片转换为夜晚照片时,pix2pix模型要求样本是在同一地点拍摄的白天和晚上的成对照片,而CycleGAN模型只要求是白天拍摄的和晚上拍摄的照片即可,不必满足对应关系。9.3在图像处理中的典型应用46

9.3在图像处理中的典型应用47图像转换采用马和斑马图像风格转换的示例来讨论CycleGAN模型,该示例的训练样本和生成图像效果示意如下图所示,两组图分别是从马到斑马和从斑马到马的图像风格转换示意图。9.3在图像处理中的典型应用48

9.3在图像处理中的典型应用49图像转换2.生成器网络CycleGAN和pix2pix中的生成器采用Encoder-Decoder结构或U-net结构。数据的处理方向是从左往右,图中长方形代表神经网络的一层,其长度示意了数据的形状。可见数据的形状在生成器网络中经历了从大到小,再从小到大的过程,其中,左边的层实现了下采样,右边的层实现了上采样,中间形状最小的层称为瓶颈层(bottlenecklayer)。左边下采样层一般包含了卷积、实例标准化(InstanceNormalization)和ReLu激活等子层。右边上采样层一般包含了反卷积、实例标准化和ReLu激活等子层。中间的瓶颈层一般采用残差网络。U-Net结构中,左右对称的层增设了类似残差网络中的跨层短接,如图中虚线所示。9.3在图像处理中的典型应用50通过notebook课堂演示示例,并解释代码。

9.3在图像处理中的典型应用51

9.3在图像处理中的典型应用52

9.3在图像处理中的典型应用53

9.3在图像处理中的典型应用54图像转换3.判别器网络与普通分类判别器最后输出一个代表分类结果的概率值不同,CycleGAN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论