第 一部分 生成对抗网络(GAN)与生成模型导论
第 1 章 GAN 简介 3
1.1 什么是 GAN 5
1.2 GAN 是如何工作的 5
1.3 GAN 实战 6
1.3.1 GAN 的训练 7
1.3.2 达到平衡 10
1.4 为什么要学 GAN 11
1.5 小结 14
第 2 章 自编码器生成模型入门 15
2.1 生成模型简介16
2.2 自编码器如何用于高级场景 16
2.3 什么是 GAN 的自编码器 18
2.4 自编码器的构成 18
2.5 自编码器的使用 20
2.6 无监督学习21
2.6.1 吐故纳新 21
2.6.2 使用自编码器生成 22
2.6.3 变分自编码器 23
2.7 代码就是生命23
2.8 为什么要尝试使用 GAN 30
2.9 小结 32
第 3 章 你的第 一个 GAN 模型:生成手写数字 . 33
3.1 GAN 的基础:对抗训练 33
3.1.1 代价函数 35
3.1.2 训练过程 35
3.2 生成器和鉴别器 37
3.2.1 对抗的目标 37
3.2.2 混淆矩阵 38
3.3 GAN 训练算法 38
3.4 教程:生成手写数字 39
3.4.1 导入模块并指定模型输入维度 40
3.4.2 构造生成器 41
3.4.3 构造鉴别器 41
3.4.4 搭建整个模型 42
3.4.5 训练 43
3.4.6 输出样本图像 44
3.4.7 运行模型 45
3.4.8 检查结果 45
3.5 结论 46
3.6 小结 46
第 4 章 深度卷积生成对抗网络(DCGAN)47
4.1 卷积神经网络48
4.1.1 卷积滤波器 48
4.1.2 参数共享 48
4.1.3 卷积神经网络可视化 48
4.2 DCGAN 简史 49
4.3 批归一化 50
4.3.1 理解归一化 50
4.3.2 计算批归一化 51
4.4 教程:用 DCGAN 生成手写数字 52
4.4.1 导入模块并指定模型输入维度 53
4.4.2 构造生成器 53
4.4.3 构造鉴别器 55
4.4.4 构建并运行 DCGAN 57
4.4.5 模型输出 59
4.5 结论 60
4.6 小结 60
第二部分 GAN 的前沿主题
第 5 章 训练与普遍挑战:为成功而 GAN 63
5.1 评估 65
5.1.1 评估框架 65
5.1.2 IS 67
5.1.3 FID 68
5.2 训练中的挑战70
5.2.1 增加网络深度 72
5.2.2 游戏设置 73
5.2.3 最小-最大 GAN 73
5.2.4 非饱和 GAN 74
5.2.5 何时停止训练 76
5.2.6 WGAN77
5.3 总结游戏设置80
5.4 训练技巧 81
5.4.1 输入的归一化 81
5.4.2 批归一化 81
5.4.3 梯度惩罚 82
5.4.4 对鉴别器进行更多的训练 82
5.4.5 避免稀疏梯度 83
5.4.6 平滑和带噪声的标签 83
5.5 小结 83
第 6 章 渐进式增长生成对抗网络(PGGAN) 85
6.1 潜在空间插值 86
6.2 它们发展如此之快 87
6.2.1 高分辨率层的渐进增长和平滑 87
6.2.2 示例实现 90
6.2.3 小批量标准偏差 91
6.2.4 均衡学习率 92
6.2.5 生成器中的像素级特征归一化 93
6.3 主要创新点总结 96
6.4 TensorFlow Hub 库及其实践 97
6.5 PGGAN 的实际应用 98
6.6 小结 101
第 7 章 半监督生成对抗网络(SGAN) 103
7.1 SGAN 简介105
7.1.1 什么是 SGAN 106
7.1.2 结构107
7.1.3 训练过程 107
7.1.4 训练目标 108
7.2 教程:SGAN 的实现 108
7.2.1 架构图 108
7.2.2 实现109
7.2.3 设置109
7.2.4 数据集 110
7.2.5 生成器 112
7.2.6 鉴别器 112
7.2.7 搭建整个模型 115
7.2.8 训练116
7.3 与全监督分类器的对比 118
7.4 结论 119
7.5 小结 119
第 8 章 条件生成对抗网络(CGAN) 121
8.1 动机 121
8.2 什么是 CGAN 122
8.2.1 CGAN 的生成器 123
8.2.2 CGAN 的鉴别器 123
8.2.3 汇总表 124
8.2.4 架构图 124
8.3 教程:CGAN 的实现 125
8.3.1 实现125
8.3.2 设置125
8.3.3 CGAN 的生成器 126
8.3.4 CGAN 的鉴别器 128
8.3.5 搭建整个模型 130
8.3.6 训练131
8.3.7 输出样本图像 132
8.3.8 训练模型 134
8.3.9 检查输出:生成目标数据 134
8.4 结论 135
8.5 小结 136
第 9 章 循环一致性生成对抗网络(CycleGAN) 137
9.1 图像到图像的转换 137
9.2 循环一致性损失:再 GAN 一次 139
9.3 对抗损失 140
9.4 恒等损失 140
9.5 架构 142
9.5.1 CycleGAN 架构:构建网络 143
9.5.2 生成器架构 144
9.5.3 鉴别器架构 146
9.6 GAN 的面向对象设计 146
9.7 教程:CycleGAN 146
9.7.1 构建网络 148
9.7.2 构建生成器 149
9.7.3 构建鉴别器 151
9.7.4 训练 CycleGAN 152
9.7.5 运行 CycleGAN 154
9.8 扩展、增强和应用 154
9.8.1 增强 CycleGAN 154
9.8.2 应用155
9.9 小结 156
第三部分 何去何从
第 10 章 对抗样本 159
10.1 对抗样本的背景 160
10.2 谎言,该死的谎言及分布 161
10.3 训练的使用与滥用 162
10.4 信号与噪声167
10.5 柳暗花明又一村 171
10.6 GAN 的对手 172
10.7 结论 173
10.8 小结 174
第 11 章 GAN 的实际应用 175
11.1 医学领域的 GAN 176
11.1.1 利用 GAN 提高诊断准确率 176
11.1.2 方法 178
11.1.3 结果 179
11.2 时尚领域的GAN 180
11.2.1 利用 GAN 设计服装 181
11.2.2 方法 181目录
11.2.3 创造新单品以符合个人偏好 182
11.2.4 修改现有单品以更符合个人偏好 184
11.3 结论 187
11.4 小结 187
第 12 章 展望未来 189
12.1 伦理问题189
12.2 GAN 的创新 191
12.2.1 相对生成对抗网络(RGAN) 192
12.2.2 自注意力生成对抗网络(SAGAN) 194
12.2.3 BigGAN 196
12.3 拓展阅读 198
12.4 回顾与总结198
12.5 小结 200