【简介】生成式对抗网络简介

2017 年 9 月 16 日 GAN生成式对抗网络

生成式对抗网络简介

来源:Esri北京研发中心

作者:云中仙鹤




咱们今天来聊聊朋友圈里面比较火爆的一个AI领域话题:生成式对抗网络。这个生成式对抗网络,简称GANs (generative adversarial networks),最初发表在2014年的NIPS (Advances in neural information processing systems)的年会上。它的作者是Ian Goodfellow。学界大牛 Yann Lecun在2016年参加Quora答疑的时候说,深度学习在最近十年最有价值的进展是GANs。这么高的评价引起了学术界和业界对GANs的广泛关注。围绕GANs的研究也有了井喷式的发展。


 到底是么是GANs呢?简而言之,它是一个神经网络的新品种。不同于其他的神经网络,GAN包含两个模型:一个生成模型(Generative Model)和一个判别模型(Discriminative Model)。关于这两个模型作用,网络上有各种有意思的说法。最流行的比喻是,生成模型是做假画的,判别模型是鉴别专家。两者在不停地博弈当中共同成长。


生成网络是怎么做假画呢?首先,它的输入分布是随机分布。然后,它根据训练数据集进行建模,最后根据模型生成数据。生成数据的分布应该接近训练数据的分布。这个样本就是所谓的假画了。判别模型就是一个分类器。它的输入是生成模型产生的样本或是真实数据。输出是一个类别判断。这两个模型同时训练,最后达成一个均衡状态:生成器产生的数据与训练数据接近,判别模型也无法区分训练数据和生成数据。



概念挺好懂的。那咱们来看看它到底能做啥。GAN比较著名的应用是视频。它可以根据场景或文本自动生成一些视频。如果不仔细看的话,它的输出是相当逼真的(不过还是不要仔细看吧,个别图片有点吓人)。哇,这是不是说,AI要抢演员的饭碗了?

另外一个应用就是变脸。和咱们手机上那些瘦脸,加动画特效的APP不一样的地方是,GANs可以做人脸的场景合成。哇,这是不是说以后,拍电影,化妆师都不需要了。演员素面朝天。拍完之后,按情节,智能绘制妆容。哦,差点忘了。以后可能连演员都不需要了。

GANs还可以重建样本。做一些深层次的图片合成。未来简史里面说,未来地球上就只会有人和人养的动物。我们想看看新物种,或许要依赖GANs了。


作为一种神经网络,GANs也支持 Style Transfer.它可以把一个照片变艺术画,也可以把一张艺术画变成有照片感觉的图片。另外,GANs还支持边涂鸦,边渲染。我们输入简单涂鸦,GANs帮助我们生成油画。这样看来,我们离人人都是艺术家的日子不远了。


另外呢,GANs也可以做图像的改善。这包括补缺,像素提升,和图像对象识别等。


大家比较看好的一个应用是特征转变。例子就是下图。GANs根据包包的特征,绘制出一个同等特征的鞋子。这就意味,今后可能出现超级网店。你搜了一些包包。突然发现,店铺推荐了匹配的鞋子。而且你搜遍其他地方,根本找不到这些鞋子。你只好下单了。其实,你下单之前,这些鞋子是不存在的,这些鞋子是GANs根据你的喜好,临时设计出来的。你下单的同时,超级工厂才开始生产你的鞋子。


最后两个应用是地学方面的。GANs 可以用来做三维建模。也可以做纹理的自动生成。其实这两个应用和其他应用并没有显著差别。主要是他们的输入是地学相关的数据。另外算法也考虑了数据空间上的一定程度的相关性。


看了这么多的应用,小编一方面很兴奋,另外一方面感到一点小失望。这些应用,其实不是新鲜事物。不用GANs,用其他神经网络也可以实现。那为什么,学术界像打了鸡血一样的努力研究GANs呢?看了很多资料以后,小编来总结一下GANs的优势。


首先它不仅仅是一种神经网络模型。它是一种神经网络的组织和构建方式。因此它有很大的改进空间。它可以结合其他的神经网络。也就是说只要是可微分函数都可以用来构建生成模型和判读模型。比方说,最近最火爆的GANs是Facebook AI lab提出的深层卷积云对抗网路(Deep convolutional generative adversarial network)。这就是GANs和深层卷积云网络的结合。


另外GANs代表了一种无监督或半监督学习的新思路。GANs有博弈论的基因。它的生成式模型和判别式模型的训练过程是一种对抗过程。因此它的生成模型里面的参数更新不但包含学习的结果,还包含来自判断模型的反馈(判断模型也可以用作提取特征)。这种学习模式非常接近人类的学习模式。因为模型学习过程不需要遍布参数分布空间,这同时意味着,模型的训练不需要马可夫链过程。这样可以大大提高模型的训练效率。


从概念上来想的话,GANs还有更广阔的发展空间。看到这里,大家是不是跃跃欲试了呢?小编给大家推荐几个练手的好资料。大家可以参考一下参考文献里面的【3】和【6】。 【6】包含了上百篇文献的链接。【3】包含了Github上面GANs的各种实现。


GANs的小白当然还是要拿大名鼎鼎的MNIST数据作为起点。小编特别体贴的提供了一个地图切片下载代码【11】。大家可以下载一些地图切片。专门供GANs小白练手用。


所谓树大招风。很多文献也提到了GAN的一些缺点的,比方说,输入如果完全是随机数,模型比较不好控制。生成式模型和判别式模型的沟通如果控制不好,模型很难达到均衡。另外模型不一定是收拢过程,所以还有可能崩溃。已经有不少文献在解决这些问题。看起来,GAN的应用会越来越多。最近还有一些新的网络模型被发明出来,声称可以秒渣GANs.这些新算法也是很值得学习的。另外值得一提的是吴恩达的deeplearning.ai 上面开了一门Deep Learning课程。里面也介绍了一些GANs的基础知识。Youtube上面有大神 Ian Goodfellow的培训资料。在youtube上,还有一个叫Siraj Raval的学生也制作了非常有趣的GANs的简介。GANs的实现可以用tensoreflow, pytorch或是caffe2。Github上有不少例子。心动不如行动。动手搜一搜,开始看代码吧。


参考文献:

【1】

https://github.com/wiseodd/generative-models

【2】

https://github.com/nightrome/really-awesome-gan

【3】

https://drscotthawley.github.io/Crash-Course-On-GANs/

【4】https://blog.acolyer.org/2017/03/02/unsupervised-learning-and-gans/

【5】

http://www.asimovinstitute.org/neural-network-zoo/

【6】https://github.com/wiseodd/generative-models

【7】https://www.scientificamerican.com/article/when-will-computers-have-common-sense-ask-facebook/

【8】https://www.oreilly.com/learning/generative-adversarial-networks-for-beginners

【9】https://medium.com/@devnag/generative-adversarial-networks-gans-in-50-lines-of-code-pytorch-e81b79659e3f

【10】http://wiseodd.github.io/techblog/2016/09/17/gan-tensorflow/

【11】https://github.com/Lorcha/usefulscript/blob/master/fetchtiles.py


高质量延伸阅读

☞  【最详尽的GAN介绍】王飞跃等:生成式对抗网络 GAN 的研究进展与展望

☞  【智能自动化学科前沿讲习班第1期】王飞跃教授:生成式对抗网络GAN的研究进展与展望

☞  【智能自动化学科前沿讲习班第1期】王坤峰副研究员:GAN与平行视觉

☞  【重磅】平行将成为一种常态:从SimGAN获得CVPR 2017最佳论文奖说起

☞  【平行讲坛】平行图像:图像生成的一个新型理论框架

☞  【分析】图像分类、目标检测、图像分割、图像生成……一文「计算机视觉」全分析

☞  【应用】深度对抗学习在图像分割和超分辨率中的应用

☞  【格局】深度对抗学习整装待发,或将改变传统AI格局

☞  【智能自动化学科前沿讲习班第1期】哈工大左旺孟教授:多领域视觉数据的转换、关联与自适应学习



登录查看更多
8

相关内容

最新《生成式对抗网络》简介,25页ppt
专知会员服务
167+阅读 · 2020年6月28日
专知会员服务
61+阅读 · 2020年3月4日
GANs最新综述论文: 生成式对抗网络及其变种如何有用
专知会员服务
70+阅读 · 2019年10月19日
生成式对抗网络GAN异常检测
专知会员服务
114+阅读 · 2019年10月13日
万字综述之生成对抗网络(GAN)
PaperWeekly
43+阅读 · 2019年3月19日
若干生成对抗网络模型简介
统计学习与视觉计算组
9+阅读 · 2018年6月13日
如何应用TFGAN快速实践生成对抗网络?
AI前线
5+阅读 · 2018年5月30日
一文详解生成对抗网络(GAN)的原理,通俗易懂
人工智能头条
6+阅读 · 2018年5月6日
深度学习之CNN简介
Python技术博文
20+阅读 · 2018年1月10日
生成式对抗网络(GAN)如何快速理解?
炼数成金订阅号
4+阅读 · 2018年1月9日
【原理】十个生成模型(GANs)的最佳案例和原理 | 代码+论文
GAN生成式对抗网络
8+阅读 · 2017年8月14日
A Probe into Understanding GAN and VAE models
Arxiv
9+阅读 · 2018年12月13日
Adversarial Transfer Learning
Arxiv
12+阅读 · 2018年12月6日
Arxiv
4+阅读 · 2018年5月21日
Arxiv
10+阅读 · 2018年3月23日
Arxiv
4+阅读 · 2018年3月23日
VIP会员
相关VIP内容
最新《生成式对抗网络》简介,25页ppt
专知会员服务
167+阅读 · 2020年6月28日
专知会员服务
61+阅读 · 2020年3月4日
GANs最新综述论文: 生成式对抗网络及其变种如何有用
专知会员服务
70+阅读 · 2019年10月19日
生成式对抗网络GAN异常检测
专知会员服务
114+阅读 · 2019年10月13日
相关资讯
万字综述之生成对抗网络(GAN)
PaperWeekly
43+阅读 · 2019年3月19日
若干生成对抗网络模型简介
统计学习与视觉计算组
9+阅读 · 2018年6月13日
如何应用TFGAN快速实践生成对抗网络?
AI前线
5+阅读 · 2018年5月30日
一文详解生成对抗网络(GAN)的原理,通俗易懂
人工智能头条
6+阅读 · 2018年5月6日
深度学习之CNN简介
Python技术博文
20+阅读 · 2018年1月10日
生成式对抗网络(GAN)如何快速理解?
炼数成金订阅号
4+阅读 · 2018年1月9日
【原理】十个生成模型(GANs)的最佳案例和原理 | 代码+论文
GAN生成式对抗网络
8+阅读 · 2017年8月14日
相关论文
Top
微信扫码咨询专知VIP会员