前言

前言

生成对抗网络(generative adversarial network,GAN)可用于构建新一代模型,因为它可以模拟任何数据分布方式。它是目前发展最迅速的机器学习(machine learning,ML)领域之一,并且有很多相关的重要研发工作正在开展。本书将介绍神经网络模型无监督训练的相关技术,带领读者从零开始构建7个完整的GAN项目。

本书首先介绍构建高效项目所涉及的概念、工具和库,其后不同的项目会用到不同类型的数据集。每一章在复杂程度和操作难度上都逐步提升,最终帮助读者熟练掌握GAN。

本书将介绍3D-GAN、DCGAN、StackGAN、CycleGAN等流行技术,并且通过实际实现来理解生成模型的架构和功能。

本书旨在介绍如何在工作或项目中构建、训练并优化完整的GAN模型。

读者对象

本书适合数据科学家、机器学习开发者、深度学习从业者,以及希望通过项目指南构建实际的GAN模型来检验自己的知识和专业技能的AI爱好者阅读。

本书内容

第1章,生成对抗网络简介。这一章首先介绍GAN相关概念,包括判别网络、生成网络、博弈论等。然后介绍生成网络和判别网络的架构与目标函数、GAN的训练算法、Kullback-Leibler散度和Jensen-Shannon散度、GAN的评估矩阵、GAN存在的各种问题、梯度消失和梯度爆炸问题、纳什均衡、批归一化,以及GAN正则化。

第2章,使用3D-GAN生成图形。这一章简单介绍3D-GAN和其架构细节。这一章会训练一个可以生成现实世界3D图形的3D-GAN。编写代码获取3D ShapeNets数据集,进行数据清洗和训练预处理后,使用深度学习库Keras构建3D-GAN模型。

第3章,使用cGAN实现人脸老化。这一章介绍cGAN(conditional generative adversarial network,条件生成对抗网络)和Age-cGAN。首先介绍数据准备过程,包括数据下载、数据清洗以及数据格式处理。届时会用到IMDb Wiki Images数据集。然后编写代码,使用Keras框架构建一个Age-cGAN模型,并在IMDb Wiki Images数据集上进行训练。最后,用训练好的模型生成图片,只需输入年龄作为参数,模型就可以生成一个人在不同年龄的面部图像。

第4章,使用DCGAN生成动画人物。这一章首先介绍DCGAN以及数据准备过程,包括获取动画人物的数据集、数据清洗以及训练预处理。我们会在Jupyter Notebook内使用Keras构建一个DCGAN模型。然后介绍训练DCGAN的各种技术,以及超参数调优。最后使用训练好的模型生成动画人物,并讨论DCGAN的实际应用。

第5章,使用SRGAN生成逼真图像。这一章介绍如何训练SRGAN生成逼真图像。训练流程的第一步是收集数据集,然后是数据清洗和数据格式处理。这一章会介绍如何收集数据集、清洗数据,以及将数据处理成训练所需的格式。

第6章,StackGAN:基于文本合成逼真图像。这一章首先介绍StackGAN,然后介绍如何收集数据集、清理数据以及转换数据格式。数据准备好后,在Jupyter Notebook内编写代码用Keras构建StackGAN,并在CUB数据集上训练该模型。训练好的模型可以基于文本生成逼真图像。最后讨论StackGAN在行业中的应用,以及在生产环境中的部署。

第7章,使用CycleGAN将绘画转换为照片。这一章介绍如何训练一个CycleGAN模型将绘画转换为照片。首先介绍CycleGAN及其各种用法,然后讲解数据收集、数据清洗和数据格式处理的各种技术,接着在Jupyter Notebook内使用Keras构建CycleGAN,并在预备好的数据集上训练CycleGAN模型,之后检验模型将绘画转换为照片的水平,最后介绍CycleGAN的实际应用。

第8章,使用cGAN实现图像对图像变换。这一章介绍如何训练cGAN来实现图像对图像变换。首先介绍cGAN和各种数据处理技术,包括数据收集、数据清洗和数据格式处理,接着在Jupyter Notebook内使用Keras构建cGAN,然后介绍如何在预备好的数据集上训练cGAN。训练中会尝试不同的超参数。最后测试cGAN,并讨论图像对图像变换的实际应用。

第9章,预测GAN的未来。介绍过GAN的基本原理并且完成了7个项目之后,最后这一章来预测GAN的前景:首先介绍近几年GAN应用所取得的成就和受欢迎程度,然后谈一下我对GAN未来的看法。

如何使用本书

阅读本书需要熟悉深度学习和Keras,并对TensorFlow有一定了解。如果有Python 3的编程经验会更好。

下载示例代码文件

如果你是从http://www.packtpub.com网站购买的图书,登录自己的账号后就可以下载所有已购图书的示例代码。如果你是从其他地方购买的图书,请访问http://www.packtpub.com/support网站并注册,我们会将代码文件直接发送到你的电子邮箱。

你可以通过以下步骤下载代码文件。

(1) 在我们的网站上登录或注册。

(2) 选择SUPPORT标签。

(3) 点击Code Downloads & Errata。

(4) 在Search框中输入书名并按屏幕上的提示操作。

文件下载后,使用以下工具的最新版本来解压缩或提取文件夹。

  • WinRAR/7-Zip(Windows)
  • Zipeg/iZip/UnRarX(Mac)
  • 7-Zip/PeaZip(Linux)

本书代码也托管在GitHub上,访问https://github.com/PacktPublishing/Generative-Adversarial-Networks-Projects即可获取1。Packt拥有丰富的图书和视频资源,相关代码见GitHub仓库:https://github.com/PacktPublishing/。欢迎查阅!

1可以直接访问本书中文版页面,下载本书项目的源代码:http://www.ituring.com.cn/book/2681。——编者注

排版约定

本书使用了多种文本样式。

正文中的代码采用以下样式:“使用scipy的loadmat()函数来检索体素。”

代码块的样式如下所示。

import scipy.io as io
voxels = io.loadmat("path to .mat file")['instance']

命令行输入或输出如下所示。

pip install -r requirements.txt

黑体字:用于新术语或重要的词语。

 此图标表示警告或需要特别注意的内容。

 此图标表示提示或技巧。

联系我们

一般反馈:发送邮件至feedback@packtpub.com并在主题处注明书名。如果对于本书有任何疑问,请发送邮件至questions@packtpub.com

勘误:尽管我们尽力确保内容准确,但出错仍在所难免。如果你在书中发现错误,不管是文本还是代码,请告知我们,我们不胜感激。如果你发现任何错误,请访问http://www.packtpub.com/submit-errata,选择书名,点击Errata Submission Form链接,并输入详细说明。

反盗版:如果你发现我们的作品在互联网上被以任何形式非法复制,请立即向我们提供地址或网站名称,非常感谢。请把可疑盗版材料的链接发至copyright@packtpub.com

成为作者:如果你掌握某个领域的专业知识,并且有兴趣写作图书,请访问authors.packtpub.com

评论

欢迎评论。阅读、使用本书后,请在购买网站上留下评论。这样潜在读者可以参考你的意见来决定是否购买,Packt可以了解你对该产品的看法,作者也能看到你对本书的反馈。谢谢!

想了解关于Packt的更多信息,请访问packtpub.com

电子书

扫描如下二维码,即可购买本书电子版。

{%}

目录

  • 版权声明
  • 前言
  • 第 1 章 生成对抗网络简介
  • 第 2 章 使用3D-GAN生成图形
  • 第 3 章 使用cGAN实现人脸老化
  • 第 4 章 使用DCGAN生成动画人物
  • 第 5 章 使用SRGAN生成逼真图像
  • 第 6 章 StackGAN:基于文本合成逼真图像
  • 第 7 章 使用CycleGAN将绘画转换为照片
  • 第 8 章 使用cGAN实现图像对图像变换
  • 第 9 章 预测GAN的未来