开发生成对抗网络(GAN)是一项复杂的任务,而且通常很难找到能够帮助大家理解生成对抗网络的代码。本书通过包含CycleGAN、SimGAN、DCGAN以及从2D图像生成3D模型等多个现代GAN实现的样例来帮助你更好地理解GAN。本书的每章内容都包含了能帮助你快速通过Python、TensorFlow和Keras来构建GAN架构的代码片段。这些代码十分易读,你可以通过它们来构建更为复杂的GAN架构。本书还包含了可以直接使用的DCGAN和Pix2Pix代码,你可以通过使用真实世界不同的数据集来理解这些复杂的应用。借助这些易于使用并能快速上手的代码方案,到了本书的最后,你将会具备处理工作中关于GAN模型问题和挑战的能力。你将学习:
◎GAN架构的伪代码表达形式
◎理解自己将会构建的每个GAN模型的通用架构
◎使用TensorFlow和Keras实现不同的GAN架构
◎在GAN模型中使用不同的数据集来训练神经网络
◎连接不同的GAN模型并学习如何进行调优
◎制作一个可以生成3D模型的网络
◎使用Pix2Pix开发一个可以做风格转换的GAN
本书通过多个不同的生成对抗网络(GAN)架构的实现来帮助读者更好地理解生成对抗网络背后的原理及其构建方式。书中还提供了大量易于理解并可以直接使用的GAN代码及其部署方式和数据集,以帮助读者更快地上手解决工作中所面临的问题并积极应对相关挑战。本书适合数据科学家、算法工程师、数据挖掘工程师以及机器学习领域相关的从业人员用来学习使用全新的深度学习技术解决工作中的问题,也适合机器学习和深度学习的爱好者、初学者用来体验深度学习的魅力。
目录
序言 1
第1章 什么是生成对抗网络 7
简介 7
生成模型和判别模型 8
工作流程 8
工作原理 9
神经网络的“爱情故事” 10
工作流程 10
工作原理 11
深度神经网络 11
工作流程 11
工作原理 12
架构基础 13
工作流程 13
工作原理 14
基本构建块――生成器 15
工作流程 15
工作原理 15
基本构建块――判别器 16
工作流程 16
工作原理 17
基本构建块――损失函数 18
工作流程 18
工作原理 18
训练 20
工作流程 20
工作原理 20
以不同方式组织GAN 20
工作流程 21
工作原理 21
GAN的输出是什么 22
工作流程 22
工作原理 22
理解GAN架构的优点 24
工作流程 24
工作原理 25
练习 25
第2章 数据优先、环境和数据准备 27
简介 27
数据是否如此重要 27
准备工作 28
工作流程 28
工作原理 29
更多内容 29
搭建开发环境 29
准备工作 30
工作流程 30
更多内容 35
数据类型 35
准备工作 36
工作流程 36
工作原理 38
更多内容 40
数据预处理 41
准备工作 41
工作流程 41
工作原理 42
更多内容 45
异常数据 46
准备工作 46
工作流程 46
更多内容 49
平衡数据 49
准备工作 49
工作流程 49
更多内容 53
数据强化 54
准备工作 54
工作流程 55
工作原理 56
更多内容 57
练习 58
第3章 用100行代码实现第一个GAN 59
简介 59
从理论到实践――一个简单例子 59
准备工作 60
工作流程 60
参考内容 62
使用Keras和TensorFlow构建神经网络 62
准备工作 63
工作流程 63
参考内容 66
解释你的第一个GAN组件――判别器 66
准备工作 67
工作流程 67
解释你的第二个GAN组件――生成器 71
准备工作 71
工作流程 71
组合GAN组件 75
准备工作 76
工作流程 76
训练你的第一个GAN 78
准备工作 78
工作流程 78
训练模型并理解GAN的输出 84
准备工作 84
工作流程 84
工作原理 86
练习 87
第4章 使用DCGAN创造新的室外结构 89
简介 89
什么是DCGAN?一个简单的伪代码样例 89
准备工作 90
工作流程 90
参考内容 93
工具――是否需要特殊的工具 93
准备工作 93
工作流程 94
更多内容 97
参考内容 97
解析数据――数据是否独特 97
准备工作 97
工作流程 98
代码实现――生成器 100
准备工作 100
工作流程 100
参考内容 103
代码实现――判别器 103
准备工作 104
工作流程 104
参考内容 107
训练 107
准备工作 107
工作流程 107
评估――如何判断它是否有效 114
准备工作 115
工作原理 115
调整参数优化性能 116
工作流程 116
练习 118
第5章 Pix2Pix图像转换 119
简介 119
使用伪代码介绍Pix2Pix 119
准备工作 120
工作流程 120
数据集解析 122
准备工作 122
工作流程 123
代码实现――生成器 124
准备工作 124
工作流程 125
代码实现――GAN 127
准备工作 127
工作流程 128
代码实现――判别器 129
准备工作 129
工作流程 129
训练 131
准备工作 131
工作流程 132
练习 139
第6章 使用CycleGAN进行图像风格转换 141
简介 141
伪代码――工作原理 141
准备工作 142
工作流程 142
解析CycleGAN数据集 144
准备工作 144
工作流程 145
代码实现――生成器 147
准备工作 147
工作流程 148
代码实现――判别器 150
准备工作 150
工作流程 151
代码实现――GAN 153
准备工作 153
工作流程 154
训练 155
准备工作 155
工作流程 156
练习 162
第7章 利用SimGAN使用模拟图像制作具有真实感的眼球图片 163
简介 163
SimGAN架构的工作原理 163
准备工作 164
工作流程 164
伪代码――工作原理 165
准备工作 165
工作流程 165
如何使用训练数据 166
准备工作 166
工作流程 166
代码实现――损失函数 169
准备工作 169
工作流程 169
代码实现――生成器 170
准备工作 170
工作流程 171
代码实现――判别器 173
准备工作 173
工作流程 174
代码实现――GAN 176
准备工作 176
工作流程 177
训练SimGAN 178
准备工作 178
工作流程 179
练习 183
第8章 使用GAN从图像生成3D模型 185
简介 185
使用GAN生成3D模型 185
准备工作 186
工作流程 186
环境准备 188
准备工作 189
工作流程 189
对2D数据进行编码并匹配3D对象 190
准备工作 191
工作流程 191
代码实现――生成器 193
准备工作 193
工作流程 194
代码实现――判别器 196
准备工作 196
工作流程 197
代码实现――GAN 199
准备工作 199
工作流程 199
训练模型 200
准备工作 201
工作流程 201
练习 208