虽然像DDIM和高阶常微分方程(ODE)求解器这样的确定性采样器通过去除原始DDPM表述中固有的随机性成分,提供了大幅度提升的速度,但在某些情况下重新引入噪声可能带来益处。随机采样变体运用扩散过程的随机性,通常与底层理论更为贴合,有时在样本多样性和质量方面提供优势,但它们通常比高度优化的确定性方法需要更多的采样步骤。随机性的作用回顾一下,DDPM中的逆向过程涉及预测在时间步 $t$ 添加的噪声,然后从以 $x_t$ 和预测噪声的函数为中心的高斯分布中采样 $x_{t-1}$,并使用学习或固定的方差 $\sigma_t^2$。这个明确的采样步骤引入了随机性。$$ x_{t-1} \sim \mathcal{N}(\mu_\theta(x_t, t), \sigma_t^2 I) $$确定性采样器有效地将 $\sigma_t = 0$(如 $\eta=0$ 的DDIM)或使用常微分方程(ODE)表述来近似该过程,该表述描述了样本在噪声移除时的预期路径。相比之下,随机采样器保留一个噪声项,旨在求解对应的随机微分方程(SDE)。逆时SDE通常呈现如下一般形式:$$ dx = f(x, t) dt + g(t) d\bar{w} $$这里,$dx$ 表示样本 $x$ 在微小时间步 $dt$ 内的变化。$f(x, t) dt$ 项是漂移项,引导样本趋向更低的噪声水平(这是ODE求解器所近似的)。$g(t) d\bar{w}$ 项是扩散项或随机项,$g(t)$ 调整噪声的尺度,$d\bar{w}$ 表示无穷小随机噪声(来自维纳过程)。随机采样器包含了对这个 $g(t) d\bar{w}$ 项的近似。常见随机采样方法DDPM祖先采样器: 原始DDPM采样器本身是随机的。它直接实现逆向过程的马尔可夫链定义,使用模型的预测均值 $\mu_\theta(x_t, t)$ 和方差时间表 $\sigma_t^2$(可以是固定的,如 $\beta_t$,或学习的)来生成 $x_{t-1}$。作为一种基本方法,它通常需要许多步骤(例如1000步)才能生成高质量结果。SDE求解器(例如,欧拉-马鲁亚马方法): 这些是为求解SDE而设计的数值方法。欧拉-马鲁亚马方法是欧拉方法在ODE方面的一个直接扩展。一个更新步骤大致如下: $$ x_{t-\Delta t} \approx x_t + f(x_t, t) \Delta t + g(t) \sqrt{\Delta t} z_t $$ 其中 $z_t \sim \mathcal{N}(0, I)$ 是标准高斯噪声。这在每一步明确地添加了按比例调整的噪声,并由SDE表述引导。尽管简单,但它可能需要小的 $\Delta t$(即许多步骤)以确保稳定性和准确性。预测-校正方法: 受Score-SDE启发而来的采样器通常在每个时间步内采用两阶段过程:预测器: 使用ODE求解器步骤(近似漂移项)来估计 $x_{t-\Delta t}$。校正器: 使用基于分数的方法(如朗之万动力学)来修正预测的 $x_{t-\Delta t}$,这涉及根据数据分布对数似然的梯度(即分数,$\nabla_x \log p(x)$)来调整步骤,本身会引入噪声。这有助于确保样本保持接近演变中的数据流形。确定性求解器的随机变体: 一些方法在原本确定性的求解器(如 $\eta > 0$ 的DDIM)中加入噪声注入步骤。这提供了一个可调参数来控制随机性程度,以平衡速度和多样性。例如,SDEdit在逆向过程的大部分时间中使用确定性ODE求解器,但在中间时间步 $t_{edit}$ 引入大量噪声,然后继续求解,有效地扰动采样路径以增加多样性或执行编辑任务。随机采样器与确定性采样器对比选择随机采样器和确定性采样器涉及权衡:速度与步数: 高度优化的确定性ODE求解器(DPM-Solver++、UniPC)目前在极少步数(例如5-20步)内生成高质量样本方面是最新方法。随机采样器通常需要更多步数(例如,对于好的SDE求解器是20-200步,对于基本DDPM高达1000步)才能达到相似质量,因为注入的噪声需要随时间进行平均。多样性: 随机采样器通常为相同的初始潜在噪声 $z_T$ 生成更多样化的输出。每一步添加的随机噪声会在采样路径中产生变化,导致最终样本略有不同。确定性采样器对于给定的 $z_T$ 和步数会产生唯一的输出。样本质量: 质量比较很复杂。有时,随机方法中的噪声可以通过更好地匹配噪声训练过程来略微提升感知质量或真实感,可能避免少数步确定性求解器有时出现的过度平滑结果。然而,过多的噪声或不足的步骤会降低质量。可复现性: 在相同的初始噪声和参数下,确定性采样器是完全可复现的。随机采样器需要在每一步对随机数生成器进行初始化以实现可复现性。理论符合度: 随机采样器更符合扩散模型起源的概率性SDE/DDPM表述。{ "layout": { "title": "确定性与随机采样路径", "xaxis": { "title": "逆向时间步 (T -> 0)", "autorange": "reversed", "tickvals": [ 10, 8, 6, 4, 2, 0 ] }, "yaxis": { "title": "状态表示", "range": [ -1, 1 ] }, "legend": { "yanchor": "top", "y": 0.99, "xanchor": "left", "x": 0.01 } }, "data": [ { "x": [ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 ], "y": [ -0.79, -0.79, -0.71, -0.53, -0.33, 0.08, 0.27, 0.43, 0.63, 0.76, 0.8 ], "mode": "lines", "name": "确定性路径", "line": { "color": "#228be6", "width": 2 } }, { "x": [ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 ], "y": [ -0.79, -0.75, -0.65, -0.58, -0.4, 0.05, 0.35, 0.4, 0.68, 0.7, 0.75 ], "mode": "lines", "name": "随机路径 1", "line": { "color": "#12b886", "width": 1.5, "dash": "dot" } }, { "x": [ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 ], "y": [ -0.79, -0.82, -0.78, -0.5, -0.28, 0.15, 0.2, 0.5, 0.55, 0.8, 0.85 ], "mode": "lines", "name": "随机路径 2", "line": { "color": "#fd7e14", "width": 1.5, "dash": "dot" } } ] }从时间T的相同初始噪声开始,确定性采样器遵循单一路径到达最终样本。随机采样器在中间步骤引入随机性,导致不同的潜在路径和最终结果。实际考量使用随机采样器时:噪声调度 (g(t)): 在整个过程中注入噪声的幅度很重要。它通常遵循与原始扩散过程噪声水平相关的调度。不正确的缩放会损害样本质量。步数: 在步数、计算成本和样本质量之间找到合适的平衡是必要的。与少数步ODE求解器不同,随机方法通常随着步数增加而显示出更渐进的质量提升。用例: 当样本多样性是高优先级时,或者当试图精确复现使用随机采样(如原始DDPM)训练和评估的模型结果时,随机方法很有用。它们有时还可以帮助减轻在极低步数确定性采样中出现的某些伪影。总而言之,随机采样变体提供了一种生成方法,它包含随机性。尽管通常比最新确定性求解器慢,但它们在样本多样性和与底层SDE理论的更紧密贴合方面提供优势,为控制和优化扩散模型生成过程提供了另一套工具。