生成对抗网络(GANs)最新家谱:为你揭秘GANs的前世今生

所需积分/C币:8 2019-07-02 17:02:31 1.59MB PDF
108
收藏 收藏
举报

生成对抗网络( 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的场景如下:

...展开详情
试读 23P 生成对抗网络(GANs)最新家谱:为你揭秘GANs的前世今生
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • 分享王者

关注 私信
上传资源赚钱or赚积分
最新推荐
生成对抗网络(GANs)最新家谱:为你揭秘GANs的前世今生 8积分/C币 立即下载
1/23
生成对抗网络(GANs)最新家谱:为你揭秘GANs的前世今生第1页
生成对抗网络(GANs)最新家谱:为你揭秘GANs的前世今生第2页
生成对抗网络(GANs)最新家谱:为你揭秘GANs的前世今生第3页
生成对抗网络(GANs)最新家谱:为你揭秘GANs的前世今生第4页
生成对抗网络(GANs)最新家谱:为你揭秘GANs的前世今生第5页

试读结束, 可继续读2页

8积分/C币 立即下载 >