查看原文
其他

【强基固本】生成对抗网络(GAN)与它背后的思想



“强基固本,行稳致远”,科学研究离不开理论基础,人工智能学科更是需要数学、物理、神经科学等基础学科提供有力支撑,为了紧扣时代脉搏,我们推出“强基固本”专栏,讲解AI领域的基础知识,为你的科研学习提供助力,夯实理论基础,提升原始创新能力,敬请关注。

来源:知乎—李鹏宇

地址:https://zhuanlan.zhihu.com/p/430427567


01

引言
十年前(2011年)我在准备考研的时候,和上铺的哲哥结成了学习小组:我要是松懈了,哲哥会提醒我;哲哥要是松懈了,我就提醒他。相互帮助之下,我俩的学习状态,偶有波动,但是总体来说保持的比较好。两个个体相互提供互助性的信息,从而得到提升学习效果,也是机器学习模型设计里常用的一个思想。比如说,多任务学习(Multi-Task Learning, MTL)、辅助学习(Auxilairy Learning, AL)等学习方法,就是基于这种思想设计出来的。
实际上,两个个体相互提供对抗性的信息,也可以达到某种学习目的。生成对抗网络(Generative Adversarial Networks , GAN)就是采用这种思想设计出的一个经典模型。
推而广之,(环境、人、另外一个学习个体等)通过向学习主体提供对抗性的信息,也可以提升该学习主体在某方面的表现——这种学习机制被称为对抗学习(Adversarial Learning)。据说,还有一种叫对抗训练(Adversarial Training)的方法,名字与“对抗学习”很像。
为了厘清几个带有“对抗”的概念的关系,搞明白生成对抗网络的原理及其应用,这里整理了如下几个问题的答案:
(1)对抗学习/对抗训练与生成对抗网络的定义;
(2)生成对抗网络的理论基础;
(3)生成对抗网络的具体应用和应用方式。

02

对抗学习/对抗训练与生成对抗网络

2.1. 对抗学习与对抗训练

我的一位同事认为人工神经网络“非常懒,喜欢走捷径”。确实是这样,人工神经网络(及其优化算法)会用尽量少的代价来拟合输入和输出,而不会深入思考输入和输出之间的关系。人类在感知和处理各种信号的时候,会即时调用各种各样的相关器官、信息和知识,以保证信号的感知和处理过程是鲁棒的(Robust)。而人工神经网络不管这么多,它只会使用与任务有关的那些参数和知识,去预测监督信号的取值。这导致人工神经网络面对一些精心调制的噪声,非常脆弱。举例来说,Goodfellow等人给大熊猫的照片里加了一些在人类眼中是白噪声的信号,让分类器非常自信地做出了错误的判断、认为这是“长臂猿”,如图2-1所示。人们注意到人工神经网络的这一弱点的最早时间,我没有考证到。
图2-1 给“熊猫”照片增加一点对抗噪声之后,分类器被严重误导了[1]
类似Goodfellow的做法,向机器学习模型输入各个位置注入对抗性噪声、以降低模型性能的行为,叫做对抗攻击(Adversarial Attacks)。对抗攻击可以被看做是“黑客”做的事情,即发现并利用系统漏洞。而带有噪声的输入数据,就是我们常说的“对抗样本”。有攻就有防——一些人则致力于提升机器学习面对自然噪声、人工噪声时的抵抗能力。总的来说,这两方面的努力都有同样一个目标:提升机器学习模型的鲁棒性和泛化性。我们把攻守两方的工作合称为“对抗学习”。
在对抗学习中,向模型注入对抗性噪声的方式五花八门,可以从很多角度去分类。从注入噪声的位置看,可以分为2类:(1)向模型的输入数据添加噪声;(2)直接向模型的某个或某些隐藏层的输入添加噪声。从注入噪声的时机来看分为2类;(1)在前向过程中注入噪声;(2)在后向过程中注入噪声。

2.2. 什么是生成对抗网络

在影视剧中,我们经常能看到倒卖文物的情景。买家为了买到真货,需要不断钻研文物相关的各种知识和技术;而不良卖家,为了把赝品卖出去,也需要不断钻研文物相关的各种知识和技术,从而制作出更像真货的“产品”。常年坚持在对抗一线的买家和卖家群体,在相互博弈中不断接受教育,成长为鉴宝大师和制假专家。
图2-2 电视剧《长缨在手》一幕:这龙头是真是假
文物的制假和售假,有点像对抗学习的过程。在对抗学习中,我们可以使用一个模型A生成以假乱真的样本,然后把假样本与真样本混合起来、让模型B去鉴别——模型A和模型B都会根据对方的表现来优化自己:(1)如果B模型鉴别正确率高,说明A模型造假手段不行,A模型赶紧学习一下、提升自己的制假水平;(2)如果鉴别一个样本真假实在太难了,说明B模型的“眼力”有点差,B模型赶紧学习一下、提升自己的“打假”水平。两个个体基于对方的决策修改自己的决策,是一个博弈活动——两个模型在博弈的过程中,能力越来越强。
图2-3 一个经典的生成对抗网络框架
如图2-3,是一个非常经典的生成对抗网络框架。这里采用了初版GAN的任务,即手写体数字生成与鉴别,作为例子。我们可以用一个可以判断样本是否为真的分类模型B,判断模型A制造出来的样本质量是否足够好、以至于可以认为是“真的”。A负责(基于随机数)生成数字图像,而B负责鉴定数字图像的真伪。这时候,模型B有一定的分类误差;而模型A生成的样本有一部分被判定为假,也就是欺骗失败。我们基于模型B的分类误差构造一个误差函数;基于A的欺骗失败情况构造一个误差函数——在每一次个step的学习中,前后优化这两个误差函数,就可以得到越来越好的生成器和判别器。
为了验证这个模型,我实现了一个简单的GAN
https://github.com/lipengyuer/DataScience/blob/master/src/learning/deepLearning/a_simple_GAN_v1.2.py
调试过程非常艰难,花了将近一周。在查了很多资料后发现,两个子模型的学习率对训练效果的影响非常大,做了相应调整后,这个GAN的生成器终于可以生成像样的手写体数字了。

03

生成对抗网络有什么用

3.1. 数据增强

GAN天然是一种数据增强工具。初版GAN的生成器输出的手写体数字图像,以假乱真,可以作为训练数据。类似地,我们可以使用GAN为一些任务生成训练数据[3]。一些人则把GAN做了进一步改造,充分利用了它的数据增强潜力[4]。

3.2. 风格迁移(Style Transfer)

Gatys等人(2015)发现,CNN可以把图像的内容和风格分开存储,并在这个发现的基础上,构建了一个“绘画风格迁移模型”[2]。这个模型里有好几个损失函数,设计比较精巧——估计难度也比较高。后来,他们将论文升级了一下后投了个会议[5]。
人工设计损失函数是很痛苦的,我们需要丰富的经验、细致的分析和良好的运气,才能构建出一个恰好可以实现特定目标的损失函数。有人认为可与引入判别器,让机器学习模型来提供“是否为梵高风格”这样的反馈信号。
如图3-1所示,是CycleGAN将莫奈的风格迁移到风景照的效果。如图3-2所示,该模型里有两个生成器:(1)F负责将风景照转换为目标风格的图像;(2)G负责将目标风格图像转换为风景照。一个真实的风景照,经过F和G的先后处理,就得到的对原始风景照的重构;一副目标风格图像,经过G和F的处理,就得到它的重构——在两个重构过程中,会有中间结果,CycleGAN会用两个判别器,分别评估这里的两个中间结果。判别器会判断图像是否为画家作品,激励F生成更接近画家风格的图像;判别器Dx会判断图像是否为风景照,激励G生成更接近风景照风格的图像。当生成器和判别器们的对抗达到平衡状态时,G就可以将风景照转换为带有画家风格的图像了。
图3-1 CycleGAN的迁移效果
图3-2 CycleGAN的结构和训练过程
风格迁移不光可以用在艺术领域,还可以在生产中发挥作用,比如生成特定风格的地图[6]。在文本生成领域,我们也可以使用生成对抗网络,比如生成特定风格的文本[7] 等等。

3.3. 判别器有啥用?

判别器是为生成器服务的一种模块,一般只在GAN的训练过程中发挥作用。话句话说,判别器因为特化严重,没有直接用途。

04

结语
GAN采用了博弈思想,让两个模型分别以不同但又相关的目标去优化自己,在二者竞争达到稳态时,把机器学习中的某些任务交给模型自己做,是机器学习里常见的一种模型设计思路。我对GAN的了解非常粗浅,因此这里对它的应用介绍是非常简单的——实际上,生成对抗的方法出现在了很多学术或产业界的模型里。
这篇文章的初稿是2019年末写的。当时的我认为,GAN实在没啥可说的,就是一个模型。了解了一点多任务学习之后,我发现设计一个可以完成特定目标的损失函数是非常难的——这么难的任务,其实可以交给机器做、让机器去判断模型生成效果与目标的差距。至此,我眼里的GAN高大了起来:它背后的设计思想不光有博弈论,还有强化学习啊。

参考文献

[1] Goodfellow ,et al. Explaining and Harnessing Adversarial Examples, 2014.
[2] Gatys L A , Ecker A S , Bethge M . A Neural Algorithm of Artistic Style[J]. Journal of Vision, 2015.
[3] Tanaka F , Aranha C . Data Augmentation Using GANs[J]. Interspeech 2019, 2019.
[4] Odena A , Olah C , Shlens J . Conditional Image Synthesis With Auxiliary Classifier GANs[J]. 2016.
[5] Gatys L A , Ecker A S , Bethge M . Image Style Transfer Using Convolutional Neural Networks[C]// 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2016.
[6] Kang Y , Gao S , Roth R E . Transferring multiscale map styles using generative adversarial networks[J]. International Journal of Cartography, 2019.
[7] Yang Z, Hu Z, Dyer C, et al. Unsupervised text style transfer using language models as discriminators[C]//Proceedings of the 32nd International Conference on Neural Information Processing Systems. 2018: 7298-7309.

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。

“强基固本”历史文章


更多强基固本专栏文章,

请点击文章底部“阅读原文”查看



分享、点赞、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存