跳转至

6.2 GAN 模式坍塌与生成模型失败模式

所属章节:第 6 章 评估、失败模式与面试实战
课时:90 分钟
前置:GAN 基础、评估指标
对应面试题:A9
一句话目标:学完能解释模式坍塌的机制,说出至少 5 类改善方法,并用 Precision/Recall 做诊断。


1. 学习目标

学完本节,你应该能够:

  1. 定义 模式坍塌与模式丢弃;
  2. 解释 坍塌的成因;
  3. 说出 至少 5 类改善方法;
  4. 用 Precision/Recall 诊断;
  5. 解释 truncation 的取舍;
  6. 对比 GAN 与 Diffusion 的失败模式;
  7. 用 90 秒回答 A9。

2. 模式坍塌是什么

模式坍塌(mode collapse):

生成器只覆盖数据分布的少数模式,很多真实模式生成不出来。

例如:

  • 生成人脸时,只生成少数几种脸;
  • 生成数字时,只生成 1/8;
  • 生成动物时,只生成同一姿态。

2.1 模式坍塌 vs 模式丢弃

概念 表现
模式坍塌 生成器塌到少数样本/模式
模式丢弃 部分模式没学到,但不是完全塌

两者都表现为多样性不足,但程度/机制不同。


3. 为什么会坍塌

  1. 对抗失衡:生成器找到骗过判别器的捷径;
  2. 判别器信号不足:无法惩罚漏掉的模式;
  3. 目标函数:JS 散度在分布不重叠时梯度弱;
  4. 数据不均衡:少数模式主导;
  5. 模型容量/训练策略:生成器过早收敛;
  6. batch 内多样性不足:判别器看不到模式缺失。

4. 改善方法

4.1 损失/正则

  • WGAN / WGAN-GP:Wasserstein 距离 + 梯度惩罚;
  • Hinge loss:稳定判别器;
  • Least Squares GAN:缓解梯度消失;
  • R1 / R2 正则:惩罚判别器梯度;
  • Spectral Normalization:限制 Lipschitz 常数。

4.2 多样性机制

  • Minibatch discrimination:判别器看 batch 内多样性;
  • PacGAN:判别器看多个样本的联合分布;
  • Unrolled GAN:生成器考虑判别器未来几步;
  • Diversity loss:显式鼓励样本不同;
  • Multiple generators:不同生成器负责不同模式。

4.3 训练策略

  • EMA:稳定生成器;
  • TTUR:不同学习率;
  • Replay buffer:防止判别器遗忘;
  • Progressive Growing:从低分辨率逐步增长;
  • 数据增强:注意不要引入伪影。

4.4 架构/条件

  • StyleGAN/BigGAN:更好的生成器;
  • Conditional GAN:用标签分离模式;
  • VAE-GAN:VAE 提供覆盖,GAN 提供锐利度。

4.5 推理时

  • Truncation trick:截断 latent,提升保真度但降低多样性;
  • 注意:这是权衡,不是根治。

5. 诊断

  1. Precision/Recall:
  2. Precision 高、Recall 低 → 漏模式;
  3. 两者都低 → 质量/覆盖都差。
  4. 生成样本聚类:看是否集中;
  5. 条件分布分析:每个类别/属性覆盖;
  6. 人眼检查:快速发现“千篇一律”;
  7. FID 陷阱:FID 正常也可能漏模式。

6. Diffusion 的失败模式

Diffusion 不一定模式坍塌,但也有:

  • 模式缺失/偏见;
  • 记忆训练图;
  • 过饱和/伪影(高 CFG);
  • 文本对齐失败;
  • 少步模型多样性下降;
  • 数据偏差。

面试时不要说“Diffusion 没有失败模式”。


7. 混合方案

  • VQGAN:VQ-VAE + GAN;
  • 对抗蒸馏:Diffusion 教师 + GAN 学生;
  • VAE-GAN:覆盖 + 锐利度;
  • Diffusion + 判别器:提升真实感。

8. 90 秒回答:如何改善 GAN 模式坍塌

面试官问:如何改善 GAN 的模式坍塌?

参考回答:

“模式坍塌是生成器只覆盖少数模式。改善分几层:损失上用 WGAN-GP、hinge、R1、spectral norm 稳定判别器;多样性上用 minibatch discrimination、PacGAN、unrolled GAN、diversity loss;训练上用 EMA、TTUR、replay buffer、progressive growing;数据上更均衡;推理时 truncation 只是保真度/多样性权衡,不是根治。诊断要看 Precision/Recall,不能只看 FID。”


9. 追问与回答

追问 1:WGAN 为什么能缓解?

Wasserstein 距离在分布不重叠时仍有梯度,给生成器更平滑的信号。

追问 2:R1 正则为什么有效?

惩罚判别器对真实样本的梯度,限制判别器过强,稳定训练。

追问 3:truncation 是解决方案吗?

不是;它降低多样性换保真度,不能恢复丢失的模式。

追问 4:Diffusion 会模式坍塌吗?

不一定以 GAN 的方式坍塌,但会有模式缺失、偏见、记忆等问题。


10. 常见误区

  1. 只背“用 WGAN-GP”:要讲原因。
  2. 把 truncation 当根治:只是推理权衡。
  3. FID 低就没坍塌:FID 可能掩盖漏模式。
  4. 把坍塌与漏模式混为一谈。
  5. 认为 Diffusion 没有失败模式。

11. 课堂练习

答案见 06 章节练习与答案。

  1. 解释坍塌与漏模式的区别。
  2. 列 5 类改善方法。
  3. 给一个“人脸千篇一律”的案例做诊断。
  4. 解释 truncation 的取舍。
  5. 用 90 秒回答 A9。

12. 自测清单

  • [ ] 能定义坍塌/漏模式;
  • [ ] 能解释成因;
  • [ ] 能说 5 类方法;
  • [ ] 能用 Precision/Recall 诊断;
  • [ ] 能解释 truncation;
  • [ ] 能 90 秒回答 A9。

13. 本节材料为什么这样设计

  • 先定义再方法:避免只背技巧。
  • 诊断单列:A9 常追问“怎么发现”。
  • Diffusion 失败模式:防止绝对化。
  • 不写代码:本节是诊断和方案。

详细设计理由见 08 材料设计理由。


14. 下一节

6.3 26 题串讲与模拟面试