目录
0 前言
该论文发表在2024年机器学习顶会ICML上,本工作旨在利用预训练的扩散模型实现损失函数引导的、无需训练的条件生成任务。仅用几行代码,就能够使得DSG
可以无缝地插入(Plug-and-Play
)到现有的无需训练的条件扩散方法,在几乎不产生额外的计算开销的同时大幅改善了模型性能。下面给出论文和项目链接:
1 摘要
最近的Guidance
方法试图通过利用预训练的扩散模型实现损失函数引导的、无需训练的条件生成。虽然这些方法取得了一定的成功,但它们通常会损失生成样本的质量,并且只能使用较小的Guidance
步长,从而导致较长的采样过程。 在本文中,作者揭示了导致这一现象的原因,即采样过程中的流形偏离(Manifold Deviation) 。通过建立引导过程中估计误差的下界,从理论上证明了流形偏离的存在。为了解决这个问题,提出了基于球形高斯约束的Guidance
方法(DSG
),通过解决一个优化问题将Guidance
步长约束在中间数据流形内,使得更大的引导步长可以被使用。此外,作者提出了该DSG
的闭式解(Closed-Form Solution
), 仅用几行代码,就能够使得DSG
可以无缝地插入(Plug-and-Play
)到现有的无需训练的条件扩散方法,在几乎不产生额外的计算开销的同时大幅改善了模型性能。并在各个条件生成任务(Inpainting, Super Resolution
, Gaussian Deblurring
, Text-Segmentation Guidance,
Style Guidance
, Text-Style Guidance
, and FaceID Guidance
)中验证了DSG
的有效性。
- PS:流形偏离指的是生成的样本不再位于数据真实的低维结构上,而是偏离了这个结构,简单理解就是数据发生了偏离,不是我想要的。
2 引言
在过去几年,扩散模型尤其是条件扩散模型取得了巨大的成功,应用领域非常广泛。。。
条件扩散模型通常分为两种类型:classifier-guide
和classifier-free
。然而,这两种方法在学习成本和模型泛化性上仍然存在挑战,因为它们都需要额外的训练和数据来赋予扩散模型条件生成能力。于是最新的一些研究提出了无需训练的方法,这些方法仅在去噪过程中使用现成的损失引导。虽然这些无需训练的方法避免了额外的训练,但它们可能会牺牲生成样本的真实性和质量。这一弱点可能是由于在去噪过程中中间数据样本
x
t
x_t
xt与中间数据流形之间的偏离所致。由于这个问题,现有的方法通常不得不采用较小的损失引导步长,但这会进一步增加采样步骤的数量,使其算法变慢。
在本文中,作者通过建立损失引导估计误差的某个下界,揭示了扩散采样过程中的流形偏离现象。为了解决流形偏离问题,提出了一种用于条件扩散模型的新型无需训练的方法——球形高斯约束扩散(DSG
)。DSG
的基本思想是通过球形高斯约束将引导步长限制在中间数据流形内。具体来说,球形高斯约束是由中间数据流形确定的一个球面,这个球面是无条件扩散步的高置信区域。然后,我们将引导计算表述为一个带有球形高斯约束和引导损失目标的优化问题。在这种情况下,可以避免流形偏离,并且可以采用足够大的引导步长。此外,作者还发现这个优化问题可以通过闭式解有效解决。这就意味着DSG
在每个扩散步中几乎不增加额外的计算成本。因此,本文的模型在时间效率和样本质量上都比之前的无需训练的扩散模型表现更好。
总结一下本文的主要贡献:
揭示了流形偏离的问题:通过展示由
Jensen间隙
引起的损失引导估计误差的某个下界,说明了以往无需训练的条件扩散模型中广泛存在的中间数据流形偏离问题。引入了球形高斯约束引导:引入了球形高斯约束扩散(
DSG
)方法,这是一种无需训练的条件扩散模型的即插即用模块。DSG
基于高维高斯分布集中现象设计,能够有效缓解流形偏离问题。提供闭式解:为
DSG
去噪过程提供了一个闭式解,简化了DSG
在现有无需训练的条件扩散模型中的集成,仅需添加几行代码。DSG
几乎不增加计算开销,同时显著提升了性能。适用于多种任务:在各种条件生成任务中进行了实验,包括修复、超分辨率、高斯去模糊、文本分割引导、风格引导、文本风格引导和
FaceID
引导。这些结果充分证实了我们方法在样本质量和时间效率方面的优越性和适应性。
3 背景
简要介绍一下两种模型:需要训练的条件扩散模型和无需训练的条件扩散模型
3.1 需要训练的条件扩散模型(CDM)
通常,需要训练的CDM
可以分为两类。其中一类是分类器引导的扩散模型,它基于现成的扩散模型训练一个时间相关的分类器,以逼近无偏后验概率
p
(
y
∣
x
t
)
p(y|x_t)
p(y∣xt)。另一类是无分类器的扩散模型,如我们经常听到的stable-diffusion
以及他的变体。不同于分类器引导的模型,无分类器引导的模型的关键思想是利用数据对直接训练一个条件去噪器。虽然这些模型可以在给定的条件下确保生成样本的真实性和质量。但是,显然额外的数据对收集和训练时间成本是不可避免的。这使得它们难以在没有额外数据对或足够计算资源的现实场景中部署。
3.2 无需训练的CMD
为了克服这个问题,最近的研究工作尝试以无需训练的方式处理条件生成。通常,它们不训练时间相关的分类器,而是利用现成的分类器引导来逼近
∇
x
t
log
(
y
∣
x
t
)
\nabla_{x_t}\log(y|x_t)
∇xtlog(y∣xt)。具体来说,MCG利用利用Tweedie
公式近似引导来解决线性逆问题,然后该方法又被DPS
,Freedom
,UGD
等方法扩展到一般任务。此外,LGD-MC(Song et al., 2023)尝试使用来自不精确高斯分布的多个样本来减少估计偏差,但它仍然受制于蒙特卡罗模拟的计算成本。其他方法如UGD
、DiffPIR
在干净数据样本(即
x
0
x_0
x0)上执行引导步骤,然后将更新后的干净数据样本投影到相应的中间数据流形(即
x
t
x_t
xt)。最近,一个称为MPGD
的同期工作进一步研究这一想法,通过在干净数据流形的切空间内执行引导步骤并强制投影。虽然它有一些改进,但依赖于数据流形的强线性假设,这在大多数现实应用中并不成立。此外,MPGD
严重依赖于预训练的自编码器进行流形投影。虽然它在图像生成中表现良好,但不能推广到没有预训练自编码器的场景。相比之下,DSG
方法可以在没有如此强假设的情况下妥善处理流形偏离问题,并在样本质量和时间效率上提高性能。
4 预备知识
4.1 扩散模型
扩散模是一类基于似然的生成模型,在各种任务中表现优于其他生成模型(例如,GAN
、VAE
等)。它有预定义的前向过程,在这个过程中,逐渐向干净数据
x
0
x_0
x0中添加高斯噪声,直到其演变为纯噪声
x
T
∈
[
0
,
I
]
x_T \in [0,I]
xT∈[0,I]。在DDPM
中,给定
x
0
x_0
x0时任意时间点
t
t
t的后验概率分布
x
t
x_t
xt定义为:
q
(
x
t
∣
x
0
)
=
N
(
x
t
;
α
t
x
0
,
(
1
−
α
t
)
I
)
q(x_t|x_0) = N(x_t;\sqrt{\alpha_t}x_0,(1-\alpha_t)I)
q(xt∣x0)=N(xt;αtx0,(1−αt)I)
其中 { α 0 . . . α t } \{\alpha_0...\alpha_t \} {α0...αt}是预定义好的噪声系数,目标是训练一个去噪器,记为 ϵ θ ( x t , t ) \epsilon_\theta(x_t,t) ϵθ(xt,t),在每个时间节点 t t t逼近高斯噪声 ϵ t \epsilon_t ϵt,这是通过最小化损失函数 L s i m p l e L_{simple} Lsimple实现的,该损失函数等价于匹配去噪得分 ∇ x t l o g p t ( x t ) \nabla_{x_t}log p_t(x_t) ∇xtlogpt(xt)
L s i m p l e = E t , x 0 , ϵ t [ ∣ ∣ ϵ t − ϵ θ ( x t , t ) ∣ ∣ 2 ] L_{simple} = E_{t,x_0,\epsilon_{t}}[||\epsilon_t-\epsilon_\theta(x_t,t)||^{2}] Lsimple=Et,x0,ϵt[∣∣ϵt−ϵθ(xt,t)∣∣2]
在采样阶段,反向过程中的联合分布 P ( x 0 : T ) P(x_{0:T}) P(x0:T)可以被定义为:
p θ ( x 0 : T ) = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) . p θ ( x t − 1 ∣ x t ) = N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) . p_\theta(x_{0:T}) = p(x_T) \prod_{t=1}^T p_\theta(x_{t-1}|x_t). \\ p_\theta(x_{t-1}|x_t) = N(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t)). pθ(x0:T)=p(xT)t=1∏Tpθ(xt−1∣xt).pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t)).
在本文中,作者采用了DDIM
中的更新规则来计算
μ
θ
(
x
t
,
t
)
\mu_\theta(x_t,t)
μθ(xt,t)和
∑
θ
(
x
t
,
t
)
\sum_\theta(x_t,t)
∑θ(xt,t):
x
t
−
1
=
α
t
−
1
(
x
t
−
1
−
α
t
ϵ
θ
(
x
t
)
α
t
)
+
1
−
α
t
−
1
−
σ
t
2
⋅
ϵ
θ
(
x
t
)
(
t
)
+
σ
t
ϵ
t
,
σ
t
=
η
(
1
−
α
t
−
1
)
/
(
1
−
α
t
)
1
−
α
t
/
α
t
−
1
.
x_{t-1} = \sqrt{\alpha_{t-1}} \left( \frac{x_t - \sqrt{1 - \alpha_t} \epsilon_\theta(x_t)} {\sqrt{\alpha_t}} \right) + \sqrt{1 - \alpha_{t-1} - \sigma_t^2} \cdot \epsilon_\theta(x_t)^{(t)} + \sigma_t \epsilon_t, \\ \sigma_t = \eta \sqrt{(1 - \alpha_{t-1})/(1 - \alpha_t)} \sqrt{1 - \alpha_t/\alpha_{t-1}}.
xt−1=αt−1(αtxt−1−αtϵθ(xt))+1−αt−1−σt2⋅ϵθ(xt)(t)+σtϵt,σt=η(1−αt−1)/(1−αt)1−αt/αt−1.
其中第一项为预测的
x
0
x_0
x0,第二项为指向
x
t
x_t
xt,第三项为随机噪声。当
η
=
1
\eta=1
η=1时,生成过程变为DDPM
,而
η
=
0
\eta=0
η=0则对应于确定性采样。
4.2 无需训练的条件生成模型
分类器指导是第一个在条件生成任务中利用预训练扩散模型的工作。具体而言,考虑贝叶斯规则
p
(
x
∣
y
)
=
p
(
y
∣
x
)
p
(
x
)
p
(
y
)
p(x|y) = \frac{p(y|x)p(x)}{p(y)}
p(x∣y)=p(y)p(y∣x)p(x),它通过引入一个额外的似然项
p
(
x
t
∣
y
)
p(x_t|y)
p(xt∣y)来引入给定条件:
∇
x
t
log
p
(
x
t
∣
y
)
=
∇
x
t
log
p
(
x
t
)
+
∇
x
t
p
(
y
∣
x
t
)
,
\nabla_{x_t} \log p(x_t|y) = \nabla_{x_t} \log p(x_t) + \nabla_{x_t} p(y|x_t),
∇xtlogp(xt∣y)=∇xtlogp(xt)+∇xtp(y∣xt),
其中,
y
y
y表示条件或者测量值。最近,许多被称为无需训练的方法试图在不重新训练或微调扩散先验的情况下,利用预训练的扩散模型进行条件生成。这些无需训练的指导扩散模型不需要训练时间依赖的分类器来估计
p
(
y
∣
x
t
)
p(y|x_t)
p(y∣xt),只需要一个预训练的扩散先验
D
0
D_0
D0和一个定义在
x
0
x_0
x0上的可微损失函数
L
(
x
0
,
y
)
L(x_0,y)
L(x0,y),是一个现成的神经网络。他们使用Tweedie公式通过估计
x
^
0
\hat{x}_0
x^0(基于
x
t
x_t
xt)计算
∇
x
t
log
p
(
y
∣
x
t
)
\nabla_{x_t}\log p(y|x_t)
∇xtlogp(y∣xt):
x
0
^
(
x
t
)
≈
E
[
x
0
∣
x
t
]
=
x
t
+
b
t
2
∇
x
t
log
p
(
x
t
)
a
t
,
∇
x
t
log
p
(
y
∣
x
t
)
≈
∇
x
t
log
p
(
y
∣
x
0
^
(
x
t
)
)
=
γ
∇
x
t
L
(
x
0
^
(
x
t
)
,
y
)
,
\hat{x_0}(x_t) \approx E[x_0|x_t] = \frac{x_t + b_t^2 \nabla_{x_t} \log p(x_t)}{a_t},\\ \nabla_{x_t} \log p(y|x_t) \approx \nabla_{x_t} \log p(y|\hat{x_0}(x_t)) = \gamma \nabla_{x_t} L(\hat{x_0}(x_t), y),
x0^(xt)≈E[x0∣xt]=atxt+bt2∇xtlogp(xt),∇xtlogp(y∣xt)≈∇xtlogp(y∣x0^(xt))=γ∇xtL(x0^(xt),y),
其中,
x
t
∼
N
(
a
t
x
0
,
b
t
2
I
)
x_t \sim N(a_tx_0,b_t^{2}I)
xt∼N(atx0,bt2I)且
γ
\gamma
γ是步长。在DDPM
的公式中,
a
t
=
α
t
,
b
t
2
=
1
−
α
t
a_t=\sqrt{\alpha_t},b_t^{2} = \sqrt{1-\alpha_t}
at=αt,bt2=1−αt。然后他们使用估计的似然
L
(
x
0
,
y
)
L(x_0,y)
L(x0,y)进行额外的校正步骤:
x
t
−
1
=
DDIM
(
x
t
,
ϵ
θ
(
x
t
,
t
)
)
−
γ
∇
x
t
L
(
x
0
^
(
x
t
)
,
y
)
.
x_{t-1} = \text{DDIM}(x_t, \epsilon_\theta(x_t, t)) - \gamma \nabla_{x_t} L(\hat{x_0}(x_t), y).
xt−1=DDIM(xt,ϵθ(xt,t))−γ∇xtL(x0^(xt),y).
其中,第一项为采样步骤,第二校正步骤。
4.3 低维流形假设
假设干净数据流形 M 0 M_0 M0是由所有数据点组成的集合。通常,假设数据位于低维空间而不是整个环境空间中:
- 低维流形假设。数据流形 M 0 M_0 M0位于 k k k维子空间 R k R^{k} Rk中,其中 k ≪ n k \ll n k≪n,即用如下公式表示: M 0 ⊂ R k , k ≪ n . M_0 \subset \mathbb{R}^k \quad ,\quad k \ll n. M0⊂Rk,k≪n.
基于这个假设,最近的一些工作证明了噪声数据
x
t
x_t
xt的集合,即本文中的中间数据流形,集中在一个
(
n
−
k
)
(n-k)
(n−k)维流形
M
t
M_t
Mt上(个人理解:当数据添加了噪声后,这些噪声数据
x
t
x_t
xt形成了一个新的流形,称为中间数据流形
M
t
M_t
Mt 。这些噪声数据集中在一个
(
n
−
k
)
(n−k)
(n−k)维的流形上):
M
t
:
{
x
∈
R
n
∣
d
(
x
,
α
t
M
)
=
(
1
−
α
t
)
(
n
−
k
)
}
M_t : \{x \in \mathbb{R}^n \mid d(x, \sqrt{\alpha_t} M) = (1 - \alpha_t)(n - k)\}
Mt:{x∈Rn∣d(x,αtM)=(1−αt)(n−k)}
5 方法
在本节中,首先介绍之前的无需训练的条件扩散模型(CDM
)的局限性,包括强流形假设和损失引导的估计误差。之后,引出作者的方法DSG
,通过应用球形高斯约束的引导,有效地解决这些问题。
左图:DPS
中的流形偏离问题
在左图中,我们看到DPS在执行有偏条件引导时会导致样本偏离初始数据流形。红色圆环表示偏离条件引导下的样本集中区域,这表明条件引导引入了额外的误差,导致生成样本偏离原始数据流形。
右图:DSG
约束引导流形的示意图
在右图中,DSG通过引入球形高斯约束有效限制了条件引导,使样本在初始数据流形内生成。蓝色圆环表示准确条件引导下的样本集中区域,而绿色圆环表示无条件情况下的样本集中区域。
5.1 损失引导的流形偏离
虽然之前的无需训练的方法因其即插即用的特性在各种图像领域取得了很大的成功,但它们会牺牲生成样本的质量。这个现象主要有两个问题:关于
M
0
M_0
M0的线性流形假设和由Jensen
差距引起的损失引导估计误差,这导致了流形偏离问题。
线性流形假设
除了低维流形假设之外,一些以前的无需训练的条件扩散方法进一步要求对
M
0
M_0
M0的线性子空间假设。MCG
采用这种线性子空间假设来建立估计梯度
∇
L
(
x
0
^
(
x
t
)
,
y
)
\nabla L(\hat{x_0}(x_t),y)
∇L(x0^(xt),y)。一个同期进行的工作MPGD
对任意
t
∈
[
0
,
T
]
t \in [0,T]
t∈[0,T],将
x
0
x_0
x0上损失的梯度投影到
M
0
M_0
M0的切空间,使样本保持在中间流形
M
t
M_t
Mt上。然而,线性流形假设是非常强的,所以在实际中,MCG
和MPGD
都会不可避免地在估计
p
(
y
∣
x
t
)
p(y|x_t)
p(y∣xt)时引入误差,导致生成样本偏离干净数据流形
M
0
M_0
M0。
Jensen差距
如DPS
中所述,以往工作中损失引导结果的估计误差来自于对
E
x
0
∣
x
t
[
L
(
x
0
)
]
≈
L
(
E
x
0
∣
x
t
[
x
0
]
)
=
L
(
x
0
^
(
x
t
)
)
E_{x_0|x_t} [L(x_0)] \approx L(E_{x_0|x_t} [x_0])=L(\hat{x_0}(x_t))
Ex0∣xt[L(x0)]≈L(Ex0∣xt[x0])=L(x0^(xt))的近似。实际上,
E
x
0
∣
x
t
[
L
(
x
0
)
]
E_{x_0|x_t} [L(x_0)]
Ex0∣xt[L(x0)]和
L
(
x
0
^
(
x
t
)
)
L(\hat{x_0}(x_t))
L(x0^(xt))之间的差距与Jensen
不等式有关,这被称为Jensen
差距。
定义5.1
设
x
x
x是具有分布为
p
(
x
)
p(x)
p(x)的随机变量。对于凸或非凸的函数
f
f
f,
J
e
n
s
e
n
Jensen
Jensen差距定义为:
J
(
f
,
x
∼
p
(
x
)
)
=
E
[
f
(
x
)
]
−
f
(
E
[
x
]
)
J(f, x \sim p(x)) = E[f(x)] - f(E[x])
J(f,x∼p(x))=E[f(x)]−f(E[x])
其中,期望取
p
(
x
)
p(x)
p(x)。
尽管DPS
提供了Jensen gap
的上界,但它依赖于对引导损失有限导数的假设,这在线性逆问题中是显然是不可用的。实际上,这个gap
的下界在高维生成任务中非常大,正如命题5.2所示,并进一步导致严重的流形偏离问题。
命题5.2 Jensen gap
下届
对于
β
β
β强凸函数
f
f
f和随机变量
x
∈
R
n
∼
N
(
μ
,
∑
)
x \in R^{n} \sim N(\mu, \sum)
x∈Rn∼N(μ,∑),我们可以得到Jensen gap
的下界:
J
≥
1
2
β
∑
i
=
1
n
λ
i
J \ge \frac{1}{2} \beta \sum_{i=1}^{n} \lambda_i
J≥21βi=1∑nλi
其中,
∑
\sum
∑通过谱分解为
P
T
Λ
P
,
λ
1
,
⋅
⋅
⋅
,
λ
n
P^{T}ΛP,λ_1, ···, λ_n
PTΛP,λ1,⋅⋅⋅,λn是
Λ
Λ
Λ中的正对角元素。
f
f
f是现成的导向损失
L
L
L,随机变量
x
x
x是
x
0
∣
x
t
x_0|x_t
x0∣xt。作者利用LGD-MC中提到的
x
0
∣
x
t
x_0|x_t
x0∣xt假设,并将其扩展到一般高斯分布以进行更准确的估计。此外,
L
L
L的强凸性的假设也是合理的。一方面,在线性反问题中,
L
L
L通常是二次函数,它是
β
\beta
β强凸的。另一方面,在实际场景中,
L
L
L通常至少具有局部的
β
\beta
β强凸性。考虑到当
x
x
x远离
x
0
^
\hat{x_0}
x0^时高斯分布的概率可以忽略,Jensen gap
的下界在一般情况下仍然成立。因此,根据命题5.2,Jensen gap随着样本维度的增加而线性增长,这在图像生成等高维生成任务中会非常大。在这种情况下,如此大的gap导致
x
t
−
1
x_{t−1}
xt−1从中间数据流形
M
t
−
1
M_{t−1}
Mt−1偏离,从而导致图像结构信息的丢失。
5.2 球面高斯约束下的扩散
根据上面的分析,Jensen gap
和线性流形假设都会引入额外误差,导致生成样本的真实性相比于无条件生成显著下降。从另一个角度来看,考虑到在每个去噪步骤中估计条件偏差时不可避免的误差,为什么不从预先存在的无条件中间流形
M
t
M_t
Mt开始,然后找到最接近条件采样的点?
于是,作者提出了带有球形高斯约束的扩散(DSG
),这是一种在无条件中间流形
M
t
M_t
Mt的高置信区间内执行引导的优化方法:
arg
min
x
′
[
∇
x
t
L
(
x
^
0
(
x
t
)
,
y
)
]
T
(
x
′
−
x
t
)
s.t.
x
′
∈
C
I
1
−
δ
\arg\min_{x'} [\nabla_{x_t} L(\hat{x}_0(x_t), y)]^T (x' - x_t) \quad \text{s.t.} \quad x' \in CI_{1-\delta}
argx′min[∇xtL(x^0(xt),y)]T(x′−xt)s.t.x′∈CI1−δ
其中,
C
I
1
−
δ
CI_{1-\delta}
CI1−δ表示高斯分布在公式
p
θ
(
x
t
−
1
∣
x
t
)
p_\theta(x_{t-1}|x_t)
pθ(xt−1∣xt)中的
(
1
−
δ
)
(1-\delta)
(1−δ)置信区间。在这个优化问题中,目标是鼓励在梯度下降方向上进行采样,而约束条件则强制在高斯分布的高置信区间内进行采样。然而,当高置信区间在n维空间中覆盖较大区域时,优化问题可能显得困难和不可行。幸运的是,在高维各向同性高斯分布的情况下,高置信区间集中在超球面上,我们可以用这个超球面来简化约束,称为球形高斯约束。
命题5.3 高维各向同性高斯分布的集中性
对于任意n维各向同性高斯分布
x
∼
N
(
μ
,
σ
2
I
)
x \sim N(\mu,\sigma^{2}I)
x∼N(μ,σ2I):
P
(
∣
∣
x
−
μ
∣
∣
2
2
≥
x
l
o
w
e
r
=
n
σ
2
+
2
n
σ
2
(
ϵ
+
ϵ
)
)
≤
e
−
n
ϵ
P(||x - \mu||_2^2 \geq x_{lower} = n\sigma^2 + 2n\sigma^2 (\sqrt{\epsilon} + \epsilon)) \leq e^{-n\epsilon}
P(∣∣x−μ∣∣22≥xlower=nσ2+2nσ2(ϵ+ϵ))≤e−nϵ
P
(
∣
∣
x
−
μ
∣
∣
2
2
≤
x
u
p
p
e
r
=
n
σ
2
−
2
n
σ
2
ϵ
)
≤
e
−
n
ϵ
P(||x - \mu||_2^2 \leq x_{upper} = n\sigma^2 - 2n\sigma^2 \sqrt{\epsilon}) \leq e^{-n\epsilon}
P(∣∣x−μ∣∣22≤xupper=nσ2−2nσ2ϵ)≤e−nϵ
当n足够大时,它接近于半径为
n
σ
\sqrt{n}\sigma
nσ的超球面上的均匀分布。根据命题5.3,由于
P
(
∣
∣
x
−
μ
∣
∣
2
2
≥
x
l
o
w
e
r
)
P(||x - \mu||_2^2 \geq x_{lower})
P(∣∣x−μ∣∣22≥xlower)和
P
(
∣
∣
x
−
μ
∣
∣
2
2
≤
x
u
p
p
e
r
P(||x - \mu||_2^2 \leq x_{upper}
P(∣∣x−μ∣∣22≤xupper)的概率随着
ϵ
\epsilon
ϵ的增加急剧下降。上面提到的公式
x
t
−
1
x_{t-1}
xt−1中的后验高斯分布可以近似为超球面:
S
μ
,
r
n
=
S
μ
θ
(
x
t
)
,
n
σ
n
=
{
x
∈
R
n
:
∣
∣
x
−
μ
θ
(
x
t
)
∣
∣
2
2
=
r
2
=
n
σ
t
2
}
S_{\mu,r} ^{n}=S_{ \mu_\theta(x_t),\sqrt{n}\sigma}^{n}=\{x \in R^{n}:||x-\mu_\theta(x_t)||_2^{2} = r^{2}=n\sigma_t^{2}\}
Sμ,rn=Sμθ(xt),nσn={x∈Rn:∣∣x−μθ(xt)∣∣22=r2=nσt2}
因此,优化问题可以近似为:
arg
min
x
′
[
∇
x
t
L
(
x
^
0
(
x
t
)
,
y
)
]
T
(
x
′
−
x
t
)
s.t.
x
′
∈
S
μ
θ
(
x
t
)
,
n
σ
t
n
\arg\min_{x'} [\nabla_{x_t} L(\hat{x}_0(x_t), y)]^T (x' - x_t) \quad \text{s.t.} \quad x' \in S_{\mu_\theta(x_t), \sqrt{n}\sigma_t}^{n}
argx′min[∇xtL(x^0(xt),y)]T(x′−xt)s.t.x′∈Sμθ(xt),nσtn
由于球面高斯约束,该优化问题本质上是非凸的,但可以获得一个闭形式解:
x
t
−
1
∗
=
μ
θ
(
x
t
)
−
n
σ
t
∇
x
t
L
(
x
^
0
(
x
t
)
,
y
)
∣
∣
∇
x
t
L
(
x
^
0
(
x
t
)
,
y
)
∣
∣
2
x^*_{t-1} = \mu_\theta(x_t) - \sqrt{n\sigma_t} \frac{\nabla_{x_t} L(\hat{x}_0(x_t), y)}{||\nabla_{x_t} L(\hat{x}_0(x_t), y)||_2}
xt−1∗=μθ(xt)−nσt∣∣∇xtL(x^0(xt),y)∣∣2∇xtL(x^0(xt),y)
- PS1
DSG
可以作为现有无训练条件扩散模型的插件模块,如DPS
、UGD
等,同时几乎不增加额外的计算开销。特别是,这种方法只需修改几行代码即可生成更逼真的图像,并加速采样速度。以DPS
为例,我们突出了DPS
和DSG
之间的代码差异。
1 diff=measure-self.forward(x_0_hat)
2 dist=norm(diff)
3 grad=autograd.grad(
4 outputs=distance, inputs=x_t)[0]
5 # DPS: x_t=x_t_mean+sigma_t*eps_tgrad*
self.gamma
6 # Ours:
7 norm=norm(grad, dim=[1, 2, 3])
8 x_t=x_t_mean-sqrt(n)*sigma_t*grad/norm
- PS2
获得最优解的另一种直观解释是,作者直接将梯度下降应用于 μ θ ( x t ) \mu_{\theta}(x_t) μθ(xt)而不是采样点 x t x_t xt。虽然
DDIM
的标准偏差 σ t \sigma_t σt通常随着时间的减小而减小,作者的方法可以看作是自适应梯度下降,在早期阶段快速减小,然后在最后阶段进行收敛。实际上,与当前的一些无需训练的方法相比,作者的方法可以使用极大的步长(当 η = 1 \eta = 1 η=1且 t = T t=T t=T时超过400倍),从而实现更好的对齐。因此,我们的方法对较小的DDIM
步长具有鲁棒性,而DPS
的性能迅速下降。在实际应用中,使用DSG
来增强对齐和真实性可能会牺牲样本多样性。因此,作者使用优化梯度和无条件采样的加权方向,如Classifier-free
方法,以增强多样性:
d m = d s a m p l e + g r ( d ∗ − d s a m p l e ) x t − 1 = μ θ ( x t ) + r d m ∣ ∣ d m ∣ ∣ d_m = d_{sample} + g_r (d^* - d_{sample}) \\ x_{t-1} = \mu_\theta(x_t) + r \frac{d_m}{||d_m||} dm=dsample+gr(d∗−dsample)xt−1=μθ(xt)+r∣∣dm∣∣dm其中, d s a m p l e = σ t ϵ t d_{sample} = \sigma_{t} \epsilon_{t} dsample=σtϵt表示无条件采样方向, d ∗ = − n σ t = ∇ x t L ( x 0 ^ ( x t ) , y ) ∣ ∣ ∇ x t L ( x 0 ^ ( x t ) , y ) ∣ ∣ d^{*} = -\sqrt{n\sigma_t} = \frac{\nabla_{x_t}L(\hat{x_0}(x_t),y)}{||\nabla_{x_t}L(\hat{x_0}(x_t),y)||} d∗=−nσt=∣∣∇xtL(x0^(xt),y)∣∣∇xtL(x0^(xt),y)表示最陡梯度下降方向。 d m d_m dm表示加权方向,被缩放以满足高斯约束。
6 实验
作者在几个任务中评估了他提出的方法,包括三个线性逆问题(图像修复、超分辨率、高斯去模糊)、Style Guidance、Text-Segmentation Guidance、FaceID Guidance、Text-Style Guidance
。证明了多提出的方法可以轻松的集成到各种的无需训练的方法中,包括DPS、Freedom、UGD
等,并且可以显著提升性能。我们看一个FaceID引导的实现细节,其他的几个任务不再介绍,有兴趣的可以阅读下原文。
6.1 FaceID Guidance
使用(Yu et al., 2023)提供的来自CelebA-HQ
256
×
256
256\times 256
256×256的预训练扩散模型,并使用CelebA-HQ
测试集作为输入参考图像,在100个去噪步骤中生成1k张图像。对于输入参考图像
I
I
I,使用 FaceID
损失进行引导:
L
o
s
s
(
x
^
0
(
x
t
)
,
I
)
=
C
E
(
E
(
x
^
0
(
x
t
)
)
,
E
(
I
)
)
Loss(\hat{x}_0(x_t), I) = CE(E(\hat{x}_0(x_t)), E(I))
Loss(x^0(xt),I)=CE(E(x^0(xt)),E(I))
其中,
E
(
⋅
)
E(\cdot)
E(⋅)表示Arcface网络。
7 缺点
尽管 DSG
解决了流形偏差问题,允许使用更大的引导步长以提高时间效率,但其采样策略可能会损害样本多样性。这主要有两个原因:首先,DSG
将高斯采样限制在梯度下降方向的附近,而基线方法(如 DPS
)在所有方向上随机采样噪声。其次,尽管在 DSG
中将高维高斯分布近似为超球体时,采样到超球体外点的可能性很小,但这种近似可能会减少样本多样性。
总结展望
本文揭示了在无训练条件扩散模型中一个关键问题:在使用损失引导进行采样时,会出现流形偏差现象。通过为损失引导的估计误差建立一定的下限,证实了这一现象。为了解决这个问题,我们提出了球面高斯约束扩散(DSG
),灵感来源于高维高斯分布中的集中现象。DSG
通过优化有效地将引导步骤约束在中间数据流形内,从而减轻了流形偏差问题,并且允许使用更大的引导步骤。
此外,我们提出了具有球面高斯约束的 DSG
去噪的闭式解。值得注意的是,DSG
作为一个即插即用的模块,可以应用于无训练条件扩散模型(CDMs
)。将 DSG
集成到这些 CDMs
中仅需修改几行代码,几乎不增加额外的计算成本,但却带来了显著的性能提升。我们已将 DSG
集成到多个最新的 CDMs
中,用于各种条件生成任务。实验结果验证了 DSG
在样本质量和时间效率方面的优越性和适应性。
值得注意的是,DSG
在样本质量和时间效率方面的改进是以牺牲样本多样性为代价的。这是因为 DSG
在逆扩散过程中用确定性的条件引导步骤取代了随机的高斯噪声项。尽管我们在实际操作中使用引导率
g
r
g_r
gr来缓解这一问题,但从本质上无法避免。在未来的工作中,我们将考虑在保持 DSG
生成质量的同时,增强其多样性。
以上就是对本篇论文的解读,如有任何问题欢迎留言,批评指正!