一文读懂GAN网络 - Go语言中文社区

一文读懂GAN网络



12.1  GAN的理论知识
GAN主要由两部分构成:generator(生成式模型)和discriminator(判别式模型):
● generator主要是从训练数据中产生相同分布的samples,对于输入x,类别标签y,在生成式模型中估计其联合概率分布;
● discriminator 则是判断输入是真实数据还是generator生成的数据,即,估计样本属于某类的条件概率分布。discriminator采用传统的监督学习的方法。
二者结合后,经过大量次数的迭代训练会使generator尽可能模拟出以假乱真的样本,而discriminator会有更精确的鉴别真伪数据的能力,最终整个gan会达到所谓的纳什均衡。即discriminator对于generator的数据鉴别结果为50%,50%。
生成器输入一个随机编码向量,输出一个复杂样本(如图片);判别器输入一个复杂样本,输出一个概率表示该样本是真实样本还是生成器产生的假样本。判别器的目标是区分真假样本,生成器的目标是让判别器区分不出真假样本,两者目标相反,存在对抗。
                                              图12-1GAN网络
对于前面学习的监督学习神经网络都属于discriminator,下面对generator介绍一下。
12.1.1  生成式模型应用
Generator的特性主要包括以下几个方面:
 在应用数学和工程方面,能够有效地表征高维数据分布;
● 在强化学习方面,作为一种技术手段有效表征强化学习模型中的state状态;
● 在半监督学习方面,能够在数据缺失下训练模型,并给出相应地输出;
Generator还适用于一个输入伴随多个输出的场景下,一个典型的应用是通过场景预测video的下一帧,而discriminator通过最小化模型输出和期望输出的某个预测值 无法训练单输入多输出的模型。
前文学习的自编码部分就属于一个Generator。
12.1.2  GAN的训练方法
GAN的训练方法各式各样,根据网络的结构不同,都会有对应不同的训练方法。无论什么方法,原理是一样的,即,会在迭代训练的优化过程中进行两个网络的优化。有的会在一个step中对两个网络优化,有的会对2个网络采取不同的优化步骤。
12.2  DCGAN:基于深度卷积的GAN 
DCGAN即使用卷积网络的对抗网络,其原理和GAN是一样的,它只是把CNN卷积技术用于GAN模式的网络里,G(生成器)在生成数据时,使用反卷积的重构技术,来重构原始图片。D(判别器)这是用卷积技术来识别图片特征,进而做出判别。
同时,DCGAN中的卷积神经网络也做了一些结构的改变,以提高样本的质量和收敛的速度:
●G网络中取消所有pooling层,使用转置卷积(transposed convolutional layer),并且strdie大于等于2来进行上采样。
同理,D网络中也用加入stride的卷积代替pooling。
●在D和G中均使用batch normalization,而在最后一层时通常不会使用batch normalizaiton,目的 是为了保证模型能够学习到数据的正确的均值和方差。
●去掉FC层,使网络变为全卷积网络
●G网络中使用ReLU作为激活函数,最后一层使用Tanh
●D网络中使用LeakyReLU作为激活函数
      换成了两个卷积神经网络(CNN)的G和D,可以更好的学到对输入图像层次化的表示,尤其在生成器部分会有更好的模拟效果。在训练中会使用Adam优化算法。
12.3  InfoGAN&ACGAN:指定类别来生成模拟样本的GAN
InfoGan是一种把信息论与Gan相融合的神经网络,能够原始GAN基础上使网络具有信息解读功能。下面来一起看看它的介绍。
12.3.1  infoGAN:带有隐含信息的GAN
GAN的构建中使用了一个简单的因素连续输入噪声向量Z,而不限制生成模型以何种方式使用这个噪音。其结果是,它是可能的噪音将被生成模型在高度纠缠的方式使用,造成单独的维度的不对应于数据的语义特征。
InfoGAN是GAN模型的一种改进。是一种能够学习样本中的关键维度信息(disentangled representation)的GAN,即,针对于生成样本的噪音进行了细化。先来看它的结构,相比对抗自编码,它的思路正好相反,它是先固定标准高斯分布作为网络输入,再慢慢调整网络输出去匹配复杂样本分布。
 
图12-2 InfoGAN
如图12-2,生成器输入是随机的标准高斯分布来生成样本,解码器是将样本还原成部分的输入分布。判别器是将样本做为输入来区分真假样本。
它的理论思想是将输入的随机标准高斯分布当成噪音数据,并噪音分为两类:第一类是不可压缩的噪音z,第二类是可解释性的信息c。假设在一个样本中,决定其本身的只有少量重要的维度,大多数的维度是可以忽略的。而这里的解码器更形象的可以叫成重构器,即通过重构一部分输入的特征,来确定与样本互信息的那些维度。最终被找到的维度可以代替原始样本的特征(类似pca中的主成份),实现降维、解耦的效果。
12.3.2  ACGAN:带有辅助分类信息的GAN 
AC-GAN即auxiliary classifier GAN,即在判别器Discriminator中再输出相应的class label的概率,然后增加输出的class与真实class的loss fuction,使生成的模拟数据与其所属的class一一对应。

一般来讲,AC-GAN可以属于infoGAN的一部分,class信息可以作为InfoGAN中的潜在信息,只不过这部分信息可以使用半监督方式来学习。

更多章节请购买《深入学习之TensorFlow:入门、原理与进阶实战》

京东购买链接:http://t.cn/Rnx4s8d

关注公众号:相约机器人 图书配套视频在线观看












版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_40652148/article/details/80426170
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-08-27 13:25:25
  • 阅读 ( 973 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

推荐文章

猜你喜欢