前言
为何写作本书
这不是笔者写的第一本书,也不会是最后一本书,但可能是笔者创作时间最长的一本书,之前写过几本书后就变得特别忙碌,以至于本书的写作时间超过了一年。以前写的几本书,都是笔者一个人写的,工作量特别大,而本书是我与实验室的博士师弟一起完成的。师弟本科是物理专业,数学基础比我好,读博时做了GAN以及语音处理方面的工作,所以主要负责本书基础部分和语音应用部分的撰写,而我则负责撰写GAN在计算机视觉领域中的各类典型框架和应用部分。
说起与GAN的结缘,要回溯到2015年。那时候我在360人工智能研究院做算法工程师。那时我刚接触深度学习不久,处于快速学习的阶段,有一天翻到了关于GAN的内容,觉得特别新奇。但在360工作的时候特别忙,没有机会深入研究和持续关注GAN,而且那时候的GAN离应用落地确实还有很大的距离。
2017年,我换工作到了陌陌深度学习实验室,其早期的产品中关于GAN的内容其实不多,但是产品对GAN的需求越来越大,比如超分辨率、人像美颜与美妆,所以我开始真正重视GAN,有时间就会关注GAN,慢慢地整理和输出了一些与GAN相关的内容,包括博客和视频课程。那两年,每年都有上千篇与GAN相关的文章出现,让我很苦恼。一方面研究GAN理论的文章特别多,看起来很费脑;另一方面,千奇百怪的应用都开始出现,好像每一个领域GAN都能插一脚,给人一种一天看1篇论文都不够的感觉。
就这样,我大概在焦虑中追踪了两年与GAN相关的内容,直到2019年左右,我发现GAN在业界突然开始大规模商业化。诸如人脸技术中的美妆、风格化、换脸,到图像质量提升技术中的超分辨,GAN已经不再是“玩具式”算法,而是真正成为很多领域的基础技术。在这段时间,我同时在创作《深度学习之人脸图像处理》和《深度学习之摄影图像处理》,其中也穿插了许多关于GAN的内容。但因为不是专注于讲解GAN,所以许多基础知识只能略讲,基础不好的读者不太容易掌握。
后来,杨福川编辑邀请我写一本关于GAN的书,正好师弟郭晓洲在我们平台创作了一些有关GAN的理论基础的文章,所以我就邀请师弟扬长补短,一起开始了本书的创作。在创作完这本书之后(其实内容已经不少了),我仍然觉得意犹未尽,因为GAN可以输出的内容真的是太多了。本书权当是一个开篇,它适合所有对GAN技术感兴趣的朋友阅读。后续我们应该还会创作更多相关图书,敬请大家期待。
本书主要特点
1.理论基础知识完善
相比基础的卷积神经网络(Convolutional Neural Network,CNN),生成对抗网络(Generative Adversarial Network,GAN)是一个数学味比较浓厚的创新式架构,它的优化目标设计、定量评估指标等都涉及许多比较底层的数学概念,因此为了让本书区别于市面上类似的图书,我们不仅将其定位为模型应用图书,而且花了4章来专门阐述GAN的优化目标与训练、评估等内容,提供了丰富的理论知识。
2.内容丰富与前沿
本书共12个章,其中前4章是基础知识,后8章都是GAN在各个垂直领域中的应用,包括图像生成、视频生成、图像翻译、人脸图像编辑、图像质量提升、通用图像编辑、对抗攻击、语音信号处理等,基本覆盖了GAN在视觉和语音中的绝大部分应用场景。
3.实践充分
本书后8章都是GAN的应用,一共有9个案例,其中视觉相关案例有6个,语音信号处理相关案例有3个。案例部分都对核心的代码进行了讲解,对实验结果进行了分析,并提供了所有的源代码(基于PyTorch编写)和数据以供读者对本书的实验进行复现(相关资源可到“有三AI”公众号获取)。通过理论结合实践的方式让读者加深对GAN的理解。
4.图表清晰丰富
本书笔者绘制了大量的原创插图,既保证了内容的原创性,又保证了图像的质量。
本书读者对象
本书是一本系统讲解GAN原理与实践的书,适合的读者对象主要分为下面几类:
❑人工智能、深度学习、计算机视觉等专业的师生;
❑对GAN技术感兴趣的初学者;
❑深度学习领域从业者等。
如何阅读本书
本书一共12章,前4章是理论基础,后8章是应用实践。
第1章介绍了无监督生成模型的基本理论,包括无监督生成模型的研究范畴和常用的生成模型原理,例如以完全可见置信网络、流模型、变分自编码器、玻尔兹曼机为代表的显式生成模型和以GAN为代表的隐式生成模型。
第2章介绍了GAN的目标函数及其数学原理,包括原始GAN、LSGAN、EBGAN、fGAN、WGAN、Loss-sensitive GAN、WGAN-GP、IPM、相对GAN以及BEGAN等内容。
第3章介绍GAN在训练中的常见问题和相应解决方案,其中常见问题包括梯度消失问题、目标函数不稳定问题以及模式崩溃问题,解决方案包括退火噪声、谱正则化、一致优化、unrolledGAN、DRAGAN、MADGAN等。
第4章介绍了GAN的评价指标和可视化,其中评价指标包括IS、FID、MMD、Wasserstein距离、最近邻分类器、NRDS等,可视化部分介绍了GAN Lab工具。
第5章介绍了图像生成GAN的各类模型与应用,包括全卷积GAN、条件GAN、多尺度GAN、属性GAN、多判别器与生成器GAN、数据增强与仿真GAN,并介绍了DCGAN与StyleGAN图像生成任务的实践。
第6章介绍了图像翻译GAN的各类模型与应用,包括有监督图像翻译GAN、无监督图像翻译GAN、多领域图像翻译GAN等,并介绍了Pix2Pix图像上色任务的实践。
第7章介绍了人脸图像编辑GAN的各类模型与应用,包括人脸表情编辑GAN、人脸年龄编辑GAN、人脸姿态编辑GAN、人脸风格编辑GAN、人脸换脸编辑GAN等,并介绍了基于StyleGAN的人脸图像重建与属性编辑任务的实践。
第8章介绍了图像质量增强GAN的各类模型与应用,包括图像去噪GAN、图像去模糊GAN、图像色调映射GAN、图像超分辨GAN、图像修复GAN等,并介绍了基于SRGAN的人脸图像超分辨任务的实践。
第9章介绍了三维图像与视频生成GAN的各类模型和应用,包括三维图像生成GAN、视频生成与预测GAN等。
第10章介绍了更通用的图像编辑GAN框架,包括深度编辑GAN、图像融合GAN、交互式图像编辑GAN等。
第11章介绍了对抗攻击以及GAN在其中的应用,包括对抗攻击的常见范式,用于攻击的Perceptual-Sensitive GAN、Natural GAN、AdvGAN等,用于防御的APEGAN、DefenseGAN等,并介绍了对抗工具包AdvBox的实践。
第12章介绍了GAN在语音信号处理中的应用,包括用于语音增强的SEGAN、用于语音风格转换的CycleGAN-VC、用于语音生成的WaveGAN。
致谢
感谢机械工业出版社的杨福川编辑,他联系我写作本书,并在后续的编辑校稿中完成了很多工作。
感谢有三AI公众号、有三AI知识星球的忠实粉丝,是他们的支持让我有了继续前行的力量。
感谢本书中涉及的GitHub开源项目的贡献者,是他们无私的技术分享,让更多人因此受益,这是这个技术时代里最伟大的事情。感谢前赴后继提出了书中方法的研究人员,因为他们的辛勤工作才有了本书的内容。
最后,感谢我的家人的宽容,因为忙于事业,我给他们的时间非常少,希望以后能做点改变。
言有三
于长沙
2022年9月1日
2017年,我在研究生进修期间首次接触到了GAN,那段时间正是GAN研究热度高涨之时。可能是由于物理学本科出身,我对相关的模型、理论有一些“执念”,总希望把它的每个细节、每个设计逻辑都理解透彻。在学习过程中,我发现GAN的涉及面非常宽泛,因而做了大量的学习记录。彼时,龙鹏师兄(即言有三)正在做AI知识公众号,我觉得非常有趣,便顺带将自己积累的一部分内容分享到公众号。之后,龙鹏师兄收到杨福川编辑的GAN图书写作邀请,我恰好对GAN的理论部分比较熟悉,就自然而然地参与其中。通过本书,我希望能帮助更多的人认识GAN。另外,由于笔者自身水平的限制,书中难免存在疏漏,敬请广大读者批评指正。
郭晓洲
于北京
2022年9月1日