(2024,无分类器引导 CFG,独立条件引导 ICG,时间步引导 TSG)没有训练,没有问题:重新思考用于扩散模型的 CFG

文摘   2024-07-11 15:28   新加坡  

No Training, No Problem: Rethinking Classifier-Free Guidance for Diffusion Models

进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群

目录

0. 摘要

4. 重新审视无分类器引导

5. 时间步引导

6. 实验

8. 讨论与结论



0. 摘要

无分类器引导(Classifier-free guidance,CFG)已成为提高条件扩散模型质量的标准方法。然而,使用 CFG 需要同时训练一个无条件模型和主要的扩散模型,或者通过定期插入一个空(null)条件来修改训练过程。此外,CFG 没有明确的扩展到无条件模型的方法。在本文中,我们重新审视了 CFG 的核心原理,并介绍了一种新方法——独立条件引导(independent condition
guidance,ICG),它无需任何特殊训练过程即可提供 CFG 的好处
。我们的方法简化了条件扩散模型的训练过程,也可以在任何预训练的条件模型上进行推理时使用。此外,通过利用所有扩散网络中编码的时间步信息,我们提出了一种 CFG 的扩展方法,称为时间步引导(time-step guidance,TSG),可应用于任何扩散模型,包括无条件模型。我们的引导技术易于实现,采样成本与 CFG 相同。通过大量实验,我们证明了 ICG 在各种条件扩散模型中的性能与标准 CFG 相匹配。此外,我们还展示了 TSG 在不依赖任何条件信息的情况下,以类似于 CFG 的方式提高了生成质量。

(2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散

4. 重新审视无分类器引导

现在我们展示如何使用一个条件模型来模拟无分类器引导的行为,而无需训练一个额外的无条件模型。本节的分析受 Sadat 等人 [35] 的启发。

首先,注意在每个时间步 t,无分类器引导使用如下条件得分和无条件得分来指导采样过程。

基于贝叶斯定理,我们可以写出

因此

接下来,假设我们用一个独立于输入 zt 的随机向量 ˆy 替换条件。在这种情况下,我们有

因此

这一分析表明,我们可以通过用独立向量 ˆy 替换条件 y,仅基于条件模型来估计无条件得分。基于这一推导,我们认为无需训练一个单独的模型 D_θ(zt, t, y_null) 来应用无分类器引导,因为只要我们选择一个独立于 zt 的输入条件,我们就可以使用条件模型本身来引导无条件分布的得分。本文将这种方法称为独立条件引导(independent condition guidance,ICG)。

ICG 的直观理解在类条件情况下变得更加清晰。注意,通过了解每个 y 的条件分布 p_t(zt|y),我们也隐式地得到了无条件分布

直接应用该公式的主要限制是需要多个前向传播(每个类别一次)。ICG 通过仅使用一次网络前向传播高效地从条件模型中推导无条件得分,从而绕过了这一问题。因此,ICG 的采样成本与标准 CFG 相同。

实现细节。尽管上述分析适用于任何独立于 zt 的条件 ˆy,但在实践中必须为模型输入选择适当的 ˆy。我们尝试了两种独立条件的选项。

  • 首先,ˆy 可以从具有适当标准差的高斯分布中抽取,以便 ˆy 与实际条件向量 y 的尺度相匹配。

  • 其次,可以从条件空间中选择一个随机条件,如随机类别标签或随机 clip token,作为独立的 ˆy。

我们在第 7 节中展示了这两种方法的性能相似。然而,随机条件可能比高斯噪声略有优势,因为它更接近扩散模型训练时的条件分布。

5. 时间步引导

受 ICG 启发,我们接下来提供了一种无分类器引导的扩展,可以用于任何模型,包括无条件网络。我们从类别条件模型的分析开始,然后将其扩展到更通用的设置。

在类别条件情况下,类别的嵌入向量通常会添加到时间步 t 的嵌入向量中以计算扩散网络的输入条件。因此,在实践中,CFG 本质上使用了两个不同输入嵌入的扩散网络的输出,并将其差值作为更新方向。因此,我们可以直接利用每个扩散模型的时间步嵌入来定义类似的引导信号。这导致了一种新的方法,我们称之为时间步引导(time-step guidance,TSG),它像 CFG 一样提高了生成质量,但与 CFG 不同的是,它甚至适用于无条件模型。

在这种方法中,我们计算干净时间步嵌入和扰动嵌入的模型输出,并利用它们的差值来指导采样。更具体地说,在每个时间步 t,我们通过以下方式更新输出:

其中 ˜t 是 t 的扰动版本。TSG 的直观理解是,在每个时间步 t,改变网络的时间步嵌入会导致去噪输出具有不足或过度的噪声去除(见图 7)。因此,这些输出可以被利用来防止网络朝向不希望的预测,从而增加每个时间步的得分预测的准确性。如下所示,TSG 在一阶近似上与随机朗之万动力学(Langevin dynamics)相关,因此预计会提高生成质量。

与朗之万动力学的关系。设 ˜t = t + Δt,其中 Δt 是一个小扰动。使用泰勒展开,我们得到

因此,

基于方程(4),

得分函数等于

:根据方程(4),得分函数是 D 的线性函数,所以根据方程(4)和其上面的那个方程,可得方程(9)。

现在,如果我们按照欧拉采样步骤来求解方程(1),即我们定义更新规则为

则时间步引导后的修改采样步骤将等于

假设 Δt 是一个均值为零的高斯随机变量,更新规则类似于朗之万动力学步骤,其中噪声强度根据网络行为(由 ∂D_θ(zt,t) / ∂t 表示)确定。由于朗之万动力学通过补偿每个采样步骤中的误差来提高从给定分布中采样的质量,我们认为 TSG 在一阶近似上也表现出类似的行为。

实现细节。在实践中,我们通过按零均值高斯噪声扰动时间步嵌入来实现 TSG,公式为

其中 n ∼ N(0, I) 和 st^α 确定每个时间步 t 的噪声尺度。我们选择 s 和 α 使得噪声部分的尺度与时间步嵌入 temb 的尺度相当。经验上,我们还发现,有时将扰动嵌入仅应用于扩散网络中的一部分层是有益的,例如,将 ˜temb 应用于前 10 层,而将 temb 应用于其余层。我们在第 7 节中提供了这些超参数的消融实验。

6. 实验

本文重新审视CFG,并提出ICG:在训练好的条件扩散模型中用独立条件替换条件向量,来估计无条件分布的得分,而无需在训练过程中学习无条件模型。受此启发,本文还提出 TSG,展示了扩散模型学习到的时间步信息可以用于提高生成质量,即使对于无条件模型也是如此

8. 讨论与结论

在本文中,我们重新审视了无分类器引导的核心方面,并展示了通过在训练好的条件扩散模型中用独立条件替换条件向量,我们可以高效地估计无条件分布的得分。然后,我们介绍了独立条件引导(ICG),这是一种模拟 CFG 相同行为的新方法,无需在训练过程中学习无条件模型。受此启发,我们还提出了时间步引导(TSG),并展示了扩散模型学习到的时间步信息可以用于提高生成质量,即使对于无条件模型也是如此。我们的实验表明,ICG 的性能与标准 CFG 相似,并且减轻了在训练过程中考虑 CFG 目标的需求。因此,ICG 简化了条件模型的训练,并可能提高训练效率。此外,我们验证了 TSG 在不依赖任何条件信息的情况下,也能以类似 CFG 的方式提高生成质量。与 CFG 一样,如何加速所提出的方法以使采样成本接近于无引导采样过程(即在每个采样步骤中无需两次查询扩散网络)仍然是一个挑战;我们认为这是一个有前途的进一步研究方向。 

:这篇文章存在一个未解释的问题。相比于使用 CFG,使用 ICG 的优势是无需在训练过程中学习无条件模型。那么在图 1,图 2 中,以及在表 1 中,ICG 比 CFG 更好的性能从何而来?


论文地址https://arxiv.org/abs/2407.02687

EDPJ
CV 博士在读。文章搜索:公众号主页右上角放大镜搜关键词。
 最新文章