深度生成模型-基于得分的生成模型
- 1. 概述
- 1.1. 深度生成模型
- 1.2. 本文内容
- 2. 基于得分的生成模型
- 2.1. 分数匹配
- 2.1.1. 去噪分数匹配
- 2.1.2. 切片分数匹配
- 2.2. 朗之万动力学采样
- 3. 基于分数的生成式建模所面临的挑战
- 3.1. 流形假说
- 3.2. 低数据密度区域
- 3.2.1 与分数匹配的分数估计不准确
- 3.2.2. 朗之万动力学的缓慢混合
- 4. 噪声条件评分网络:学习和推理
- 4.1. 噪声条件评分网络
- 4.2. 通过分数匹配来学习NCSNs
- 4.3. 通过退火的朗之万动力学进行NCSN推断
1. 概述
1.1. 深度生成模型
生成模型是一种可以生成数据的概率模型,它可以从训练数据集中学习到数据的潜在分布,并通过该分布来生成新数据。
生成模型在机器学习中有许多应用。
- 用于生成高保真图像
- 合成真实的语音和音乐片段
- 提高半监督学习[28,10]的性能
- 检测敌对的例子和其他异常数据
- 模仿学习
- 并探索强化学习中有可能的状态
最近的进展主要由两种方法驱动:
- 基于似然性的方法:对数似然(或合适的替代物)作为训练目标
- 生成对抗网络(GAN):使用对抗性训练来最小化模型和数据分布之间的发散度或积分概率度量。
虽然基于似然性的模型和GANs已经取得了巨大的成功,但它们也有一些内在的局限性。
- 基于似然性的模型要么必须使用专门的架构来构建一个归一化的概率模型(例如,自回归模型,流模型),要么使用替代损失(例如,变分自动编码器中使用的证据下界,基于能量的模型中的对比发散)来进行训练。
- GANs避免了基于似然的模型的一些局限性,但由于对抗性的训练程序,它们的训练可能是不稳定的。此外,GAN目标不适合用于评价和比较不同的GAN模型。
- 虽然生成建模还存在其他目标,如噪声对比估计和最小概率流,但这些方法通常只适用于低维数据。
1.2. 本文内容
在本文中,我们探索了一种新的基于对数数据密度的(Stein)得分的估计和采样的生成建模原理,
- 得分:对数密度函数在输入数据点的梯度。这是一个指向对数数据密度增长最大的方向的向量场。
- 分数匹配:我们使用一个用分数匹配训练的神经网络来从数据中学习这个向量场。
- 样本生成:使用朗之万动力学生成样本,近似地工作原理是沿着(估计的)分数向量场逐渐移动到高密度区域。
然而,这种方法有两个主要的挑战。
- 首先,如果数据分布是在低维流形上支撑的——正如许多真实世界数据集通常假设的那样——分数将在环境空间中未定义,分数匹配将无法提供一致的分数估计器。
- 其次,在低数据密度区域缺乏训练数据,例如,远离流形,阻碍了分数估计的准确性,并减缓了朗之万动态采样的混合。1. 低密度区域分数估计不准确,而由于朗之万动力学通常会在数据分布的低密度区域中进行初始化,因此在这些区域中进行不准确的分数估计会对采样过程产生负面影响。2. 混合(多个分布混合得到的分布)可能是困难的,因为需要跨越低密度区域进行两个分布模式的切换。
为了解决这两个挑战,我们提出用不同大小的随机高斯噪声来扰动数据。
- 添加随机噪声可以确保所得到的分布不会崩溃到一个低维流形。
- 较大的噪声水平将在原始(未受扰动)数据分布的低密度区域产生样本,从而提高分数估计。
至关重要的是,我们训练一个基于噪声水平的单一分数网络,并估计所有噪声大小的分数。然后,我们提出了一个退火的朗之万动力学版本,其中我们首先使用对应于最高噪声水平的分数,并逐步退火到噪声水平,直到它足够小,与原始数据分布难以区分。我们的采样策略受到模拟退火的启发,它启发式地改进了多模态尺度的优化。
我们的方法有几个理想的特性。
- 首先,我们的目标是易于处理几乎所有分数网络的参数化,而不需要特殊的约束或架构,并且可以在训练期间没有对抗性训练、MCMC抽样或其他近似的情况下进行优化。
- 该目标还可用于定量比较同一数据集上的不同模型。
通过实验证明了我们的方法对MNIST、CelebA 和CIFAR-10 的有效性。
我们表明,这些样本看起来可以与基于似然性的模型和GANs生成的样本相比较。
- 在CIFAR-10上,我们的模型为无条件生成模型设置了新的初始分数8.87,并获得了25.32的具有竞争性FID分数。
- 通过图像修复实验该模型学习有意义的数据表示。
2. 基于得分的生成模型
假设我们的数据集由来自一个未知的数据分布 p data ( x ) p_{\text {data }}(\mathbf{x}) pdata (x)组成i.i.d.样本 { x i ∈ R D } i = 1 N \left\{\mathbf{x}_i \in \mathbb{R}^D\right\}_{i=1}^N {xi∈RD}i=1N。
- 我们将一个概率密度 p ( x ) p (x) p(x)的分数定义为 ∇ x log p ( x ) \nabla_{\mathbf{x}} \log p(\mathbf{x}) ∇xlogp(x)
- s θ : R D → R D \mathbf{s}_{\boldsymbol{\theta}}: \mathbb{R}^D \rightarrow \mathbb{R}^D sθ:RD→RD是一个由 θ θ θ参数化的神经网络,它将被训练来近似 p d a t a ( x ) p_{data} (x) pdata(x)的分数。
生成建模的目标是使用数据集来学习模型,从 ∇ x log p ( x ) \nabla_{\mathbf{x}} \log p(\mathbf{x}) ∇xlogp(x)生成新的样本。
基于分数的生成建模框架有两个组成部分:分数匹配和朗之万动力学。
2.1. 分数匹配
分数匹配最初是为学习基于一个未知数据分布i.i.d.的样本而设计的非归一化统计模型。我们重新使用它来进行分数估计。使用分数匹配,我们可以直接训练一个分数网络 s θ ( x ) s_θ(x) sθ(x)来估计 ∇ x l o g p d a t a ( x ) ∇_xlogp_{data} (x) ∇xlogpdata(x),而不需要首先训练一个模型来估计 p d a t a ( x ) p_{data} (x) pdata(x)
本文的分数匹配:与典型的分数匹配用法不同,我们选择不使用基于能量的模型的梯度作为分数网络,以避免由于高阶梯度而导致的额外计算。
目标是最小化 L = E p ( x ) [ ∥ ∇ x log p ( x ) − s θ ( x ) ∥ 2 2 ] \mathcal{L}=\mathbb{E}_{p(\mathbf{x})}\left[\left\|\nabla_{\mathbf{x}} \log p(\mathbf{x})-\mathbf{s}_\theta(\mathbf{x})\right\|_2^2\right] L=Ep(x)[∥∇xlogp(x)−sθ(x)∥22],它等价于以下式子乘上一个常数
L = E p ( x ) [ ∥ s θ ( x ) ∥ 2 + 2 tr ( ∇ x s θ ( x ) ) ] \mathcal{L}=\mathbb{E}_{p(\mathbf{x})}\left[\left\|\mathbf{s}_\theta(\mathbf{x})\right\|^2+2 \operatorname{tr}\left(\nabla_{\mathbf{x}} \mathbf{s}_\theta(\mathbf{x})\right)\right] L=Ep(x)[∥sθ(x)∥2+2tr(∇xsθ(x))]
其中 ∇ x s θ ( x ) \nabla_{\mathbf{x}} \mathbf{s}_{\boldsymbol{\theta}}(\mathbf{x}) ∇xsθ(x)表示 s θ ( x ) \mathbf{s}_{\boldsymbol{\theta}}(\mathbf{x}) sθ(x)的Jacobian矩阵.
证明如下:
J
(
θ
)
=
1
2
∫
x
∈
R
n
p
(
x
)
∥
s
(
x
;
θ
)
−
∇
x
log
p
(
x
)
∥
2
d
x
=
∫
x
∈
R
n
p
(
x
)
[
1
2
∥
∇
x
log
p
(
x
)
∥
2
+
1
2
∥
s
(
x
;
θ
)
∥
2
−
(
∇
x
log
p
(
x
)
)
T
s
(
x
;
θ
)
]
d
x
\begin{aligned} J(\theta) & =\frac{1}{2} \int_{x \in \mathbb{R}^n} p(x)\left\|s(x ; \theta)-\nabla_x \log p(x)\right\|^2 d x \\ & =\int_{x \in \mathbb{R}^n} p(x)\left[\frac{1}{2}\left\|\nabla_x \log p(x)\right\|^2+\frac{1}{2}\|s(x ; \theta)\|^2-\left(\nabla_x \log p(x)\right)^T s(x ; \theta)\right] d x \end{aligned}
J(θ)=21∫x∈Rnp(x)∥s(x;θ)−∇xlogp(x)∥2dx=∫x∈Rnp(x)[21∥∇xlogp(x)∥2+21∥s(x;θ)∥2−(∇xlogp(x))Ts(x;θ)]dx
其中第一项为常数(与参数
θ
\theta
θ 无关),第二项可以拆开,第三项通过部分积分技巧化解。
- 第二项: 1 2 ∥ s ( x ; θ ) ∥ 2 = 1 2 ∑ i = 1 n ( s i ( x ; θ ) ) 2 \frac{1}{2}\|s(x ; \theta)\|^2=\frac{1}{2} \sum_{i=1}^n\left(s_i(x ; \theta)\right)^2 21∥s(x;θ)∥2=21∑i=1n(si(x;θ))2 。
- 第三项:
− ∫ x ∈ R n p ( x ) ( ∇ x log p ( x ) ) T s ( x ; θ ) d x = − ∫ x ∈ R n p ( x ) ∑ i = 1 n ∂ log p ( x ) ∂ x i s i ( x ; θ ) d x = − ∑ i = 1 n ∫ x ∈ R n p ( x ) ∂ log p ( x ) ∂ x i s i ( x ; θ ) d x \begin{aligned} -\int_{x \in \mathbb{R}^n} p(x)\left(\nabla_x \log p(x)\right)^T s(x ; \theta) d x & =-\int_{x \in \mathbb{R}^n} p(x) \sum_{i=1}^n \frac{\partial \log p(x)}{\partial x_i} s_i(x ; \theta) d x \\ & =-\sum_{i=1}^n \int_{x \in \mathbb{R}^n} p(x) \frac{\partial \log p(x)}{\partial x_i} s_i(x ; \theta) d x \end{aligned} −∫x∈Rnp(x)(∇xlogp(x))Ts(x;θ)dx=−∫x∈Rnp(x)i=1∑n∂xi∂logp(x)si(x;θ)dx=−i=1∑n∫x∈Rnp(x)∂xi∂logp(x)si(x;θ)dx
单独考虑第 i i i 项,
− ∫ x ∈ R n p ( x ) ∂ log p ( x ) ∂ x i s i ( x ; θ ) d x = − ∫ x ∈ R n p ( x ) p ( x ) ∂ p ( x ) ∂ x i s i ( x ; θ ) d x = − ∫ x ∈ R n ∂ p ( x ) ∂ x i s i ( x ; θ ) d x -\int_{x \in \mathbb{R}^n} p(x) \frac{\partial \log p(x)}{\partial x_i} s_i(x ; \theta) d x=-\int_{x \in \mathbb{R}^n} \frac{p(x)}{p(x)} \frac{\partial p(x)}{\partial x_i} s_i(x ; \theta) d x=- \int_{x \in \mathbb{R}^n} \frac{\partial p(x)}{\partial x_i} s_i(x ; \theta) d x −∫x∈Rnp(x)∂xi∂logp(x)si(x;θ)dx=−∫x∈Rnp(x)p(x)∂xi∂p(x)si(x;θ)dx=−∫x∈Rn∂xi∂p(x)si(x;θ)dx
分部积分技巧 (一维,即只有 x 1 x_1 x1 是变量,其他值 x 2 , x 3 , … , x n x_2, x_3, \ldots, x_n x2,x3,…,xn 为常量) :
∫ b a [ p ( x ) ] ′ s ( x ; θ ) d x 1 + ∫ b a p ( x ) [ s ( x ; θ ) ] ′ d x 1 = ∫ b a [ p ( x ) s ( x ; θ ) ] ′ d x 1 = lim a → ∞ , b → − ∞ [ p ( a , x 2 , … , x n ) s ( a , x 2 , … , x n ; θ ) − p ( b , x 2 , … , x n ) s ( b , x 2 , … , x n ; θ ) ] \begin{aligned} & \int_b^a[p(x)]^{\prime} s(x ; \theta) d x_1+\int_b^a p(x)[s(x ; \theta)]^{\prime} d x_1=\int_b^a[p(x) s(x ; \theta)]^{\prime} d x_1 \\ & =\lim _{a \rightarrow \infty, b \rightarrow-\infty}\left[p\left(a, x_2, \ldots, x_n\right) s\left(a, x_2, \ldots, x_n ; \theta\right)-p\left(b, x_2, \ldots, x_n\right) s\left(b, x_2, \ldots, x_n\right.\right.;\theta)] \end{aligned} ∫ba[p(x)]′s(x;θ)dx1+∫bap(x)[s(x;θ)]′dx1=∫ba[p(x)s(x;θ)]′dx1=a→∞,b→−∞lim[p(a,x2,…,xn)s(a,x2,…,xn;θ)−p(b,x2,…,xn)s(b,x2,…,xn;θ)]
上式做了假设,当 x → ∞ x \rightarrow \infty x→∞ ,则 p ( x ) s ( x ; θ ) → 0 p(x) s(x ; \theta) \rightarrow 0 p(x)s(x;θ)→0 。因此,第三项可以表示为
− ∫ x ∈ R n p ( x ) ( ∇ x log p ( x ) ) T s ( x ; θ ) d x = ∑ i = 1 n ∫ x ∈ R n p ( x ) ∂ s ( x ; θ ) ∂ x i d x -\int_{x \in \mathbb{R}^n} p(x)\left(\nabla_x \log p(x)\right)^T s(x ; \theta) d x=\sum_{i=1}^n \int_{x \in \mathbb{R}^n} p(x) \frac{\partial s(x ; \theta)}{\partial x_i} d x −∫x∈Rnp(x)(∇xlogp(x))Ts(x;θ)dx=i=1∑n∫x∈Rnp(x)∂xi∂s(x;θ)dx
2.1.1. 去噪分数匹配
思路:它首先用预先指定的噪声分布 q σ ( x ~ ∣ x ) q_\sigma(\tilde{\mathbf{x}} \mid \mathbf{x}) qσ(x~∣x)扰动数据点 x x x,然后采用分数匹配来估计“扰动数据分布” q σ ( x ~ ) ≜ ∫ q σ ( x ~ ∣ x ) p data ( x ) d x q_\sigma(\tilde{\mathbf{x}}) \triangleq \int q_\sigma(\tilde{\mathbf{x}} \mid \mathbf{x}) p_{\text {data }}(\mathbf{x}) \mathrm{d} \mathbf{x} qσ(x~)≜∫qσ(x~∣x)pdata (x)dx的分数。
等价的目标:其目标已被证明等价于:
1
2
E
q
σ
(
x
~
∣
x
)
p
data
(
x
)
[
∥
s
θ
(
x
~
)
−
∇
x
~
log
q
σ
(
x
~
∣
x
)
∥
2
2
]
\frac{1}{2} \mathbb{E}_{q_\sigma(\tilde{\mathbf{x}} \mid \mathbf{x}) p_{\text {data }}(\mathbf{x})}\left[\left\|\mathbf{s}_{\boldsymbol{\theta}}(\tilde{\mathbf{x}})-\nabla_{\tilde{\mathbf{x}}} \log q_\sigma(\tilde{\mathbf{x}} \mid \mathbf{x})\right\|_2^2\right]
21Eqσ(x~∣x)pdata (x)[∥sθ(x~)−∇x~logqσ(x~∣x)∥22]
【61】证明了使上式最小化的最优评分网络(表示为
s
θ
∗
(
x
)
\mathbf{s}_{\boldsymbol{\theta}^*}(\mathbf{x})
sθ∗(x))满足
s
θ
∗
(
x
)
=
∇
x
log
q
σ
(
x
)
\mathbf{s}_{\boldsymbol{\theta}^*}(\mathbf{x})=\nabla_{\mathbf{x}} \log q_\sigma(\mathbf{x})
sθ∗(x)=∇xlogqσ(x)。只有当噪音足够小使得
q
σ
(
x
)
≈
p
data
(
x
)
q_\sigma(\mathbf{x}) \approx p_{\text {data }}(\mathbf{x})
qσ(x)≈pdata (x),才有
s
θ
∗
(
x
)
=
∇
x
log
q
σ
(
x
)
≈
∇
x
log
p
data
(
x
)
\mathbf{s}_{\boldsymbol{\theta}^*}(\mathbf{x})=\nabla_{\mathbf{x}} \log q_\sigma(\mathbf{x}) \approx \nabla_{\mathbf{x}} \log p_{\text {data }}(\mathbf{x})
sθ∗(x)=∇xlogqσ(x)≈∇xlogpdata (x)。
2.1.2. 切片分数匹配
思路:切片分数匹配【53】使用随机投影来近似分数匹配中的 t r ( ∇ x s θ ( x ) ) tr(∇_xs_θ(x)) tr(∇xsθ(x))
等价的目标:其目标已被证明等价于:
E
p
v
E
p
data
[
v
⊤
∇
x
s
θ
(
x
)
v
+
1
2
∥
s
θ
(
x
)
∥
2
2
]
\mathbb{E}_{p_{\mathbf{v}}} \mathbb{E}_{p_{\text {data }}}\left[\mathbf{v}^{\top} \nabla_{\mathbf{x}} \mathbf{s}_{\boldsymbol{\theta}}(\mathbf{x}) \mathbf{v}+\frac{1}{2}\left\|\mathbf{s}_{\boldsymbol{\theta}}(\mathbf{x})\right\|_2^2\right]
EpvEpdata [v⊤∇xsθ(x)v+21∥sθ(x)∥22]
其中
p
v
p_v
pv是随机向量的简单分布,例如,多元标准正态。
计算: v ⊤ ∇ x s θ ( x ) v \mathbf{v}^{\top} \nabla_{\mathbf{x}} \mathbf{s}_{\boldsymbol{\theta}}(\mathbf{x}) \mathbf{v} v⊤∇xsθ(x)v可以通过正向模式自微分有效地计算。与去噪分数匹配估计扰动数据的分数不同,切片分数匹配提供了原始未扰动数据分布的分数估计,但由于前向模式的自微分,需要大约4倍以上的计算。
2.2. 朗之万动力学采样
朗之万动力学可以仅使用分数函数 ∇ x l o g p ( x ) ∇_xlogp(x) ∇xlogp(x)从概率密度 p ( x ) p (x) p(x)中产生样本。
给定一个固定的步长
ϵ
>
0
\epsilon>0
ϵ>0,以及一个初始值
x
~
0
∼
π
(
x
)
\tilde x_0∼π(x)
x~0∼π(x),其中
π
π
π是一个先验分布,朗之万方法递归地计算以下内容
x
~
t
=
x
~
t
−
1
+
ϵ
2
∇
x
log
p
(
x
~
t
−
1
)
+
ϵ
z
t
\tilde{\mathbf{x}}_t=\tilde{\mathbf{x}}_{t-1}+\frac{\epsilon}{2} \nabla_{\mathbf{x}} \log p\left(\tilde{\mathbf{x}}_{t-1}\right)+\sqrt{\epsilon} \mathbf{z}_t
x~t=x~t−1+2ϵ∇xlogp(x~t−1)+ϵzt
其中
z
t
∼
N
(
0
,
I
)
\mathbf{z}_t \sim \mathcal{N}(0, I)
zt∼N(0,I). 当
ϵ
→
0
\epsilon \rightarrow 0
ϵ→0 ,
T
→
∞
T \rightarrow \infty
T→∞,
x
~
T
\tilde{\mathbf{x}}_T
x~T分布等于
p
(
x
)
p(\mathbf{x})
p(x) ,此时在特定条件下[62],
x
~
T
\tilde{\mathbf{x}}_T
x~T 成为直接从
p
(
x
)
p(\mathbf{x})
p(x)采样。
- 当 ϵ > 0 \epsilon>0 ϵ>0, T < ∞ T<\infty T<∞, 需要Metropolis-Hastings 更新修正上式误差。实际中,误差可忽略[9, 12, 39].
- 本文假设
ϵ
\epsilon
ϵ 足够小,
T
T
T 足够大时误差可忽略.
请注意,从上式中进行的采样只需要分数函数 ∇ x l o g p ( x ) ∇_xlogp(x) ∇xlogp(x)。 - 为了从 p d a t a ( x ) p_{data} (x) pdata(x)中获得样本,我们可以首先训练我们的评分网络,使 s θ ( x ) ≈ ∇ x l o g p d a t a ( x ) sθ(x)≈∇_xlogp_{data}(x) sθ(x)≈∇xlogpdata(x),
- 然后使用 s θ ( x ) s_θ(x) sθ(x)近似获得朗之万动态样本。
这是我们的基于分数的生成建模框架的关键思想。
3. 基于分数的生成式建模所面临的挑战
在本节中,我们将更仔细地分析基于分数的生成建模的概念。我们认为,有两个主要的障碍阻止了这个想法的应用。
3.1. 流形假说
流形假设指出,现实世界中的数据倾向于集中于嵌入在高维空间(即环境空间)中的低维流形。
这一假设的经验适用于许多数据集,并已成为流形学习[3,47]的基础。在流形假设下,基于分数的生成模型将面临两个关键的困难。
- 首先,由于分数 ∇ x l o g p d a t a ( x ) ∇_xlogp_{data}(x) ∇xlogpdata(x)是在环境空间(ambient space)中取的一个梯度,当 x x x被限制在一个低维流形时,它是未定义的。
- 第二,得分匹配目标等式(1)只有当数据分布的支持集是整个空间时(参见[24]中的定理2),才能提供一致的分数估计器,当数据分布在低维流形上时,就会不一致。
图1,我们训练一个ResNet(详见附录B.1)来估计CIFAR-10上的数据得分,可以清楚地看到流形假设对得分估计的负面影响。
- 为了快速训练和忠实地估计数据分数,我们使用切片分数匹配目标( E q . ( 3 ) Eq.(3) Eq.(3)). 如图1(左)所示,在原始CIFAR-10图像上进行训练时,切片分数匹配损失首先减小,然后不规则地波动。
- 如果我们用一个小的高斯噪声扰动数据(这样扰动数据分布完全支持集 R D \mathbb R^D RD),损失曲线将收敛(右面板)。请注意,我们所施加的高斯噪声 N ( 0 , 0.0001 ) N(0,0.0001) N(0,0.0001)对于像素值在 [ 0 , 1 ] [0,1] [0,1]范围内的图像非常小,并且对人眼几乎无法区分。
3.2. 低数据密度区域
低密度区域数据的缺乏会导致分数匹配的分数估计和朗之万动力学的MCMC抽样造成困难。
3.2.1 与分数匹配的分数估计不准确
在数据密度较低的地区,由于缺乏数据样本,评分匹配可能没有足够的证据来准确估计评分函数。
得分匹配可以使得分估计的预期平方误差最小化,即,
1
2
E
p
data
[
∥
s
θ
(
x
)
−
∇
x
log
p
data
(
x
)
∥
2
2
]
\frac{1}{2} \mathbb{E}_{p_{\text {data }}}\left[\left\|\mathbf{s}_{\boldsymbol{\theta}}(\mathbf{x})-\nabla_{\mathbf{x}} \log p_{\text {data }}(\mathbf{x})\right\|_2^2\right]
21Epdata [∥sθ(x)−∇xlogpdata (x)∥22]
在实践中,关于数据分布的期望值总是使用i.i.d.样本进行估计
{
x
i
}
i
=
1
N
∼
i.i.d.
p
data
(
x
)
.
\left\{\mathbf{x}_i\right\}_{i=1}^N \stackrel{\text { i.i.d. }}{\sim} p_{\text {data }}(\mathbf{x}) .
{xi}i=1N∼ i.i.d. pdata (x).
考虑任何区域
R
⊂
R
D
\mathcal{R} \subset \mathbb{R}^D
R⊂RD使得
p
data
(
R
)
≈
0
p_{\text {data }}(\mathcal{R}) \approx 0
pdata (R)≈0,在多数情况下
{
x
i
}
i
=
1
N
∩
R
=
∅
\left\{\mathbf{x}_i\right\}_{i=1}^N \cap \mathcal{R}=\varnothing
{xi}i=1N∩R=∅,而对于
x
∈
R
x\in R
x∈R,分数匹配将没有足够的数据样本来准确估计的
∇
x
l
o
g
p
d
a
t
a
(
x
)
∇_xlogp_{data}(x)
∇xlogpdata(x)。
为了证明这一点的负面影响,我们在图2中提供了一个玩具实验的结果(详见附录B.1),其中我们使用切片分数匹配来估计混合高斯分布 p data = 1 5 N ( ( − 5 , − 5 ) , I ) + 4 5 N ( ( 5 , 5 ) , I ) p_{\text {data }}=\frac{1}{5} \mathcal{N}((-5,-5), I)+\frac{4}{5} \mathcal{N}((5,5), I) pdata =51N((−5,−5),I)+54N((5,5),I)的分数
左图
∇
x
log
p
data
(
x
)
;
\nabla_{\mathbf{x}} \log p_{\text {data }}(\mathbf{x}) ;
∇xlogpdata (x); 右图
s
θ
(
x
)
\mathbf{s}_{\boldsymbol{\theta}}(\mathbf{x})
sθ(x). 得分是对数密度函数在输入数据点的梯度,这是一个指向对数数据密度增长最大的方向的向量场。数据密度
p
d
a
t
a
(
x
)
p_{data} (x)
pdata(x)使用橙色的颜色图进行编码:颜色越深意味着密度越高。红色矩形突出显示区域
∇
x
log
p
d
a
t
a
(
x
)
≈
s
θ
(
x
)
\nabla_{\mathbf{x}} \log p_{\mathrm{data}}(\mathbf{x}) \approx \mathbf{s}_{\boldsymbol{\theta}}(\mathbf{x})
∇xlogpdata(x)≈sθ(x). 如图所示,得分估计仅在数据密度较高的
p
d
a
t
a
p_{data}
pdata模式附近才会可靠。
3.2.2. 朗之万动力学的缓慢混合
- 考虑混合分布 p data ( x ) = π p 1 ( x ) + ( 1 − π ) p 2 ( x ) p_{\text {data }}(\mathbf{x})=\pi p_1(\mathbf{x})+(1-\pi) p_2(\mathbf{x}) pdata (x)=πp1(x)+(1−π)p2(x), 其中 p 1 ( x ) p_1(\mathbf{x}) p1(x), p 2 ( x ) p_2(\mathbf{x}) p2(x) 是有互不相交支持集的正态分布, π ∈ ( 0 , 1 ) \pi \in(0,1) π∈(0,1).
- 在 p 1 ( x ) p_1(\mathbf{x}) p1(x)的支持集, ∇ x log p data ( x ) = \nabla_{\mathbf{x}} \log p_{\text {data }}(\mathbf{x})= ∇xlogpdata (x)= ∇ x ( log π + log p 1 ( x ) ) = ∇ x log p 1 ( x ) \nabla_{\mathbf{x}}\left(\log \pi+\log p_1(\mathbf{x})\right)=\nabla_{\mathbf{x}} \log p_1(\mathbf{x}) ∇x(logπ+logp1(x))=∇xlogp1(x),
- 在 p 2 ( x ) p_2(\mathbf{x}) p2(x)的支持集, ∇ x log p data ( x ) = ∇ x ( log ( 1 − \nabla_{\mathbf{x}} \log p_{\text {data }}(\mathbf{x})=\nabla_{\mathbf{x}}(\log (1- ∇xlogpdata (x)=∇x(log(1− π ) + log p 2 ( x ) ) = ∇ x log p 2 ( x ) \left.\pi)+\log p_2(\mathbf{x})\right)=\nabla_{\mathbf{x}} \log p_2(\mathbf{x}) π)+logp2(x))=∇xlogp2(x).
在任意情形, ∇ x log p data ( x ) \nabla_{\mathbf{x}} \log p_{\text {data }}(\mathbf{x}) ∇xlogpdata (x) 不依赖于 π \pi π. 因为Langevin动力学用 ∇ x log p data ( x ) \nabla_{\mathbf{x}} \log p_{\text {data }}(\mathbf{x}) ∇xlogpdata (x)从 p data ( x ) p_{\text {data }}(\mathbf{x}) pdata (x)采样, 样本的采取不依赖于 π \pi π。
- 在实践中,当不同的模式具有近似不相交的支持时,这种分析也适用——它们可能共享相同的支持,但由小数据密度的区域连接。在这种情况下,朗之万动力学在理论上可以产生正确的样本,但可能需要一个非常小的步长和非常大量的步骤来混合。
为了验证这一分析结果,我们对第3.2.1节中使用的相同高斯分布混合物的朗之万动态采样进行了测试,并提供了图3中的结果。
- 当使用朗之万动力学进行抽样时,我们使用地面真实分数。
- 将图3(b)与(a)进行比较,可以明显看出,朗之万动力学样本在两种模式之间的相对密度不正确,正如我们分析预测的那样。
图3:来自不同方法的高斯分布的混合样本。(a)精确抽样。(b)抽样使用朗之万动力学与精确的分数。( c)采样使用退火朗之万动力学与精确的分数。显然,朗之万动力学错误地估计了两种模态之间的相对权重,而退火后的朗之万动力学则忠实地恢复了相对权重。
4. 噪声条件评分网络:学习和推理
我们观察到,使用随机高斯噪声扰动数据会使数据分布更适合于基于分数的生成建模。
- 首先,由于我们的高斯噪声分布的支持是整个空间,扰动数据将不局限于一个低维流形,这消除了流形假设的困难,并使分数估计定义良好。
- 其次,大高斯噪声在原始无扰动数据分布中有填充低密度区域的效果;因此,分数匹配可以得到更多的训练信号来提高分数估计。
- 此外,通过使用多个噪声水平,我们可以得到一系列收敛于真实数据分布的噪声扰动分布。本着模拟退火[30]和退火重要性采样[37]的精神,我们可以通过利用这些中间分布来提高朗之万动力学在多模态分布上的混合速率。
基于这种直觉,我们建议改进基于分数的生成建模,
- 1)使用不同水平的噪声扰动数据;
- 2)通过训练单个条件分数网络,同时估计所有噪声水平对应的分数。
- 训练后,当使用朗之万动力学生成样本时,我们首先使用大噪声对应的分数,并逐渐降低噪声水平进行退火。这有助于平滑地将大噪声水平的好处转移到低噪声水平,其中扰动数据与原始数据几乎难以区分。
在接下来的内容中,我们将详细阐述我们的方法的细节,包括我们的分数网络的架构、训练目标和朗之万动力学的退火时间表。
4.1. 噪声条件评分网络
- 令 { σ i } i = 1 L \left\{\sigma_i\right\}_{i=1}^L {σi}i=1L 是正的几何序列满足 σ 1 σ 2 = ⋯ = σ L − 1 σ L > 1 \frac{\sigma_1}{\sigma_2}=\cdots=\frac{\sigma_{L-1}}{\sigma_L}>1 σ2σ1=⋯=σLσL−1>1.
- 令 q σ ( x ) ≜ q_\sigma(\mathbf{x}) \triangleq qσ(x)≜ ∫ p data ( t ) N ( x ∣ t , σ 2 I ) d t \int p_{\text {data }}(\mathbf{t}) \mathcal{N}\left(\mathbf{x} \mid \mathbf{t}, \sigma^2 I\right) \mathrm{d} \mathbf{t} ∫pdata (t)N(x∣t,σ2I)dt 表示扰动的数据分布.
- 选择噪声水平 { σ i } i = 1 L \left\{\sigma_i\right\}_{i=1}^L {σi}i=1L使得 σ 1 \sigma_1 σ1足够大从而消除Section 3中的困难 , σ L \sigma_L σL足够小来最小化数据的影响.
我们的目标是训练一个条件分数网络来联合估计所有扰动数据分布的分数, i.e., ∀ σ ∈ { σ i } i = 1 L : s θ ( x , σ ) ≈ ∇ x log q σ ( x ) \forall \sigma \in\left\{\sigma_i\right\}_{i=1}^L: \mathbf{s}_{\boldsymbol{\theta}}(\mathbf{x}, \sigma) \approx \nabla_{\mathbf{x}} \log q_\sigma(\mathbf{x}) ∀σ∈{σi}i=1L:sθ(x,σ)≈∇xlogqσ(x). 当 x ∈ R D \mathbf{x} \in \mathbb{R}^D x∈RD, s θ ( x , σ ) ∈ R D \mathbf{s}_{\boldsymbol{\theta}}(\mathbf{x}, \sigma) \in \mathbb{R}^D sθ(x,σ)∈RD . 称 s θ ( x , σ ) \mathbf{s}_{\boldsymbol{\theta}}(\mathbf{x}, \sigma) sθ(x,σ) 噪声条件评分网络 ( NCSN).
与基于似然的生成模型和GANs类似,模型架构的设计在生成高质量的样本方面起着重要的作用。
在这项工作中,我们主要关注对图像生成有用的体系结构,并将体系结构设计留给其他领域作为未来的工作。由于我们的噪声条件评分网络 s θ ( x , σ ) s_θ(x,σ) sθ(x,σ)的输出与输入的图像 x x x具有相同的形状,我们从成功的图像密集预测模型架构(如语义分割)中获得灵感。
- 在实验中,我们的模型 s θ ( x , σ ) s_θ(x,σ) sθ(x,σ)结合了U-Net [46]的架构设计与扩张/无张力卷积——这两种方法在语义分割中都被证明是非常成功的。
- 此外,我们在分数网络中采用实例归一化,灵感来自于它在一些图像生成任务中的优越性能
4.2. 通过分数匹配来学习NCSNs
切片和去噪分数匹配都可以训练NCSNs。我们采用去噪分数匹配,因为它稍微快一点,并且自然地适合于估计噪声扰动数据分布的分数的任务。然而,我们强调,经验切片分数匹配可以和去噪分数匹配一样训练NCSNs。
选择噪声分布
q
σ
(
x
~
∣
x
)
=
N
(
x
~
∣
x
,
σ
2
I
)
q_\sigma(\tilde{\mathbf{x}} \mid \mathbf{x})=\mathcal{N}\left(\tilde{\mathbf{x}} \mid \mathbf{x}, \sigma^2 I\right)
qσ(x~∣x)=N(x~∣x,σ2I),则
∇
x
~
log
q
σ
(
x
~
∣
x
)
=
−
(
x
~
−
x
)
/
σ
2
\nabla_{\tilde{\mathbf{x}}} \log q_\sigma(\tilde{\mathbf{x}} \mid \mathbf{x})=-(\tilde{\mathbf{x}}-\mathbf{x}) / \sigma^2
∇x~logqσ(x~∣x)=−(x~−x)/σ2。对于一个给定的
σ
σ
σ,去噪分数匹配目标(Eq(2))是
ℓ
(
θ
;
σ
)
≜
1
2
E
p
data
(
x
)
E
x
~
∼
N
(
x
,
σ
2
I
)
[
∥
s
θ
(
x
~
,
σ
)
+
x
~
−
x
σ
2
∥
2
2
]
\ell(\boldsymbol{\theta} ; \sigma) \triangleq \frac{1}{2} \mathbb{E}_{p_{\text {data }}(\mathbf{x})} \mathbb{E}_{\tilde{\mathbf{x}} \sim \mathcal{N}\left(\mathbf{x}, \sigma^2 I\right)}\left[\left\|\mathbf{s}_{\boldsymbol{\theta}}(\tilde{\mathbf{x}}, \sigma)+\frac{\tilde{\mathbf{x}}-\mathbf{x}}{\sigma^2}\right\|_2^2\right]
ℓ(θ;σ)≜21Epdata (x)Ex~∼N(x,σ2I)[
sθ(x~,σ)+σ2x~−x
22]
然后,我们结合上式为所有的
σ
∈
{
σ
i
}
i
=
1
L
\sigma \in\left\{\sigma_i\right\}_{i=1}^L
σ∈{σi}i=1L得到一个统一的目标
L
(
θ
;
{
σ
i
}
i
=
1
L
)
≜
1
L
∑
i
=
1
L
λ
(
σ
i
)
ℓ
(
θ
;
σ
i
)
,
\mathcal{L}\left(\boldsymbol{\theta} ;\left\{\sigma_i\right\}_{i=1}^L\right) \triangleq \frac{1}{L} \sum_{i=1}^L \lambda\left(\sigma_i\right) \ell\left(\boldsymbol{\theta} ; \sigma_i\right),
L(θ;{σi}i=1L)≜L1i=1∑Lλ(σi)ℓ(θ;σi),
其中
λ
(
σ
i
)
>
0
\lambda\left(\sigma_i\right)>0
λ(σi)>0是取决于
σ
i
\sigma_i
σi系数函数。
- 假设 s θ ( x , σ ) \mathbf{s}_{\boldsymbol{\theta}}(\mathbf{x}, \sigma) sθ(x,σ)有足够能力,因为“上式”是 L L L个去噪分数匹配目标的圆锥形组合,则对所有 i ∈ { 1 , 2 , ⋯ , L } i \in\{1,2, \cdots, L\} i∈{1,2,⋯,L}, s θ ∗ ( x , σ ) \mathbf{s}_{\boldsymbol{\theta}^*}(\mathbf{x}, \sigma) sθ∗(x,σ) 最小化 L ( θ ; { σ i } i = 1 L ) \mathcal{L}\left(\boldsymbol{\theta} ;\left\{\sigma_i\right\}_{i=1}^L\right) L(θ;{σi}i=1L)等价于 s θ ∗ ( x , σ i ) = ∇ x log q σ i ( x ) \mathbf{s}_{\boldsymbol{\theta}^*}\left(\mathbf{x}, \sigma_i\right)=\nabla_{\mathbf{x}} \log q_{\sigma_i}(\mathbf{x}) sθ∗(x,σi)=∇xlogqσi(x) a.s.
-
λ
(
⋅
)
λ(·)
λ(⋅)可能有很多可能的选择。理想情况下,我们希望所有
{
σ
i
}
i
=
1
L
\left\{\sigma_i\right\}_{i=1}^L
{σi}i=1L的
λ
(
σ
i
)
ℓ
(
θ
;
σ
i
)
\lambda\left(\sigma_i\right) \ell\left(\boldsymbol{\theta} ; \sigma_i\right)
λ(σi)ℓ(θ;σi)的值是大致具有相同的数量级。根据经验,我们观察到,当分数网络被训练到最优性时,我们大约有
∥
s
θ
(
x
,
σ
)
∥
2
∝
1
/
σ
\left\|\mathbf{s}_{\boldsymbol{\theta}}(\mathbf{x}, \sigma)\right\|_2 \propto 1 / \sigma
∥sθ(x,σ)∥2∝1/σ,这激励着我们去选择
λ
(
σ
)
=
σ
2
\lambda(\sigma)=\sigma^2
λ(σ)=σ2,因为
λ ( σ ) ℓ ( θ ; σ ) = σ 2 ℓ ( θ ; σ ) = 1 2 E [ ∥ σ s θ ( x ~ , σ ) + x ~ − x σ ∥ 2 2 ] \lambda(\sigma) \ell(\boldsymbol{\theta} ; \sigma)=\sigma^2 \ell(\boldsymbol{\theta} ; \sigma)=\frac{1}{2} \mathbb{E}\left[\left\|\sigma \mathbf{s}_{\boldsymbol{\theta}}(\tilde{\mathbf{x}}, \sigma)+\frac{\tilde{\mathbf{x}}-\mathbf{x}}{\sigma}\right\|_2^2\right] λ(σ)ℓ(θ;σ)=σ2ℓ(θ;σ)=21E[ σsθ(x~,σ)+σx~−x 22]
因为 x ~ − x σ ∼ N ( 0 , I ) \frac{\tilde{\mathbf{x}}-\mathbf{x}}{\sigma} \sim \mathcal{N}(0, I) σx~−x∼N(0,I), ∥ σ s θ ( x , σ ) ∥ 2 ∝ 1 \left\|\sigma \mathbf{s}_{\boldsymbol{\theta}}(\mathbf{x}, \sigma)\right\|_2 \propto 1 ∥σsθ(x,σ)∥2∝1,我们可以很容易地得出 λ ( σ ) ℓ ( θ ; σ ) \lambda(\sigma) \ell(\boldsymbol{\theta} ; \sigma) λ(σ)ℓ(θ;σ)的数量级并不取决于 σ \sigma σ。
我们强调,我们的目标不需要对抗性训练,不需要替代损失,在训练期间不需要从分数网络中抽样(例如,不像对比差异)。此外,它也不需要
s
θ
(
x
,
σ
)
s_θ(x,σ)
sθ(x,σ)有特殊的架构才能易于处理。此外,当
λ
(
⋅
)
λ(·)
λ(⋅)和
{
σ
i
}
i
=
1
L
\{σ_i\}^L_{i=1}
{σi}i=1L固定时,它可以用于定量比较不同的NCSNs。
4.3. 通过退火的朗之万动力学进行NCSN推断
在训练了NCSN s θ ( x , σ ) s_θ(x,σ) sθ(x,σ)后,我们提出了一种采样方法-退火朗之万动力学(Alg.1)-产生样本,启发来自模拟退火和退火重要采样
- 如Alg1中所示,我们通过从一些固定的先验分布中(例如,均匀噪声)初始化样本开始退火的朗之万动力学。
- 然后,我们运行朗之万动力学,从步长为 α 1 α_1 α1的 q σ 1 ( x ) q_{σ_1} (x) qσ1(x)中进行采样。
- 接下来,我们运行朗之万动力学从 q σ 2 ( x ) q_{σ_2} (x) qσ2(x)中样本,从之前模拟的最终样本开始,并使用减少的步长 α 2 α_2 α2。
- 我们继续以这种方式,使用 q σ i − 1 ( x ) q_{σ_{i−1}}(x) qσi−1(x)的朗之万动力学的动态样本作为 q σ i ( x ) q_{σ_i} (x) qσi(x)的朗之万动力学的初始样本,并逐步调整步长 α i α_i αi为 α i = ϵ ⋅ σ i 2 / σ L 2 \alpha_i=\epsilon \cdot \sigma_i^2 / \sigma_L^2 αi=ϵ⋅σi2/σL2。
- 最后,我们运行朗之万动力学从 q σ L ( x ) q_{σ_L} (x) qσL(x)中采样,当 σ L ≈ 0 σ_L≈0 σL≈0时,它接近于 p d a t a ( x ) p_{data} (x) pdata(x)。
算法克服了以上挑战
- 由于分布 { q σ i } i = 1 L \{q_{σ_i}\} ^L_{ i=1} {qσi}i=1L都受到高斯噪声的扰动,它们的支持集跨越了整个空间,它们的分数定义明确,避免了流形假设的困难。
- 当 σ 1 σ_1 σ1足够大时, q σ 1 ( x ) q_{σ_1} (x) qσ1(x)的低密度区域变得很小,模态变得不那么孤立。如前所述,这可以使分数估计更准确,并加快朗之万动力学的混合速度。分析:我们可以假设朗之万动力学为 q σ 1 ( x ) q_{σ_1} (x) qσ1(x)产生了良好的样本。这些样品很可能来自 q σ 1 ( x ) q_{σ_1} (x) qσ1(x)的高密度区域,这意味着它们也可能位于 q σ 2 ( x ) q_{σ_2} (x) qσ2(x)的高密度区域,因为 q σ 1 ( x ) q_{σ_1} (x) qσ1(x)和 q σ 2 ( x ) q_{σ_2} (x) qσ2(x)彼此之间仅略有不同。由于评分估计和朗之万动力学在高密度区域表现更好,来自 q σ 1 ( x ) q_{σ_1} (x) qσ1(x)的样本将作为 q σ 2 ( x ) q_{σ_2} (x) qσ2(x)朗之万动力学的良好初始样本。同样, q σ i − 1 ( x ) q_{σ_{i−1}}(x) qσi−1(x)为 q σ i ( x ) q_{σ_{i}}(x) qσi(x)提供了良好的初始样本,最后我们从 q σ L ( x ) q_{σ_{L}}(x) qσL(x)中获得了高质量良好的样本。
根据 σ i \sigma_i σi, α i \alpha_i αi有多个选择. 我们的选择是 α i ∝ σ i 2 \alpha_i \propto \sigma_i^2 αi∝σi2.
动机是固定朗之万动力学"signal-to-noise" 比例 α i s θ ( x , σ i ) 2 α i z \frac{\alpha_i \mathbf{s}_\theta\left(\mathbf{x}, \sigma_i\right)}{2 \sqrt{\alpha_i} \mathbf{z}} 2αizαisθ(x,σi) 的量级.
- E [ ∥ α i s θ ( x , σ i ) 2 α i z ∥ 2 2 ] ≈ E [ α i ∥ s θ ( x , σ i ) ∥ 2 2 4 ] ∝ 1 4 E [ ∥ σ i s θ ( x , σ i ) ∥ 2 2 ] \mathbb{E}\left[\left\|\frac{\alpha_i \mathbf{s}_\theta\left(\mathbf{x}, \sigma_i\right)}{2 \sqrt{\alpha_i} \mathbf{z}}\right\|_2^2\right] \approx \mathbb{E}\left[\frac{\alpha_i\left\|\mathbf{s}_{\boldsymbol{\theta}}\left(\mathbf{x}, \sigma_i\right)\right\|_2^2}{4}\right] \propto \frac{1}{4} \mathbb{E}\left[\left\|\sigma_i \mathbf{s}_{\boldsymbol{\theta}}\left(\mathbf{x}, \sigma_i\right)\right\|_2^2\right] E[ 2αizαisθ(x,σi) 22]≈E[4αi∥sθ(x,σi)∥22]∝41E[∥σisθ(x,σi)∥22].
- 由于经验可得当分数网络的训练接近最优时, ∥ s θ ( x , σ ) ∥ 2 ∝ 1 / σ \left\|\mathbf{s}_{\boldsymbol{\theta}}(\mathbf{x}, \sigma)\right\|_2 \propto 1 / \sigma ∥sθ(x,σ)∥2∝1/σ,此时 E [ ∥ σ i s θ ( x ; σ i ) ∥ 2 2 ] ∝ 1 \mathbb{E}\left[\left\|\sigma_i \mathbf{s}_{\boldsymbol{\theta}}\left(\mathbf{x} ; \sigma_i\right)\right\|_2^2\right] \propto 1 E[∥σisθ(x;σi)∥22]∝1. 因此 ∥ α i s θ ( x , σ i ) 2 α i z ∥ 2 ∝ 1 4 E [ ∥ σ i s θ ( x , σ i ) ∥ 2 2 ] ∝ 1 4 \left\|\frac{\alpha_i \mathbf{s}_{\boldsymbol{\theta}}\left(\mathbf{x}, \sigma_i\right)}{2 \sqrt{\alpha_i} \mathbf{z}}\right\|_2 \propto \frac{1}{4} \mathbb{E}\left[\left\|\sigma_i \mathbf{s}_{\boldsymbol{\theta}}\left(\mathbf{x}, \sigma_i\right)\right\|_2^2\right] \propto \frac{1}{4} 2αizαisθ(x,σi) 2∝41E[∥σisθ(x,σi)∥22]∝41 不取决于 σ i \sigma_i σi.
为了证明我们退火朗之万动力学的有效性,我们提供了一个玩具例子,其中目标是仅使用分数从两种良好分离模式的高斯混合物中采样。
我们应用Alg1.以从第3.2节中使用的高斯分布的混合物中取样。在实验中,我们选择 { σ i } i = 1 L \{σ_i\}^L_{i=1} {σi}i=1L为几何级数,其中 L = 10 L = 10 L=10, σ 1 = 10 σ_1 = 10 σ1=10和 σ 10 = 0.1 σ_{10} = 0.1 σ10=0.1。实验结果见图3。对比图3 (b)与(c ),退火后的朗之万动力学正确地恢复了两种模式之间的相对权重,而标准的朗之万动力学则失效。