条件生成,即引导扩散模型生成符合特定属性(如类别标签或文本描述)输出的能力,是其实际使用的一个根本。一种早期方法,即分类器引导,使用一个独立的、预训练的分类器网络来引导采样过程。尽管有效,但此方法增加了复杂性:它需要训练和维护一个额外的模型,且分类器对内容的理解可能与扩散模型内部的表达形式不完全一致,有时会导致欠佳的结果,或需要仔细调整。
无分类器引导 (CFG) 提供了一种更精巧且通常更有效的方法,通过不依赖外部分类器来实现引导。核心思想非常直接:训练单个扩散模型来预测条件和无条件噪声估计,然后在采样时利用这些预测之间的差异,引导生成过程趋向于设定的条件。
CFG机制:朝向条件进行外推
我们将扩散模型(通常是 U-Net 或 Transformer)表示为 ϵθ,其参数为权重 θ。此模型经过训练,用于预测在时间步 t 时添加到输入 xt 的噪声。
- 条件预测: 在给定条件 c(例如,类别标签嵌入、文本嵌入)时,模型预测以 c 为条件的噪声: ϵθ(xt,c,t)。
- 无条件预测: 同一个模型 ϵθ 也被训练来预测未提供特定条件时的噪声。这通常通过将条件 c 替换为特殊的“空”条件标记 ∅(例如,零向量或用于“无条件”的习得嵌入)来实现:ϵθ(xt,∅,t)。
在采样期间,CFG 不仅仅使用条件预测 ϵθ(xt,c,t) 来估计去噪后的 x0 或噪声 ϵ,而是计算一个修正的噪声估计 ϵ~θ。这是通过获取无条件预测,并沿着条件预测所指示的方向进一步移动来实现的:
ϵ~θ(xt,c,t)=ϵθ(xt,∅,t)+w⋅(ϵθ(xt,c,t)−ϵθ(xt,∅,t))
另外,这也可以写成:
ϵ~θ(xt,c,t)=(1+w)ϵθ(xt,c,t)−wϵθ(xt,∅,t)
这里,w 是引导尺度(有时表示为 s 或 γ)。这个标量超参数控制引导的强度:
- 如果 w=0,我们得到无条件预测 ϵθ(xt,∅,t),忽略条件 c。生成过程是纯粹无条件的。
- 如果 w=1,公式(在其第一种形式中)简化为 ϵθ(xt,c,t),仅使用标准条件预测。
- 如果 w>1,我们对外推标准条件预测,更强地推动模型朝向条件 c。w 值越高,对条件的依从性越强,但这通常会牺牲样本多样性,如果设置过高还可能引入伪影。
可以将 ϵθ(xt,∅,t) 看作一个基线预测,而将 (ϵθ(xt,c,t)−ϵθ(xt,∅,t)) 看作噪声空间中从无条件估计指向条件估计的“引导方向”向量。CFG 将此方向向量按 w 进行缩放,并将其添加到基线。
图示无分类器引导过程。同一个扩散模型在每个采样步骤中对噪声输入 xt 进行两次评估:一次是使用目标条件 c(评估 2),另一次是使用空条件 ∅(评估 1)。然后,使用引导尺度 w 组合由此产生的条件和无条件噪声预测,以生成最终的引导噪声估计 ϵ~θ。
CFG的训练
主要在于训练同一个模型来处理条件生成和无条件生成。
这通常通过在部分训练样本中随机“丢弃”条件信息来实现。例如,在训练期间:
- 选择一批数据 (x,c)。
- 对于批次中的每个项目,以某个概率 puncond(例如,10-20%)将实际条件 c 替换为空条件标记 ∅。
- 将(可能已修改的)批次 (xt,c′),而 c′ 可以是 c 或 ∅,通过模型 ϵθ。
- 基于预测 ϵθ(xt,c′,t) 和真实噪声 ϵ 计算损失。
这个简单的步骤迫使模型 ϵθ 使用同一组网络权重,学习特定条件 c 和通用空条件 ∅ 的有意义表示。它有效地训练模型在单一模型中执行两项任务。
无分类器引导的优势
CFG 已成为引导扩散模型的标准技术,因为它相比分类器引导具有多项重要优势:
- 简洁性: 它省去了训练、存储和加载单独分类器模型的需要。这大大简化了整体训练和推理流程。引导机制是扩散模型自身固有的。
- 更好的连贯性: 由于引导来自执行去噪的同一个模型,因此引导信号通常与模型内部的生成过程更一致,相比来自外部分类器的信号,这可能带来更高质量和更连贯的样本。
- 灵活性: CFG 可以轻松适用于各种形式的条件设定,包括类别标签、文本嵌入(如 CLIP 嵌入)、图像嵌入,甚至条件组合,只要能够定义一个空表示 ∅。
- 增强的控制: 引导尺度 w 提供了一种直接且直观的方式来控制样本保真度(对条件 c 的依从性)与样本多样性之间的平衡。在采样期间尝试不同的 w 值,用户可以在不重新训练模型的情况下了解这种特性。w 的常用值范围为 3 到 15,具体取决于模型和任务。
- 先进的结果: CFG 在许多大型文本到图像模型(如 Stable Diffusion、Imagen、DALL-E 2)和其他条件生成任务中取得高质量结果方面发挥了重要作用。
考量
尽管功能强大,CFG 也有其需要注意的方面:
- 采样成本: 主要的缺点是推理期间计算成本增加。因为 CFG 需要在每个时间步评估模型两次(一次使用 c,一次使用 ∅),所以采样时间大约是仅使用条件预测 (w=1) 或无条件采样 (w=0) 的两倍。
- 引导尺度调整: 寻找最佳引导尺度 w 取决于具体应用,通常需要进行实验。极高的值可能导致过饱和、伪影或多样性丧失,而极低的值可能导致条件作用较弱。w 的影响也可能与采样器选择和采样步数有关。
- 训练稳定性: 尽管训练修改很简单,但确保模型有效学习条件和无条件模式可能需要注意丢弃概率 puncond 和其他训练超参数。
总而言之,无分类器引导提供了一种有效的方法来控制扩散模型的输出。通过巧妙地训练一个单一模型来处理条件和无条件预测,并在推理期间组合这些预测,CFG 提供了强大的引导能力,而无需外部分类器的额外开销,使其成为现代生成建模中一项重要技术。下一节将考察实现和调整 CFG 尺度的实际方面。