VDM: Variational Diffusion Models
导语
Diffusion 模型很强,但它能否被用来计算似然呢?本文给出了肯定的回答,并提出了一系列基于 Diffusion 的生成模型,达到了 SOTA 的似然计算性能。不同于其他的扩散模型,本文所提出的模型可以将扩散过程的 noise schedule 和网络的参数一起进行优化。本文还展示了变分下界(VLB)可以从信噪比(SNR)的角度,化简为一个相当简洁的形式,并借此将之前文献中的多种扩散模型统一起来。
本文表明,连续时间情形下,VLB 除了端点处的信噪比外,关于 noise schedule 是不变的。这使得我们能够调整中间的 noise schedule,最小化生成的 VLB 估计器的方差,从而实现更快的优化。再加上网络架构的改进,本文在图像密度估计基准上获得了 SOTA 的似然计算性能,优于多年来一直主导这些基准的自回归模型,并且优化速度通常要快得多。
本文通过直接对边缘分布 q ( z t ∣ z 0 ) q(z_t|z_0) q(zt∣z0) 的均值和方差进行参数化,将前向过程 noise schedule 也和模型参数一同进行优化,这使得整个模型又成了 VAE(前向编码器和反向解码器都需要学习)。而之前的方法都是对前向过程的每一个单独的时间步 q ( z t + ϵ ∣ z t ) q(z_{t+\epsilon}|z_t) q(zt+ϵ∣zt) 进行参数化,前向过程都是使用固定的 noise schedule。
方法
前向过程
最基础的生成任务,假设我们有一个数据集
x
\mathbf{x}
x,我们的任务是估计边缘分布
p
(
x
)
p(\mathbf{x})
p(x)。对于真实数据
x
\mathbf{x}
x,我们添加一系列逐步增强的噪声得到一组隐变量
z
t
\mathbf{z}_t
zt,
t
t
t 的取值范围从 0 (
z
0
\mathbf{z}_0
z0 噪声最小)到 1(
z
1
\mathbf{z}_1
z1 噪声程度最大),隐变量
z
t
\mathbf{z}_t
zt 在给定
x
\mathbf{x}
x 下的条件分布为:
q
(
z
t
∣
x
)
=
N
(
α
t
x
,
σ
t
2
I
)
q(\mathbf{z}_t|\mathbf{x})=\mathcal{N}(\alpha_t\mathbf{x},\sigma_t^2\mathbf{I})
q(zt∣x)=N(αtx,σt2I)
其中
α
t
,
σ
t
2
\alpha_t,\sigma_t^2
αt,σt2 是关于
t
t
t 的标量函数。我们进一步定义信噪比(Signal-to-Noise Ratio,SNR)为:
SNR
(
t
)
=
α
t
2
/
σ
t
2
\text{SNR}(t)=\alpha_t^2/\sigma_t^2
SNR(t)=αt2/σt2
在扩散模型中,随着时间
t
t
t 的增大,
z
t
\mathbf{z}_t
zt 中噪声的占比不断增大,因此信噪比
SNR
(
t
)
\text{SNR}(t)
SNR(t) 关于
t
t
t 一般是严格单调递减的。另外我们假设
α
t
\alpha_t
αt 和
σ
t
2
\sigma_t^2
σt2 都是光滑的,即他们关于时间
t
t
t 都是可导的。
常见扩散模型的具体规格(规格,即 specification,这里是指 formalize 一个具体扩散模型的参数化,包括 α t \alpha_t αt 和 σ t 2 \sigma_t^2 σt2)包括 variance preserving(其 α t = 1 − σ t 2 \alpha_t=\sqrt{1-\sigma_t^2} αt=1−σt2 )和 variance exploding (其 α t 2 = 1 \alpha_t^2=1 αt2=1 )两种,本文主要研究 variance preserving。
这里还有几个推论:
- 对任意的 t > s t>s t>s,分布 q ( z t ∣ z s ) q(\mathbf{z}_t|\mathbf{z}_s) q(zt∣zs) 也是高斯分布
- 对于时间步的任意子序列 0 ≤ s < t < u ≤ 1 0\le s<t<u\le1 0≤s<t<u≤1 ,隐变量 ( z s , z t , z u ) (\mathbf{z}_s,\mathbf{z}_t,\mathbf{z}_u) (zs,zt,zu) 的联合概率分布是马尔可夫的: q ( z u ∣ z t , z s ) = q ( z u ∣ z t ) q(\mathbf{z}_u|\mathbf{z}_t,\mathbf{z}_s)=q(\mathbf{z}_u|\mathbf{z}_t) q(zu∣zt,zs)=q(zu∣zt)
- 根据上述分布及贝叶斯公式,可知对于任意 0 ≤ s < t ≤ 1 0\le s<t\le1 0≤s<t≤1 , q ( z s ∣ z t , x ) q(\mathbf{z}_s|\mathbf{z}_t,\mathbf{x}) q(zs∣zt,x) 同样是高斯分布
Noise Schedule
在之前的扩散模型中,noise schedule 都是人工设定的固定的一组超参数。而本文中,noise schedule 是可学习的,其参数化为:
σ
t
2
=
sigmoid
(
γ
η
(
t
)
)
\sigma_t^2=\text{sigmoid}(\gamma_\eta(t))
σt2=sigmoid(γη(t))
其中
γ
η
(
t
)
\gamma_\eta(t)
γη(t) 是一个可学习的神经网络,参数为
η
\eta
η。
考虑到不同扩散模型的等价性(后面会详细介绍),本文的离散时间模型和连续时间模型均采用 variance preserving(也就是 DDPM)的
α
t
=
1
−
σ
t
2
\alpha_t=\sqrt{1-\sigma_t^2}
αt=1−σt2 。可以推出
α
t
2
\alpha^2_t
αt2 和
SNR
(
t
)
\text{SNR}(t)
SNR(t) 都是关于
γ
η
(
t
)
\gamma_\eta(t)
γη(t) 的函数,化简有:
α
t
2
=
sigmoid
(
−
γ
η
(
t
)
)
SNR
(
t
)
=
exp
(
−
γ
η
(
t
)
)
\alpha_t^2=\text{sigmoid}(-\gamma_\eta(t))\\ \text{SNR}(t)=\text{exp}(-\gamma_\eta(t))
αt2=sigmoid(−γη(t))SNR(t)=exp(−γη(t))
反向过程
生成过程即为前向扩散过程的反过程,时间 t t t 由 1 到 0,由多级生成模型,采样并生成出一个隐变量序列 z t \mathbf{z}_t zt 。我们同时考虑有限总步数 T T T 的离散时间情形和 T → ∞ T\rightarrow\infty T→∞ 的连续时间情形。我们将首先讨论反向过程,然后分别讨论离散时间情形和连续时间情形。
给定有限的时间步
T
T
T,我们将时间均匀地分为
T
T
T 个时间步,每步的宽度为
τ
=
1
/
T
\tau=1/T
τ=1/T 。定义相邻步
s
(
i
)
=
(
i
−
1
)
/
T
s(i)=(i-1)/T
s(i)=(i−1)/T,
t
(
i
)
=
i
/
T
t(i)=i/T
t(i)=i/T ,则我们的多级生成模型为:
p
(
x
)
=
∫
z
p
(
z
1
)
p
(
x
∣
z
0
)
∏
i
=
1
T
p
(
z
s
(
i
)
∣
z
t
(
i
)
)
p(\mathbf{x})=\int_\mathbf{z}p(\mathbf{z}_1)p(\mathbf{x}|\mathbf{z}_0)\prod_{i=1}^Tp(\mathbf{z}_{s(i)}|\mathbf{z}_{t(i)})
p(x)=∫zp(z1)p(x∣z0)i=1∏Tp(zs(i)∣zt(i))
(这里相当于把 z 从联合概率分布里积分掉,得到 p(x))
在 variance preserving 扩散模型中,
SNR
(
1
)
\text{SNR}(1)
SNR(1) 足够小,则有
q
(
z
1
∣
x
)
≈
N
(
z
1
;
0
,
I
)
q(\mathbf{z}_1|\mathbf{x})\approx\mathcal{N}(\mathbf{z}_1;0,\mathbf{I})
q(z1∣x)≈N(z1;0,I)。从而我们将
z
1
\mathbf{z}_1
z1 的边缘分布建模为一个球形高斯:
p
(
z
1
)
=
N
(
z
1
;
0
,
I
)
p(\mathbf{z}_1)=\mathcal{N}(\mathbf{z}_1;0,\mathbf{I})
p(z1)=N(z1;0,I)
我们想要训练一个模型
p
(
x
∣
z
0
)
p(\mathbf{x}|\mathbf{z}_0)
p(x∣z0) 来拟合未知的
q
(
x
∣
z
0
)
q(\mathbf{x}|\mathbf{z}_0)
q(x∣z0)。记
x
i
,
z
0
,
i
x_i,z_{0,i}
xi,z0,i 分别为
x
,
z
0
\mathbf{x},\mathbf{z}_0
x,z0 中的第
i
i
i 个元素,则有分解分布的形式:
p
(
x
∣
z
0
)
=
∏
i
p
(
x
i
∣
z
0
,
i
)
p(\mathbf{x}|\mathbf{z}_0)=\prod_{i}p(x_i|z_{0,i})
p(x∣z0)=i∏p(xi∣z0,i)
我们选择
p
(
x
i
∣
z
0
,
i
)
∝
q
(
z
0
,
i
∣
x
i
)
p(x_i|z_{0,i})\propto q(z_{0,i}|x_i)
p(xi∣z0,i)∝q(z0,i∣xi) ,通过对 $x_i $ 所有可能的离散取值(比如对 8bit 图像来说,共 256 个取值)求和来进行归一化。又由于
SNR
(
0
)
\text{SNR}(0)
SNR(0) 足够小,未知的数据分布
q
(
x
)
q(\mathbf{x})
q(x) 的影响被似然
q
(
z
0
∣
x
)
q(\mathbf{z}_0|\mathbf{x})
q(z0∣x) 吞没, 所以这会是对真实的
q
(
x
∣
z
0
)
q(\mathbf{x}|\mathbf{z}_0)
q(x∣z0) 的非常接近的近似。
最后,我们选用条件分布:
p
(
z
s
∣
z
t
)
=
q
(
z
s
∣
z
t
,
x
=
x
^
θ
(
z
t
;
t
)
)
p(\mathbf{z}_s|\mathbf{z}_t)=q(\mathbf{z}_s|\mathbf{z}_t,\mathbf{x}=\hat{\mathbf{x}}_\theta(\mathbf{z}_t;t))
p(zs∣zt)=q(zs∣zt,x=x^θ(zt;t))
其与
q
(
z
s
∣
z
t
,
x
)
q(\mathbf{z}_s|\mathbf{z}_t,\mathbf{x})
q(zs∣zt,x) 相同,但将原始数据
x
\mathbf{x}
x 替换成去噪模型根据
z
t
\mathbf{z}_t
zt 预测出的
x
^
θ
(
z
t
;
t
)
\hat{\mathbf{x}}_\theta(\mathbf{z}_t;t)
x^θ(zt;t) 。注意,我们实际上是将去噪模型参数化为一个噪声预测模型(而不是直接预测去噪后的隐变量),这就跟 DDPM 一致了。
p
(
z
s
∣
z
t
)
p(\mathbf{z}_s|\mathbf{z}_t)
p(zs∣zt) 的均值和方差还可以被大幅简化,略。
噪声预测模型和傅里叶特征
本文将去噪模型参数化为一个噪声预测模型
ϵ
^
θ
(
z
t
;
t
)
\hat\epsilon_\theta(\mathbf{z}_t;t)
ϵ^θ(zt;t):
x
^
θ
(
z
t
;
t
)
=
(
z
t
−
σ
t
ϵ
^
θ
(
z
t
;
t
)
)
/
α
t
\hat{\mathbf{x}}_\theta(\mathbf{z}_t;t)=(\mathbf{z}_t-\sigma_t\hat\epsilon_\theta(\mathbf{z}_t;t))/\alpha_t
x^θ(zt;t)=(zt−σtϵ^θ(zt;t))/αt
其中
ϵ
^
θ
(
z
t
;
t
)
\hat\epsilon_\theta(\mathbf{z}_t;t)
ϵ^θ(zt;t) 是参数化的神经网络。相当于预测出噪声,再将噪声出当前噪声图中减去,得到前一步的噪声图,而不是直接预测前一步的噪声图。本文使用的噪声预测模型与 DDPM 基本一样,区别在于 DDPM 仅使用了原始的像素空间输入,而本文还加入了傅里叶特征。
之前的扩散模型主要聚焦在生成图片的感知质量,比较强调粗尺度模式和生成图像的全局一致性。而本文方法是直接优化似然,因此对细粒度的细节和每个像素的精确值比较敏感。为了捕捉数据细粒度的细节信息,本文在噪声预测模型的输入中添加了一组傅里叶特征。真实图片 x \mathbf{x} x 和隐变量 z \mathbf{z} z 的数值范围均为 [ 0 , 1 ] [0,1] [0,1],我们添加两组新的通道,分别为 sin ( 2 n π z ) \sin(2^n\pi\mathbf{z}) sin(2nπz) 和 cos ( 2 n π z ) \cos(2^n\pi\mathbf{z}) cos(2nπz) ,其中 n n n 为一组整数值 { n m i n , … , n m a x } \{n_{min},\dots,n_{max}\} {nmin,…,nmax} 。这些特征是高频特征,可以放大 z t \mathbf{z}_t zt 中的微小变动。引入这种傅里叶特征对噪声预测模型的性能有很大的提升,特别是配合上本文提出的可学习的 SNR 函数,提升更为显著。在 AR 模型中引入傅里叶特征并没有如此显著的提升。
变分下界
我们的优化目标是边缘似然的变分下界(VLB):
−
log
p
(
x
)
≤
VLB
(
x
)
=
D
K
L
(
q
(
z
1
∣
x
)
∣
∣
p
(
z
1
)
)
⏟
Prior Loss
+
E
q
(
z
0
∣
x
)
[
−
log
p
(
x
∣
z
0
)
]
⏟
Reconstruction Loss
+
L
T
(
x
)
⏟
Diffusion Loss
-\log p(\mathbf{x})\le\text{VLB}(\mathbf{x})=\underbrace{D_{KL}(q(\mathbf{z}_1|\mathbf{x})||p(\mathbf{z}_1))}_{\text{Prior Loss}}+\underbrace{\mathbb{E}_{q(\mathbf{z}_0|\mathbf{x})}[-\log p(\mathbf{x}|\mathbf{z}_0)]}_{\text{Reconstruction Loss}}+\underbrace{\mathcal{L}_T(x)}_{\text{Diffusion Loss}}
−logp(x)≤VLB(x)=Prior Loss
DKL(q(z1∣x)∣∣p(z1))+Reconstruction Loss
Eq(z0∣x)[−logp(x∣z0)]+Diffusion Loss
LT(x)
其中先验损失 Prior Loss 和重构损失 Reconstruction Loss 比较常规,计算方式与 VAE 中类似。扩散损失 Diffusion Loss 比较复杂,他还与超参数
T
T
T 的值,即扩散模型的深度,有关。
离散时间模型
当
T
T
T 为有限值时,为离散时间模型,使用
s
(
i
)
=
(
i
−
1
)
/
T
s(i)=(i-1)/T
s(i)=(i−1)/T,
t
(
i
)
=
i
/
T
t(i)=i/T
t(i)=i/T ,则扩散损失为:
L
T
(
x
)
=
∑
i
=
1
T
E
q
(
z
t
(
i
)
∣
x
)
D
K
L
[
q
(
z
s
(
i
)
∣
z
t
(
i
)
,
x
)
∣
∣
p
(
z
s
(
i
)
∣
z
t
(
i
)
)
]
\mathcal{L}_T(\mathbf{x})=\sum_{i=1}^T\mathbb{E}_{q(\mathbf{z}_{t(i)}|\mathbf{x})}D_{KL}[q(\mathbf{z}_{s(i)}|\mathbf{z}_{t(i)},\mathbf{x})||p(\mathbf{z}_{s(i)}|\mathbf{z}_{t(i)})]
LT(x)=i=1∑TEq(zt(i)∣x)DKL[q(zs(i)∣zt(i),x)∣∣p(zs(i)∣zt(i))]
结合我们定义的信噪比函数
SNR
(
t
)
\text{SNR}(t)
SNR(t),上式可以被大幅化简:
L
T
(
x
)
=
T
2
E
ϵ
∼
N
(
0
,
I
)
,
i
∼
U
(
1
,
T
)
[
SNR
(
s
)
−
SNR
(
t
)
∣
∣
x
−
x
^
θ
(
z
t
;
t
)
∣
∣
2
2
]
\mathcal{L}_T(\mathbf{x})=\frac{T}{2}\mathbb{E}_{\epsilon\sim\mathcal{N}(0,\mathbf{I}),i\sim U(1,T)}[\text{SNR}(s)-\text{SNR}(t)||\mathbf{x}-\hat{\mathbf{x}}_\theta(\mathbf{z}_t;t)||^2_2]
LT(x)=2TEϵ∼N(0,I),i∼U(1,T)[SNR(s)−SNR(t)∣∣x−x^θ(zt;t)∣∣22]
其中
U
(
1
,
T
)
U(1,T)
U(1,T) 是指对 1 到 T 每个时间步均匀采样,
z
t
=
α
t
x
+
σ
t
ϵ
\mathbf{z}_t=\alpha_t\mathbf{x}+\sigma_t\epsilon
zt=αtx+σtϵ 。上式是对于任意的
(
σ
t
,
α
t
)
(\sigma_t,\alpha_t)
(σt,αt) 规格的扩散模型的扩散损失的一般形式。对于我们本文讨论的 variance preserving 的
(
σ
t
,
α
t
)
(\sigma_t,\alpha_t)
(σt,αt) 以及参数化去噪网络
x
^
θ
(
z
t
;
t
)
\hat{\mathbf{x}}_\theta(\mathbf{z}_t;t)
x^θ(zt;t) 来说,有:
L
T
(
x
)
=
T
2
E
ϵ
∼
N
(
0
,
I
)
,
i
∼
U
(
1
,
T
)
[
(
exp
(
γ
η
(
t
)
−
γ
η
(
s
)
)
−
1
)
∣
∣
ϵ
−
ϵ
^
θ
(
z
t
;
t
)
∣
∣
2
2
]
\mathcal{L}_T(\mathbf{x})=\frac{T}{2}\mathbb{E}_{\epsilon\sim\mathcal{N}(0,\mathbf{I}),i\sim U(1,T)}[(\exp(\gamma_\eta(t)-\gamma_\eta(s))-1)||\epsilon-\hat{\epsilon}_\theta(\mathbf{z}_t;t)||^2_2]
LT(x)=2TEϵ∼N(0,I),i∼U(1,T)[(exp(γη(t)−γη(s))−1)∣∣ϵ−ϵ^θ(zt;t)∣∣22]
其中
z
t
=
sigmoid
(
−
γ
η
(
t
)
)
x
+
sigmoid
(
γ
η
(
t
)
)
ϵ
\mathbf{z}_t=\text{sigmoid}(-\gamma_\eta(t))\mathbf{x}+\text{sigmoid}(\gamma_\eta(t))\epsilon
zt=sigmoid(−γη(t))x+sigmoid(γη(t))ϵ 。在离散时间情形下,我们对上式进行蒙特卡洛估计,最大化 VLB,来优化参数
θ
\theta
θ 和
η
\eta
η 。直观地讲,离散时间扩散损失是严格递减函数积分的上黎曼和近似,这意味着更精细的近似,即更大的总步数
T
T
T ,会得到更低的扩散损失。
连续时间模型
更多的步数会得到更好的 VLB 优化结果,我们现在来看一下当
T
→
∞
T\rightarrow\infty
T→∞ 时,即连续时间情形下的模型。在宋飏等人的研究中,使用 SDE 来描述连续时间情形下的扩散模型
p
(
z
t
)
p(\mathbf{z}_t)
p(zt) 。本文推导出,在连续时间模型下,扩散损失
L
T
(
x
)
\mathcal{L}_T(\mathbf{x})
LT(x) 可以进一步近似:
L
∞
(
x
)
=
−
1
2
E
ϵ
∼
N
(
0
,
I
)
∫
0
1
SNR
′
(
t
)
∣
∣
x
−
x
^
θ
(
z
t
;
t
)
∣
∣
2
2
d
t
=
−
1
2
E
ϵ
∼
N
(
0
,
I
)
,
t
∼
U
(
0
,
1
)
[
SNR
′
(
t
)
∣
∣
x
−
x
^
θ
(
z
t
;
t
)
∣
∣
2
2
]
\begin{align} \mathcal{L}_\infty(\mathbf{x})&=-\frac{1}{2}\mathbb{E}_{\epsilon\sim\mathcal{N}(0,\mathbf{I})}\int_0^1\text{SNR}'(t)||\mathbf{x}-\hat{\mathbf{x}}_\theta(\mathbf{z}_t;t)||_2^2dt\\ &=-\frac{1}{2}\mathbb{E}_{\epsilon\sim\mathcal{N}(0,\mathbf{I}),t\sim\mathcal{U}(0,1)}[\text{SNR}'(t)||\mathbf{x}-\hat{\mathbf{x}}_\theta(\mathbf{z}_t;t)||_2^2]\\ \end{align}
L∞(x)=−21Eϵ∼N(0,I)∫01SNR′(t)∣∣x−x^θ(zt;t)∣∣22dt=−21Eϵ∼N(0,I),t∼U(0,1)[SNR′(t)∣∣x−x^θ(zt;t)∣∣22]
其中
SNR
′
(
t
)
=
d
SNR
(
t
)
/
d
t
\text{SNR}'(t)=d\text{SNR}(t)/dt
SNR′(t)=dSNR(t)/dt ,
z
t
=
α
t
x
+
σ
t
ϵ
\mathbf{z}_t=\alpha_t\mathbf{x}+\sigma_t\epsilon
zt=αtx+σtϵ 。上式同样是一般的通用形式,在本文的规格下,进一步有:
L
∞
(
x
)
=
1
2
E
ϵ
∼
N
(
0
,
I
)
,
t
∼
U
(
0
,
1
)
[
γ
η
′
(
t
)
∣
∣
ϵ
−
ϵ
^
θ
(
z
t
;
t
)
∣
∣
2
2
]
\mathcal{L}_\infty(\mathbf{x})=\frac{1}{2}\mathbb{E}_{\epsilon\sim\mathcal{N}(0,\mathbf{I}),t\sim\mathcal{U}(0,1)}[\gamma'_\eta(t)||\epsilon-\hat{\epsilon}_\theta(\mathbf{z}_t;t)||^2_2]
L∞(x)=21Eϵ∼N(0,I),t∼U(0,1)[γη′(t)∣∣ϵ−ϵ^θ(zt;t)∣∣22]
其中
γ
η
′
(
t
)
=
d
γ
η
(
t
)
/
d
t
\gamma'_\eta(t)=d\gamma_\eta(t)/dt
γη′(t)=dγη(t)/dt 。同样使用蒙特卡洛估计来进行计算和优化。
连续时间情形下不同扩散模型的等价性
由于在定义时我们假设
SNR
(
t
)
\text{SNR}(t)
SNR(t) 是单调的,因此它是可逆的,从而我们可以进行变量变换,将所有原来关于
t
t
t 的函数都表示为关于
v
≡
SNR
(
t
)
v\equiv\text{SNR}(t)
v≡SNR(t) 的函数。从而可在
t
=
SNR
−
1
(
v
)
t=\text{SNR}^{-1}(v)
t=SNR−1(v) 下分别求得有
α
v
,
σ
v
\alpha_v,\sigma_v
αv,σv ,进而
z
v
=
α
v
x
+
σ
v
ϵ
\mathbf{z}_v=\alpha_v\mathbf{x}+\sigma_v\epsilon
zv=αvx+σvϵ ,以及
x
~
θ
(
z
;
v
)
=
x
^
θ
(
z
;
SNR
−
1
(
v
)
)
\tilde{\mathbf{x}}_\theta(\mathbf{z};v)=\hat{\mathbf{x}}_\theta(\mathbf{z};\text{SNR}^{-1}(v))
x~θ(z;v)=x^θ(z;SNR−1(v)) 。经过变量变换之后,连续时间情形下的扩散损失可写为:
L
∞
(
z
)
=
1
2
E
ϵ
∼
N
(
0
,
I
)
∫
SNR
min
SNR
max
∣
∣
x
−
x
~
θ
(
z
v
;
v
)
∣
∣
d
v
\mathcal{L}_\infty(\mathbf{z})=\frac{1}{2}\mathbb{E}_{\epsilon\sim\mathcal{N}(0,\mathbf{I})}\int_{\text{SNR}_\text{min}}^{\text{SNR}_\text{max}}||\mathbf{x}-\tilde{\mathbf{x}}_\theta(\mathbf{z}_v;v)||dv
L∞(z)=21Eϵ∼N(0,I)∫SNRminSNRmax∣∣x−x~θ(zv;v)∣∣dv
从之前关于 t t t 的积分变成了关于 v v v 的积分。
仔细观察上式,我们发现,扩散模型的规格 α ( t ) , σ ( t ) \alpha(t),\sigma(t) α(t),σ(t) 以及 SNR ( t ) = α t 2 / σ t 2 \text{SNR}(t)=\alpha^2_t/\sigma^2_t SNR(t)=αt2/σt2 对该扩散损失的影响仅体现在积分的区间端点上,即 SNR min \text{SNR}_\text{min} SNRmin 和 SNR max \text{SNR}_\text{max} SNRmax ,而这两个值 SNR min = SNR ( 1 ) \text{SNR}_\text{min}=\text{SNR}(1) SNRmin=SNR(1) 、 SNR max = SNR ( 0 ) \text{SNR}_\text{max}=\text{SNR}(0) SNRmax=SNR(0) 又仅与扩散模型时间步的 t = 0 t=0 t=0 和 t = 1 t=1 t=1 两端点有关。也就是说 SNR min \text{SNR}_\text{min} SNRmin 和 SNR max \text{SNR}_\text{max} SNRmax 一旦给定,扩散损失就已经确定下来了,而与 t = 0 t=0 t=0 和 t = 1 t=1 t=1 之间的信噪比函数 SNR ( t ) \text{SNR}(t) SNR(t) 的形状无关。VLB 受到信噪比函数 SNR ( t ) \text{SNR}(t) SNR(t) 的影响仅体现在两端点处。
进一步我们发现,生成模型定义的数据分布 p ( x ) p(\mathbf{x}) p(x) 也与扩散模型的规格无关。具体来说,如果我们在扩散模型规格 { α v A , σ v A , x ~ θ A ( z v ; v ) } \{\alpha^A_v,\sigma^A_v,\tilde{\mathbf{x}}^A_\theta(\mathbf{z}_v;v)\} {αvA,σvA,x~θA(zv;v)} 下定义一个分布 p A ( x ) p^A(\mathbf{x}) pA(x) ,然后在不同的扩散模型规格 { α v B , σ v B , x ~ θ B ( z v ; v ) } \{\alpha^B_v,\sigma^B_v,\tilde{\mathbf{x}}^B_\theta(\mathbf{z}_v;v)\} {αvB,σvB,x~θB(zv;v)} 下定义一个分布 p B ( x ) p^B(\mathbf{x}) pB(x) ,作者证明了,如果两种规格下的 SNR min , SNR max \text{SNR}_\text{min},\text{SNR}_\text{max} SNRmin,SNRmax 相同,且对模型乘上一个尺度定值 x ~ θ B ( z ; v ) ≡ x ~ θ B ( ( α v A / α v B ) z ; v ) \tilde{\mathbf{x}}_\theta^B(\mathbf{z};v)\equiv\tilde{\mathbf{x}}_\theta^B((\alpha_v^A/\alpha_v^B)\mathbf{z};v) x~θB(z;v)≡x~θB((αvA/αvB)z;v),那么就有 p A ( x ) = p B ( x ) p^A(\mathbf{x})=p^B(\mathbf{x}) pA(x)=pB(x)。并且所有隐变量 z v \mathbf{z}_v zv 的特征的分布也是相同的,顶多需要乘一个常系数。也就是说,任何两个扩散模型,只要满足我们在 ”前向过程“ 中给出的一点轻微约束,那么他们在连续时间情形下就是等价的。
加权扩散损失
即使优化目标不是 VLB,而是一个加权的扩散损失,不同扩散模型规格下的等价性也是成立的。对于加权扩散损失:
L
∞
(
z
)
=
1
2
E
ϵ
∼
N
(
0
,
I
)
∫
SNR
min
SNR
max
w
(
v
)
∣
∣
x
−
x
~
θ
(
z
v
;
v
)
∣
∣
d
v
\mathcal{L}_\infty(\mathbf{z})=\frac{1}{2}\mathbb{E}_{\epsilon\sim\mathcal{N}(0,\mathbf{I})}\int_{\text{SNR}_\text{min}}^{\text{SNR}_\text{max}}w(v)||\mathbf{x}-\tilde{\mathbf{x}}_\theta(\mathbf{z}_v;v)||dv
L∞(z)=21Eϵ∼N(0,I)∫SNRminSNRmaxw(v)∣∣x−x~θ(zv;v)∣∣dv
其中 w ( v ) w(v) w(v) 是一个关于 v v v 的(自然也就是关于 t t t)的加权函数。一般来说,噪声越大,加的权重也会越大,从而可以提高 FID/IS 等指标度量出的感知质量。加入损失加权之后,就能囊括宋飏 SDE 论文中讨论的所有不同的目标函数了。
最小化方差
降低连续时间损失的蒙特卡洛估计量的方差通常会提高优化效率。作者发现,使用低差异采样器(可显著降低方差。此外,由于连续时间情形下的等价性,端点之间的 noise schedule 对扩散损失没有影响,我们可以对其进行调整优化,以最小化我们的损失估计量的方差。
总结
本文定义了信噪比函数 SNR ( t ) = α t 2 / σ t 2 \text{SNR}(t)=\alpha_t^2/\sigma_t^2 SNR(t)=αt2/σt2,从变分下界的角度推导了扩散模型的损失函数。并对其中的扩散损失项在离散时间情形和连续时间情形下进行了推导,结合信噪比函数得出了一个极简洁的形式。进一步地,作者推导出在连续时间情形下,扩散模型规格(以 SNR 的形式)对扩散损失的影响仅体现在 t = 0 t=0 t=0 和 t = 1 t=1 t=1 两处端点上,而与中间的 α t , σ t \alpha_t,\sigma_t αt,σt 的形状无关,从而推导出不同的扩散模型规格在连续时间情形下的等价性(宋飏连续时间 SDE 的推导也有此结论)。