GAN实战

978-7-115-55084-2
作者: [英]雅各布·朗格尔(Jakub Langr)[美]弗拉基米尔·博克(Vladimir Bok)
译者: 罗家佳
编辑: 吴晋瑜

图书目录:

详情

本书主要介绍构建和训练生成对抗网络(GAN)的方法。全书共12 章,先介绍生成模型以及GAN 的工作原理,并概述它们的潜在用途,然后探索GAN 的基础结构(生成器和鉴别器),引导读者搭建一个简单的对抗系统。 本书给出了大量的示例,教读者学习针对不同的场景训练不同的GAN,进而完成生成高分辨率图像、实现图像到图像的转换、生成对抗样本以及目标数据等任务,让所构建的系统变得智能、有效和快速。

图书摘要

版权信息

书名:GAN实战

ISBN:978-7-115-55084-2

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。


著    [英] 雅各布•朗格尔(Jakub Langr)

     [美] 弗拉基米尔•博克(Vladimir Bok)

译    罗家佳

责任编辑 吴晋瑜

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315


Original English language edition,entitled GANs In Action by Jakub Langr and Vladimir Bok published by Manning Publications, USA. Copyright© 2019 by Manning Publications.

Simplified Chinese-language edition copyright© 2021 by POST & TELECOM PRESS Co.,LTD. All rights reserved.

本书中文简体字版由Manning Publications Co.授权人民邮电出版社有限公司独家出版。未经出版者书面许可,不得以任何方式复制或抄袭本书内容。

版权所有,侵权必究。


本书主要介绍构建和训练生成对抗网络(GAN)的方法。全书共12章,先介绍生成模型以及GAN的工作原理,并概述它们的潜在用途,然后探索GAN的基础结构(生成器和鉴别器),引导读者搭建一个简单的对抗系统。

本书给出了大量的示例,教读者学习针对不同的场景训练不同的GAN,进而完成生成高分辨率图像、实现图像到图像的转换、生成对抗样本以及目标数据等任务,让所构建的系统变得智能、有效和快速。

本书适合有一定Python经验且有基于深度学习的图像处理基础的数据专业人员阅读。

感谢那些认为笑话比数学更像是惩罚的人。

——Jakub Langr

感谢Michael Reitano,是他帮我成为更好的作家!感谢Simone Reitano,是他助我成为更好的自己!

——Vladimir Bok


我在2015年首次接触到GAN的时候,便立刻爱上了它。我确信,它就是我在机器学习其他内容中总是错过的能自我批评的机器学习系统。人们会不断地制订可行的计划,然后分辨出“莽撞地冲向一扇门”并不是最好的主意。其他机器学习系统做不到这样,但是GAN可以。GAN真的很有意义——要进入更高层次的人工智能阶段,我们就应该利用好自动学习的表达和机器学习的反馈循环。毕竟数据非常昂贵,计算却越来越便宜。

GAN让我为之着迷的另外一点在于它的增长曲线,尽管这一点是我在后来才意识到的。机器学习的其他内容都没有这么“新颖”。大多数计算机视觉技术是在1998年之前发明的,而GAN在2014年才开始发挥作用。从2014年到我撰写本文时,GAN一直保持着不间断的指数增长。

到目前为止,我们已经取得了包括生成猫咪表情包在内的很多成就。第一篇GAN论文的引用次数是原版TensorFlow论文的2.5倍以上,而且GAN还常被麦肯锡咨询公司(McKinsey & Company)和主流媒体讨论,由此可见其影响远远不止于技术层面。

这是一个充满可能性的迷人新世界,能和诸位读者一起分享,我感到既荣幸又兴奋。本书的筹划已近两年,希望广大读者见到它会和我们一样兴奋,非常期待你们的反馈!

——Jakub Langr

用著名科幻小说家Arthur C. Clarke的话来说,“任何足够先进的技术,都与魔法无异。”——这在我早年探索计算机科学领域那些“不可能的问题”时激励了我。然而经过在机器学习领域多年的学习和工作,我发现自己对机器智能的进步已经不敏感了。2011年,当IBM的新型智能机器人Watson在美国老牌智力问答节目Jeopardy中战胜人类对手时,我印象深刻;然而在2016年,当谷歌的AlphaGo在围棋中又一次战胜人类时(从计算方面上讲应是更令人惊异的成就),我几乎没有什么特别的感觉。这项成就让人感觉有些平凡—— 甚至是预料之中的——魔法消失了。

此时,GAN登场了。

我最初接触GAN是在微软研究院的一个研究项目中。那是2017年,我和团队成员厌倦了一遍遍地听Despacito(当时非常流行的西班牙语歌曲),开始试着用频谱(声音数据的视觉编码)对音乐进行生成建模。显而易见,GAN的数据合成能力远远优于其他技术,其他算法产生的频谱图只不过是白噪声,而GAN的输出简直和我们平时听的音乐别无二致。看到机器在目标明确的领域取得成功是一回事(如智力问答和围棋),而目睹一种算法独立地创造出新颖而又真实的东西可真是另外一回事了!

希望当读者阅读本书时,不仅能感受到我对GAN的热情,更能由此重新发现AI的魔力。Jakub和我力求使这一前沿领域变得更加普及和全面。我们希望读者会发现本书有趣又丰富——而其中的幽默又恰到好处。

——Vladimir Bok


本书的出版离不开曼宁出版社编辑团队的支持和指导,感谢项目编辑Christina Taylor的辛勤工作和奉献精神。感谢John Hyaduck和Kostas Passadis合作,他们的深刻见解帮我们把这本书做到最好。

还要感谢曼宁出版社的工作人员在多方协商、推广和促使本书的出版落地等关键方面所做的幕后工作,他们是Brian Sawyer、Christopher Kaufmann、Aleksandar Dragosavljevic、 Rebecca Rinehart、Melissa Ice、Candace Gillhoolley和许多其他工作人员。

诚挚感谢所有对本书的初稿提供了宝贵的反馈意见的读者。

感谢我在培生的前团队成员,时至今日,他们依然是我伟大的导师和朋友——感谢Andy、Kostas、Andreas、Dario、Marek和Hubert。2013年,他们给了我第一个数据科学方向的实习机会,从而改变了我的生活和职业生涯。

言语不足以表达我对所有前辈的感激之情,尤其是对Pavan Kumar博士的感激,他是一位出色的朋友、室友和同事。

还要感谢来自Filtered.com、牛津大学、ICP以及商业咨询公司Mudano研发团队的朋友和同事。

还有太多的人在本书面世过程中给予我们帮助,囿于字数,不能一一列出,在此一并感谢他们。感谢我的朋友和家人对我长久以来的支持!

最后,我要吐槽一下Carminia路的狐狸——到底是什么让它们在凌晨两点发出那种折磨人的喧嚣?what does the fox say?[1]

——Jakub Langr

感谢James McCaffrey、Roland Fernandez、Sayan Pathak以及微软研究院AI-611的其他职员,是他们使我有幸受到机器学习和人工智能领域领军人物的指导。感谢AI-611的队友Tim Balbekov和Rishav Mukherji和我一起踏上征程,感谢导师Nebojsa Jojic和Po-Sen Huang的悉心指导。

还要感谢我的大学导师Krzysztof Gajos教授,感谢他在我本科就读期间就允许我参加他的研究生研讨会,那是我第一次接触到计算机科学研究领域。

特别感谢在Intent同事们对我的支持和鼓励,感谢他们对我的包容,彼时因为忙于研究和写作,我经常在深夜才回复他们的邮件。

深深感谢Kimberly Pope多年前对我这位年轻高中生的信任,并赠予一份改变人生的奖学金,这是我永远无法偿还的“债务”。

最后感谢家人和朋友一如既往地支持我。

——Vladimir Bok

[1] 源自伊尔维萨克兄弟为了宣传新一季脱口秀节目而制作的歌曲The Fox。这里是一个诙谐的梗。——译者注


本书旨在引导对生成对抗网络(GAN)有兴趣的人从头开始学习。本书从最简单的例子开始,介绍一些最具创新性的GAN的实现和技术细节,进而对这些研究进展做出直观的解释,并完整地呈现所涉及的一切内容(不包括最基本的数学和原理),让最前沿的研究变得触手可及。

本书的最终目标是提供必要的知识和工具,让你不仅能全面了解对GAN迄今为止取得的成就,还能有能力自由选择开发新的应用。生成对抗这一模式充满潜力,等着像你这样怀有进取心、想在学术研究和实际应用中做出点成就的人去挖掘!欢迎你加入我们的GAN之旅。

本书适合已经有一些机器学习和神经网络相关经验的读者阅读。下面列出了理想情况下读者应该提前知悉的内容。尽管本书尽力让内容显得通俗易懂,但你至少应该对下面70%的知识有信心。

以上要求不是危言耸听,而是为了确保你能充分利用本书所讲的内容。当然,不管怎样,你都可以学习,但是之前了解的内容越少,需要你在线检索学习的内容就越多。如果你感觉上面的要求不足为惧,那就开始学习吧!

本书有许多包含源代码的示例,放在有编号的列表中或者内嵌在普通文本中。这两种情况下源代码的格式都是以等宽字体样式显示的。有时也用加粗样式突出显示代码,表示与先前所示代码不同(有所更改),例如向现有代码行中添加新功能。

本书对大部分源代码做了格式化,以适应本书页面的排版。此外,若正文中有对代码的解释说明,则通常会删除源代码中的注释。为了突出重要概念,清单都给出了注释。本书示例的代码可以从异步社区本书详情页的“配套资源”处下载。

本书使用数据科学教育的标准用具——Jupyter Notebook,所以你应先掌握这个工具的用法。这对于中级Python学习者来说应该不难。访问GPU或者使其所有功能正常运行有时候会遇到困难,特别是在Windows系统,所以有些章节提供了谷歌Colaboratory(缩写为Colab)Notebook。这是谷歌的免费平台,并预先封装了必要的数据科学工具以及有限时长内免费的GPU。你可以直接在浏览器中运行这些代码,也可以将其他章节的代码上传到Colab——它们是兼容的。

GAN是一个拥有良好(尽管是零散的)资源的活跃领域。有学术倾向的人可以在arXiv官方网站找到相关的最新论文。arXiv是康奈尔大学拥有和运营的学术论文电子预印本在线存储库。

本书作者都是 Medium 写作平台的活跃撰稿人(特别是以技术为核心的出版物 Towards Data ScienceHacker Noon),你可以在那里找到他们写的最新内容。

本书力求在理论和实践之间取得平衡。全书分为如下三部分。

第一部分生成对抗网络(GAN)与生成模型导论 这部分介绍生成学习和GAN的基本概念,并实现几种GAN最典型的变体。

第二部分 GAN的前沿主题

在第一部分的基础上,这部分深入研究了GAN的基础理论,并实现了一系列高级的GAN架构。

第三部分 何去何从

这一部分讨论了如何应用GAN和对抗学习以及在何处应用它们。


Jakub Langr是将GAN用于创意和广告应用程序的一家初创公司的联合创始人。Jakub毕业于牛津大学,自 2013 年以来一直从事数据科学工作,近期在一家公司担任数据科学技术负责人,在Mudano担任研发数据科学家。他为英国伯明翰大学和许多私营公司设计并教授数据科学课程,还在牛津大学担任客座讲师。他还是英国皇家统计协会的研究员,常在各种国际会议上应邀演讲。Jakub将他从本书中获得的所有收益捐赠给了非营利组织——英国心脏基金会。

Vladimir Bok在微软研究院进行音乐风格转换的独立研究项目时认识到了GAN的巨大潜力。他曾在美国创业孵化器Y Combinator支持的初创公司做数据科学应用,并在微软领导研究跨功能计划。最近,Vladimir一直在一家总部位于纽约的初创公司负责数据科学项目,该公司为在线旅行和电子商务品牌(其中包括《财富》500 强企业)提供机器学习服务。Vladimir以优异的成绩毕业于哈佛大学并获得了计算机学士学位。他从本书中获得的所有收益捐赠给了非营利组织——Girls Who Code。


本书封面上的人物形象被冠以“伦敦资产阶级”的标题,意味着这是来自伦敦的一位资产阶级女性。该插画最初发行于1787年,出现在Jacques Grasset de Saint-Sauveur(1757—1810)的各国服饰集锦中。每张插图都是手工绘制和着色的。Grasset de Saint-Sauveur的藏品种类丰富,生动地再现了200年前世界上各个城镇和地区间的文化差异。当时的区域差异性较大,人们说着不同的语言和方言,无论是在城市还是乡村,人们都很容易通过衣着来辨别各自的居所、职业和地位。

后来,人们的衣着发生了变化,曾经丰富的区域多样性逐渐消失。现在,人们很难通过衣着区分不同地方的居民,更不必说不同的国家、地区或城镇了。或许我们已经将多样的文化转变为更加多样的个人生活,当然还有更加多样和快节奏的科技生活。

在很难将一本计算机图书和另一本计算机图书区分开的当今时代,曼宁出版社选择如此栩栩如生的插画作为封面,恰好与计算机行业的创造性和主动性相吻合。


本书由异步社区出品,社区(https://www.epubit.com/)为您提供相关资源和后续服务。

本书为读者提供源代码。要获得以上配套资源,请在异步社区本书页面中单击,跳转到下载界面,按提示进行操作即可。注意:为保证购书读者的权益,该操作会给出相关提示,要求输入提取码进行验证。

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎读者将发现的问题反馈给我们,帮助我们提升图书的质量。

如果读者发现错误,请登录异步社区,按书名搜索,进入本书页面,单击“提交勘误”,输入勘误信息,单击“提交”按钮即可。本书的作者和编辑会对读者提交的勘误进行审核,确认并接受后,将赠予读者异步社区的100积分(积分可用于在异步社区兑换优惠券、样书或奖品)。

我们的联系邮箱是contact@epubit.com.cn。

如果读者对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果读者有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们;有意出版图书的作者也可以到异步社区在线投稿(直接访问www.epubit.com/selfpublish/submission即可)。

如果您来自学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果读者在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请将怀疑有侵权行为的链接发邮件给我们。这一举动是对作者权益的保护,也是我们持续为广大读者提供有价值的内容的动力之源。

“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www. epubit.com。

“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近40年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、人工智能、测试、前端、网络技术等。

异步社区

微信服务号


第一部分将带你步入生成对抗网络(Generative Adversarial Network,GAN)的世界,欣赏几种最为典型的GAN变体的实现。


本章主要内容

机器能否思考——这一想法比计算机本身出现得还要早。数学家、逻辑学家以及计算机科学家艾伦•图灵(Alan Turing),或许是凭借在破译密码机方面做出的贡献而广为人知的,但他于1950年撰写的《计算机器与智能》(Computing machinery and intelligence)这篇论文也足以使他的名字永载后世。

在这篇文章中,图灵提出了一种叫作模仿游戏的测试。今天,人们更习惯称之为图灵测试。在这个假设的测试场景中,一个不知情的观察者与位于一扇紧闭的门后的两个“对应者”交谈:一个是人类,另一个是计算机。图灵认为,如果观察者不能分辨出哪个是人、哪个是机器,那么必须承认通过该测试的计算机是智能的。

试过与自动聊天机器人或智能语音助手进行对话的人都知道,要通过这个看似简单的测试,计算机还有很长的路要走。然而,在其他类型的任务中,计算机不仅能与人类的表现相媲美,在一些领域甚至超越了人类——即使是一些在最近还被认为最智能的算法都无法企及的领域,例如,计算机在人脸识别中已经能做到超越人类的精确度,还能不需人类经验即可掌握围棋技能。[1]

机器学习算法非常擅长识别已有数据中的模式,并将这种洞察能力用于诸如分类(为样本分配正确类别)和回归(根据一系列的输入进行数值估算)等任务中。但是当被要求生成新数据时,计算机就显得力不从心了。算法可以击败国际象棋大师,估计股价走势,并能分辨信用卡交易是否可能是欺诈,但相比之下,任何与Amazon的Alexa或Apple的Siri进行闲聊的尝试却往往注定失败。事实上,人类最基本和最重要的能力——例如一次愉快的对话或者一件原创作品的制作——都足以使最先进的超级计算机束手无策。

但这一切在2014年发生了改变,当时还是加拿大蒙特利尔大学博士生的伊恩•古德费勒(Ian Goodfellow)发明了GAN,这项技术使得计算机能够利用两个独立的神经网络生成真实的数据。GAN并不是第一个用于生成数据的计算机程序,但其出色的效果和多功能性使得它脱颖而出。GAN已经取得了惊人的成果,而这些成果长期以来被认为是几乎不可能通过人工系统实现的,比如,生成栩栩如生的伪图像,将涂鸦手绘变成照片风格的图像,或者将视频片段中奔跑的骏马变成黑白相间的斑马——利用GAN,这些都不需要大量精心标注的训练数据即可实现。

由于GAN的出现,机器数据生成技术取得了长足的进步,图1.1所示的人脸合成就是一个很好的例子。就在GAN被发明出来的2014年,机器生成的最好效果只是一张模糊的脸——这在当时已被认为是突破性的成就了。仅仅3年后的2017年,GAN技术的进步就让计算机能够生成以假乱真的高分辨率人脸了!在本书中,我们将深入探究让这一切成为可能的算法——GAN。

(来源:The Malicious Use of Artificial Intelligence: Forecasting, Prevention, and Mitigation, by Miles Brundage et al., 2018.)
图1.1 人脸生成的进展

GAN是一类由两个同时训练的模型组成的机器学习技术:一个是生成器,训练其生成伪数据;另一个是鉴别器,训练其从真实数据中识别伪数据。

生成(generative)一词预示着模型的总目标——生成新数据。GAN通过学习生成的数据取决于所选择的训练集,例如,如果我们想用GAN合成一幅看起来像达•芬奇作品的画作,就得用达•芬奇的作品作为训练集。

对抗(adversarial)一词则是指构成GAN框架的两个动态博弈、竞争的模型:生成器和鉴别器。生成器的目标是生成与训练集中的真实数据无法区分的伪数据——在刚才的示例中,这就意味着能够创作出和达•芬奇画作一样的绘画作品。鉴别器的目标是能辨别出哪些是来自训练集的真实数据,哪些是来自生成器的伪数据。也就是说,鉴别器充当着艺术品鉴定专家的角色,评估被认为是达•芬奇画作的作品的真实性。这两个网络不断地“斗智斗勇”,试图互相欺骗:生成器生成的伪数据越逼真,鉴别器辨别真伪的能力就要越强。

网络(network)一词表示最常用于生成器和鉴别器的一类机器学习模型:神经网络。依据GAN实现的复杂程度,这些网络包括从最简单的前馈神经网络(第3章)到卷积神经网络(第4章)以及更为复杂的变体(如第9章的U-Net)。

支撑GAN的数学理论是较为复杂的(我们将在后面几章中集中探讨,特别是第3章和第5章),幸运的是,我们有许多现实世界的示例可以做类比,这样能使GAN更容易理解。前面我们讨论了一个艺术品伪造者(生成器)试图愚弄艺术品鉴定专家(鉴别器)的示例。伪造者制作的假画越逼真,鉴定专家就必须具有越强的辨别真伪的能力。反过来也是成立的:鉴定专家越善于判断某幅画是否是真的,伪造者就越要改进造假技术,以免被当场识破。

还有一个比喻经常用来形容GAN(Ian Goodfellow经常喜欢用的示例),假币制造者(生成器)和试图逮捕他的侦探(鉴别器)——假钞看起来越真实,就需要越好的侦探才能辨别出它们,反之亦然。

用更专业的术语来说,生成器的目标是生成能最大程度有效捕捉训练集特征的样本,以至于生成出的样本与训练数据别无二致。生成器可以看作一个反向的对象识别模型——对象识别算法学习图像中的模式,以期能够识别图像的内容。生成器不是去识别这些模式,而是要学会从头开始学习创建它们,实际上,生成器的输入通常不过是一个随机数向量。

生成器通过从鉴别器的分类结果中接收反馈来不断学习。鉴别器的目标是判断一个特定的样本是真的(来自训练集)还是假的(由生成器生成)。因此,每当鉴别器“上当受骗”将假的图像错判为真实图像时,生成器就会知道自己做得很好;相反,每当鉴别器正确地将生成器生成的假图像辨别出来时,生成器就会收到需要继续改进的反馈。

鉴别器也会不断地改善,像其他分类器一样,它会从预测标签与真实标签(真或假)之间的偏差中学习。所以随着生成器能更好地生成更逼真的数据,鉴别器也能更好地辨别真假数据,两个网络都在同时不断地改进着。

表1.1总结了GAN的两个子网络的关键信息。

表1.1 生成器和鉴别器的关键信息

生成器

鉴别器

输入

一个随机数向量

鉴别器的输入有两个来源:来自训练集的真实样本和来自生成器的伪样本

输出

尽可能令人信服的伪样本

预测输入样本是真实的概率

目标

生成与训练集中数据别无二致的伪数据

区分来自生成器的伪样本和来自训练集的真实样本

现在,你已经对GAN及其组成网络有了一个大致的了解,接下来看一下系统的实际运行情况。假定我们的目标是教GAN生成逼真的手写数字(第3章将实现这样一个模型,并在第4章中对其进行扩展)。GAN的核心结构如图1.2所示。

让我们看看其中的细节。

(1)训练数据集——包含真实样本的数据集,是我们希望生成器能以近乎完美的质量去学习模仿的数据集。在这个示例中,数据集由手写数字的图像组成。该数据集用作鉴别器网络的输入

图1.2 两个GAN子网及其输入、输出和交互

(2)随机噪声向量——生成器网络的初始输入。此输入是一个由随机数组成的向量,生成器将其用作合成伪样本的起点。

(3)生成器网络——生成器接收随机数向量作为输入并输出伪样本。它的目标是生成和训练数据集中的真实样本别无二致的伪样本。

(4)鉴别器网络——鉴别器接收来自训练集的真实样本或生成器生成的伪样本作为输入。对每个样本,鉴别器会进行判定并输出其为真实的概率。

(5)迭代训练/调优——对于每个鉴别器的预测,我们会衡量它效果有多好——就像对常规的分类器一样——并用结果反向传播去迭代优化鉴别器网络和生成器网络。

了解各种GAN组件的用途可能像是在看搜索引擎的快照,除非我们看到它们是如何运作的,否则将无法完全理解。这就是本节的主要内容。我们首先介绍GAN的训练算法,其次演示训练过程,以便你可以清楚地看到实际的架构图。


GAN训练算法

对于每次训练迭代,执行如下操作。

  (1)训练鉴别器。

    a. 从训练集中随机抽取真实样本

    b. 获取一个新的随机噪声向量,用生成器网络合成一个伪样本

    c. 用鉴别器网络对进行分类。

    d. 计算分类误差并反向传播总误差以更新鉴别器的可训练参数,寻求最小化分类误差。

  (2)训练生成器。

    a. 获取一个新的随机噪声向量,用生成器网络合成一个伪样本

    b. 用鉴别器网络对进行分类。

    c. 计算分类误差并反向传播以更新生成器的可训练参数,寻求最大化鉴别器误差。

结束


GAN训练过程可视化

GAN的训练算法如图1.3所示,其中的字母表示GAN训练算法中的步骤。

图1.3 GAN训练算法有两个主要部分。训练鉴别器和训练生成器两部分,在训练过程的对应阶段中描绘了同一个GAN网络在不同时间点的状态


子程序图示说明

  (1)训练鉴别器。

    a. 从训练集中随机抽取真实样本

    b. 获取一个新的随机噪声向量,用生成器网络合成一个伪样本

    c. 用鉴别器网络对进行分类。

    d. 计算分类误差并反向传播总误差以更新鉴别器的权重和偏置,寻求最小化分类误差。

  (2)训练生成器。

    a. 获取一个新的随机噪声向量,用生成器网络合成一个伪样本

    b. 用鉴别器网络对进行分类。

    c. 计算分类误差并反向传播以更新生成器的权重和偏差,寻求最大化鉴别器误差。


你可能想知道GAN训练循环何时停止,更准确地说,如何知道GAN何时能被完全训练好,以便确定适当的训练迭代次数?对于一般的神经网络,我们通常有一个明确的目标去实现以及用来衡量效果。例如,当训练一个分类器时,我们度量在训练集和验证集上的分类误差,一旦发现验证集误差开始变坏,就停止进程(为了避免过度拟合)。在GAN结构中,鉴别器网络和生成器网络有两个互为竞争对手的目标:一个网络越好,另一个就越差。那么,我们如何决定何时停止进程呢?

熟悉博弈论的人可能会意识到这是一个零和博弈问题,即一方的收益等于另一方的损失。当一方提高一定程度时,另一方会恶化同样的程度。零和博弈都有一个纳什均衡点,那就是任何一方无论怎么努力都不能改善他们的处境或者结果。

当满足以下条件时,GAN达到纳什均衡

(1)生成器生成的伪样本与训练集中的真实数据别无二致。

(2)鉴别器所能做的只是随机猜测一个特定的样本是真的还是假的(也就是说,猜测一个示例为真的概率是50%)。

 

注意 

纳什均衡是以美国经济学家、数学家John Forbes Nash的名字命名的,他的生平事迹和职业生涯被收录在一本名为《美丽心灵》(A Beautiful Mind)的传记中,并被翻拍成同名电影。

 

让我们来解释为何会出现这种情况。当每一个伪样本与来自训练集的真实样本无法区分时,鉴别器用任何手段都无法区分它们。因为鉴别器接收到的样本有一半是真的,一半是假的,所以它所能做的最有用的事情就是抛硬币,以50%的概率把每个样本分为真和假。

同样,生成器也处于这样一个点上,它不能从进一步的调优中获得任何提高了。因为生成器生成的样本早已和真实样本无法区分了,以至于对随机噪声向量转换为伪样本的过程做出哪怕一丁点儿改变,也可能给鉴别器提供从真实样本中辨别出伪样本的机会,从而使生成器变得更糟。

当达到纳什均衡时,GAN就被认为是收敛的。这是一个棘手的问题,在实践中,由于在非凸博弈中实现收敛所涉及的巨大复杂性,几乎不可能达到GAN的纳什均衡(在后续的章节中,特别是第5章中,有更多关于收敛的内容)。实际上,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可实现功能的一些皮毛,但是,我们希望这本书能够为你提供必要的理论知识和实践技能,使你能够继续从各个方面探索自己最感兴趣的领域。

事不宜迟,让我们开始吧!

(1)GAN 是一种利用两个神经网络之间的动态竞争来合成真实数据样本的深度学习技术,例如能合成具有照片级真实感的虚假图像。构成一个完整GAN的两个网络如下:

(2)目前,GAN在许多不同的领域都有着广泛的应用,如时尚、医药和网络安全等。

[1] 见Surpassing Human-Level Face Verification Performance on LFW with GaussianFace, by Chaochao Lu and Xiaoou Tang, 2014. 另见《纽约时报》文章GoogleTang, 2014Level Fs Chinese Go Master in Win for A.I.,by Paul Mozur, 2017.

[2] 见GoogleMozur, 2017Level Fs Chinese Go Master in Win f, by Cade Metz, Wired, 2017.

[3] Amazon Has Developed an AI Fashion Designer, by Will Knight, MIT Technology Review, 2017.

[4] Synthetic Data Augmentation Using GAN for Improved Liver Lesion Classification, by Maayan Frid-Adar, et al., 2018.

[5] OpenAI Founder: Short-Term AGI Is a Serious Possibility, by Tony Peng, Synced, 2018. 另见A Path to Unsupervised Learning Through Adversarial Networks, by Soumith Chintala,f Code, 2016.


相关图书

ChatGPT原理与应用开发
ChatGPT原理与应用开发
深度学习的数学——使用Python语言
深度学习的数学——使用Python语言
深度学习:从基础到实践(上、下册)
深度学习:从基础到实践(上、下册)
动手学深度学习(PyTorch版)
动手学深度学习(PyTorch版)
深度学习与医学图像处理
深度学习与医学图像处理
深度强化学习实战:用OpenAI Gym构建智能体
深度强化学习实战:用OpenAI Gym构建智能体

相关文章

相关课程