文件名称:
生成对抗网络(GANs)最新家谱:为你揭秘GANs的前世今生
开发工具:
文件大小: 1mb
下载次数: 0
上传时间: 2019-07-02
详细说明:生成对抗网络( AN)一经提出就风光无限,更是被Yann L un誉为“十年来机器学 习领域最有趣的想法”。
GAN“左右互搏”的理念几乎众所周知,但正如卷积神经网络(CNN)一样,GAN发展 至今已经衍生出了诸多变化形态。望伪图像的分布尽可能地接近真图像。或者,简单来说,我们想要伪图像尽可能看起
来像真的一样。
值得一提的是,因为GANs是用极小化极大算法做优化的,所以训练过程可能会很不稳
定。不过你可以使用一些“小技巧”来获得更稳健的训练过程。
在下面这个视频中,你可以看到GANs所生成图片的训练演变过程
代码
如果对GANs的基本实现感兴趣,可以参见代码的链接:
Tensorflow(https://github.com/ericjang/genadvtutorial/blob/master/
genadv1. ipynb)
TorchTaPython(pytorch)(https://github.com/devnag/pytorch
generative-adversarial-networks
https://medium.com/devnag/generative-adversarial-networks-gans
in-50-lines-of-code-pytorch-e81b79659e3f
TorchFaLua(https://github.com/lopezpaz/metal)
虽然这些不是最前沿的内容,但它们对于掌握理念很有帮助。
接下来我将按照粗略的时间顺序描述最近这些年来出现的GANs相关的一些进展和类
型
深度卷积生成式对抗网络( Deep Convolutional GANs, DCGANS)
DCGANS是GN结构的最早的重要发展。就训练和生成更高质量的样本来说, DCGANS更
加稳定
论文链接https://arxiv.org/abs/1511.06434
DCGAN的作者们专注于提升初代GAN的框架结构。他们发现
批次( Batch)的正态化在两个网络中都是必须要做的。
完全隐藏的连接层不是一个好的想法。
避免池化,只需卷积
修正线性单元(ReLU)激活函数非常有用。
DCGANS截至目前任然被时常提起,因为它们成为了实践和使用GANs的主要基准之
在这篇论文发布后不久,就在 Theano, Torch, Tensorf1oW和 Chainer中出现了不
同的可使用的实现方法,这些方法可以在你感兴趣的任何数据集上测试。所以,如果
你遇到了生成后奇怪的数据集,你完全可以归咎于这些家伙
DCGANS的使用场景如下
·你想要比基础GANs表现更好(这是必须的)。基础GANS适用于简单的数
据集,然而 DCGANS比这要强得多。
你在寻找一种稳固的基准方法来比较你的新GAN算法
从现在开始,除非特别说明,我接下来将要描述的所有GANs的类型都被假定为有
DCGAN的结构。
提升深度卷积生成式对抗网络( Improved DCGANs)
系列提升先前的 DCGAN的技术。例如,这一提升后的基准方法能够生成更好的高分
辨率图像。
论文链接https://arxiv.org/abs/1606.03498
GANs的主要问题之一是收敛性。收敛性不是一定的,而且尽管 DCGAN做了结构细化,
训练过程仍可能非常不稳定。
在这篇论文里,作者们针对GAN训练过程提出了不同的增强方法。以下是其中一部
分
特征匹配:他们提出了一种新的目标函数,而不是让生成器尽可能地去蒙
骗鉴别器。这个目标函数需要生成器生成的数据能够跟真实数据的统计量相匹
配。在这种情况下,蓥别器只被用来指定哪些才是值得去匹配的统计量。
历史平均:在更新参数值时,把它们过去的值也纳入考虑。
单侧标签平滑:这一项非常简单:只要把你的鉴别器的目标输出值从[O=假
图像,1=真图像]改成0=假图像,0.9=真图像]。不错,这样就提升了训练效
果。
虚拟批次正态化:通过使用从其他批次计算的统计量来避免依赖于同一批
次的数据。这样的计算成本很高,所以它仅仅被用在生成器当中。
所有这些技术都使得模型在生成髙分辨率图像时能表现得更好,而这正是GANs的弱项
之
作为对比,请看在128x128图像上原始 DCGAN和提升后的 DCGAN的表现差异
DCGAN
Improved IGAN.=iLE
这些本来都是狗的图片。正如你看到的, DCGAN表现很糟糕,而川 improved dAgan你
至少可以看到一些包含狗的特征的内容。这也说明了GANs的另一局限一一生成结构性
的内容
· Improved dCGANS的使用场景如下
生成更高分辨率的图像
条件生成式对抗网络( Conditional gans, CANS
条件式生成式对抗网络使用额外的标签信息用于生成更高质量图片,并且使图片的
呈现可控制。
论文链接https://arxiv.org/abs/1411.1784
GANs是GAN框架的扩展。我们用条件信息Y来描述数据的某些特征。假设我们要处理
面部图像,Y则可以用来描述头发颜色或者性别。然后这些属性被插入生成器和鉴别
器
Real images X
F
ake
Generator
m:le
black hair
black hair
blonde
blonde
m2k.c-up
ake-p
sunglasses
六数招立
sunglasses
使用脸部特征信息的条件生成內络如上图所示
条件式生成对抗网络有两个很有意思的地方
1、随着你不断给模型提供更多信息,GAN学习探索这些信息,然后产生更好的样本
2、我们用两科方法来控制图片的呈现,在没有CGAN的时候所有图片信息使用Z编码。
在CGAN下,我们加入了条件信息Y,于是Z和Y对个同信息进行编码。
例如,我们假设Y对于写数了0-9进行编码。Z对其他变量编码,这些变量可以是数字
的风格比如(大小,粗细,旋转角度等。)
Y changes
5b789
oR345789
Z changes
6 789
/2345如789
0|23¥S678
6345673六之
MNIST (Mixed National Institute of Standards and Technology database, TH".
机器视觉数据集)样本中Z和Y的区别如上图。Z是行,Y是列;Z对数字的风格编码,Y
对数字木身编码
最近的研究成果
在这个领域有很多有趣的文章,我介绍2个:
使用生成对抗网络学习在指定位置画画
(论文https://arxiv.org/abs/1610.02454代码:
https://github.com/reedscot/nips2016)这篇论文里作者设计了一个本文描述的
方法来告诉GAN画什么,同时使用方框和标记告诉GAN绘画主体的位置。如卜图示:
This bird is completely black.
Beal
Bel
Right le
g
This bird is bright blue
Head
a man in an orange jacket, black pants and a black cap wearing sunglasses sking
堆栈式GAN
(原文https://arxiv.org/abs/1612.03242代码:
https://github.com/hanzhanggit/stackgan)
这篇文章和上一篇比较类似,这里作者同时使用2个GAN网络(阶段1和阶段2)用于提
升图片的仄量。第1阶段用来获得包含图片“基本”概念的低分辨率图片。第2阶段用
吏多的细节和吏高的分辨率提炼第1阶段的图片
这篇文章据我所知是生成高质量图片最好的模型之一,不信请看下图
This bird is
This bird is
This bird has A white bird white, black,
Text blue with white wings that are
with a black
and brown in
description and has a very
brown and has crown and
color. with a
short beak
a yellow belly yellow beak
k
rown bea
Stage-I
Images
Stage-II
Images
大数据文摘
条件式生成网络的使用场景如下:
1、你有一个带标签的训练集,想提高生成图片的质量
2、你想对图片的某些特征进行精细的控制,比如在某个设定的位置生成特定大小的
一只红色小鸟
最大信息化生成对抗网络( InfoGANs)
GANs可以在无监督模式下对噪声向量Z的一部分有意义的图像特征进行编码。比如对
某一数字的旋转编码。
论文链接https://arxiv.org/abs/1606.03657
你是否曾想过GAN里输入噪声Z对哪些信息进行编码?一般来说它对图片的不同类型的
特征使用一和非常“嘈杂”的方式编码。例如,取Z向量的一个位置并且插入一个-1
到1之间的值。这是下图所示的 MNIST数据集的训练模型。
““““““
"“"""""
4447447
yyyyyy
大数据
左上图像是对Z插值取-1的时候,右下是插值为1的时候
上图中,生成的图片看似是从4慢慢变成“Y”(很像是4和9的混合体)。
这就是我之前所说的使用一种“嘈杂”的方式进行编码:Z的一个位置是图像多个特
征的一个参数
这种情况下,这个位置改变了数字自己(某种程度,从4变成9)和他的风格(从粗体
变成斜体)
然而,你无法定义Z的位置的确切含义
如果使用Z的一些位置来代表唯一且受限的信息,正如CGAN里的条件信息Y呢?
例如,第一个位置是0-9之间的数值来控制数字,第二个位置来控制数字的旋转,这
就是文中作者想要表达的。
有意思的是,与〔GANs不同,他们使用无监督的方法实现并不需要标签信息。
他们是这么做的,把Z向量拆分成两部分:C和Z
C对数据分布的语义特征进行编码
Z对分布的所有非结构化噪声进行编码
如何用C对这些特征编码呢?
通过改变损失函数避免C被GAN简单地忽略掉。所以他们使用一种信息论正则化确保C
与生成器分布之间的互信息[z1]( mutual information)
也就是说,如果C变化,生成的图像也会变化。这导致你不能明确的控制什么类型的
信息将被引入C中。但是C的每一个位置都有独特的含义。
如下图所示:
0|a3456789
02345a78升888888旨6bf
02345678?3333333333
八345的78引99999997
/23456784555555
Varying e1 on InfoGAN(Digit type)
Varying cg from -2 to 2 on InfoGAN(Rotation)
C的第一位置编码数字的类别,第二位置编码旋转方向。
然而,不使用标签信息的代价是,这些编码仅对非常简单的数据集有效比如MⅠST库
里的数字。
并且,你还需要手工设定C的每个位置。例如文章中作者需要定义C的第一位置是介于
0-9的整数以对应数据集的十类数字。你会认为这样不是百分百的无监督,因为需要
手动给模型提供一些细节。
你可能需要用到 infOGANs的场景如下:
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.