GAN是一类由两个同时训练的模型组成的机器学习技术:一个是生成器,训练其生成伪数据;另一个是鉴别器,训练其从真实数据中识别伪数据。
生成(generative)一词预示着模型的总目标——生成新数据。GAN通过学习生成的数据取决于所选择的训练集,例如,如果我们想用GAN合成一幅看起来像达•芬奇作品的画作,就得用达•芬奇的作品作为训练集。
对抗(adversarial)一词则是指构成GAN框架的两个动态博弈、竞争的模型:生成器和鉴别器。生成器的目标是生成与训练集中的真实数据无法区分的伪数据——在刚才的示例中,这就意味着能够创作出和达•芬奇画作一样的绘画作品。鉴别器的目标是能辨别出哪些是来自训练集的真实数据,哪些是来自生成器的伪数据。也就是说,鉴别器充当着艺术品鉴定专家的角色,评估被认为是达•芬奇画作的作品的真实性。这两个网络不断地“斗智斗勇”,试图互相欺骗:生成器生成的伪数据越逼真,鉴别器辨别真伪的能力就要越强。
网络(network)一词表示最常用于生成器和鉴别器的一类机器学习模型:神经网络。依据GAN实现的复杂程度,这些网络包括从最简单的前馈神经网络(第3章)到卷积神经网络(第4章)以及更为复杂的变体(如第9章的U-Net)。
支撑GAN的数学理论是较为复杂的(我们将在后面几章中集中探讨,特别是第3章和第5章),幸运的是,我们有许多现实世界的示例可以做类比,这样能使GAN更容易理解。前面我们讨论了一个艺术品伪造者(生成器)试图愚弄艺术品鉴定专家(鉴别器)的示例。伪造者制作的假画越逼真,鉴定专家就必须具有越强的辨别真伪的能力。反过来也是成立的:鉴定专家越善于判断某幅画是否是真的,伪造者就越要改进造假技术,以免被当场识破。
还有一个比喻经常用来形容GAN(Ian Goodfellow经常喜欢用的示例),假币制造者(生成器)和试图逮捕他的侦探(鉴别器)——假钞看起来越真实,就需要越好的侦探才能辨别出它们,反之亦然。
用更专业的术语来说,生成器的目标是生成能最大程度有效捕捉训练集特征的样本,以至于生成出的样本与训练数据别无二致。生成器可以看作一个反向的对象识别模型——对象识别算法学习图像中的模式,以期能够识别图像的内容。生成器不是去识别这些模式,而是要学会从头开始学习创建它们,实际上,生成器的输入通常不过是一个随机数向量。
生成器通过从鉴别器的分类结果中接收反馈来不断学习。鉴别器的目标是判断一个特定的样本是真的(来自训练集)还是假的(由生成器生成)。因此,每当鉴别器“上当受骗”将假的图像错判为真实图像时,生成器就会知道自己做得很好;相反,每当鉴别器正确地将生成器生成的假图像辨别出来时,生成器就会收到需要继续改进的反馈。
鉴别器也会不断地改善,像其他分类器一样,它会从预测标签与真实标签(真或假)之间的偏差中学习。所以随着生成器能更好地生成更逼真的数据,鉴别器也能更好地辨别真假数据,两个网络都在同时不断地改进着。
表1.1总结了GAN的两个子网络的关键信息。
GAN实战
本书旨在引导对生成对抗网络(GAN)有兴趣的人从头开始学习。本书从最简单的例子开始,介绍一些最具创新性的GAN的实现和技术细节,进而对这些研究进展做出直观的解释,并完整地呈现所涉及的一切内容(不包括最基本的数学和原理),让最前沿的研究变得触手可及。
本书的最终目标是提供必要的知识和工具,让你不仅能全面了解对GAN迄今为止取得的成就,还能有能力自由选择开发新的应用。生成对抗这一模式充满潜力,等着像你这样怀有进取心、想在学术研究和实际应用中做出点成就的人去挖掘!欢迎你加入我们的GAN之旅。
本书适合已经有一些机器学习和神经网络相关经验的读者阅读。下面列出了理想情况下读者应该提前知悉的内容。尽管本书尽力让内容显得通俗易懂,但你至少应该对下面70%的知识有信心。
以上要求不是危言耸听,而是为了确保你能充分利用本书所讲的内容。当然,不管怎样,你都可以学习,但是之前了解的内容越少,需要你在线检索学习的内容就越多。如果你感觉上面的要求不足为惧,那就开始学习吧!
本书有许多包含源代码的示例,放在有编号的列表中或者内嵌在普通文本中。这两种情况下源代码的格式都是以等宽字体样式显示的。有时也用加粗样式突出显示代码,表示与先前所示代码不同(有所更改),例如向现有代码行中添加新功能。
本书对大部分源代码做了格式化,以适应本书页面的排版。此外,若正文中有对代码的解释说明,则通常会删除源代码中的注释。为了突出重要概念,清单都给出了注释。本书示例的代码可以从异步社区本书详情页的“配套资源”处下载。
本书使用数据科学教育的标准用具——Jupyter Notebook,所以你应先掌握这个工具的用法。这对于中级Python学习者来说应该不难。访问GPU或者使其所有功能正常运行有时候会遇到困难,特别是在Windows系统,所以有些章节提供了谷歌Colaboratory(缩写为Colab)Notebook。这是谷歌的免费平台,并预先封装了必要的数据科学工具以及有限时长内免费的GPU。你可以直接在浏览器中运行这些代码,也可以将其他章节的代码上传到Colab——它们是兼容的。
GAN是一个拥有良好(尽管是零散的)资源的活跃领域。有学术倾向的人可以在arXiv官方网站找到相关的最新论文。arXiv是康奈尔大学拥有和运营的学术论文电子预印本在线存储库。
本书作者都是 Medium 写作平台的活跃撰稿人(特别是以技术为核心的出版物 Towards Data Science和Hacker Noon),你可以在那里找到他们写的最新内容。
本书力求在理论和实践之间取得平衡。全书分为如下三部分。
第一部分生成对抗网络(GAN)与生成模型导论 这部分介绍生成学习和GAN的基本概念,并实现几种GAN最典型的变体。
第二部分 GAN的前沿主题
在第一部分的基础上,这部分深入研究了GAN的基础理论,并实现了一系列高级的GAN架构。
第三部分 何去何从
这一部分讨论了如何应用GAN和对抗学习以及在何处应用它们。
自发明以来,GAN一直被学术界和工业界的专家们誉为“深度学习中最重要的创新之一”。Facebook的人工智能研究主管Yann LeCun甚至表示,GAN及其变体是“过去20年来深度学习中最酷的想法”。[2]
这种兴奋是合情合理的。机器学习领域的其他进展可能在科研人员中人尽皆知,但对于门外汉来说,可能疑惑多于兴奋,GAN激起了从研究人员到大众的极大兴趣——包括《纽约时报》、BBC、《科学美国人》以及许多其他知名媒体机构,甚至可能就是GAN的某项成果驱使你来购买这本书的呢。(对吧?)
最值得关注的可能是GAN创作超现实主义意象的能力。图1.4所示的人脸都不是真人的,都是假的,这展示了 GAN 合成足以和真实照片以假乱真图像的能力。这些人脸是用渐进式增长生成对抗网络生成的,相关内容参见第6章。
(来源:Progressive Growing of GAN for Improved Quality, Stability and Variation,by Tero Karras et al., 2017.)
图1.4 这些逼真但虚假的脸是由在高分辨率名人肖像照片集上训练过的渐进GAN生成的
GAN另一个引人瞩目的成就是图像到图像的转换(image-to-image translation)。与把句子从汉语翻译成西班牙语的方式类似,GAN可以将图像从一种风格转换为另一种风格。如图1.5所示,GAN可以把马的图像转换为斑马的图像,把一张照片变成莫奈的画作,而这几乎不需要任何监督,也不需要任何标签。使这一切成为可能GAN的变体是循环一致性生成对抗网络(CycleGAN),相关内容参见第9章。
更实用些的GAN应用同样令人着迷。在线零售的巨头亚马逊(Amazon)尝试利用GAN提供时尚建议:通过分析无数的搭配,系统能学会生成符合给定的任意风格的新产品。[3] 在医学研究中,GAN通过合成样本增强数据集,以提高诊断准确率。[4] 在掌握了训练GAN及其变体的细节之后,我们将在第11章详细地探讨这两个应用。
(来源:Unpaired Image-to-Image Translation Using Cycle-Consistent Adversarial Networks, by Jun-Yan Zhu et al., 2017.)
图1.5 通过使用名为CycleGAN的GAN变体,可以将莫奈的画作变成照片,或将图片中的斑马变成马;反之亦然
GAN也被视为实现通用人工智能[5]的重要基石。它是一种能够匹敌人类认知能力的人工系统,能获取几乎任何领域的专业知识——从走路所需的运动技能到语言表达技能,甚至于写诗所需的创作技能。
然而,拥有生成新数据和新图像的能力使得GAN有时也会很危险。关于假新闻的传播及其危险性已经是老生常谈,GAN生成可信假视频的能力也令人不安。在2018年一篇关于GAN的文章的结尾处——这篇文章的标题很贴切“如何成为一个人工智能”——《纽约时报》记者 Cade Metz和Keith Collins谈到了令人担忧的前景:GAN可能被用来制造和传播易使人轻信的错误信息,比如虚假的世界各国领导人发表声明的视频片段。《麻省理工学院科技评论》旧金山分社社长Martin Giles也表达了他的担忧,他在2018年发表的《GAN之父:赋予机器想象力的人》一文中提到,在技术娴熟的黑客手中,GAN可能会以前所未有的规模被用来探索和利用系统漏洞。这些忧虑促使我们讨论GAN的应用在道德伦理上的考量(第12章)。
GAN可以为世界带来许多好处,但是任何技术创新都是一把双刃剑。对此,我们必须怀有一种哲学意识:“除掉”一种技术是不可能的,所以确保像你这样的人了解这项技术的迅速崛起及其巨大的潜力是很重要的。
本书也仅能触及应用GAN可实现功能的一些皮毛,但是,我们希望这本书能够为你提供必要的理论知识和实践技能,使你能够继续从各个方面探索自己最感兴趣的领域。
事不宜迟,让我们开始吧!