🎨 7. 生成模型与模型评估
来源:《深度学习笔记》— 7. 生成模型与模型评估
第一部分:生成模型概览
前面章节的模型(CNN 分类、序列预测)都是判别模型:学习 ,给输入打标签。生成模型则学习数据分布 本身,从而能"创造"新样本。三大范式的演进体现了不同的建模哲学。
一、VAE(变分自编码器,2013)
核心思想:把数据压缩到一个服从标准正态分布的潜在空间(latent space),再从中解码重建。
- 编码器输出的不是一个点,而是一个分布(均值 + 方差),通过"重参数化技巧"实现可导采样
- 损失 = 重建误差 + KL 散度(约束潜在分布接近标准正态)
- 优点:训练稳定、潜在空间连续可插值
- 缺点:生成结果偏模糊
二、GAN(生成对抗网络,2014)
核心思想:两个网络博弈——生成器(Generator)努力造假,判别器(Discriminator)努力鉴别真假,在对抗中共同进步。
- 优点:生成质量锐利逼真(StyleGAN 的人脸生成曾是 SOTA)
- 缺点:训练不稳定(模式崩溃 mode collapse)、难以评估、无法计算似然
三、Diffusion(扩散模型,2020—)
核心思想:前向过程逐步往数据里加高斯噪声直到变成纯噪声;训练一个网络学习逆过程——从噪声中一步步去噪还原数据。
本质上是把"一步到位的生成"分解成上千个微小的去噪步骤,每一步都容易学习。
- 优点:训练稳定(本质是回归任务)、生成质量和多样性兼得,是 Stable Diffusion、DALL·E、Sora 等的基础
- 缺点:采样需要多步迭代,速度慢(蒸馏、一致性模型等在解决此问题)
范式对比
| VAE | GAN | Diffusion | |
|---|---|---|---|
| 建模方式 | 显式变分推断 | 隐式对抗博弈 | 显式逐步去噪 |
| 训练稳定性 | 高 | 低 | 高 |
| 生成质量 | 偏模糊 | 锐利 | 最佳 |
| 采样速度 | 快(一步) | 快(一步) | 慢(多步) |
| 代表应用 | 表示学习、异常检测 | StyleGAN | Stable Diffusion / Sora |
与大语言模型的关系:GPT 类自回归模型其实也是生成模型——把 分解为逐 token 的条件概率连乘。自回归 + 扩散,是当前生成式 AI 的两大主流路线。
第二部分:模型评估
第 3 章用 accuracy 评估 MNIST 分类,但 accuracy 在很多场景下会误导。
一、混淆矩阵与四个基本量
| 预测为正 | 预测为负 | |
|---|---|---|
| 实际为正 | TP(真阳) | FN(假阴) |
| 实际为负 | FP(假阳) | TN(真阴) |
二、核心指标
精确率(Precision):
预测为正的样本中有多少是真的正。看重"不要误报"(如垃圾邮件拦截)。
召回率(Recall):
实际为正的样本中有多少被找出来了。看重"不要漏报"(如癌症筛查)。
F1 分数:
精确率与召回率的调和平均,二者的综合权衡。
为什么 accuracy 会骗人
若数据集中 99% 是负样本,一个"全部预测为负"的模型 accuracy 高达 99%,但召回率为 0,毫无价值。类别不平衡时必须看 Precision / Recall / F1。
ROC 曲线与 AUC
以不同分类阈值下的假阳率为横轴、真阳率为纵轴画曲线,AUC(曲线下面积)衡量模型排序能力:
- 1.0 为完美
- 0.5 等于随机猜
三、训练曲线判读
同时绘制训练集和验证集的损失/精度曲线:
- 欠拟合:两条曲线都高(损失)且接近 → 模型容量不足或训练不充分 → 加大模型、训练更久
- 过拟合:训练损失持续下降,验证损失先降后升,两线张开"喇叭口" → 正则化、数据增强、早停
- 理想状态:两线同步下降并收敛,间距小
调试顺序建议:先让模型在小数据集上过拟合(验证实现正确),再逐步加数据和正则化。如果连训练集都拟合不了,说明代码或模型有 bug,加正则化只会更糟。