Classifier Guidance vs. Classifier-Free Guidance 对比总结
核心思想
- Classifier Guidance (CG): 利用一个预训练的外部分类器 的梯度来引导预训练的无条件扩散模型的采样过程,使其生成符合条件 的样本。
- Classifier-Free Guidance (CFG): 让扩散模型自身同时学习条件分布 和无条件分布 ,在采样时利用这两者之间的差异进行自我指导。
所需模型
- CG:
- 预训练的无条件扩散模型
- 预训练的分类器 (需要在带噪图像上训练)
- CFG:
- 一个统一的条件扩散模型 ,通过在训练时随机丢弃条件 (用 替代) 来同时学习条件和无条件预测。
训练过程
- CG: 扩散模型和分类器通常是独立训练的。分类器需要在不同噪声水平的 上进行训练,以准确提供梯度。
- CFG: 扩散模型在训练时,以一定概率 (如10-20%) 将真实的条件 替换为一个特殊的空条件 ,从而使模型学会根据 和 进行预测。共享一套模型参数 。
指导机制
- CG: 在采样步骤 ,通过修改逆向过程高斯分布的均值 来实现指导:
- CFG: 在采样步骤 ,通过调整预测的噪声 来实现指导:
对齐性
- CG: 可能存在分类器与扩散模型之间的不匹配问题。例如,分类器的训练数据、噪声分布可能与DDPM不完全一致,或者分类器本身性能瓶颈会限制指导效果。
- CFG: 对齐性更好,因为指导信号来源于扩散模型自身。条件信息和生成过程通常能更好地融合。
实现复杂度
- CG: 需要额外训练、维护和加载一个分类器模型。采样时需要分类器模型进行前向和反向传播(计算梯度)。
- CFG: 训练策略略有调整,但采样时仅需对同一个模型进行两次前向传播(一次带条件,一次不带条件),然后进行简单的算术组合。整体流程更简洁。
指导强度控制
- CG: 通过超参数 (guidance scale) 控制。
- CFG: 通过超参数 (guidance scale) 控制。当 时,实际上是对条件预测的“外插”,可以更强地强调条件。
效果与鲁棒性
- CG: 效果高度依赖分类器的质量和泛化能力。当逆向过程的协方差 (或 ) 很小时(如去噪后期),基于梯度的调整项 的作用可能减弱,限制指导效果。
- CFG: 通常能产生更高质量、更符合条件的生成结果。直接作用于噪声预测 ,避免了对 大小的依赖,指导在整个去噪过程中通常更稳定有效。
计算开销 (采样时)
- CG: 每次采样步骤需要一次扩散模型前向传播和一次分类器前向+反向传播。
- CFG: 每次采样步骤需要两次扩散模型前向传播。如果分类器模型远小于扩散模型,CG单步可能略快,但CFG省去了分类器梯度计算。
实践中的理解与新内容:
-
主导趋势:
- Classifier-Free Guidance 已成为主流。由于其简便性、高效性和通常更优的性能,CFG 已经广泛取代了 Classifier Guidance,成为大多数先进条件扩散模型(如 Stable Diffusion, Imagen 等)的标准配置。
-
Classifier Guidance 的挑战:
- 分类器训练的复杂性:为 Classifier Guidance 训练一个在所有噪声水平 上都表现良好的分类器 本身就是一个不小的挑战。分类器需要在与扩散模型加噪过程一致的噪声数据上训练,这可能需要大量数据和精细的调整。
- 梯度质量:分类器梯度的质量直接影响生成效果。如果梯度噪声大或方向不准确,可能导致生成图像出现伪影或不符合预期的内容。
- 模式覆盖与多样性:过强的分类器指导 (大的 ) 可能会过度集中于分类器认为最典型的特征,从而牺牲生成样本的多样性,甚至导致模式坍塌 (mode collapse) 的问题,即生成的样本高度相似。
-
Classifier-Free Guidance 的优势体现:
- “内部”一致性:CFG 的核心优势在于指导信号是“内源性”的。模型自己学习了从无条件到条件的“差异方向” 。这个方向是模型在训练过程中根据数据分布和条件信息自己学到的,因此通常比外部、独立训练的分类器提供的梯度更“懂”扩散模型本身。
- 灵活性与强度:指导强度 的调整非常直观。当 ,得到无条件样本;,得到标准的条件样本(无额外强调); 时,则是在无条件预测的基础上,沿着“条件方向”进行外插,从而强化条件特征。这种外插能力是 CFG 效果突出的一个重要原因。
- 效果上限:实践中,CFG 往往能够达到比 CG 更高的图像质量和条件一致性上限。尤其是在需要精细控制或生成复杂场景时,CFG 的表现通常更佳。
-
潜在问题与调优:
- CFG 的过饱和/过度锐化:虽然 CFG 效果好,但当指导强度 设置得过高时,也可能导致生成图像颜色过饱和、对比度过高,或者细节出现不自然的锐化,有时甚至会产生一些“数字感”或“AI感”很强的图像。因此,选择合适的 值仍然是一个需要根据具体任务和模型进行调整的超参数。
- 计算成本权衡:CFG 在采样时需要对扩散模型进行两次前向传播。对于非常大的模型,这会带来一定的计算开销。然而,考虑到其带来的效果提升和免去分类器训练维护的成本,这通常是可以接受的。
总结来说,Classifier Guidance 是一个开创性的想法,展示了如何利用外部知识引导扩散模型。但 Classifier-Free Guidance 通过一种更内聚、更简洁的方式实现了更优的性能和易用性,使其成为当前条件生成领域的事实标准。它巧妙地让模型学会了“自我指导”,是扩散模型发展中的一个重要里程碑。