本书详尽地探讨了变分自编码器、生成对抗网络、标准化流模型和扩散模型这四大主流生成式视觉模型。本书不仅深入解析了这些模型背后的复杂数学原理、训练及采样算法,还提供了详细的代码实现指南。秉承"理论与实践并重”的理念,本书进一步探索了生成式视觉模型在不同场景中的应用实例,并精选了4个具有代表性的实战案例进行深度剖析。这些案例紧密贴合实际业务需求与面临的技术挑战,旨在引导读者掌握利用生成式视觉模型解决现实问题的方法论,同时通过动手实践增强其编程技能与技术优化能力。 本书适合具有大学本科数学基础(包括微积分、线性代数、概率统计)及机器学习、深度学习等知识,并熟悉Python及PyTorch编程的本科生、研究生,或者相关领域的研究人员阅读与学习。
丁鑫,博士,副教授,国家海外引进人才计划(青年项目)入选者,主要从事生成式人工智能的研究工作;主持国家自然科学基金青年项目1项;以第一作者身份先后在IEEE TPAMI、IEEE TSP、ESWA、ICLR、AAAI等高水平国际期刊或会议上发表论文10余篇;担任AAAI、IJCAI、IEEE SPL等国际知名会议和期刊的审稿人与程序委员会成员。
目录
第1章 生成式人工智能概述 1
1.1 生成式人工智能:引领生产力的飞跃 1
1.1.1 ChatGPT 1
1.1.2 Sora 2
1.1.3 应用前景与意义 2
1.2 生成式人工智能的发展历程 3
1.2.1 从统计学习到深度学习前夕 3
1.2.2 深度学习时代 4
1.2.3 大模型时代 5
1.3 生成式人工智能的发展方向 6
1.4 生成式人工智能的伦理问题 7
1.5 习题 9
1.6 参考文献 9
第2章 生成式建模与评价指标 10
2.1 根本任务 10
2.1.1 分布估计 11
2.1.2 样本生成 12
2.1.3 针对数字图像的生成式建模 12
2.2 典型生成模型 13
2.3 评价指标 15
2.3.1 负对数似然 15
2.3.2 基于距离或散度的评价指标 16
2.3.3 精确率和召回率 21
2.3.4 统计检验 22
2.3.5 用生成样本训练分类器 22
2.3.6 过拟合检测 23
2.4 重要意义 23
2.5 习题 24
2.6 参考文献 24
第3章 VAE 25
3.1 预备知识 25
3.1.1 AE 25
3.1.2 KL散度 26
3.1.3 MLE 27
3.1.4 条件编码 27
3.1.5 马尔可夫链 29
3.1.6 重参数化技巧 30
3.2 数学符号 31
3.3 总体思路 31
3.4 理论分析 33
3.4.1 证据下界 33
3.4.2 目标函数 34
3.5 模型结构 36
3.5.1 推断网络 36
3.5.2 生成网络 37
3.5.3 VAE与AE的对比 37
3.6 训练算法 38
3.7 采样算法 39
3.7.1 后验采样 39
3.7.2 先验采样 40
3.8 变体模型 41
3.8.1 CVAE 41
3.8.2 Beta-VAE 42
3.8.3 MHVAE 42
3.8.4 VQ-VAE 43
3.9 代码实践:VAE 44
3.9.1 数据载入与实验设置 45
3.9.2 推断网络和生成网络 46
3.9.3 模型训练 49
3.9.4 采样与可视化 50
3.10 习题 51
3.11 参考文献 52
第4章 GAN 53
4.1 预备知识 53
4.1.1 JS散度 53
4.1.2 Wasserstein距离 54
4.1.3 Lipschitz连续函数 55
4.1.4 MMD 55
4.1.5 拒绝采样 56
4.2 原始GAN 57
4.2.1 生成器与判别器 57
4.2.2 损失函数与训练算法 58
4.2.3 如何理解生成器的本质 60
4.2.4 理论最优判别器 60
4.2.5 为什么GAN是生成模型 61
4.2.6 梯度消失问题 62
4.2.7 模式坍缩问题 63
4.3 CGAN 64
4.3.1 重要的生成式建模范式 64
4.3.2 模型结构 65
4.3.3 损失函数与训练算法 66
4.3.4 模型分析 67
4.4 变体模型 68
4.4.1 损失函数 68
4.4.2 网络架构 73
4.4.3 正则化 81
4.4.4 条件输入方法 84
4.4.5 一维连续条件 87
4.4.6 隐变量解耦 89
4.4.7 数据增强 91
4.4.8 二次采样 93
4.4.9 大模型技术 94
4.4.10 典型应用 95
4.5 代码实践:DCGAN 99
4.5.1 实验设置 99
4.5.2 生成器与判别器 100
4.5.3 模型训练 102
4.5.4 采样与可视化 105
4.5.5 性能比较 106
4.6 习题 108
4.7 参考文献 108
第5章 NF模型 111
5.1 NF模型基础 111
5.1.1 变量替换定理 111
5.1.2 雅可比行列式的性质与计算 112
5.1.3 多步变换后的概率分布 114
5.2 NF模型的训练和采样 115
5.2.1 NF模型的训练 115
5.2.2 NF模型的采样 116
5.2.3 NF模型的实现 116
5.3 如何构造一个NF模型 118
5.3.1 仿射流 118
5.3.2 平面流和径向流 120
5.3.3 耦合流 122
5.3.4 自回归流 125
5.3.5 可逆残差流 128
5.4 连续时间下的NF模型 132
5.5 代码实践:RealNVP 135
5.5.1 实验设置 135
5.5.2 NF模型的构建 135
5.5.3 训练过程 138
5.5.4 性能比较 139
5.6 习题 139
5.7 参考文献 140
第6章 DM 142
6.1 预备知识 142
6.1.1 Stein’s分数函数 142
6.1.2 Tweedie’s公式 143
6.1.3 随机微分方程 143
6.2 VDM 144
6.2.1 从VAE到VDM 144
6.2.2 变种损失函数 158
6.2.3 方差表 163
6.2.4 经典模型:DDPM 166
6.2.5 跨步采样:DDIM 168
6.2.6 隐扩散模型:LDM 171
6.3 SGM 172
6.3.1 SGLD 172
6.3.2 SBM与分数匹配 172
6.3.3 朴素SGM及其问题 173
6.3.4 带有多尺度噪声扰动的SGM 174
6.3.5 基于随机微分方程的SGM 175
6.4 条件扩散模型 180
6.4.1 分类器指导 180
6.4.2 无分类器指导 181
6.5 代码实践:DDPM 182
6.5.1 实验设置 182
6.5.2 网络定义 183
6.5.3 扩散过程 188
6.5.4 训练过程 193
6.5.5 性能比较 194
6.6 习题 195
6.7 参考文献 196
第7章 生成模型应用实战 198
7.1 典型应用场景 198
7.1.1 可控图像生成 198
7.1.2 图像翻译 199
7.1.3 图像超分辨率 199
7.1.4 图像修复 200
7.1.5 图像分割 201
7.1.6 图像编辑 201
7.2 实战案例1:图像风格迁移 202
7.2.1 案例介绍 202
7.2.2 实验效果 203
7.3 实战案例2:医疗影像的模态变换 204
7.3.1 案例介绍 204
7.3.2 实验效果 204
7.4 实战案例3:遥感图像的超分辨率重建 205
7.4.1 案例介绍 205
7.4.2 实验效果 206
7.5 实战案例4:Stable Diffusion文生图 207
7.5.1 Stable Diffusion简介 207
7.5.2 本地部署 207
7.6 参考文献 209