生成对抗网络(Generative Adversarial Net, GAN)

2020 年 9 月 24 日 AINLP

对抗神经网络的思维被使用的很广,比如在Bert系列的文章中,将会有一篇和对抗神经网络思想类似的变种。在其他领域比如蒸馏等也会有所应用,所以,为了知识的完整性,特地把以前写的一篇老文章发出来。

鉴于要保持知识的完整性,所以我们再回顾一下2014年就火起来的生成对抗网络。文章成文自2016年,所以文章中我的感受是指我在2016年的感受。

背景一: 判别式模型的繁荣发展

最近,深度学习在很多领域的突破性进展想必不用我多说了。但大家似乎发现了这样的一个现实,即深度学习取得突破性进展的地方貌似都是判别(discriminative)式模型。

所谓的discriminative可以简单的认为是分类问题,比如给一张图片,判断这张图片上有什么动物;再比如给定一段语音,判断这段语音所对应的文字。

在判别式模型上,有很多行之有效的方法,如反向传播,dropout,piecewise linear units等技术。

背景二: 生成式模型的位置

其实,这篇论文很早之前就看了,但我对生成模型在AI里的地位一直不能特别直观的感受。最近才慢慢的理解。

从细节上来看,生成模型可以做一些无中生有的事情。比如图片的高清化,遮住图片的一部分去修复,再或者画了一幅人脸的肖像轮廓,将其渲染成栩栩如生的照片等等。

再提高一层,生成模型的终极是创造,通过发现数据里的规律来生产一些东西,这就和真正的人工智能对应起来了。想想一个人,他可以通过看,听,闻去感知这世界,这是所谓的Discriminative,他也可以说,画,想一些新的事情,这就是创造。所以,生成模型我认为是AI在识别任务发展相当成熟之后的AI发展的又一个阶段。

动机

但是现在,生成模型还没有体会到深度学习的利好,在Discriminative模型上,成果如雨后春笋,但在生成模型上,却并非如此。原因如下:

  • 在最大似然估计及相关策略上,很多概率计算的模拟非常难
  • 将piecewise linear units用在生成模型上比较难

那么,是不是生成模型就借不了深度学习发展的东风了呢?我只能说,有的时候,不得不曲线救国。

对抗的基本思想

可以设想警察和小偷的故事,警察为了提高绩效,需要不停的提高鉴别水平来识别小偷,小偷为了不被抓,也需要提高自己的技巧来更好的隐蔽。假以时日,警察和小偷各自的水平都提高了很多。道高一尺魔高一丈,其实这个过程中道和魔都有提升。这就是对抗的基本思想,而更正式一点,则是如下表达:

假设有一种概率分布M,它相对于我们是一个黑盒子。为了了解这个黑盒子中的东西是什么,我们构建了两个东西生成器G和判别器D,G是另一种我们完全知道的概率分布,D用来区分一个事件是由黑盒子中那个不知道的东西产生的还是由我们自己设的G产生的。

不断的调整G和D,直到D不能把事件区分出来为止。在调整过程中,需要:

  • 优化G,使它尽可能的让D混淆。
  • 优化D,使它尽可能的能区分出假冒的东西。

当D无法区分出事件的来源的时候,可以认为,G和M是一样的。从而,我们就了解到了黑盒子中的东西。

一个简单的对抗学习例子

且看上面四张图a,b,c,d. 黑色的点状线代表M所产生的一些数据,红色的线代表我们自己模拟的分布G,蓝色的线代表着分类模型D。

a图表示初始状态,b图表示,保持G不动,优化D,直到分类的准确率最高。c图表示保持D不动,优化G,直到混淆程度最高。d图表示,多次迭代后,终于使得G能够完全你和M产生的数据,从而认为,G就是M。

对抗思想的形式化表达

将上述例子所描述的过程公式化,得到如上公式。公式中D(x)表示x属于分布M的概率,因而,优化D的时候就是让V(D,G)最大,优化G的时候就是让V(D,G)最小。

其中,x~pdata(x) 表示x取自真正的分布。z~pz(z) 表示z取自我们模拟的分布。G表示生成模型,D表示分类模型。

上述即是G和D的训练过程。其中在每次迭代中,梯度下降K次来训练D,然后梯度下降一次来训练G,之所以这样做,是因为D的训练是一个非常耗时的操作,且在有限的集合上,训练次数过多容易过拟合。

看到这里,对抗网络的思想大家就已经了解了,后面是两个数学证明来证明生成对抗问题的合理性。


证明: 命题一

第一个证明是,当G固定的时候,D会有唯一的最优解。真实描述如下:

证明如下:

  1. 首先,对V(G,D)进行变换

  2. 对于任意的a,b ∈ R2 \ {0, 0}, 下面的式子在a/(a+b)处达到最优。

得证!

证明: 定理一

根据证明一,可以对V(G,D)中最大化D的步骤进行变换。

从而得到定理

直接带入pg=pdata可得-log4,当入pg!=pdata时,得到

证明: 命题二

命题二原文如下:

这个定理的证明需要用到凸函数的某个似乎是很明显的定理,即,通过凸函数的上确界的次导数可以找到函数在最大值时的导数。这个理论应用到G和D中就是在G不变时,D是拥有唯一的最优值的凸函数,因而可以得到。但因为我对凸优化理论尚不熟悉,所以没有理解透彻这个地方。

实验

早期的训练中,D可以很轻松的分辨出来G和M中不同的样本,从而会饱和,所以用logD(G(z))来代替log(1-D(G(z)),这样可以为早期的学习提供更加好的梯度。

实验就是去拟合Guassian Parzen Windown,具体细节略过。结果如下:

生成对抗网络的优势和劣势

优势:

  • Markov链不需要了,只需要后向传播就可以了。
  • 生成网络不需要直接用样本来更新了,这是一个可能存在的优势。
  • 对抗网络的表达能力更强劲,而基于Markov链的模型需要分布比较模糊才能在不同的模式间混合。

劣势:

  • 对于生成模型,没有直接的表达,而是由一些参数控制。
  • D需要和G同步的很好才可以。

各种生成模型的对比如下:

总结(2020年补)

对抗的思想设计的很巧妙,简单的思想解决了很大的问题。现在图像生成、图像修复、图像风格迁移大多数都是基于GAN的。比如最近流行的生成人脸的应用,还有换脸的应用等。

但最原始的GAN的训练不是特别稳定,后续还有很多工作来使得GAN的训练变得稳定,同时能生成效果更好的图等,如果有时间的话,我也会一一介绍。

参考

  • Goodfellow I, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets[C]//Advances in neural information processing systems. 2014: 2672-2680.


说个正事哈



由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方"AINLP",进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心


欢迎加入AINLP技术交流群
进群请添加AINLP小助手微信 AINLPer(id: ainlper),备注NLP技术交流

推荐阅读

这个NLP工具,玩得根本停不下来

征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)

完结撒花!李宏毅老师深度学习与人类语言处理课程视频及课件(附下载)

从数据到模型,你可能需要1篇详实的pytorch踩坑指南

如何让Bert在finetune小数据集时更“稳”一点

模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法

文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化

Node2Vec 论文+代码笔记

模型压缩实践收尾篇——模型蒸馏以及其他一些技巧实践小结

中文命名实体识别工具(NER)哪家强?

学自然语言处理,其实更应该学好英语

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。


阅读至此了,分享、点赞、在看三选一吧🙏

登录查看更多
1

相关内容

在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。条件概率分布可以由生成模型根据贝叶斯定理形成。
最新【深度生成模型】Deep Generative Models,104页ppt
专知会员服务
71+阅读 · 2020年10月24日
最新《生成式对抗网络GAN时空数据应用》综述论文,28pdf
生成对抗网络GAN的发展与最新应用
专知会员服务
127+阅读 · 2020年8月13日
【Google】平滑对抗训练,Smooth Adversarial Training
专知会员服务
49+阅读 · 2020年7月4日
必读的10篇 CVPR 2019【生成对抗网络】相关论文和代码
专知会员服务
33+阅读 · 2020年1月10日
生成式对抗网络GAN异常检测
专知会员服务
118+阅读 · 2019年10月13日
万字综述之生成对抗网络(GAN)
PaperWeekly
43+阅读 · 2019年3月19日
2018 年最棒的三篇 GAN 论文
AI科技评论
4+阅读 · 2019年1月14日
GAN在网络特征学习中的一些应用
计算机视觉战队
4+阅读 · 2018年1月25日
【简介】生成式对抗网络简介
GAN生成式对抗网络
8+阅读 · 2017年9月16日
手把手 | 生成式对抗网络(GAN)之MNIST数据生成
数说工作室
10+阅读 · 2017年7月31日
干货|生成对抗网络(GAN)之MNIST数据生成
全球人工智能
7+阅读 · 2017年7月24日
GAN猫的脸
机械鸡
11+阅读 · 2017年7月8日
Generative Adversarial Text to Image Synthesis论文解读
统计学习与视觉计算组
13+阅读 · 2017年6月9日
Arxiv
8+阅读 · 2019年2月15日
Arxiv
5+阅读 · 2018年5月21日
Arxiv
5+阅读 · 2018年5月1日
Arxiv
4+阅读 · 2018年4月30日
Arxiv
11+阅读 · 2018年3月23日
Arxiv
5+阅读 · 2018年1月30日
VIP会员
相关资讯
万字综述之生成对抗网络(GAN)
PaperWeekly
43+阅读 · 2019年3月19日
2018 年最棒的三篇 GAN 论文
AI科技评论
4+阅读 · 2019年1月14日
GAN在网络特征学习中的一些应用
计算机视觉战队
4+阅读 · 2018年1月25日
【简介】生成式对抗网络简介
GAN生成式对抗网络
8+阅读 · 2017年9月16日
手把手 | 生成式对抗网络(GAN)之MNIST数据生成
数说工作室
10+阅读 · 2017年7月31日
干货|生成对抗网络(GAN)之MNIST数据生成
全球人工智能
7+阅读 · 2017年7月24日
GAN猫的脸
机械鸡
11+阅读 · 2017年7月8日
Generative Adversarial Text to Image Synthesis论文解读
统计学习与视觉计算组
13+阅读 · 2017年6月9日
相关论文
Arxiv
8+阅读 · 2019年2月15日
Arxiv
5+阅读 · 2018年5月21日
Arxiv
5+阅读 · 2018年5月1日
Arxiv
4+阅读 · 2018年4月30日
Arxiv
11+阅读 · 2018年3月23日
Arxiv
5+阅读 · 2018年1月30日
Top
微信扫码咨询专知VIP会员