火热的生成对抗网络(GAN),你究竟好在哪里

引言

自2014年Ian Goodfellow提出生成对抗网络(GAN)的概念后,生成对抗网络变成为了学术界的一个火热的研究热点,Yann LeCun更是称之为”过去十年间机器学习领域最让人激动的点子”.生成对抗网络的简单介绍如下,训练一个生成器(Generator,简称G),从随机噪声或者潜在变量(Latent Variable)中生成逼真的的样本,同时训练一个鉴别器(Discriminator,简称D)来鉴别真实数据和生成数据,两者同时训练,直到达到一个纳什均衡,生成器生成的数据与真实样本无差别,鉴别器也无法正确的区分生成数据和真实数据.GAN的结构如图1所示.

图1. 生成对抗网络的基本架构

近两年来学术界相继提出了条件生成对抗网络(CGAN),信息生成对抗网络(InfoGAN)以及深度卷积生成对抗网络(DCGAN)等众多GAN的变种,下图2来自于去年一篇Image-to-Image Translation with Conditional Adversarial Nets论文,我们可以看到GAN已经被引入到了各种以往深度神经网络的任务中,例如从分割图像恢复原图像(左上角第一对),给黑白图片上色(右上角第一对),根据纹理图上色(右下角第一对),另外,GAN还可以做图像超分辨率,动态场景生成等,关于GAN的更多应用请见另一篇博客深度学习在计算机视觉领域的前沿进展.

图2.Image to image图像翻译

仔细想来,这些任务,其实都是传统的深度神经网络可以做的,例如自编码器(AutoEncodor)和卷积反卷积架构可以做到的,我们不禁要想,GAN相比传统的深度神经网络,它的优势在哪里?前段时间,我也一直比较迷惑,中文能查到的资料,就是Ian Goodfellow在生成对抗网络(GAN)论文最后总结的几点,如下:

优点

  • 模型只用到了反向传播,而不需要马尔科夫链
  • 训练时不需要对隐变量做推断
  • 理论上,只要是可微分函数都可以用于构建D和G,因为能够与深度神经网络结合做深度生成式模型
  • G的参数更新不是直接来自数据样本,而是使用来自D的反向传播(这也是与传统方法相比差别最大的一条吧)

缺点

  • 可解释性差,生成模型的分布 Pg(G)没有显式的表达
  • 比较难训练,D与G之间需要很好的同步,例如D更新k次而G更新一次

上面只是一个比较简单的解释,很幸运,我在Quora上查到了两个个类似问题,GAN与其他生成模型相比有什么优势,这个问题只有一个人回答,很幸运的是,他就是Ian Goodfellow,GAN的发明人,他在Quora上的签名就是”I invented generative adversarial networks”. 而另一个问题是GANs的优缺点是什么?, 良心大神Goodfellow也做了回答! 我把他的两个回答翻译如下:

分割线 —————————————————————————————————–

原问题1:What is the advantage of generative adversarial networks compared with other generative models?

生成对抗网络相比其他生成模型的优点? Ian Goodfellow回答: —————————————————————————————————– 相比其他所有模型,我认为

  • 从实际结果来看,GAN看起来能产生更好的生成样本
  • GAN框架可以训练任何生成网络(在理论实践中,很难使用增强学习去训练有离散输出的生成器),大多数其他架构需要生成器有一些特定的函数形式,就像输出层必须是高斯化的. 另外所有其他框架需要生成器整个都是非零权值(put non-zero mass everywhere),然而,GANs可以学习到一个只在靠近真实数据的地方(神经网络层)产生样本点的模型( GANs can learn models that generate points only on a thin manifold that goes near the data.)
  • 没有必要遵循任何种类的因子分解去设计模型,所有的生成器和鉴别器都可以正常工作
  • 相比PixelRNN, GAN生成采样的运行时间更短,GANs一次产生一个样本,然而PixelRNNs需要一个像素一个像素的去产生样本;
  • 相比VAE, GANs没有变分下界,如果鉴别器训练良好,那么生成器可以完美的学习到训练样本的分布.换句话说,GANs是渐进一致的,但是VAE是有偏差的
  • 相比深度玻尔兹曼机, GANs没有变分下界,也没有棘手的配分函数,样本是一次生成的,而不是重复的应用马尔科夫链来生成的
  • 相比GSNs, GANs产生的样本是一次生成的,而不是重复的应用马尔科夫链来生成的;
  • 相比NICE和Real NVE,GANs没有对潜在变量(生成器的输入值)的大小进行限制; 说实话, 我认为其他的方法也都是很了不起的,他们相比GANs也有相应的优势. —————————————————————————————————–

原问题2: What are the pros and cons of using generative adversarial networks (a type of neural network)?

生成对抗网络(一种神经网络)的优缺点是什么? It is known that facebook has developed a means of generating realistic-looking images via a neural network. They used “GAN” aka “generative adversarial networks”. Could this be applied generation of other things, such as audio waveform via RNN? Why or why not? facebook基于神经网络开发了一种可以生成现实图片的方法,他们使用GAN,又叫做生成对抗网络,它能应用到其他事物的生成吗,例如通过RNN生成音频波形,可以吗?为什么? Ian Goodfellow回答: —————————————————————————————————– 优势

  • GANs是一种以半监督方式训练分类器的方法,可以参考我们的NIPS paper相应代码.在你没有很多带标签的训练集的时候,你可以不做任何修改的直接使用我们的代码,通常这是因为你没有太多标记样本.我最近也成功的使用这份代码与谷歌大脑部门在深度学习的隐私方面合写了一篇论文
  • GANs可以比完全明显的信念网络(NADE,PixelRNN,WaveNet等)更快的产生样本,因为它不需要在采样序列生成不同的数据.
  • GANs不需要蒙特卡洛估计来训练网络,人们经常抱怨GANs训练不稳定,很难训练,但是他们比训练依赖于蒙特卡洛估计和对数配分函数的玻尔兹曼机简单多了.因为蒙特卡洛方法在高维空间中效果不好,玻尔兹曼机从来没有拓展到像ImgeNet任务中.GANs起码在ImageNet上训练后可以学习去画一些以假乱真的狗
  • 相比于变分自编码器, GANs没有引入任何决定性偏置( deterministic bias),变分方法引入决定性偏置,因为他们优化对数似然的下界,而不是似然度本身,这看起来导致了VAEs生成的实例比GANs更模糊.
  • 相比非线性ICA(NICE, Real NVE等,),GANs不要求生成器输入的潜在变量有任何特定的维度或者要求生成器是可逆的.
  • 相比玻尔兹曼机和GSNs,GANs生成实例的过程只需要模型运行一次,而不是以马尔科夫链的形式迭代很多次.

劣势

  • 训练GAN需要达到纳什均衡,有时候可以用梯度下降法做到,有时候做不到.我们还没有找到很好的达到纳什均衡的方法,所以训练GAN相比VAE或者PixelRNN是不稳定的,但我认为在实践中它还是比训练玻尔兹曼机稳定的多.
  • 它很难去学习生成离散的数据,就像文本
  • 相比玻尔兹曼机,GANs很难根据一个像素值去猜测另外一个像素值,GANs天生就是做一件事的,那就是一次产生所有像素, 你可以用BiGAN来修正这个特性,它能让你像使用玻尔兹曼机一样去使用Gibbs采样来猜测缺失值, 我在伯克利大学的课堂上前二十分钟讲到了这个问题 —————————————————————————————————– 以上是Ian Goodfellow的原答案的翻译,如有翻译不妥的地方,请指正! 最近在一篇GAN生成图片的论文中看到,作者提出使用GAN与普通的卷积反卷积相比,GAN能获得更好的泛化结果. 这里不知道是不是把鉴别器D当做一个监控器,当D的精度接近50%了,就停止训练,防止生成器过拟合. GAN还有什么其他有点,希望知友们提出,然后我会加在文章中.谢谢~

原文 https://zhuanlan.zhihu.com/p/25439613;获作者授权发布。

原文发布于微信公众号 - CreateAMind(createamind)

原文发表时间:2017-02-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

深度 | 一文概览图卷积网络基本结构和最新进展

选自tkipf.github 作者:Thomas Kipf 机器之心编译 参与:李诗萌、刘晓坤 本文介绍了图卷积网络的基本结构,和最新的研究进展,并指出了当前...

46090
来自专栏机器之心

入门 | 想实现DCGAN?从制作一张门票谈起!

37580
来自专栏机器人网

具有启发性的十种深度学习方法

 不管是AI也好,其他学科也好,学习、研究的过程中不断反思学科的历史,总结学科的发展现状,找出重要的理念,总能让人能“吾道一以贯之”。软件工程师James Le...

388110
来自专栏机器之心

共享相关任务表征,一文读懂深度神经网络多任务学习

选自sebastianruder.com 作者:Sebastian Ruder 机器之心编译 参与:Jane W、黄小天 近日,自然语言处理方向博士生、AYL...

95070
来自专栏机器学习AI算法工程

R语言多元统计包简介:各种假设检验 统计方法 聚类分析 数据处理

基本的R包已经实现了传统多元统计的很多功能,然而CRNA的许多其它包提供了更深入的多元统计方法,下面做个简要的综述。多元统计的特殊应用在CRNA的其它任务列表(...

66040
来自专栏CreateAMind

通俗|令人拍案叫绝的Wasserstein GAN 及代码(WGAN两篇论文的中文详细介绍)

在GAN的相关研究如火如荼甚至可以说是泛滥的今天,一篇新鲜出炉的arXiv论文Wassertein GAN 却在 Reddit 的 Machine Learni...

20240
来自专栏AI科技评论

FAIR最新视觉论文集锦:FPN,RetinaNet,Mask和Mask-X RCNN(含代码实现)

这篇文章会从 FAIR 在基本模块上的创新开始,谈到 CNN,再到 one-shot 物体检测。之后会讲实例分割的创新。最后聊聊依靠弱半监督模型来扩展实例分割。...

93480
来自专栏机器学习AI算法工程

常见的机器学习&数据挖掘数学知识点

常见的机器学习&数据挖掘数学知识点之Basis SSE(Sum of Squared Error, 平方误差和) SSE=∑i=1n(Xi−X¯¯¯)2 ...

69570
来自专栏深度学习与数据挖掘实战

干货|GAN for NLP (论文笔记及解读)

GAN 自从被提出以来,就广受大家的关注,尤其是在计算机视觉领域引起了很大的反响。“深度解读:GAN模型及其在2016年度的进展”[1]一文对过去一年GAN的进...

78340
来自专栏AI科技评论

干货 | 做AI必须要知道的十种深度学习方法

AI科技评论按:不管是AI也好,其他学科也好,学习、研究的过程中不断反思学科的历史,总结学科的发展现状,找出最重要的理念,总能让人能“吾道一以贯之”。软件工程师...

29470

扫码关注云+社区

领取腾讯云代金券