扩散模型的根本动因是:用可逆的加噪过程将复杂数据分布转化为标准高斯分布,再学习逆过程——但这个"可逆"假设在推理阶段悄然失效,信噪比与时间步之间的对齐关系被打破,导致生成质量系统性下降。
Sohl-Dickstein 等人在 NeurIPS 2015 发表《Deep Unsupervised Learning using Nonequilibrium Thermodynamics》,首次将热力学扩散过程引入生成模型。核心思路是:正向过程逐步向数据加噪,逆向过程学习去噪。此时噪声调度(noise schedule)被视为超参数,研究者尚未意识到 SNR 与时间步的对齐问题会在推理阶段产生系统性偏差。
Ho 等人(Google Brain)在 NeurIPS 2020 发表 DDPM,将正向过程定义为线性高斯马尔可夫链:$q(x_t|x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t}x_{t-1}, \beta_t I)$。通过重参数化得到 $x_t = \sqrt{\bar\alpha_t}x_0 + \sqrt{1-\bar\alpha_t}\epsilon$,其中 $\bar\alpha_t = \prod_{s=1}^t(1-\beta_s)$。SNR 被隐式定义为 $\text{SNR}(t) = \bar\alpha_t/(1-\bar\alpha_t)$。训练时 SNR 与 $t$ 严格单调对应,但推理时使用 DDIM 等加速采样器跳步后,这一对应关系被破坏——跳步意味着实际去噪的 SNR 跨度与模型训练时见到的不一致。
Chen(Google)在 ICLR 2023 发表《Analog Bits》,Kingma 等人发表《On the Design of Diffusion Models》,开始将 SNR 作为第一性原理来设计噪声调度,而非将 $t$ 作为主变量。关键发现:模型实际上是在学习 $\text{SNR}(t)$ 的函数,而非 $t$ 的函数。这一视角转换揭示了不同噪声调度(线性、余弦、sigmoid)之间可以通过 SNR 曲线统一描述。
随着 Stable Diffusion、DALL-E 3 等大规模部署,研究者发现推理时的 SNR-t 偏差在高分辨率图像、长音频生成中尤为严重。偏差来源有三:①加速采样器(DDIM/DPM-Solver)的非均匀时间步选取;②训练与推理的分辨率不匹配导致有效 SNR 漂移;③条件引导(classifier-free guidance)改变了有效 SNR 分布。这一问题在音频扩散模型(如 AudioLDM、Stable Audio)中同样存在,因为音频频谱的能量分布比图像更不均匀,SNR 偏差对高频细节的损伤更为显著。
设正向过程为 $x_t = \sqrt{\bar\alpha_t}x_0 + \sqrt{1-\bar\alpha_t}\epsilon$,$\epsilon \sim \mathcal{N}(0,I)$,则时间步 $t$ 处的信噪比定义为: $$\text{SNR}(t) = \frac{\bar\alpha_t}{1 - \bar\alpha_t}$$ 训练目标为 $\mathcal{L} = \mathbb{E}_{t,x_0,\epsilon}\left[w(\lambda_t)\|\epsilon_\theta(x_t, t) - \epsilon\|^2\right]$,其中 $\lambda_t = \log\text{SNR}(t)$,权重 $w(\lambda_t)$ 决定不同 SNR 区间的学习强度。 SNR-t 偏差的数学刻画:设训练时使用均匀时间步 $\{t_1,...,t_T\}$,对应 SNR 序列 $\{\lambda_1,...,\lambda_T\}$。推理时 DDIM 选取子序列 $\{t_{i_1},...,t_{i_S}\}$($S \ll T$),但网络 $\epsilon_\theta(x_t, t)$ 的输入 $t$ 仍按原始索引编码。当实际去噪步的 $\Delta\lambda = \lambda_{i_{k+1}} - \lambda_{i_k}$ 远大于训练时的平均步长时,网络的预测误差为: $$\delta_\text{bias} = \epsilon_\theta(x_t, t) - \epsilon_\theta(x_t, \lambda_t)$$ 即网络以时间步 $t$ 为条件,但实际 SNR 已偏离 $\lambda_t$ 对应的值。校正方法之一是将网络条件从离散时间步 $t$ 替换为连续 $\lambda_t$,使 $\epsilon_\theta(x_{\lambda}, \lambda)$ 直接以 SNR 为输入,消除索引与 SNR 的解耦。 Classifier-Free Guidance 的 SNR 放大效应:引导后的有效预测为 $\tilde\epsilon = (1+w)\epsilon_\theta(x_t,t,c) - w\epsilon_\theta(x_t,t,\varnothing)$,其有效 SNR 被放大为 $\text{SNR}_\text{eff}(t) \approx (1+w)^2 \cdot \text{SNR}(t)$,这解释了为何高引导强度会导致过饱和——实际工作点已偏离训练分布。
扩散模型推理的 SNR 校正本质是:在不重新训练的前提下,通过重新参数化时间步、调整采样轨迹或修正网络输入,使推理时每一步的实际信噪比落回训练时见过的分布区间。
首先计算训练噪声调度的 $\lambda(t) = \log(\bar\alpha_t / (1-\bar\alpha_t))$ 曲线,以及推理时实际使用的采样步对应的 $\lambda$ 值序列。绘制 $\lambda$ vs $t$ 图,识别偏差最大的区间。对于线性调度,$\lambda(t)$ 在低 $t$(高 SNR)区间变化缓慢,在高 $t$(低 SNR)区间变化剧烈,跳步采样会在低 SNR 区间产生最大偏差。这一步是诊断性的,决定后续校正策略的优先级。
将推理时的时间步从均匀采样改为在 $\lambda$ 空间均匀采样。具体做法:给定目标推理步数 $S$,在 $[\lambda_\min, \lambda_\max]$ 上均匀取 $S$ 个点 $\{\lambda_1,...,\lambda_S\}$,再通过 $\lambda(t)$ 的逆函数映射回时间步 $\{t_1,...,t_S\}$。这保证每步去噪的 SNR 跨度均匀,避免在某些区间过采样、某些区间欠采样。实现细节:需要预计算 $\lambda(t)$ 的查找表并做插值,计算开销极小。
将去噪网络的时间步嵌入从离散索引 $t$ 改为连续 $\lambda_t$。原始实现中,时间步通过 sinusoidal embedding 或 learned embedding 编码,隐式学习了 $t \to \text{SNR}$ 的映射。直接以 $\lambda_t$ 为条件,网络获得的是 SNR 的直接信号,泛化到不同噪声调度和采样器时更鲁棒。Kingma 等人证明,以 $\lambda$ 为条件的网络在不同噪声调度间迁移时性能损失显著低于以 $t$ 为条件的网络。
对 Classifier-Free Guidance,引入 SNR 自适应引导权重:$w(t) = w_0 \cdot \sqrt{\text{SNR}(t) / \text{SNR}_\text{ref}}$,在高 SNR(低噪声)阶段降低引导强度,在低 SNR(高噪声)阶段保持引导强度。这防止高 SNR 阶段的过饱和,同时保留低 SNR 阶段的语义引导效果。实现时只需在采样循环中根据当前 $t$ 动态计算 $w(t)$,无需修改网络权重。
从根本上解决偏差问题需要在训练时使用 Min-SNR 加权策略(Hang et al., 2023):$w(\lambda_t) = \min(\text{SNR}(t), \gamma) / \text{SNR}(t)$,其中 $\gamma$ 是截断超参数(通常取 5)。这防止高 SNR 时间步主导训练,使模型在全 SNR 范围内均匀学习,从而对推理时的 SNR 偏差更鲁棒。
SNR-t 偏差校正已成为工业级扩散模型部署的标配。Stable Diffusion 3 和 Stable Audio 2 均采用了 SNR 感知的噪声调度设计;Sora 的技术报告隐含了类似的时间步重参数化策略。在音视频生成领域,AudioLDM 2 和 Stable Audio 的高频细节质量提升很大程度上归功于 SNR 校正——音频频谱的高频成分 SNR 天然更低,偏差对其损伤最大。Min-SNR 加权损失已被 Hugging Face Diffusers 库集成为默认训练选项,影响了数以千计的下游微调项目。
当前热点包括:①连续时间扩散模型(如 Flow Matching)中 SNR 概念的推广——流匹配用速度场替代噪声预测,SNR 偏差以不同形式出现;②多模态扩散(图像+音频+视频联合生成)中不同模态 SNR 调度的协同对齐问题;③量化推理(INT8/FP8)对 SNR 估计精度的影响——低精度计算会引入额外的有效噪声,等价于 SNR 的系统性低估,目前尚无成熟的补偿方案。