在这里插入图片描述

目录


1. 什么是 Sigma

在扩散模型(Diffusion Models)中,Sigma(σ) 是一个核心参数,用于控制添加到数据中的高斯噪声的强度。它本质上是一个标准差参数,决定了在扩散过程中每一步向数据注入多少噪声。

从物理直觉上理解:

  • σ = 0:表示没有噪声,数据完全纯净
  • σ 较小:噪声轻微,数据基本保留原有结构
  • σ 较大:噪声强烈,数据被严重破坏
  • σ → ∞:数据完全被噪声淹没,趋近于纯高斯分布

Sigma 贯穿扩散模型的前向加噪过程和反向去噪过程,是将数据从"干净"变为"噪声"、再从"噪声"恢复为"干净"的关键控制变量。


2. 扩散模型基本框架

扩散模型的核心思想包含两个互为相反的过程:

反向过程

前向过程

逐步加噪

逐步去噪

干净数据 x0

噪声数据 xT

2.1 前向过程(加噪)

前向过程是一个固定的马尔可夫链,逐步向数据中添加高斯噪声:

q ( x t ∣ x t − 1 ) = N ( x t ; 1 − β t   x t − 1 ,   β t I ) q(x_t | x_{t-1}) = \mathcal{N}(x_t; \sqrt{1 - \beta_t} \, x_{t-1}, \, \beta_t I) q(xtxt1)=N(xt;1βt xt1,βtI)

其中 β t ∈ ( 0 , 1 ) \beta_t \in (0, 1) βt(0,1) 是预定义的方差调度参数。

2.2 反向过程(去噪)

反向过程学习逆转前向过程,从噪声中恢复数据:

p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , σ t 2 I ) p_\theta(x_{t-1} | x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \sigma_t^2 I) pθ(xt1xt)=N(xt1;μθ(xt,t),σt2I)

注意:反向过程中的 σ t \sigma_t σt 就是本文讨论的 Sigma,它控制了每一步反向转移的方差。


3. Sigma 的数学定义

3.1 基本定义

在扩散模型的语境下,Sigma 有几种等价或相关的定义方式:

符号 含义 关系
β t \beta_t βt t t t 步的方差(DDPM) 基础调度参数
α ˉ t \bar{\alpha}_t αˉt 累积乘积 ∏ s = 1 t ( 1 − β s ) \prod_{s=1}^{t}(1-\beta_s) s=1t(1βs) 控制信号保留比例
σ t \sigma_t σt 反向过程方差 本文核心讨论对象
σ ( t ) \sigma(t) σ(t) 连续时间噪声标准差 ODE/SDE 框架下的定义

3.2 Sigma 与 Beta 的关系

在 DDPM(Denoising Diffusion Probabilistic Models)中,反向过程的方差可以表示为:

σ t 2 = β ~ t = 1 − α ˉ t − 1 1 − α ˉ t ⋅ β t \sigma_t^2 = \tilde{\beta}_t = \frac{1 - \bar{\alpha}_{t-1}}{1 - \bar{\alpha}_t} \cdot \beta_t σt2=β~t=1αˉt1αˉt1βt

也可以选择使用:

σ t 2 = β t \sigma_t^2 = \beta_t σt2=βt

或者学习得到的方差:

σ t 2 = exp ⁡ ( log ⁡ ( β ~ t ) ⋅ λ + log ⁡ ( β t ) ⋅ ( 1 − λ ) ) \sigma_t^2 = \exp\left(\log(\tilde{\beta}_t) \cdot \lambda + \log(\beta_t) \cdot (1 - \lambda)\right) σt2=exp(log(β~t)λ+log(βt)(1λ))

其中 λ \lambda λ 是模型学习的参数。

3.3 Sigma 在连续时间框架下的定义

在基于随机微分方程(SDE)的连续时间扩散模型中,Sigma 被定义为时间的函数 σ ( t ) \sigma(t) σ(t)

d x = f ( x , t )   d t + g ( t )   d w dx = f(x, t) \, dt + g(t) \, dw dx=f(x,t)dt+g(t)dw

其中:

  • f ( x , t ) f(x, t) f(x,t) 是漂移系数
  • g ( t ) g(t) g(t) 是扩散系数(与 σ ( t ) \sigma(t) σ(t) 直接相关)
  • w w w 是维纳过程(布朗运动)

在 VE-SDE(方差爆炸)的情形下,噪声标准差 σ ( t ) \sigma(t) σ(t) 是时间的确定性函数,前向过程表示为:

x t = x 0 + σ ( t ) ⋅ ϵ , ϵ ∼ N ( 0 , I ) x_t = x_0 + \sigma(t) \cdot \epsilon, \quad \epsilon \sim \mathcal{N}(0, I) xt=x0+σ(t)ϵ,ϵN(0,I)

其中 σ ( t ) \sigma(t) σ(t) 单调递增, σ ( 0 ) = σ min ⁡ \sigma(0) = \sigma_{\min} σ(0)=σmin σ ( T ) = σ max ⁡ \sigma(T) = \sigma_{\max} σ(T)=σmax。扩散系数 g ( t ) g(t) g(t) σ ( t ) \sigma(t) σ(t) 的关系为:

g 2 ( t ) = d σ 2 ( t ) d t g^2(t) = \frac{d\sigma^2(t)}{dt} g2(t)=dtdσ2(t)

即扩散系数等于噪声方差对时间的导数。

3.4 Sigma 与 KL 散度的理论联系

扩散模型的优化目标是最小化模型分布与真实数据分布之间的 KL 散度。Sigma 在变分下界(ELBO)中扮演重要角色。

变分下界(ELBO)的分解

log ⁡ p θ ( x 0 ) ≥ E q [ log ⁡ p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ] = L \log p_\theta(x_0) \geq \mathbb{E}_q \left[ \log \frac{p_\theta(x_{0:T})}{q(x_{1:T} | x_0)} \right] = L logpθ(x0)Eq[logq(x1:Tx0)pθ(x0:T)]=L

ELBO 可以分解为:

L = D K L ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) ⏟ L T + ∑ t = 2 T D K L ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ⏟ L t − 1 − log ⁡ p θ ( x 0 ∣ x 1 ) ⏟ L 0 L = \underbrace{D_{KL}(q(x_T | x_0) \| p(x_T))}_{L_T} + \sum_{t=2}^{T} \underbrace{D_{KL}(q(x_{t-1} | x_t, x_0) \| p_\theta(x_{t-1} | x_t))}_{L_{t-1}} - \underbrace{\log p_\theta(x_0 | x_1)}_{L_0} L=LT DKL(q(xTx0)p(xT))+t=2TLt1 DKL(q(xt1xt,x0)pθ(xt1xt))L0 logpθ(x0x1)

其中每个 KL 散度项 L t − 1 L_{t-1} Lt1 都依赖于 Sigma 的选择。具体地, q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1} | x_t, x_0) q(xt1xt,x0) 的方差为:

β ~ t = 1 − α ˉ t − 1 1 − α ˉ t ⋅ β t \tilde{\beta}_t = \frac{1 - \bar{\alpha}_{t-1}}{1 - \bar{\alpha}_t} \cdot \beta_t β~t=1αˉt1αˉt1βt

p θ ( x t − 1 ∣ x t ) p_\theta(x_{t-1} | x_t) pθ(xt1xt) 的方差为 σ t 2 \sigma_t^2 σt2。当两者匹配时(即 σ t 2 = β ~ t \sigma_t^2 = \tilde{\beta}_t σt2=β~t),KL 散度项 L t − 1 L_{t-1} Lt1 达到最小值。

Sigma 对损失函数的影响

L t − 1 = 1 2 σ t 2 ∥ μ ~ t ( x t , x 0 ) − μ θ ( x t , t ) ∥ 2 + const L_{t-1} = \frac{1}{2\sigma_t^2} \left\| \tilde{\mu}_t(x_t, x_0) - \mu_\theta(x_t, t) \right\|^2 + \text{const} Lt1=2σt21μ~t(xt,x0)μθ(xt,t)2+const

其中 μ ~ t \tilde{\mu}_t μ~t 是以 x 0 x_0 x0 为条件的后验均值。这表明 Sigma 直接决定了损失函数中均方误差项的权重:

  • Sigma 较大:损失中 MSE 权重较小,模型对均值预测的精度要求降低
  • Sigma 较小:损失中 MSE 权重较大,模型需要更精确地预测均值

3.5 离散 Sigma 与连续 Sigma 的数学桥接

在离散时间模型(DDPM)和连续时间模型(SDE)之间,Sigma 的对应关系可以通过以下方式建立。

离散到连续的映射

当离散步数 T → ∞ T \to \infty T 时,离散的 β t \beta_t βt 对应于连续的 β ( t ) \beta(t) β(t)

β t ≈ β ( t ) ⋅ 1 T , t = i T , i = 1 , 2 , … , T \beta_t \approx \beta(t) \cdot \frac{1}{T}, \quad t = \frac{i}{T}, \quad i = 1, 2, \ldots, T βtβ(t)T1,t=Ti,i=1,2,,T

离散的累积乘积 α ˉ t \bar{\alpha}_t αˉt 对应于连续的积分:

α ˉ t = ∏ s = 1 t ( 1 − β s ) → T → ∞ exp ⁡ ( − ∫ 0 t β ( s )   d s ) \bar{\alpha}_t = \prod_{s=1}^{t} (1 - \beta_s) \xrightarrow{T \to \infty} \exp\left( -\int_0^t \beta(s) \, ds \right) αˉt=s=1t(1βs)T exp(0tβ(s)ds)

因此,离散 Sigma 与连续 Sigma 的关系为:

σ t 2 = 1 − α ˉ t → T → ∞ 1 − exp ⁡ ( − ∫ 0 t β ( s )   d s ) ≈ ∫ 0 t β ( s )   d s ( 当积分值较小时 ) \sigma_t^2 = 1 - \bar{\alpha}_t \xrightarrow{T \to \infty} 1 - \exp\left( -\int_0^t \beta(s) \, ds \right) \approx \int_0^t \beta(s) \, ds \quad (\text{当积分值较小时}) σt2=1αˉtT 1exp(0tβ(s)ds)0tβ(s)ds(当积分值较小时)

VP-SDE 中的对应

对于方差保持(VP)SDE,扩散系数 g ( t ) g(t) g(t) 与离散 Beta 调度的关系为:

g 2 ( t ) = β ( t ) = lim ⁡ T → ∞ T ⋅ β t g^2(t) = \beta(t) = \lim_{T \to \infty} T \cdot \beta_t g2(t)=β(t)=TlimTβt

这意味着在连续极限下,SDE 中的 β ( t ) \sqrt{\beta(t)} β(t) 就是离散模型中 σ t \sigma_t σt 的连续对应物。

VE-SDE 中的对应

对于方差爆炸(VE)SDE,噪声方差 σ 2 ( t ) \sigma^2(t) σ2(t) 随时间线性增长,对应离散模型中:

σ 2 ( t ) = σ min ⁡ 2 + ( σ max ⁡ 2 − σ min ⁡ 2 ) ⋅ t , t ∈ [ 0 , 1 ] \sigma^2(t) = \sigma_{\min}^2 + (\sigma_{\max}^2 - \sigma_{\min}^2) \cdot t, \quad t \in [0, 1] σ2(t)=σmin2+(σmax2σmin2)t,t[0,1]

其中 σ min ⁡ 2 ≈ β 1 \sigma_{\min}^2 \approx \beta_1 σmin2β1(对应第一步的方差), σ max ⁡ 2 \sigma_{\max}^2 σmax2 是最终的噪声方差。离散的累积乘积 α ˉ t \bar{\alpha}_t αˉt 与连续噪声方差的关系为:

α ˉ t = σ min ⁡ 2 σ 2 ( t ) = σ min ⁡ 2 σ min ⁡ 2 + ( σ max ⁡ 2 − σ min ⁡ 2 ) ⋅ t \bar{\alpha}_t = \frac{\sigma_{\min}^2}{\sigma^2(t)} = \frac{\sigma_{\min}^2}{\sigma_{\min}^2 + (\sigma_{\max}^2 - \sigma_{\min}^2) \cdot t} αˉt=σ2(t)σmin2=σmin2+(σmax2σmin2)tσmin2


4. Sigma 在扩散过程中的作用

4.1 核心作用概览

Sigma 核心作用

控制噪声强度

决定反向采样方差

影响生成多样性

平衡质量与多样性

sigma 大 噪声多

sigma 小 噪声少

固定方差 sigma_t2 = beta_tilde

学习方差 sigma_theta

sigma 大 多样性好

sigma 小 确定性强

存在最优平衡点

4.2 对前向过程的影响

在前向过程中,任意时刻 t t t 的数据可以直接从 x 0 x_0 x0 采样得到:

q ( x t ∣ x 0 ) = N ( x t ; α ˉ t   x 0 ,   ( 1 − α ˉ t ) I ) q(x_t | x_0) = \mathcal{N}(x_t; \sqrt{\bar{\alpha}_t} \, x_0, \, (1 - \bar{\alpha}_t) I) q(xtx0)=N(xt;αˉt x0,(1αˉt)I)

这里 ( 1 − α ˉ t ) (1 - \bar{\alpha}_t) (1αˉt) 就是等效的 σ t 2 \sigma_t^2 σt2,它决定了时刻 t t t 的总噪声方差。

4.3 对反向过程的影响

反向过程的均值和方差分别为:

均值(模型学习的部分):

μ θ ( x t , t ) = 1 α t ( x t − β t 1 − α ˉ t ϵ θ ( x t , t ) ) \mu_\theta(x_t, t) = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{\beta_t}{\sqrt{1 - \bar{\alpha}_t}} \epsilon_\theta(x_t, t) \right) μθ(xt,t)=αt 1(xt1αˉt βtϵθ(xt,t))

方差(直接与 Sigma 相关):

Σ θ ( x t , t ) = σ t 2 I \Sigma_\theta(x_t, t) = \sigma_t^2 I Σθ(xt,t)=σt2I

Sigma 直接影响采样时的随机性:每一步去噪时,都会在预测的均值基础上加入 σ t \sigma_t σt 标准差的高斯噪声。


5. Sigma 与噪声调度

5.1 噪声调度策略

噪声调度(Noise Schedule)决定了 Sigma 随时间的变化方式,是扩散模型设计的关键选择之一。

常见调度策略

beta_t 线性增长

cos 平方函数

S 型曲线

sigma(t) 函数

线性调度

简单直接

余弦调度

平滑过渡

Sigmoid 调度

灵活调节

连续时间调度

理论优雅

5.2 线性调度

β t = linear from  β min ⁡  to  β max ⁡ , t = 1 , 2 , … , T \beta_t = \text{linear from } \beta_{\min} \text{ to } \beta_{\max}, \quad t = 1, 2, \ldots, T βt=linear from βmin to βmax,t=1,2,,T

典型设置: β min ⁡ = 10 − 4 \beta_{\min} = 10^{-4} βmin=104 β max ⁡ = 0.02 \beta_{\max} = 0.02 βmax=0.02 T = 1000 T = 1000 T=1000

特点:实现简单,早期噪声增加慢,后期增加快。

5.3 余弦调度(Cosine Schedule)

Nichol & Dhariwal (2021) 提出的改进调度:

α ˉ t = f ( t ) f ( 0 ) , f ( t ) = cos ⁡ ( t / T + s 1 + s ⋅ π 2 ) 2 \bar{\alpha}_t = \frac{f(t)}{f(0)}, \quad f(t) = \cos\left(\frac{t/T + s}{1+s} \cdot \frac{\pi}{2}\right)^2 αˉt=f(0)f(t),f(t)=cos(1+st/T+s2π)2

其中 s s s 是一个小的偏移量(通常 s = 0.008 s = 0.008 s=0.008)。

对应的等效 Sigma:

σ t = 1 − α ˉ t = 1 − cos ⁡ 2 ( t / T + 0.008 1.008 ⋅ π 2 ) 2 cos ⁡ 2 ( 0.008 1.008 ⋅ π 2 ) 2 \sigma_t = \sqrt{1 - \bar{\alpha}_t} = \sqrt{1 - \frac{\cos^2\left(\frac{t/T + 0.008}{1.008} \cdot \frac{\pi}{2}\right)^2}{\cos^2\left(\frac{0.008}{1.008} \cdot \frac{\pi}{2}\right)^2}} σt=1αˉt =1cos2(1.0080.0082π)2cos2(1.008t/T+0.0082π)2

特点:噪声增加更加均匀,避免了线性调度中噪声增加过快或过慢的问题。

5.4 各调度策略的 Sigma 曲线对比

三种主要调度策略的 Sigma 随时间变化趋势对比:

Sigmoid 调度

t=0 sigma≈0

t=250 sigma≈0.20

t=500 sigma≈0.50

t=750 sigma≈0.80

t=1000 sigma≈1.0

余弦调度

t=0 sigma≈0

t=250 sigma≈0.10

t=500 sigma≈0.30

t=750 sigma≈0.60

t=1000 sigma≈1.0

线性调度

t=0 sigma≈0

t=250 sigma≈0.15

t=500 sigma≈0.35

t=750 sigma≈0.65

t=1000 sigma≈1.0

线性调度:Sigma 增长呈现先慢后快的特征,整体曲线下凹。

余弦调度:Sigma 增长更加均匀平滑,中间段增长较快,是实践中最常用的调度之一。

Sigmoid 调度:Sigma 增长呈现 S 型,两端慢中间快,适合需要精细控制噪声增长率的场景。

在时间步 t=0 时 Sigma 接近 0,在 t=1000 时 Sigma 接近 1.0,三种策略的主要区别在于中间过程的增长速率分布。


6. 离散时间与连续时间下的 Sigma

6.1 离散时间扩散模型

在 DDPM 及其变体中,Sigma 是离散时间步的函数 σ t \sigma_t σt

典型的离散时间反向采样公式:

x t − 1 = 1 α t ( x t − 1 − α t 1 − α ˉ t ϵ θ ( x t , t ) ) + σ t z x_{t-1} = \frac{1}{\sqrt{\alpha_t}} \left( x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar{\alpha}_t}} \epsilon_\theta(x_t, t) \right) + \sigma_t z xt1=αt 1(xt1αˉt 1αtϵθ(xt,t))+σtz

其中 z ∼ N ( 0 , I ) z \sim \mathcal{N}(0, I) zN(0,I)

关键观察:当 t = 1 t = 1 t=1 时, σ 1 \sigma_1 σ1 通常设为 0,这意味着最后一步去噪不加随机噪声,输出确定性结果。

6.2 连续时间扩散模型(SDE 框架)

在 Song et al. (2021) 提出的 SDE 框架中:

前向 SDE

d x = − 1 2 β ( t ) x   d t + β ( t )   d w dx = -\frac{1}{2} \beta(t) x \, dt + \sqrt{\beta(t)} \, dw dx=21β(t)xdt+β(t) dw

反向 SDE

d x = [ − 1 2 β ( t ) x − β ( t ) ∇ x log ⁡ p t ( x ) ] d t + β ( t )   d w ˉ dx = \left[ -\frac{1}{2} \beta(t) x - \beta(t) \nabla_x \log p_t(x) \right] dt + \sqrt{\beta(t)} \, d\bar{w} dx=[21β(t)xβ(t)xlogpt(x)]dt+β(t) dwˉ

对应的 ODE(概率流)

d x = [ − 1 2 β ( t ) x − 1 2 β ( t ) ∇ x log ⁡ p t ( x ) ] d t dx = \left[ -\frac{1}{2} \beta(t) x - \frac{1}{2} \beta(t) \nabla_x \log p_t(x) \right] dt dx=[21β(t)x21β(t)xlogpt(x)]dt

在连续时间框架下,Sigma 的角色由 β ( t ) \sqrt{\beta(t)} β(t) 承担。

6.3 两种框架的对应关系

连续时间

离散时间

T 趋近无穷

采样细化

步长趋近零

DDPM 和 DDIM

sigma_t 离散序列

马尔可夫链

SDE 和 ODE

sigma(t) 连续函数

微分方程


7. Sigma 在采样中的应用

7.1 DDPM 采样

使用学习到的均值和固定的方差进行采样:

x t − 1 ∼ p θ ( x t − 1 ∣ x t ) = N ( μ θ ( x t , t ) , σ t 2 I ) x_{t-1} \sim p_\theta(x_{t-1} | x_t) = \mathcal{N}(\mu_\theta(x_t, t), \sigma_t^2 I) xt1pθ(xt1xt)=N(μθ(xt,t),σt2I)

7.2 DDIM 采样(确定性映射)

DDIM (Denoising Diffusion Implicit Models) 引入参数 η \eta η 控制随机性:

x t − 1 = α ˉ t − 1 ⋅ x ^ 0 + 1 − α ˉ t − 1 − σ t 2 ⋅ ϵ θ ( x t , t ) + σ t z x_{t-1} = \sqrt{\bar{\alpha}_{t-1}} \cdot \hat{x}_0 + \sqrt{1 - \bar{\alpha}_{t-1} - \sigma_t^2} \cdot \epsilon_\theta(x_t, t) + \sigma_t z xt1=αˉt1 x^0+1αˉt1σt2 ϵθ(xt,t)+σtz

其中 x ^ 0 \hat{x}_0 x^0 是预测的干净数据:

x ^ 0 = x t − 1 − α ˉ t ϵ θ ( x t , t ) α ˉ t \hat{x}_0 = \frac{x_t - \sqrt{1 - \bar{\alpha}_t} \epsilon_\theta(x_t, t)}{\sqrt{\bar{\alpha}_t}} x^0=αˉt xt1αˉt ϵθ(xt,t)

Sigma 的计算公式为:

σ t = η 1 − α ˉ t − 1 1 − α ˉ t 1 − α ˉ t α ˉ t − 1 \sigma_t = \eta \sqrt{\frac{1 - \bar{\alpha}_{t-1}}{1 - \bar{\alpha}_t}} \sqrt{1 - \frac{\bar{\alpha}_t}{\bar{\alpha}_{t-1}}} σt=η1αˉt1αˉt1 1αˉt1αˉt

  • η = 1 \eta = 1 η=1:等价于 DDPM(完全随机)
  • η = 0 \eta = 0 η=0:确定性映射(DDIM)
  • 0 < η < 1 0 < \eta < 1 0<η<1:介于两者之间

eta 参数影响

完全确定性

部分随机

完全随机

eta = 0

相同输入得到相同输出

eta = 0.5

平衡质量与多样性

eta = 1

等价于 DDPM

7.3 DPM-Solver 采样

DPM-Solver 利用 ODE 形式进行高效采样,完全消除了 Sigma 中的随机项:

x t − 1 = α ˉ t − 1 α ˉ t x t + α ˉ t − 1 ( 1 α ˉ t − 1 − 1 − 1 α ˉ t − 1 ) ϵ θ ( x t , t ) x_{t-1} = \frac{\sqrt{\bar{\alpha}_{t-1}}}{\sqrt{\bar{\alpha}_t}} x_t + \sqrt{\bar{\alpha}_{t-1}} \left( \sqrt{\frac{1}{\bar{\alpha}_{t-1}} - 1} - \sqrt{\frac{1}{\bar{\alpha}_t} - 1} \right) \epsilon_\theta(x_t, t) xt1=αˉt αˉt1 xt+αˉt1 (αˉt111 αˉt11 )ϵθ(xt,t)

由于没有随机项,DPM-Solver 可以在极少的步数(如 10-20 步)内完成高质量采样。

7.4 不同采样方法的 Sigma 对比

采样方法 Sigma 设置 随机性 典型步数
DDPM σ t 2 = β ~ t \sigma_t^2 = \tilde{\beta}_t σt2=β~t 完全随机 1000
DDIM σ t = η ⋅ … \sigma_t = \eta \cdot \ldots σt=η 可控 20-50
DPM-Solver σ t = 0 \sigma_t = 0 σt=0 无随机 10-20
SDE-PC σ t 2 = β ( t ) Δ t \sigma_t^2 = \beta(t) \Delta t σt2=β(t)Δt 完全随机 100-500

8. 不同扩散模型中的 Sigma 实现

8.1 DDPM 中的 Sigma

DDPM 使用固定的方差方案:

σ t 2 = β ~ t = 1 − α ˉ t − 1 1 − α ˉ t β t \sigma_t^2 = \tilde{\beta}_t = \frac{1 - \bar{\alpha}_{t-1}}{1 - \bar{\alpha}_t} \beta_t σt2=β~t=1αˉt1αˉt1βt

或者使用 σ t 2 = β t \sigma_t^2 = \beta_t σt2=βt(简化方案)。

8.2 Score-Based 模型中的 Sigma

在 Score-Based Generative Models (SGM) 中,噪声水平 σ \sigma σ 直接作为模型输入:

p σ ( x ) = p data ( x ) + N ( 0 , σ 2 I ) p_\sigma(x) = p_{\text{data}}(x) + \mathcal{N}(0, \sigma^2 I) pσ(x)=pdata(x)+N(0,σ2I)

模型学习的是噪声条件得分函数 s θ ( x , σ ) = ∇ x log ⁡ p σ ( x ) s_\theta(x, \sigma) = \nabla_x \log p_\sigma(x) sθ(x,σ)=xlogpσ(x)

8.3 Stable Diffusion 中的 Sigma

Stable Diffusion 在潜在空间(latent space)中操作,Sigma 通过噪声调度器(scheduler)实现:

多步迭代

输入文本 prompt

文本编码器 CLIP

初始噪声 zT 服从标准正态分布

U-Net 去噪

调度器控制 sigma_t

逐步去噪 zt 到 zt-1

潜在表示 z0

VAE 解码器

输出图像

Stable Diffusion 支持的调度器:

  • PNDM:伪数值方法
  • DDIM:确定性采样
  • DPM-Solver++:高阶 ODE 求解器
  • Euler:一阶 ODE 求解器
  • LMS:线性多步法

8.4 Flow Matching 中的 Sigma

Flow Matching (Lipman et al., 2023) 是一种新兴的扩散模型框架,使用确定性流:

x t = ( 1 − t ) x 0 + t ⋅ ϵ , t ∈ [ 0 , 1 ] x_t = (1 - t) x_0 + t \cdot \epsilon, \quad t \in [0, 1] xt=(1t)x0+tϵ,t[0,1]

等价地, σ ( t ) = t \sigma(t) = t σ(t)=t(噪声标准差随时间线性增长)。

模型学习速度场 v θ ( x t , t ) v_\theta(x_t, t) vθ(xt,t)

v ( x t , t ) = ϵ − x t v(x_t, t) = \epsilon - x_t v(xt,t)=ϵxt

采样过程通过求解 ODE 完成:

d x t d t = v θ ( x t , t ) \frac{dx_t}{dt} = v_\theta(x_t, t) dtdxt=vθ(xt,t)


9. Sigma 与训练稳定性

9.1 Sigma 对梯度的影响

在扩散模型的训练中,Sigma 直接影响损失函数的梯度行为。训练目标是最小化模型预测噪声与真实噪声之间的均方误差:

L ( θ ) = E x 0 , ϵ , t ∥ ϵ − ϵ θ ( x t , t ) ∥ 2 \mathcal{L}(\theta) = \mathbb{E}_{x_0, \epsilon, t} \left\| \epsilon - \epsilon_\theta(x_t, t) \right\|^2 L(θ)=Ex0,ϵ,tϵϵθ(xt,t)2

由于 x t = α ˉ t x 0 + 1 − α ˉ t ϵ x_t = \sqrt{\bar{\alpha}_t} x_0 + \sqrt{1 - \bar{\alpha}_t} \epsilon xt=αˉt x0+1αˉt ϵ,当 Sigma(即 1 − α ˉ t \sqrt{1 - \bar{\alpha}_t} 1αˉt )处于不同范围时,梯度的行为截然不同。

大 Sigma 区域(高噪声水平)

t t t 接近 T T T 时,Sigma 接近 1, x t x_t xt 近似纯噪声。此时:

x t ≈ ϵ , ϵ θ ( x t , t ) ≈ ϵ x_t \approx \epsilon, \quad \epsilon_\theta(x_t, t) \approx \epsilon xtϵ,ϵθ(xt,t)ϵ

模型的预测目标趋于平凡——输入和输出近似相同。这导致:

  • 梯度幅值较小,模型在此区域的学习信号弱
  • 损失函数对参数变化不敏感
  • 模型难以学习到数据的精细结构信息

小 Sigma 区域(低噪声水平)

t t t 接近 0 时,Sigma 接近 0, x t x_t xt 近似干净数据。此时:

x t ≈ x 0 , ϵ θ ( x t , t ) ≈ 0 x_t \approx x_0, \quad \epsilon_\theta(x_t, t) \approx 0 xtx0,ϵθ(xt,t)0

模型需要从几乎不含噪声的数据中预测微小的噪声,这要求极高的精度。此区域的梯度特征为:

  • 损失函数对均值预测误差的权重很大( ∝ 1 / σ t 2 \propto 1/\sigma_t^2 1/σt2
  • 模型需要学习数据流形的精细结构
  • 容易出现梯度不稳定问题

9.2 Sigma 加权策略

为了解决上述问题,不同工作提出了不同的 Sigma 加权策略。

均匀加权(DDPM 原始方案)

L simple = E x 0 , ϵ , t ∥ ϵ − ϵ θ ( x t , t ) ∥ 2 \mathcal{L}_{\text{simple}} = \mathbb{E}_{x_0, \epsilon, t} \left\| \epsilon - \epsilon_\theta(x_t, t) \right\|^2 Lsimple=Ex0,ϵ,tϵϵθ(xt,t)2

对所有时间步 t t t 使用相同权重。问题在于:高噪声步的损失天然较小,低噪声步的损失天然较大,导致模型偏向于优化高噪声步。

SNR 加权(Stable Diffusion v2)

L SNR = E x 0 , ϵ , t [ 1 SNR ( t ) ∥ ϵ − ϵ θ ( x t , t ) ∥ 2 ] \mathcal{L}_{\text{SNR}} = \mathbb{E}_{x_0, \epsilon, t} \left[ \frac{1}{\text{SNR}(t)} \left\| \epsilon - \epsilon_\theta(x_t, t) \right\|^2 \right] LSNR=Ex0,ϵ,t[SNR(t)1ϵϵθ(xt,t)2]

由于 SNR ( t ) = α ˉ t / ( 1 − α ˉ t ) = 1 / σ t 2 − 1 \text{SNR}(t) = \bar{\alpha}_t / (1 - \bar{\alpha}_t) = 1/\sigma_t^2 - 1 SNR(t)=αˉt/(1αˉt)=1/σt21,SNR 加权等价于:

w ( t ) = 1 SNR ( t ) = 1 − α ˉ t α ˉ t = σ t 2 1 − σ t 2 w(t) = \frac{1}{\text{SNR}(t)} = \frac{1 - \bar{\alpha}_t}{\bar{\alpha}_t} = \frac{\sigma_t^2}{1 - \sigma_t^2} w(t)=SNR(t)1=αˉt1αˉt=1σt2σt2

这使得低噪声步(小 Sigma)的权重被进一步放大,迫使模型更加关注细节恢复。

EDM 加权(Karras et al., 2022)

L EDM = E x 0 , ϵ , σ [ w ( σ ) ∥ x 0 − f θ ( x t , σ ) ∥ 2 ] \mathcal{L}_{\text{EDM}} = \mathbb{E}_{x_0, \epsilon, \sigma} \left[ w(\sigma) \left\| x_0 - f_\theta(x_t, \sigma) \right\|^2 \right] LEDM=Ex0,ϵ,σ[w(σ)x0fθ(xt,σ)2]

其中权重函数为:

w ( σ ) = σ − 2 w(\sigma) = \sigma^{-2} w(σ)=σ2

这种加权方式在 Sigma 接近 0 时给予极大的权重,但通过适当的截断策略避免数值不稳定。

9.3 Sigma 预热(Warmup)

在实际训练中,Sigma 预热是一种常见的稳定化策略。其基本思想是:在训练初期限制 Sigma 的范围,避免模型过早接触极端噪声水平。

Sigma 预热策略

限制 sigma 范围

逐步扩展

最终覆盖

训练初期

sigma 在 0 到 0.3 之间

训练中期 sigma 在 0 到 0.7 之间

训练后期 sigma 在 0 到 1.0 之间

预热策略的好处包括:

  • 避免训练初期梯度不稳定
  • 让模型先学习数据的粗粒度结构
  • 逐步引入更精细的细节学习
  • 减少训练早期的 loss 震荡

9.4 v-Prediction 与 Sigma

v-Prediction(Salimans & Ho, 2022)提出预测速度场 v = ϵ − σ ⋅ s θ ( x t ) v = \epsilon - \sigma \cdot s_\theta(x_t) v=ϵσsθ(xt) 而非直接预测噪声 ϵ \epsilon ϵ。其优势在于:

  • 在 Sigma 接近 0 时,v 也接近 0,避免了预测值的突变
  • 在 Sigma 较大时,v 的幅值适中,梯度更稳定
  • 与 ODE 采样的速度场形式天然兼容

v t = 1 − α ˉ t ⋅ ϵ − α ˉ t ⋅ x 0 v_t = \sqrt{1 - \bar{\alpha}_t} \cdot \epsilon - \sqrt{\bar{\alpha}_t} \cdot x_0 vt=1αˉt ϵαˉt x0

对应的训练损失为:

L v = E x 0 , ϵ , t ∥ v t − v θ ( x t , t ) ∥ 2 \mathcal{L}_{v} = \mathbb{E}_{x_0, \epsilon, t} \left\| v_t - v_\theta(x_t, t) \right\|^2 Lv=Ex0,ϵ,tvtvθ(xt,t)2


10. Sigma 加权损失函数

10.1 损失函数中的 Sigma 角色

Sigma 在扩散模型的损失函数中扮演着双重角色:一是作为噪声的度量,二是作为损失权重的调控因子。

标准形式

L ( θ ) = E t ∼ U ( 1 , T ) [ λ ( t ) ⋅ ℓ ( ϵ , ϵ θ ( x t , t ) ) ] \mathcal{L}(\theta) = \mathbb{E}_{t \sim \mathcal{U}(1,T)} \left[ \lambda(t) \cdot \ell(\epsilon, \epsilon_\theta(x_t, t)) \right] L(θ)=EtU(1,T)[λ(t)(ϵ,ϵθ(xt,t))]

其中 λ ( t ) \lambda(t) λ(t) 是时间步相关的权重函数, ℓ \ell 是逐样本的损失(通常为 MSE)。

10.2 常见加权方案对比

方案 权重 λ ( t ) \lambda(t) λ(t) 设计动机 代表工作
均匀加权 λ ( t ) = 1 \lambda(t) = 1 λ(t)=1 简单直接 DDPM
SNR 加权 λ ( t ) = SNR ( t ) − 1 \lambda(t) = \text{SNR}(t)^{-1} λ(t)=SNR(t)1 平衡各时间步贡献 SD v2
EDM 加权 λ ( σ ) = σ − 2 \lambda(\sigma) = \sigma^{-2} λ(σ)=σ2 强调细节恢复 EDM
Min-SNR 加权 λ ( t ) = min ⁡ ( SNR ( t ) , γ ) − 1 \lambda(t) = \min(\text{SNR}(t), \gamma)^{-1} λ(t)=min(SNR(t),γ)1 截断避免过大权重 改进方案
最大似然加权 λ ( t ) = σ t 2 \lambda(t) = \sigma_t^2 λ(t)=σt2 等价于 VAE 的 ELBO DDPM 论文

10.3 Min-SNR 加权

Min-SNR 加权是对 SNR 加权的改进,通过引入截断参数 γ \gamma γ 避免低噪声步权重过大:

λ Min-SNR ( t ) = min ⁡ ( 1 SNR ( t ) , γ ) = min ⁡ ( 1 − α ˉ t α ˉ t , γ ) \lambda_{\text{Min-SNR}}(t) = \min\left(\frac{1}{\text{SNR}(t)}, \gamma\right) = \min\left(\frac{1 - \bar{\alpha}_t}{\bar{\alpha}_t}, \gamma\right) λMin-SNR(t)=min(SNR(t)1,γ)=min(αˉt1αˉt,γ)

γ = 5 \gamma = 5 γ=5 时,意味着 SNR 低于 0.2 的时间步(即 α ˉ t < 1 / 6 \bar{\alpha}_t < 1/6 αˉt<1/6)的权重被截断为 γ − 1 = 0.2 \gamma^{-1} = 0.2 γ1=0.2,避免了这些步的梯度主导整个训练过程。

10.4 加权方案对生成质量的影响

不同的 Sigma 加权方案直接影响模型的生成质量:

  • 均匀加权:倾向于生成更平滑的结果,细节可能不够锐利
  • SNR 加权:细节更丰富,但可能引入伪影
  • EDM 加权:在细节和整体结构之间取得较好平衡
  • Min-SNR 加权:在 SNR 加权的基础上提高了训练稳定性

11. Sigma 的条件输入编码

11.1 为什么需要编码

Sigma 作为模型的条件输入,需要被编码为网络可以理解的形式。直接使用标量值存在以下问题:

  • 标量值的变化范围大(从接近 0 到 1 或更大)
  • 网络难以学习到 Sigma 与噪声水平之间的非线性关系
  • 不同 Sigma 值之间的差异在标量空间中不够明显

11.2 正弦位置编码

DDPM 及其变体广泛使用正弦位置编码来处理时间步 t t t,间接编码 Sigma:

PE ( t , 2 i ) = sin ⁡ ( t 10000 2 i / d model ) \text{PE}(t, 2i) = \sin\left(\frac{t}{10000^{2i/d_{\text{model}}}}\right) PE(t,2i)=sin(100002i/dmodelt)

PE ( t , 2 i + 1 ) = cos ⁡ ( t 10000 2 i / d model ) \text{PE}(t, 2i+1) = \cos\left(\frac{t}{10000^{2i/d_{\text{model}}}}\right) PE(t,2i+1)=cos(100002i/dmodelt)

其中 d model d_{\text{model}} dmodel 是编码维度。这种编码的优势在于:

  • 可以表示任意大的时间步
  • 不同时间步之间的编码距离有明确的几何意义
  • 与 Transformer 架构天然兼容

11.3 傅里叶特征编码

EDM 使用高斯随机傅里叶特征来编码 Sigma:

c out = cos ⁡ ( 2 π ⋅ W ⋅ σ + ϕ ) c_{\text{out}} = \cos(2\pi \cdot W \cdot \sigma + \phi) cout=cos(2πWσ+ϕ)

其中 W W W 是从高斯分布采样的随机矩阵, ϕ \phi ϕ 是随机相位。这种编码方式:

  • 将标量 Sigma 映射到高维空间
  • 使网络能够学习 Sigma 与噪声水平之间的复杂关系
  • 在实验中表现出比正弦编码更好的效果

11.4 直接标量输入

一些简化方案直接将 Sigma(或其对数)作为标量输入网络:

c in = log ⁡ ( σ ) c_{\text{in}} = \log(\sigma) cin=log(σ)

使用对数变换的原因是:Sigma 跨越多个数量级(从 10 − 3 10^{-3} 103 10 0 10^0 100),对数变换使分布更均匀。

11.5 不同编码方式的效果对比

Sigma 编码方式

适用于离散时间步

适用于连续 Sigma

简单有效

灵活但需更多数据

正弦位置编码

DDPM SD1.x

傅里叶特征编码

EDM SDXL

对数标量编码

部分轻量模型

可学习编码

实验性方案


12. ODE 采样中 Sigma 消失的理论解释

12.1 从 SDE 到 ODE

在连续时间扩散模型中,反向 SDE 为:

d x = [ f ( x , t ) − g 2 ( t ) ∇ x log ⁡ p t ( x ) ] d t + g ( t ) d w ˉ dx = \left[ f(x,t) - g^2(t) \nabla_x \log p_t(x) \right] dt + g(t) d\bar{w} dx=[f(x,t)g2(t)xlogpt(x)]dt+g(t)dwˉ

对应的概率流 ODE 为:

d x = [ f ( x , t ) − 1 2 g 2 ( t ) ∇ x log ⁡ p t ( x ) ] d t dx = \left[ f(x,t) - \frac{1}{2} g^2(t) \nabla_x \log p_t(x) \right] dt dx=[f(x,t)21g2(t)xlogpt(x)]dt

关键区别在于:ODE 去掉了随机项 g ( t ) d w ˉ g(t) d\bar{w} g(t)dwˉ,而漂移项中的 1 2 \frac{1}{2} 21 因子补偿了去除随机项带来的分布偏差。

12.2 为什么可以去掉随机项

从数学角度,SDE 和 ODE 描述的是同一个边际分布 p t ( x ) p_t(x) pt(x) 的不同采样路径。具体地:

定理(Anderson, 1982):对于前向 SDE d x = f ( x , t ) d t + g ( t ) d w dx = f(x,t)dt + g(t)dw dx=f(x,t)dt+g(t)dw,存在一个反向 ODE:

d x d t = f ( x , t ) − 1 2 g 2 ( t ) ∇ x log ⁡ p t ( x ) \frac{dx}{dt} = f(x,t) - \frac{1}{2} g^2(t) \nabla_x \log p_t(x) dtdx=f(x,t)21g2(t)xlogpt(x)

使得该 ODE 的解 x ( t ) x(t) x(t) 与反向 SDE 的解具有相同的边际分布 p t ( x ) p_t(x) pt(x)

这意味着:虽然 ODE 的每条轨迹是确定性的,但不同初始噪声 x T x_T xT 对应的轨迹集合,其分布与 SDE 的分布完全一致。

12.3 Sigma 在 ODE 中的角色

在 ODE 框架下,Sigma 不再作为采样噪声的标准差出现,而是隐含在漂移项中:

g 2 ( t ) = β ( t ) = d σ 2 ( t ) d t g^2(t) = \beta(t) = \frac{d\sigma^2(t)}{dt} g2(t)=β(t)=dtdσ2(t)

Sigma 的"消失"实际上是从显式噪声项转变为隐式的漂移项系数。这种转变带来以下优势:

  • 确定性采样:相同输入产生相同输出,便于调试和复现
  • 高阶求解器:ODE 允许使用更高阶的数值方法(如 DPM-Solver)
  • 步数大幅减少:从 SDE 的数百步降至 ODE 的 10-20 步

12.4 ODE 采样的局限性

ODE 采样并非完美无缺:

  • 单轨迹偏差:ODE 的每条轨迹是确定性的,无法通过多次采样取平均来降低方差
  • 误差累积:数值求解器的误差在确定性传播中不断累积
  • 分布尾部:ODE 在分布的尾部(低密度区域)可能不如 SDE 准确

13. Sigma 与 CFG 的交互

13.1 Classifier-Free Guidance 回顾

Classifier-Free Guidance (CFG) 通过混合有条件预测和无条件预测来增强生成质量:

ϵ ^ CFG = ϵ ^ θ ( x t , ∅ ) + s ⋅ ( ϵ ^ θ ( x t , c ) − ϵ ^ θ ( x t , ∅ ) ) \hat{\epsilon}_{\text{CFG}} = \hat{\epsilon}_\theta(x_t, \varnothing) + s \cdot \left( \hat{\epsilon}_\theta(x_t, c) - \hat{\epsilon}_\theta(x_t, \varnothing) \right) ϵ^CFG=ϵ^θ(xt,)+s(ϵ^θ(xt,c)ϵ^θ(xt,))

其中 s s s 是引导强度, c c c 是条件信息, ∅ \varnothing 是无条件输入。

13.2 CFG 与 Sigma 的耦合

CFG 的效果与 Sigma 存在密切关系。在 DDIM 采样中,使用 CFG 后的采样公式变为:

x t − 1 = α ˉ t − 1 ⋅ x ^ 0 CFG + 1 − α ˉ t − 1 − σ t 2 ⋅ ϵ θ CFG + σ t z x_{t-1} = \sqrt{\bar{\alpha}_{t-1}} \cdot \hat{x}_0^{\text{CFG}} + \sqrt{1 - \bar{\alpha}_{t-1} - \sigma_t^2} \cdot \epsilon_\theta^{\text{CFG}} + \sigma_t z xt1=αˉt1 x^0CFG+1αˉt1σt2 ϵθCFG+σtz

其中 x ^ 0 CFG \hat{x}_0^{\text{CFG}} x^0CFG ϵ θ CFG \epsilon_\theta^{\text{CFG}} ϵθCFG 都经过了 CFG 修正。

关键观察

  • 当 Sigma 较大时(高噪声步),CFG 的影响更显著,因为此时模型对条件信息的依赖更强
  • 当 Sigma 较小时(低噪声步),CFG 的影响减弱,因为此时数据已接近干净状态
  • 过大的 CFG 强度 s s s 在高 Sigma 步可能导致过饱和或伪影

13.3 引导强度与 Sigma 的自适应

一些改进方法提出根据 Sigma 自适应调整引导强度:

s adaptive ( t ) = s base ⋅ f ( σ t ) s_{\text{adaptive}}(t) = s_{\text{base}} \cdot f(\sigma_t) sadaptive(t)=sbasef(σt)

常见的自适应策略包括:

  • 线性衰减 s ( t ) = s base ⋅ ( 1 − t / T ) s(t) = s_{\text{base}} \cdot (1 - t/T) s(t)=sbase(1t/T),在高噪声步使用更强的引导
  • Sigma 阈值:仅在 σ t > σ thresh \sigma_t > \sigma_{\text{thresh}} σt>σthresh 时应用 CFG
  • 动态调整:根据每步的预测误差动态调整 s s s

14. EDM 框架中的 Sigma 调度

14.1 EDM 的核心思想

Karras et al. (2022) 在论文 Elucidating the Design Space of Diffusion-Based Generative Models 中提出了一个统一的 Sigma 框架,其核心思想是:

  • 将 Sigma 作为唯一的噪声参数,统一不同扩散模型的表述
  • 提出 σ ( t ) = t \sigma(t) = t σ(t)=t 的简化调度
  • 通过跳跃采样(Skip Sampling)实现高效生成

14.2 EDM 的噪声调度

EDM 使用最简单的 Sigma 调度:

σ ( t ) = t , t ∈ [ 0 , ∞ ) \sigma(t) = t, \quad t \in [0, \infty) σ(t)=t,t[0,)

这意味着噪声标准差随时间线性增长。与 DDPM 的复杂调度相比,这种简化方案的优势在于:

  • 无需精心设计 Beta 调度
  • 理论分析更加简洁
  • 在实践中效果不逊于复杂调度

14.3 EDM 的跳跃采样

EDM 提出了一种基于 Sigma 的跳跃采样策略,跳过部分中间步:

EDM 跳跃采样

跳过中间步

跳过中间步

精细去噪

最终输出

sigma = 80

sigma = 20

sigma = 5

sigma = 1

sigma = 0

跳跃采样的关键思想是:在 Sigma 较大的步使用较大的跳跃步长,在 Sigma 较小的步使用精细的步长。具体地,第 i i i 步的 Sigma 值为:

σ i = ( σ max ⁡ 1 / ρ + i N − 1 ( σ min ⁡ 1 / ρ − σ max ⁡ 1 / ρ ) ) ρ \sigma_i = \left( \sigma_{\max}^{1/\rho} + \frac{i}{N-1} \left( \sigma_{\min}^{1/\rho} - \sigma_{\max}^{1/\rho} \right) \right)^\rho σi=(σmax1/ρ+N1i(σmin1/ρσmax1/ρ))ρ

其中 ρ = 7 \rho = 7 ρ=7 是控制曲线形状的参数, σ max ⁡ = 80 \sigma_{\max} = 80 σmax=80 σ min ⁡ = 0.002 \sigma_{\min} = 0.002 σmin=0.002

14.4 EDM 的损失函数

EDM 的损失函数使用预测干净数据 x 0 x_0 x0 而非预测噪声 ϵ \epsilon ϵ

L EDM = E x 0 , ϵ , σ [ w ( σ ) ∥ x 0 − f θ ( x 0 + ϵ ⋅ σ , σ ) ∥ 2 ] \mathcal{L}_{\text{EDM}} = \mathbb{E}_{x_0, \epsilon, \sigma} \left[ w(\sigma) \left\| x_0 - f_\theta(x_0 + \epsilon \cdot \sigma, \sigma) \right\|^2 \right] LEDM=Ex0,ϵ,σ[w(σ)x0fθ(x0+ϵσ,σ)2]

其中 f θ f_\theta fθ 是去噪网络,权重函数为:

w ( σ ) = σ − 2 w(\sigma) = \sigma^{-2} w(σ)=σ2

这种设计使得:

  • 网络直接学习从噪声数据恢复干净数据
  • 权重函数 σ − 2 \sigma^{-2} σ2 在低噪声步给予更大权重
  • 与 ODE 采样的速度场形式兼容

14.5 EDM 的影响

EDM 框架对后续扩散模型的发展产生了深远影响:

  • Stable Diffusion 3.x 采用了类似 EDM 的 Sigma 调度
  • 统一了不同扩散模型的理论表述
  • 为扩散模型的设计提供了系统化的方法论

15. 数值稳定性

15.1 极端 Sigma 值的问题

在实际实现中,Sigma 的极端值会带来数值稳定性问题。

Sigma 接近 0 时

  • 损失函数中的 1 / σ 2 1/\sigma^2 1/σ2 权重趋于无穷大
  • 梯度可能爆炸,导致 NaN
  • 浮点精度不足以区分接近 0 的 Sigma 值

Sigma 接近 1 时

  • α ˉ t \bar{\alpha}_t αˉt 接近 0, α ˉ t \sqrt{\bar{\alpha}_t} αˉt 的计算可能下溢
  • 信号分量 α ˉ t ⋅ x 0 \sqrt{\bar{\alpha}_t} \cdot x_0 αˉt x0 几乎消失
  • 模型预测的精度要求极高

15.2 常见解决方案

截断策略

σ clipped = max ⁡ ( σ , σ min ⁡ ) , σ min ⁡ = 10 − 3 \sigma_{\text{clipped}} = \max(\sigma, \sigma_{\min}), \quad \sigma_{\min} = 10^{-3} σclipped=max(σ,σmin),σmin=103

对数空间计算

在涉及 Sigma 除法或乘法的计算中,使用对数空间避免溢出:

log ⁡ ( σ t 2 ) = log ⁡ ( 1 − α ˉ t ) \log(\sigma_t^2) = \log(1 - \bar{\alpha}_t) log(σt2)=log(1αˉt)

混合精度训练

使用 FP16/BF16 进行前向传播,但保留 FP32 用于关键计算(如损失函数、梯度累积)。

数值安全的采样

在 DDIM 采样中,当 σ t 2 > 1 − α ˉ t − 1 \sigma_t^2 > 1 - \bar{\alpha}_{t-1} σt2>1αˉt1 时,根号内的值为负。需要添加保护:

σ t = min ⁡ ( η ⋅ … , 1 − α ˉ t − 1 ⋅ 0.999 ) \sigma_t = \min\left(\eta \cdot \sqrt{\ldots}, \sqrt{1 - \bar{\alpha}_{t-1}} \cdot 0.999\right) σt=min(η ,1αˉt1 0.999)

15.3 不同精度下的 Sigma 精度

精度 有效位数 Sigma 最小可表示值 适用场景
FP32 7 位 ∼ 10 − 7 \sim 10^{-7} 107 训练和推理
FP16 3-4 位 ∼ 10 − 3 \sim 10^{-3} 103 推理(需截断)
BF16 7 位 ∼ 10 − 7 \sim 10^{-7} 107 训练和推理

16. Sigma 的可视化理解

16.1 数据分布随 Sigma 的变化

随着 Sigma 增大,数据分布逐渐从结构化变为随机。Sigma 控制着噪声壳层的半径:

  • Sigma = 0:数据完全保留原始结构,所有样本紧密聚集在流形上
  • Sigma = 0.3:噪声轻微,样本开始沿法线方向扩散,但整体结构仍可辨识
  • Sigma = 0.7:噪声较强,样本大幅扩散,原始结构被严重破坏
  • Sigma = 1.5:噪声主导,样本近似各向同性高斯分布,原始信息几乎完全丢失

16.2 Sigma 在训练中的角色

在训练过程中,Sigma 决定了模型看到的噪声水平:

采样时间步 t

加噪

确定 sigma_t

输入模型

干净数据 x0

随机时间步 t

噪声数据 xt

Sigma 值

噪声预测网络 epsilon_theta

预测噪声 epsilon_hat

真实噪声 epsilon

MSE Loss

16.3 Sigma 与信噪比(SNR)的关系

信噪比(Signal-to-Noise Ratio, SNR)与 Sigma 直接相关:

SNR ( t ) = α ˉ t 1 − α ˉ t = 信号功率 噪声功率 \text{SNR}(t) = \frac{\bar{\alpha}_t}{1 - \bar{\alpha}_t} = \frac{\text{信号功率}}{\text{噪声功率}} SNR(t)=1αˉtαˉt=噪声功率信号功率

σ t 2 = 1 − α ˉ t = 1 1 + SNR ( t ) \sigma_t^2 = 1 - \bar{\alpha}_t = \frac{1}{1 + \text{SNR}(t)} σt2=1αˉt=1+SNR(t)1

两者的变化趋势:

  • SNR 曲线:从 t=0 时的极高值单调递减到 t=1000 时的接近 0
  • Sigma 曲线:从 t=0 时的接近 0 单调递增到 t=1000 时的接近 1.0
  • 关系:SNR 与 Sigma 平方呈反相关,SNR 越低则 Sigma 越高

16.4 Sigma 空间的几何解释

法向加噪

继续加噪

继续加噪

充分加噪

数据流形 M

sigma 等于 0.1 的噪声壳层

sigma 等于 0.5 的噪声壳层

sigma 等于 1.0 的噪声壳层

sigma 趋近无穷 近似各向同性高斯分布

图注:Sigma 控制噪声壳层的半径。随着 Sigma 增大,数据点沿法线方向扩散,最终失去原始结构信息。


17. 总结

17.1 Sigma 的核心要点

要点 说明
定义 高斯噪声的标准差,控制噪声强度
作用域 贯穿前向加噪和反向去噪全过程
调度方式 线性、余弦、Sigmoid、EDM 线性调度等
采样影响 控制生成过程的随机性(通过 eta 参数)
模型输入 作为条件信息通过编码输入噪声预测网络
与 SNR 关系 σ 2 = 1 / ( 1 + SNR ) \sigma^2 = 1/(1+\text{SNR}) σ2=1/(1+SNR)
损失加权 不同加权方案直接影响生成质量
训练稳定性 极端 Sigma 值需要特殊处理

17.2 Sigma 的演进趋势

Sigma 演进趋势

DDPM 固定方差 sigma_t2 = beta_tilde

DDIM 可控方差 eta 乘 sigma_t

Score-Based sigma 作为模型输入

EDM 统一 sigma 框架

Flow Matching 简单线性 sigma(t) = t

17.3 实践建议

  1. 选择调度器:大多数场景下优先使用 DPM-Solver++ 或 DDIM
  2. Sigma 预热:在训练的初期逐步增加 Sigma 范围,有助于稳定训练
  3. 损失加权:使用 Min-SNR 或 EDM 加权方案提升生成质量
  4. 最小 Sigma:最后一步的 σ \sigma σ 通常设为 0,确保输出确定性
  5. 步数与 Sigma 的权衡:更激进的调度允许更少的采样步数
  6. 数值安全:注意极端 Sigma 值下的浮点精度问题
  7. CFG 耦合:根据 Sigma 自适应调整引导强度

参考文献

  1. Ho, J., Jain, A., & Abbeel, P. (2020). Denoising Diffusion Probabilistic Models. NeurIPS.
  2. Nichol, A., & Dhariwal, P. (2021). Improved Denoising Diffusion Probabilistic Models. ICML.
  3. Song, Y., Sohl-Dickstein, J., Kingma, D. P., et al. (2021). Score-Based Generative Modeling through Stochastic Differential Equations. ICLR.
  4. Lu, C., Zhou, Y., Bao, F., et al. (2022). DPM-Solver: A Fast ODE Solver for Diffusion Probabilistic Model Sampling in Around 10 Steps. NeurIPS.
  5. Lipman, Y., Chen, R. T. Q., Ben-Hamu, H., et al. (2023). Flow Matching for Generative Modeling. ICLR.
  6. Karras, T., Aittala, M., Aila, T., & Laine, S. (2022). Elucidating the Design Space of Diffusion-Based Generative Models. NeurIPS.
  7. Salimans, T., & Ho, J. (2022). Progressive Distillation for Fast Sampling of Diffusion Models. ICLR.
  8. Zhang, Q., & Chen, Y. (2023). Fast Sampling of Diffusion Models with Exponential Integrator. ICML.
  9. Anderson, B. D. O. (1982). Reverse-time diffusion equation models. Stochastic Processes and their Applications.
  10. Song, Y., Dhariwal, P., Chen, M., & Sutskever, I. (2023). Consistency Models. ICML.
  11. Ho, J., & Salimans, T. (2022). Classifier-Free Diffusion Guidance. NeurIPS Workshop on Deep Generative Models.
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐