http://www.slideshare.net/xavigiro/deep-learning-for-computer-vision-generative-models-and-adversarial-training-upc-2016

#9 生成对抗网络101 终极入门与通俗解析

我们能生成/创造我们的真实世界,才能说明我们是完完全全理解了它

David 9 要写一期生成对抗网络。

实在是因为,

第一:对抗网络最近太火了。第二:  生成模型太有意思了。让计算机自己去创造东西,不再是科幻!(有用过Prisma的朋友一定体验过)。没体验过的可以瞧瞧这篇文章:”关于Prisma:那些你知道的和不知道的

生成模型通过训练大量数据, 学习自身模型, 最后通过自身模型产生逼近真实分布的模拟分布. 用这个宝贵的”分布”生成新的数据. 因此, 判别模型的目标是得到关于 的分布 P(y|X), 而生成模型的侧重是得到关于X分布 P(y, X) 或 P(x|y)P(y). 即, 判别模型的目标是给定一张图片, 请告诉我这是”长颈鹿”还是”斑马”, 而, 生成模型的目标是告诉你词语: “长颈鹿”, 请生成一张画有”长颈鹿”的图片吧~ 下面这张图片来自slideshare 可以说明问题:

http://www.slideshare.net/shaochuan/spatially-coherent-latent-topic-model-for-concurrent-object
来自: http://www.slideshare.net/shaochuan/spatially-coherent-latent-topic-model-for-concurrent-object

所以, 生成模型可以从大量数据中生成你从未见过的, 但是符合条件的样本.

难怪, 我们可以调教神经网络, 让他的画风和梵高一样. 最后输入一张图片, 它会输出模拟梵高画风的这张图片的油画.

言归正传, 为啥对抗网络在生成模型中受到追捧 ? 生成对抗网络最近为啥这么火 , 到底好在哪里? 

那就必须谈到生成对抗网络和一般生成模型的区别了.

一般的生成模型, 必须先初始化一个“假设分布”,后验分布, 通过各种抽样方法抽样这个后验分布,就能知道这个分布与真实分布之间究竟有多大差异。这里的差异就要通过构造损失函数(loss function)来估算。知道了这个差异后,就能不断调优一开始的“假设分布”,不断逼近真实分布。限制玻尔兹曼机(RBM)就是这种生成模型的一种.

正如”对抗样本与生成式对抗网络“一文所说的: 传统神经网络需要一个人类科学家精心打造的损失函数。但是,对于生成模型这样复杂的过程来说,构建一个好的损失函数绝非易事。这就是对抗网络的闪光之处。对抗网络可以学习自己的损失函数——自己那套复杂的对错规则——无须精心设计和建构一个损失函数:

http://www.slideshare.net/xavigiro/deep-learning-for-computer-vision-generative-models-and-adversarial-training-upc-2016
来自:
http://www.slideshare.net/xavigiro/deep-learning-for-computer-vision-generative-models-and-adversarial-training-upc-2016

生成对抗网络同时训练两个模型, 叫做生成器(Generator 图中蓝色框)判断器(Discriminator 图中红色框). 生成器竭尽全力模仿真实分布生成数据; 判断器竭尽全力区分出真实样本和生成器生成的模仿样本. 直到判断器无法区分出真实样本和模仿样本为止.

通过这种方式, 损失函数被蕴含在判断器中了. 我们不再需要思考损失函数应该如何设定, 只要关注判断器输出损失就可以了.

screenshot-from-2016-11-05-181132
论文”Generative Adversarial Nets”中的训练过程, 生成器和判别器的各自表现

上图是生成对抗网络的训练过程, 可以看到生成器和判别器的各自表现. 其中, 黑色虚线的分布是真实分布, 绿色线的是生成器的分布, 蓝色虚线是判别器的判定分布. 两条水平线代表了两个分布的样本空间的映射.

(a)图中真实分布生成器的分布比较接近, 但是判定器很容易区分出二者生成的样本. (b)图中判定器又经过训练加强判断, 注意判定分布. (c)图是生成器调整分布, 更好地欺骗判定器. (d)图是不断优化, 直到生成器非常逼近真实分布, 而且判定器无法区分.

下图是Ian J. Goodfellow等人论文中在MNIST和TFD数据上训练出的对抗模型生成的样本:

screenshot-from-2016-11-06-090003

最右边一列是真实数据集中最接近的邻居样本, 证明生成模型的有效性. 生成右边导数第二列和真实样本非常接近, 但是确是对抗网络随机生成的图片. 可见, 对抗网络对于随机生成一些图片干扰很在行, 这些干扰并不影响人造样本和真实样本的相似性.

这就是这一期生成对抗网络的终极入门和通俗解析, 希望大家喜欢.

下一期我们有手把手教你写生成对抗网络(GAN), 持续关注, 不要错过哦~

 

参考文献:

  1. Generative Adversarial Nets
  2. ENERGY-BASED GENERATIVE ADVERSARIAL NETWORK
  3. 对抗样本与生成式对抗网络
  4. An introduction to Generative Adversarial Networks (with code in TensorFlow)
  5. Adversarially Learned Inference
  6. 深度学习读书笔记之RBM(限制波尔兹曼机)
  7. Restricted Boltzmann Machines (RBM)

 

发布者

David 9

David 9

邮箱:yanchao727@gmail.com 微信: david9ml

《#9 生成对抗网络101 终极入门与通俗解析》有1个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注