扩散模型第4章:VAE、GAN 与扩散的机制对照
本章不做“VAE、GAN、扩散谁最好”的排行榜,而是建立一个可复用的比较坐标系。三类模型的关键差异来自训练目标、生成路径和表示方式;这些差异会进一步影响稳定性、吞吐、可控性和评估方法。
1. 先把三类模型放到同一张表
Section titled “1. 先把三类模型放到同一张表”| 方法 | 训练对象 | 典型生成路径 | 常见优势 | 常见代价 |
|---|---|---|---|---|
| VAE | 变分下界(ELBO) | 从先验采样潜变量,再由解码器生成 | 有显式潜变量、便于表示学习和插值 | 感知质量依赖解码分布与目标设计 |
| GAN | 生成器与判别器的对抗目标 | 一次生成器前向 | 低延迟、高吞吐 | 训练动力学耦合,覆盖不足与不稳定需要专门处理 |
| 扩散 / score 模型 | 去噪、score 或等价参数化 | 多次网络评估逐步从噪声到数据 | 训练目标通常直接、条件控制生态成熟 | 经典采样需要多次网络评估 |
“VAE/GAN 一步、扩散多步”只描述经典形态。蒸馏、一致性模型和其他少步方法可以把扩散类模型的网络评估次数显著降低,因此速度差异不能只按模型家族名称判断。
2. 目标函数:三类方法真正优化什么
Section titled “2. 目标函数:三类方法真正优化什么”2.1 VAE:似然下界与潜变量模型
Section titled “2.1 VAE:似然下界与潜变量模型”经典 VAE 最大化证据下界:
第一项要求潜变量保留足够信息以解释数据,第二项约束近似后验不要偏离先验。它提供了结构清楚的潜变量空间,但生成质量并不只由 KL 项决定;解码分布、感知损失、潜变量维度和模型容量同样重要。
2.2 GAN:对抗目标与耦合优化
Section titled “2.2 GAN:对抗目标与耦合优化”原始 GAN 的目标是:
在原始目标和理想化的最优判别器条件下,可以把它联系到 Jensen–Shannon 散度;现代 GAN 还使用 Wasserstein、hinge loss 等其他目标。真正需要记住的是:生成器看到的优化地形会随着判别器变化,因此训练不能像普通单目标回归那样只看一条 loss 是否下降。
2.3 扩散:去噪目标与 score 视角
Section titled “2.3 扩散:去噪目标与 score 视角”常见 DDPM 参数化使用噪声回归:
它可以与 denoising score matching 联系起来,但“预测噪声 = 有监督学习所以一定稳定”仍然过度简化。数据归一化、噪声参数化、SNR 加权、优化器和网络容量都可能造成训练失败。
3. 训练动力学:不要把“稳定”写成二元标签
Section titled “3. 训练动力学:不要把“稳定”写成二元标签”flowchart LR V[VAE] --> V1["编码器/解码器 + 潜变量正则"] G[GAN] --> G1["生成器 ↔ 判别器耦合"] D[Diffusion] --> D1["噪声水平条件下的去噪/score 回归"]
GAN 的典型困难包括生成器与判别器失衡、梯度质量变差和 mode collapse;但现代正则化、目标函数和架构已经显著改善这些问题。VAE 可能出现 posterior collapse,尤其在解码器很强时。扩散通常避免了对抗博弈,却可能对噪声调度、参数化和数据尺度敏感。
因此,“GAN 难训、扩散好训”可以作为历史经验的粗略概括,不能作为项目决策规则。
4. 成本:比较 NFE,而不是背“慢多少倍”
Section titled “4. 成本:比较 NFE,而不是背“慢多少倍””推理成本更适合用 NFE(number of function evaluations,网络评估次数)描述。
| 形态 | 生成一个样本的主要网络评估 |
|---|---|
| VAE 解码 / 经典 GAN | 通常约 1 次主生成网络前向 |
| 经典长链扩散 | 与采样时间步数量同阶 |
| DDIM / ODE-SDE solver | 取决于采样器与步数 |
| 蒸馏 / 一致性类方法 | 可降到很少的 NFE |
总成本还取决于网络大小、条件分支、批量大小、数据维度和硬件。训练成本同样不能简单说“三家一个量级”:GAN 一步里可能需要多次判别器更新,扩散可能训练更久,VAE 又可能包含昂贵的编码器和解码器。
项目里更有用的账本是:生成一个通过质量过滤的有效候选,需要多少 GPU 时间和显存。这个指标自动把无效率、采样步数和模型大小都算进去。
5. 现代系统经常是组合,而不是纯家族
Section titled “5. 现代系统经常是组合,而不是纯家族”最典型的例子是 latent diffusion:先用自编码器把高维数据压到潜空间,再在潜空间建模生成过程。这里的自编码器负责表示压缩,扩散负责潜空间中的生成;两者并不冲突。
同样,生成模型还可以叠加对抗损失、蒸馏、条件控制或几何约束。读论文时,与其问“它属于哪一家”,不如拆成四个问题:
- 数据在哪个空间表示?
- 用什么训练目标连接噪声与数据?
- 网络主干是什么?
- 采样需要多少次网络评估?
这四个问题会在下一章继续展开。
6. 项目比较协议
Section titled “6. 项目比较协议”如果需要在自己的任务中比较 VAE、GAN 与扩散,建议至少统一:训练/验证/测试划分、条件输入、参数量级、数据增强和最终评价集。报告时同时给出质量、多样性、任务效用、推理吞吐与失败率,不要只挑一个家族最擅长的指标。
生物任务尤其需要避免“生成分布看起来相似”就等价于“生物上可用”。蛋白、分子、单细胞和病理数据的任务级验收放在第 7、8 章。
主题色
字体
字号
视觉效果
即将离开本站
你将前往外部网站:
该网站与本站无关,本站不对其内容、安全性或可用性负责。确定后将在新标签页打开。