本书从深度学习的基础知识讲起,逐步深入当前最尖端的架构。你可以通过书中的技巧和窍门,学习如何构建能够更有效地学习以及更具创造力的模型。本书的主要内容有:学习如何通过变分自动编码器(VAE)改变图像中人物的面部表情。学习如何训练GAN,根据数据集生成图像。学习如何构建扩散模型,生成全新的花卉品种。学习如何训练自己的生成文本GPT。了解大型语言模型(如ChatGPT)的训练过程。探索最先进的生成式架构,如StyleGAN2和ViT-VQGAN。使用Transformer和MuseGAN创作多声部乐曲。学习生成式世界模型如何解决强化学习任务。深入研究多模态模型,如DALL.E 2、Imagen和Stable Diffusion。
编辑推荐
生成式人工智能是高科技领域最热门的话题之一。机器学习工程师和数据科学家可以通过本书学习如何使用TensorFlow和Keras,从零开始构建强大的生成式深度学习模型,包括变分自编码器(VAE)、生成对抗网络(GAN)、Transformer、标准化流模型、基于能量的模型(EBM)以及去噪扩散模型。
本书从深度学习的基础知识讲起,逐步深入当前最尖端的架构。你可以通过书中的技巧和窍门,学习如何构建能够更有效地学习以及更具创造力的模型。
专家推荐
“本书深入浅出地介绍了生成式建模深度学习工具包。如果你是一位富有创造力的编程爱好者,希望在实际工作中应用深度学习,那么本书是不二之选。”
—— David Ha
Stability AI的战略主管
“这本精彩的教程深入探讨了最先进的生成式深度学习技术。带你体验人工智能世界中最令人着迷的一次精彩探索!”
——Fran?ois Chollet
Keras创建者
David Foste是Applied Data Science Partners的联合创始人。
目录
序 1
前言 3
第一部分 生成式深度学习简介
第1 章 生成式建模 17
1.1 什么是生成式建模 18
1.1.1 生成式建模与判别式建模 19
1.1.2 生成式建模的兴起 .21
1.1.3 生成式建模与AI .22
1.2 我们的第一个生成式建模 23
1.2.1 Hello World 23
1.2.2 生成式建模框架 25
1.2.3 表示学习 .27
1.3 核心概率理论 .29
1.4 生成式模型的分类 33
1.5 生成式深度学习代码库 .34
1.5.1 克隆代码库 35
1.5.2 使用Dokcer 35
1.5.3 运行GPU 35
1.6 小结 .35
1.7 参考资料36
第2 章 深度学习 37
2.1 深度学习的数据 38
2.2 深度神经网络 .39
2.2.1 什么是神经网络 39
2.2.2 学习高层特征 41
2.2.3 TensorFlow 和Keras .41
2.3 多层感知器 42
2.3.1 准备数据 .43
2.3.2 构建模型 .45
2.3.3 编译模型 .50
2.3.4 训练模型 .52
2.3.5 评估模型 .53
2.4 卷积神经网络(CNN) .56
2.4.1 卷积层 56
2.4.2 批标准化 .62
2.4.3 Dropout 层 65
2.4.4 构建CNN 67
2.4.5 训练和评估CNN .70
2.5 小结 .71
2.6 参考资料71
第二部分 方法
第3 章 变分自动编码器 .75
3.1 引言 .76
3.2 自动编码器 77
3.2.1 Fashion-MNIST 数据集 78
3.2.2 自动编码器的架构 .79
3.2.3 编码器 80
3.2.4 解码器 82
3.2.5 连接编码器与解码器.84
3.2.6 重建图像 .86
3.2.7 可视化隐空间 87
3.2.8 生成新图像 89
3.3 变分自动编码器 91
3.3.1 编码器 92
3.3.2 损失函数 .98
3.3.3 训练变分自动编码器.99
3.3.4 分析变分自动编码器101
3.4 探索隐空间 103
3.4.1 CelebA 数据集 103
3.4.2 训练变分自动编码器105
3.4.3 分析变分自动编码器107
3.4.4 生成新面孔 .108
3.4.5 隐空间的算术运算 110
3.4.6 面部变形 111
3.5 小结 112
3.6 参考资料. 113
第4 章 生成对抗网络 115
4.1 引言 116
4.2 深度卷积GAN(DCGAN) . 118
4.2.1 Bricks 数据集 . 118
4.2.2 判别器 119
4.2.3 生成器 122
4.2.4 训练DCGAN .126
4.2.5 分析DCGAN .131
4.2.6 训练GAN 的技巧 132
4.3 WGAN-GP .135
4.3.1 Wasserstein 损失 136
4.3.2 利普希茨约束 .138
4.3.3 施加利普希茨约束 139
4.3.4 梯度惩罚损失 139
4.3.5 训练WGAN-GP 141
4.3.6 分析WGAN-GP 144
4.4 条件GAN(CGAN) 145
4.4.1 CGAN 架构 .146
4.4.2 训练CGAN .148
4.4.3 分析CGAN .149
4.5 小结 150
4.6 参考资料.151
第5 章 自回归模型 153
5.1 引言 154
5.2 长短期记忆网络 .156
5.2.1 Recipes 数据集 156
5.2.2 处理文本数据 .158
5.2.3 分词 .159
5.2.4 创建训练集 .162
5.2.5 LSTM 架构 163
5.2.6 嵌入层 163
5.2.7 LSTM 层 164
5.2.8 LSTM 元胞 166
5.2.9 训练LSTM 168
5.2.10 分析LSTM 170
5.3 循环神经网络扩展 .174
5.3.1 堆叠式循环网络 174
5.3.2 门控制循环单元 176
5.3.3 双向元胞 178
5.4 PixelCNN178
5.4.1 掩码卷积层 .179
5.4.2 残差块 181
5.4.3 训练PixelCNN 183
5.4.4 分析PixelCNN 185
5.4.5 混合分布 187
5.5 小结 190
5.6 参考资料.190
第6 章 标准化流模型 193
6.1 引言 194
6.2 标准化流.196
6.2.1 变量变换 196
6.2.2 雅可比行列式 .198
6.2.3 变量变换方程 .200
6.3 RealNVP .201
6.3.1 双月数据集 .201
6.3.2 耦合层 202
6.3.3 训练RealNVP 模型 .207
6.3.4 分析RealNVP 模型 .210
6.4 其他标准化流模型 .212
6.4.1 GLOW 212
6.4.2 FFJORD 213
6.5 小结 214
6.6 参考资料.215
第7 章 基于能量的模型 217
7.1 引言 218
7.2 基于能量的模型 .219
7.2.1 MNIST 数据集 220
7.2.2 能量函数 221
7.2.3 使用朗之万动力学采样 .223
7.2.4 使用对比散度训练模型 .225
7.2.5 分析基于能量的模型230
7.2.6 其他基于能量的模型231
7.3 小结 232
7.4 参考资料.233
第8 章 扩散模型 . 235
8.1 引言 236
8.2 去噪扩散模型 238
8.2.1 Flowers 数据集 238
8.2.2 前向扩散过程 .240
8.2.3 重新参数化技巧 241
8.2.4 扩散计划 242
8.2.5 反向扩散过程 .245
8.2.6 U-Net 去噪模型 .248
8.2.7 训练扩散模型 .256
8.2.8 从去噪扩散模型中采样 .257
8.2.9 分析扩散模型 .260
8.3 小结 263
8.4 参考资料.264
第三部分 应用
第9 章 Transformer . 267
9.1 引言 268
9.2 GPT 268
9.2.1 葡萄酒评论数据集 269
9.2.2 注意力 270
9.2.3 查询与键值 .272
9.2.4 多头注意力 .274
9.2.5 因果掩码 275
9.2.6 Transformer 块 278
9.2.7 位置编码 281
9.2.8 训练GPT 283
9.2.9 分析GPT 285
9.3 其他Transformer 287
9.3.1 T5 .288
9.3.2 GPT-3 和GPT-4 291
9.3.3 ChatGPT 293
9.4 小结 297
9.5 参考资料.297
第10 章 高级GAN 299
10.1 引言 300
10.2 ProGAN 301
10.2.1 渐进式训练301
10.2.2 输出 308
10.3 StyleGAN 309
10.3.1 映射网络 310
10.3.2 合成网络 311
10.3.3 StyleGAN 的输出 312
10.4 StyleGAN2313
10.4.1 权重调制与去调制 314
10.4.2 路径长度正则化 .316
10.4.3 非渐进式增长 317
10.4.4 StyleGAN2 的输出 318
10.5 其他重要的GAN .319
10.5.1 自注意力GAN(SAGAN) .319
10.5.2 BigGAN .320
10.5.3 VQ-GAN 321
10.5.4 ViT VQ-GAN 325
10.6 小结 326
10.7 参考资料 327
第11 章 音乐生成 329
11.1 引言 330
11.2 音乐生成Transformer 331
11.2.1 巴赫大提琴组曲数据集 333
11.2.2 解析MIDI 文件 333
11.2.3 分词 335
11.2.4 创建训练集 337
11.2.5 正弦位置编码 338
11.2.6 多个输入与输出 .339
11.2.7 分析音乐生成Transformer 341
11.2.8 复音音乐的分词 .345
11.3 MuseGAN 349
11.3.1 巴赫圣咏曲数据集 350
11.3.2 MuseGAN 生成器 351
11.3.3 MuseGAN 评论者 359
11.3.4 分析MuseGAN 361
11.4 小结 363
11.5 参考资料 364
第12 章 世界模型 365
12.1 引言 365
12.2 强化学习 366
12.3 世界模型简介 370
12.3.1 架构 370
12.3.2 训练 373
12.4 收集随机rollout 数据 374
12.5 训练VAE .375
12.5.1 VAE 架构 376
12.5.2 探索VAE379
12.6 收集训练MDN-RNN 的数据 .381
12.7 训练MDN-RNN 381
12.7.1 MDN-RNN 的架构 382
12.7.2 从MDN-RNN 中采样 .383
12.8 训练控制器 .384
12.8.1 控制器的架构 384
12.8.2 CMA-ES .385
12.8.3 并行化CMA-ES .387
12.9 在想象环境中训练 389
12.10 小结 .392
12.11 参考资料 393
第13 章 多模态模型 . 395
13.1 引言 396
13.2 DALL.E 2 397
13.2.1 架构 398
13.2.2 文本编码器398
13.2.3 CLIP .399
13.2.4 先验 403
13.2.5 解码器 .405
13.2.6 DALL.E 2 生成的示例 409
13.3 Imagen 413
13.3.1 架构 413
13.3.2 DrawBench 414
13.3.3 Imagen 生成的示例 415
13.4 Stable Diffusion 416
13.4.1 架构 416
13.4.2 Stable Diffusion 生成的示例 417
13.5 Flamingo 418
13.5.1 架构 418
13.5.2 视觉编码器419
13.5.3 感知重采样器 420
13.5.4 语言模型 420
13.5.5 Flamingo 生成的示例 423
13.6 小结 426
13.7 参考资料 427
第14 章 总结 429
14.1 生成式AI 的时间线 430
14.1.1 2014 ~ 2017 年:VAE 与GAN 时代 432
14.1.2 2018、2019 年:Transformer 时代 432
14.1.3 2020 ~ 2022 年:大模型时代 433
14.2 生成式AI 的现状 435
14.2.1 大型语言模型 435
14.2.2 文本到代码模型 .439
14.2.3 文本到图像模型 .440
14.2.4 其他应用 445
14.3 生成式AI 的未来 446
14.3.1 生成式AI 对日常生活的影响 .447
14.3.2 生成式AI 对工作环境的影响 .448
14.3.3 生成式AI 对教育的影响 449
14.3.4 生成式AI 面临的道德问题与挑战 450
14.4 最后的感想 .452
14.5 参考资料 454