6.2 GAN 模式坍塌与生成模型失败模式¶
所属章节:第 6 章 评估、失败模式与面试实战
课时:90 分钟
前置:GAN 基础、评估指标
对应面试题:A9
一句话目标:学完能解释模式坍塌的机制,说出至少 5 类改善方法,并用 Precision/Recall 做诊断。
1. 学习目标¶
学完本节,你应该能够:
- 定义 模式坍塌与模式丢弃;
- 解释 坍塌的成因;
- 说出 至少 5 类改善方法;
- 用 Precision/Recall 诊断;
- 解释 truncation 的取舍;
- 对比 GAN 与 Diffusion 的失败模式;
- 用 90 秒回答 A9。
2. 模式坍塌是什么¶
模式坍塌(mode collapse):
生成器只覆盖数据分布的少数模式,很多真实模式生成不出来。
例如:
- 生成人脸时,只生成少数几种脸;
- 生成数字时,只生成 1/8;
- 生成动物时,只生成同一姿态。
2.1 模式坍塌 vs 模式丢弃¶
| 概念 | 表现 |
|---|---|
| 模式坍塌 | 生成器塌到少数样本/模式 |
| 模式丢弃 | 部分模式没学到,但不是完全塌 |
两者都表现为多样性不足,但程度/机制不同。
3. 为什么会坍塌¶
- 对抗失衡:生成器找到骗过判别器的捷径;
- 判别器信号不足:无法惩罚漏掉的模式;
- 目标函数:JS 散度在分布不重叠时梯度弱;
- 数据不均衡:少数模式主导;
- 模型容量/训练策略:生成器过早收敛;
- 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. 诊断¶
- Precision/Recall:
- Precision 高、Recall 低 → 漏模式;
- 两者都低 → 质量/覆盖都差。
- 生成样本聚类:看是否集中;
- 条件分布分析:每个类别/属性覆盖;
- 人眼检查:快速发现“千篇一律”;
- 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. 常见误区¶
- 只背“用 WGAN-GP”:要讲原因。
- 把 truncation 当根治:只是推理权衡。
- FID 低就没坍塌:FID 可能掩盖漏模式。
- 把坍塌与漏模式混为一谈。
- 认为 Diffusion 没有失败模式。
11. 课堂练习¶
答案见 06 章节练习与答案。
- 解释坍塌与漏模式的区别。
- 列 5 类改善方法。
- 给一个“人脸千篇一律”的案例做诊断。
- 解释 truncation 的取舍。
- 用 90 秒回答 A9。
12. 自测清单¶
- [ ] 能定义坍塌/漏模式;
- [ ] 能解释成因;
- [ ] 能说 5 类方法;
- [ ] 能用 Precision/Recall 诊断;
- [ ] 能解释 truncation;
- [ ] 能 90 秒回答 A9。
13. 本节材料为什么这样设计¶
- 先定义再方法:避免只背技巧。
- 诊断单列:A9 常追问“怎么发现”。
- Diffusion 失败模式:防止绝对化。
- 不写代码:本节是诊断和方案。
详细设计理由见 08 材料设计理由。