前言
第 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 使用Ker