《智能系统与技术丛书 生成对抗网络入门指南》

举报
华章计算机 发表于 2019/05/28 17:26:46 2019/05/28
【摘要】 本书面向机器学习从业人员、高校相关专业学生以及具备一定基础的人工智能领域爱好者,书中包含了生成对抗网络的理论知识与项目实践。通过本书的学习,读者可理解生成对抗网络的技术原理,并通过书中的代码实例了解技术细节。本书尽量避免出现需要高性能计算设备才可以运行的项目,希望读者在感受到生成对抗网络的魅力之后,有机会在自己的设备上尝试运行一些项目。只有通过不断实践,才能真正理解生成对抗网络。

智能系统与技术丛书


生成对抗网络入门指南

生成对抗网络入门指南 立.jpg

史丹青 编著

前  言

       生成对抗网络(GAN)毫无疑问是当下热门的人工智能技术之一,被美国《麻省理工科技评论》评为2018年“全球十大突破性技术”。从2014年至今,与GAN有关的论文数量急速上升,网络上有人整理了近年来的GAN模型,截至2018年2月已经有超过350个不同形态的变种,并且数量仍然在持续增加中。在图像生成模型的质量上,生成对抗网络技术可以说实现了飞跃,很多衍生模型已经在一定程度上解决了特定场景中的图像生成问题。此外,诸如文本到图像的生成、图像到图像的生成等应用研究也让工业界与学术界都非常“兴奋”,为人工智能行业带来了非常多的可能性。

       目前网络上关于生成对抗网络的介绍林林总总,越来越多的人对它的出现感到好奇,想知道计算机是如何通过博弈的方法来进行自我优化的。我也曾在知乎上写过一篇介绍性文章,但写完之后总觉得不够尽兴,希望有机会把这个领域相对完整的知识体系呈现在初学者面前,并帮助那些对人工智能技术感兴趣的朋友,让他们尽量少走一些弯路,更直观地了解这个前沿的新兴领域。

       本书面向机器学习从业人员、高校相关专业学生以及具备一定基础的人工智能领域爱好者,书中包含了生成对抗网络的理论知识与项目实践。通过本书的学习,读者可理解生成对抗网络的技术原理,并通过书中的代码实例了解技术细节。本书尽量避免出现需要高性能计算设备才可以运行的项目,希望读者在感受到生成对抗网络的魅力之后,有机会在自己的设备上尝试运行一些项目。只有通过不断实践,才能真正理解生成对抗网络,并将其应用到自己的学习与工作中。

本书主要内容

       本书共10章。第1章为入门章节,介绍了人工智能领域目前的发展状况,以及生成对抗网络的基本概念及其在整个研究领域中的状况。由于第1章不涉及机器学习与深度学习的理论与实践细节,但在之后的生成对抗网络学习中会用到相关概念,因此希望读者自己补全这些基础知识。

       第2章是编程基础章节,是对机器学习与深度学习编程语言、框架以及工具的介绍,涉及的内容包括Python语言及第三方工具、TensorFlow框架、Keras框架以及深度学习云平台Floyd。如果读者已经具备深度学习领域的编程基础,可以选择性地跳过本章部分内容。

       第3章讨论生成对抗网络的整体理论框架,本书会按照基础概念、理论推导、可视化理解以及具体工程实践的顺序来带领大家认识GAN。最后的代码部分使用TensorFlow实现,由于不会涉及大量的运算,读者可以按照书中的示例直接在笔记本电脑上运行代码,以帮助加深对知识的理解。

       第4章到第6章在原始GAN的基础上介绍各种不同结构,但都是具有标志性特点的GAN。正因为有这样的多样性,才使得该领域一直充满活力。

       第4章介绍基于深度卷积神经网络的生成对抗网络(DCGAN),这是一种在图像生成领域非常流行的框架结构,由于对于卷积层的使用以及一些其他的优化,使得模型在图像生成的时候具有更高的质量。本书会使用Keras框架的代码来搭建面向手写数据集的DCGAN整体框架以及训练代码。在Keras的帮助下,我们可以比较简便地完成整个模型,这也是深度学习框架带来的便利。由于使用了卷积层,在笔记本电脑上运行可能需要花费一些时间,如果希望快速得出结果,读者可以使用第2章介绍的云平台进行云端的GPU运算。最终,这一章还会给出DCGAN的一些创新性应用,这也为之后GAN在多媒体领域的应用打下了基础。

       第5章首先介绍了目前GAN结构存在的问题,并由这个问题出发提出了业界非常著名的模型WGAN。WGAN的理论推导看起来有些复杂,但是最终得出的优化方法却简单得令人吃惊。本章的实践部分是在DCGAN的Keras代码基础上进行修改的,最终读者会发现只需要几处代码调整就可以完成理论上更优的模型设计。这也从另一个侧面反映了理论研究的重要性,只有真正懂得事物背后的道理,才能给出优秀的方案。这一章最后会给出对于WGAN算法本身的改进—WGAN-GP,官方也给出了开源代码,WGAN-GP属于业界比较优秀的方案,大量的论文都拿它作为比较对象。

       第6章涉及一些不同结构的GAN,将它们大致分为三个部分,包括监督式学习、半监督式学习与无监督式学习。在这一章中我们也可以看到GAN各种各样的可能性,比如在有标签的条件式生成对抗网络(cGAN)的帮助下,我们可以根据设定好的标签来进行具体分类图片的生成,而通过无标签生成的InfoGAN可以让隐含编码(latent code)中的每一维都具有实际意义,并通过调节输入的参数对生成内容进行定制。

       第7章与第8章的核心思想建立在条件式GAN研究的基础上,但是方法和网络都做了进一步的改进。第7章为文本到图像的生成,用户只需输入一句话就可以得到想要的图像。而第8章则是用户根据自己提供的图像最终呈现出图像中的理想画面,其中涉及知名的算法Pix2Pix以及CycleGAN等。这些项目的源码大多是开源的,感兴趣的读者可以根据官网或书中提供的方法对这些模型应用进行试验。

       上面的章节大多从理论出发,但是最终都会涉及具体的应用场景。第9章希望为读者更具体地介绍GAN的应用层面,从多媒体领域到艺术与设计领域,展示GAN在这些行业的发展中提供了怎样的帮助。由于GAN还是一项非常“年轻”的技术,因此也希望通过这一章的内容来启发读者,在实际工作与科研过程中进一步思考还有什么更好的应用场景,也许它会成为你使用人工智能技术改变的下一个行业。

       第10章为收尾章节,希望能够为初次学习GAN或者对GAN技术有着浓厚兴趣的读者提供一些行业研究的热点方向。生成对抗网络是当下深度学习领域的研究热点,也是一项正在飞速发展的技术,考虑到内容的时效性,本书网站https://ganbook.org会持续更新科研方向与动态。

致谢

       首先要感谢学术界数不清的优秀科研人员耕耘在科学技术的前沿,正是他们产出的高质量研究成果以及论文推动着时代的发展,带来了这个全新的人工智能时代。本书也是站在巨人的肩膀上,大量参考了相关的文献材料,没有这些研究者就没有本书的诞生。也要感谢互联网上愿意分享的优秀技术博主和开发者,我从他们的分享中学到了太多太多。感谢开源平台GitHub聚集了数不清的开发者,开源精神让开发变得更加便捷,也让知识传播变得更加高效。

       感谢机械工业出版社华章公司的朱捷先生对我的支持,在我写作的过程中提供了非常多的思路与帮助,正是他对我的认可和鼓励促使我完成本书。感谢蔚馨女士对本书的校对和编辑,并为本书提供了大量高质量的素材。此外也感谢所有为本书的出版付出努力的工作者。

       最后感谢我的父母以及教导我的老师们,是他们的栽培成就了现在的我,在这里再一次感恩他们对我的付出。

与我联系

       读者可以通过知乎(https://www.zhihu.com/people/shidanqing)与我取得联系,很乐意收到你的私信,并与你进行相关技术的交流。另外我也会维护一个收集读者与专家建议及反馈的网站(https://ganbook.org),一些源码以及未来的技术更新会同步在这个网站上。敬请各位读者与行业专家对本书不足的地方予以批评和指正。





CONTENTS

目  录

前言

第1章 人工智能入门  1

1.1 人工智能的历史与发展  1

1.1.1 人工智能的诞生  3

1.1.2 人工智能的两起两落  6

1.1.3 新时代的人工智能  7

1.2 机器学习与深度学习  10

1.2.1 机器学习分类  11

1.2.2 神经网络与深度学习  12

1.2.3 深度学习的应用  13

1.3 了解生成对抗网络  15

1.3.1 从机器感知到机器创造  15

1.3.2 什么是生成对抗网络  19

1.4 本章小结  20

第2章 预备知识与开发工具  21

2.1 Python语言与开发框架  21

2.1.1 Python语言  21

2.1.2 常用工具简介  23

2.1.3 第三方框架简介  26

2.2 TensorFlow基础入门  27

2.2.1 TensorFlow简介与安装  27

2.2.2 TensorFlow使用入门  30

2.2.3 Tensorflow实例:图像分类  31

2.3 Keras基础入门  33

2.3.1 Keras简介与安装  33

2.3.2 Keras使用入门  34

2.3.3 Keras实例:文本情感分析  36

2.4 Floyd:使用深度学习云平台运行程序  38

2.4.1 深度学习云平台简介  38

2.4.2 Floyd使用入门  39

2.4.3 Floyd实例:神经网络风格转换  43

2.5 本章小结  45

第3章 理解生成对抗网络  46

3.1 生成模型  46

3.1.1 生成模型简介  46

3.1.2 自动编码器  47

3.1.3 变分自动编码器  50

3.2 GAN的数学原理  52

3.2.1 最大似然估计  52

3.2.2 生成对抗网络的数学推导  55

3.3 GAN的可视化理解  58

3.4 GAN的工程实践  59

3.5 本章小结  67

第4章 深度卷积生成对抗网络  68

4.1 DCGAN的框架  68

4.1.1 DCGAN设计规则  68

4.1.2 DCGAN框架结构  72

4.2 DCGAN的工程实践  73

4.3 DCGAN的实验性应用  79

4.3.1 生成图像的变换  79

4.3.2 生成图像的算术运算  81

4.3.3 残缺图像的补全  83

4.4 本章小结  85

第5章 Wasserstein GAN  86

5.1 GAN的优化问题  86

5.2 WGAN的理论研究  89

5.3 WGAN的工程实践  92

5.4 WGAN的实验效果分析  96

5.4.1 代价函数与生成质量的相关性  96

5.4.2 生成网络的稳定性  97

5.4.3 模式崩溃问题  99

5.5 WGAN的改进方案:WGAN-GP  100

5.6 本章小结  104

第6章 不同结构的GAN  105

6.1 GAN与监督式学习  105

6.1.1 条件式生成:cGAN  105

6.1.2 cGAN在图像上的应用  106

6.2 GAN与半监督式学习  110

6.2.1 半监督式生成:SGAN  110

6.2.2 辅助分类生成:ACGAN  112

6.3 GAN与无监督式学习  113

6.3.1 无监督式学习与可解释型特征  113

6.3.2 理解InfoGAN  115

6.4 本章小结  119

第7章 文本到图像的生成  120

7.1 文本条件式生成对抗网络  120

7.2 文本生成图像进阶:GAWWN  123

7.3 文本到高质量图像的生成  127

7.3.1 层级式图像生成:StackGAN  128

7.3.2 层级式图像生成的优化:StackGAN-v2  132

7.4 本章小结  135

第8章 图像到图像的生成  136

8.1 可交互图像转换:iGAN  136

8.1.1 可交互图像转换的用途  136

8.1.2 iGAN的实现方法  138

8.1.3 iGAN软件简介与使用方法  140

8.2 匹配数据图像转换:Pix2Pix  143

8.2.1 理解匹配数据的图像转换  143

8.2.2 Pix2Pix的理论基础  145

8.2.3 Pix2Pix的应用实践  150

8.3 非匹配数据图像转换:CycleGAN  157

8.3.1 理解非匹配数据的图像转换  157

8.3.2 CycleGAN的理论基础  160

8.3.3 CycleGAN的应用实践  162

8.4 多领域图像转换:StarGAN  166

8.4.1 多领域的图像转换问题  166

8.4.2 StarGAN的理论基础  169

8.4.3 StarGAN的应用实践  171

8.5 本章小结  177

第9章 GAN的应用:从多媒体到艺术设计  178

9.1 GAN在多媒体领域的应用  178

9.1.1 图像去模糊  178

9.1.2 人脸生成  181

9.1.3 音频合成  184

9.2 GAN与AI艺术  188

9.2.1 AI能否创造艺术  188

9.2.2 AI与计算机艺术的发展  190

9.2.3 艺术生成网络:从艺术模仿到创意生成  196

9.3 GAN与AI设计  202

9.3.1 AI时代的设计  202

9.3.2 AI辅助式设计的研究  205

9.4 本章小结  212

第10章 GAN研究热点  213

10.1 评估与优化  213

10.2 对抗攻击  216

10.3 发展中的GAN  219

参考文献  222


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。