本书主要内容

本书共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会持续更新科研方向与动态。