🎨 7. 生成模型与模型评估


来源:《深度学习笔记》— 7. 生成模型与模型评估


第一部分:生成模型概览

前面章节的模型(CNN 分类、序列预测)都是判别模型:学习 p(yx)p(y|x),给输入打标签。生成模型则学习数据分布 p(x)p(x) 本身,从而能"创造"新样本。三大范式的演进体现了不同的建模哲学。

一、VAE(变分自编码器,2013)

核心思想:把数据压缩到一个服从标准正态分布的潜在空间(latent space),再从中解码重建。

  • 编码器输出的不是一个点,而是一个分布(均值 + 方差),通过"重参数化技巧"实现可导采样
  • 损失 = 重建误差 + KL 散度(约束潜在分布接近标准正态)
  • 优点:训练稳定、潜在空间连续可插值
  • 缺点:生成结果偏模糊

二、GAN(生成对抗网络,2014)

核心思想:两个网络博弈——生成器(Generator)努力造假,判别器(Discriminator)努力鉴别真假,在对抗中共同进步。

minGmaxD  Ex[logD(x)]+Ez[log(1D(G(z)))]\min_G \max_D \; \mathbb{E}_{x}[\log D(x)] + \mathbb{E}_{z}[\log(1 - D(G(z)))]
  • 优点:生成质量锐利逼真(StyleGAN 的人脸生成曾是 SOTA)
  • 缺点:训练不稳定(模式崩溃 mode collapse)、难以评估、无法计算似然

三、Diffusion(扩散模型,2020—)

核心思想:前向过程逐步往数据里加高斯噪声直到变成纯噪声;训练一个网络学习逆过程——从噪声中一步步去噪还原数据。

本质上是把"一步到位的生成"分解成上千个微小的去噪步骤,每一步都容易学习。

  • 优点:训练稳定(本质是回归任务)、生成质量和多样性兼得,是 Stable Diffusion、DALL·E、Sora 等的基础
  • 缺点:采样需要多步迭代,速度慢(蒸馏、一致性模型等在解决此问题)

范式对比

VAEGANDiffusion
建模方式显式变分推断隐式对抗博弈显式逐步去噪
训练稳定性
生成质量偏模糊锐利最佳
采样速度快(一步)快(一步)慢(多步)
代表应用表示学习、异常检测StyleGANStable Diffusion / Sora

与大语言模型的关系:GPT 类自回归模型其实也是生成模型——把 p(x)p(x) 分解为逐 token 的条件概率连乘。自回归 + 扩散,是当前生成式 AI 的两大主流路线。


第二部分:模型评估

第 3 章用 accuracy 评估 MNIST 分类,但 accuracy 在很多场景下会误导。

一、混淆矩阵与四个基本量

预测为正预测为负
实际为正TP(真阳)FN(假阴)
实际为负FP(假阳)TN(真阴)

二、核心指标

精确率(Precision)

P=TPTP+FPP = \frac{TP}{TP + FP}

预测为正的样本中有多少是真的正。看重"不要误报"(如垃圾邮件拦截)。

召回率(Recall)

R=TPTP+FNR = \frac{TP}{TP + FN}

实际为正的样本中有多少被找出来了。看重"不要漏报"(如癌症筛查)。

F1 分数

F1=2PRP+RF_1 = \frac{2 P R}{P + R}

精确率与召回率的调和平均,二者的综合权衡。

为什么 accuracy 会骗人

若数据集中 99% 是负样本,一个"全部预测为负"的模型 accuracy 高达 99%,但召回率为 0,毫无价值。类别不平衡时必须看 Precision / Recall / F1

ROC 曲线与 AUC

以不同分类阈值下的假阳率为横轴、真阳率为纵轴画曲线,AUC(曲线下面积)衡量模型排序能力:

  • 1.0 为完美
  • 0.5 等于随机猜

三、训练曲线判读

同时绘制训练集和验证集的损失/精度曲线:

  • 欠拟合:两条曲线都高(损失)且接近 → 模型容量不足或训练不充分 → 加大模型、训练更久
  • 过拟合:训练损失持续下降,验证损失先降后升,两线张开"喇叭口" → 正则化、数据增强、早停
  • 理想状态:两线同步下降并收敛,间距小

调试顺序建议:先让模型在小数据集上过拟合(验证实现正确),再逐步加数据和正则化。如果连训练集都拟合不了,说明代码或模型有 bug,加正则化只会更糟。