前言 iii
第 1章 生成对抗网络简介 1
1.1 什么是GAN 1
1.1.1 什么是生成网络 1
1.1.2 什么是判别网络 2
1.1.3 GAN通过对抗竞赛进行训练 2
1.2 GAN的实际应用 2
1.3 GAN的具体架构 3
1.3.1 生成网络的架构 3
1.3.2 判别网络的架构 4
1.3.3 GAN相关重要概念 5
1.3.4 评分算法 7
1.4 GAN变体 8
1.4.1 深度卷积生成对抗网络 8
1.4.2 StackGAN 9
1.4.3 CycleGAN 9
1.4.4 3D-GAN 9
1.4.5 Age-cGAN 9
1.4.6 pix2pix 9
1.5 GAN的优势 10
1.6 训练GAN的问题 10
1.6.1 模式塌陷 10
1.6.2 梯度消失 10
1.6.3 内部协变量转移 11
1.7 解决GAN训练稳定性问题 11
1.7.1 特征匹配 11
1.7.2 小批量判别 12
1.7.3 历史平均 13
1.7.4 单面标签平滑 13
1.7.5 批归一化 14
1.7.6 实例归一化 14
1.8 小结 14
第 2章 使用3D-GAN生成图形 15
2.1 3D-GAN简介 15
2.1.1 3D卷积 15
2.1.2 3D-GAN架构 16
2.1.3 目标函数 20
2.1.4 训练3D-GAN 20
2.2 创建项目 21
2.3 准备数据 21
2.3.1 下载并提取数据集 22
2.3.2 探索数据集 22
2.4 3D-GAN的Keras实现 25
2.4.1 生成网络 25
2.4.2 判别网络 27
2.5 训练3D-GAN 28
2.5.1 训练两个网络 28
2.5.2 保存模型 31
2.5.3 测试模型 32
2.5.4 损失可视化 32
2.5.5 图可视化 33
2.6 超参数优化 34
2.7 3D-GAN的实际应用 34
2.8 小结 34
第3章 使用cGAN实现人脸老化 35
3.1 人脸老化cGAN简介 35
3.1.1 理解cGAN 35
3.1.2 Age-cGAN架构 36
3.1.3 Age-cGAN的训练阶段 37
3.2 创建项目 39
3.3 准备数据 39
3.3.1 下载数据集 40
3.3.2 提取数据集 40
3.4 Age-cGAN的Keras实现 41
3.4.1 编码网络 42
3.4.2 生成网络 44
3.4.3 判别网络 47
3.5 训练cGAN 49
3.5.1 训练cGAN 49
3.5.2 潜在向量初步近似 55
3.5.3 潜在向量优化 57
3.5.4 损失可视化 59
3.5.5 图可视化 60
3.6 Age-cGAN的实际应用 61
3.7 小结 62
第4章 使用DCGAN生成动画人物 63
4.1 DCGAN 简介 63
4.2 创建项目 69
4.3 下载并准备动画人物数据集 70
4.3.1 下载数据集 70
4.3.2 探索数据集 71
4.3.3 剪裁及缩放训练集图像 71
4.4 使用Keras实现DCGAN 73
4.4.1 生成网络 74
4.4.2 判别网络 76
4.5 训练DCGAN 78
4.5.1 加载样本 79
4.5.2 构建并编译网络 79
4.5.3 训练判别网络 81
4.5.4 训练生成网络 81
4.5.5 生成图像 82
4.5.6 保存模型 83
4.5.7 生成图像可视化 83
4.5.8 损失可视化 84
4.5.9 图可视化 85
4.5.10 超参数调优 85
4.6 DCGAN的实际应用 86
4.7 小结 86
第5章 使用SRGAN生成逼真图像 87
5.1 SRGAN简介 87
5.1.1 SRGAN架构 87
5.1.2 训练目标函数 91
5.2 创建项目 92
5.3 下载CelebA数据集 93
5.4 SRGAN的Keras实现 94
5.4.1 生成网络 94
5.4.2 判别网络 98
5.4.3 VGG19网络 101
5.4.4 对抗网络 102
5.5 训练SRGAN 103
5.5.1 构建并编译网络 103
5.5.2 训练判别网络 105
5.5.3 训练生成网络 106
5.5.4 保存模型 107
5.5.5 生成图像可视化 107
5.5.6 损失可视化 109
5.5.7 图可视化 110
5.6 SRGAN的实际应用 110
5.7 小结 110
第6章 StackGAN:基于文本合成逼真图像 111
6.1 StackGAN简介 111
6.2 StackGAN架构 112
6.2.1 文本编码网络 113
6.2.2 CA块 113
6.2.3 第 一阶段 114
6.2.4 第二阶段 117
6.3 创建项目 122
6.4 准备数据 123
6.4.1 下载数据集 123
6.4.2 提取数据集 124
6.4.3 探索数据集 124
6.5 StackGAN的Keras 实现 124
6.5.1 第 一阶段 124
6.5.2 第二阶段 132
6.6 训练 StackGAN 141
6.6.1 训练StackGAN第 一阶段 141
6.6.2 训练StackGAN第二阶段 148
6.6.3 生成图像可视化 152
6.6.4 损失可视化 152
6.6.5 图可视化 153
6.7 StackGAN的实际应用 154
6.8 小结 154
第7章 使用CycleGAN将绘画转换为照片 155
7.1 CycleGAN简介 155
7.1.1 CycleGAN 架构 156
7.1.2 训练目标函数 160
7.2 创建项目 161
7.3 下载数据集 162
7.4 CycleGAN的Keras实现 162
7.4.1 生成网络 163
7.4.2 判别网络 165
7.5 训练 CycleGAN 167
7.5.1 加载数据集 167
7.5.2 构建并编译网络 169
7.5.3 开始训练 171
7.5.4 保存模型 173
7.5.5 生成图像可视化 174
7.5.6 损失可视化 175
7.5.7 图可视化 176
7.6 CycleGAN的实际应用 176
7.7 小结 177
7.8 延伸阅读 177
第8章 使用cGAN实现图像对图像变换 178
8.1 pix2pix简介 178
8.1.1 pix2pix架构 179
8.1.2 训练目标函数 184
8.2 创建项目 184
8.3 准备数据 185
8.4 pix2pix的Keras实现 189
8.4.1 生成网络 189
8.4.2 判别网络 195
8.4.3 对抗网络 200
8.5 训练pix2pix网络 202
8.5.1 保存模型 206
8.5.2 生成图像可视化 206
8.5.3 损失可视化 207
8.5.4 图可视化 208
8.6 pix2pix网络的实际应用 208
8.7 小结 211
第9章 预测GAN的未来 210
9.1 对GAN未来的预测 211
9.1.1 提升现有的深度学习方法 211
9.1.2 GAN商业应用的演化 211
9.1.3 GAN训练过程的成熟 211
9.2 GAN未来的潜在应用 211
9.2.1 基于文本创建信息图 212
9.2.2 设计网站 212
9.2.3 压缩数据 212
9.2.4 研发药物 212
9.2.5 使用GAN生成文本 212
9.2.6 使用GAN生成音乐 213
9.3 探索GAN 213
9.4 小结 213
版权声明 214