论文链接:Improved Techniques for Training Score-Based Generative Models
文章目录
- 摘要
- 引言
- 背景
- 郎之万动力学
- 基于分数的生成模型
- 选择噪声尺度
- 初始的噪声尺度
- 其它噪声等级
- 结合噪音信息
- 配置退火朗之万动力学
- EMA改善稳定性
- 组合所有技巧
- 定量结果
- 消融研究
- 更高分辨率
- 结论
- 更广泛的影响
摘要
基于分数的生成模型可以生成与GANs相当的高质量图像样本,而不需要对抗性优化。然而,现有的训练过程仅限于低分辨率的图像(通常低于32 × 32),并且在某些设置下可能不稳定。本文提供了一种新的理论分析,从高维空间中基于分数的模型中学习和采样,解释现有的失败模式,并激励跨数据集推广的新解决方案。为了增强稳定性,本文建议保持模型权重的指数移动平均。通过这些改进,可以将基于分数的生成模型扩展到各种图像数据集,分辨率从64 × 64到256 × 256不等。本文基于分数的模型可以在各种图像数据集上生成与同类最佳GANs相媲美的高保真样本,包括CelebA、FFHQ和几个LSUN类别。
引言
基于分数的生成模型通过分数表征概率分布——一个指向数据可能性增长最快的方向的向量场。值得注意的是,这些分数函数可以从数据中学习,而不需要对抗性优化,并且可以生成在CIFAR-10等简单数据集上与GAN相媲美的真实图像样本。
尽管取得了成功,但由于几个限制因素,现有的基于分数的生成模型仅适用于低分辨率图像(32 × 32)。首先,通过去噪分数匹配学习得分函数。直观地说,这意味着一个神经网络(称为分数网络)被训练来去噪被高斯噪声模糊的图像。“基于分数的生成模型论文”中的一个关键见解是使用多个噪声尺度扰动数据,以便分数网络捕获粗粒度和细粒度的图像特征。然而,如何选择这些噪声尺度是一个悬而未决的问题。“基于分数的生成模型论文”中的推荐设置适用于32 × 32的图像,但当分辨率变高时表现不佳。其次,运行Langevin动力学生成样本。该方法从白噪声开始,使用分数网络逐步将其降噪成图像。然而,当用于高维和一个必然不完善的(学习的)分数网络时,这个过程可能会失败或需要非常长的时间才能收敛。
本文提出了一套将基于分数的生成模型扩展到高分辨率图像的技术。基于对简化混合模型的新的理论分析,提供了一种从训练数据分析计算有效高斯噪声尺度集的方法。此外,提出了一种有效的体系结构,用单个神经网络在大(可能是无限)个噪声尺度上摊销分数估计任务。基于对底层朗之万动力学采样过程收敛特性的简化分析,还导出了一种技术,以近似优化其性能作为噪声尺度的函数。将这些技术与模型参数的指数移动平均(EMA)相结合,能够显著提高样本质量,并成功地将分辨率从64 × 64缩放到256 × 256的图像,这在以前对于基于分数的生成模型来说是不可能的。如图1所示,样本清晰多样。
背景
郎之万动力学
对于任意连续可微的概率密度
p
(
x
)
p(x)
p(x),称
∇
x
log
p
(
x
)
∇_x \log p(x)
∇xlogp(x)为其分数函数。在许多情况下,分数函数比原始概率密度函数更容易建模和估计。例如,对于非标准化密度,它不依赖于分区函数。一旦得分函数已知,就可以利用朗之万动力学从相应的分布中进行采样。给定步长
α
>
0
α > 0
α>0,迭代总次数
T
T
T,以及来自任何先验分布
π
(
x
)
π(x)
π(x)的初始样本
x
0
x_0
x0,朗之万动力学迭代地计算以下内容:
x
t
←
x
t
−
1
+
α
∇
x
log
p
(
x
t
−
1
)
+
2
α
z
t
,
1
≤
t
≤
T
(1)
x_t \leftarrow x_{t-1}+\alpha\nabla_x \log p(x_{t-1})+\sqrt{2\alpha}z_t,\quad 1\leq t \leq T\tag{1}
xt←xt−1+α∇xlogp(xt−1)+2αzt,1≤t≤T(1)
其中
z
t
∼
N
(
0
,
1
)
z_t \sim N(0,1)
zt∼N(0,1)。当
α
\alpha
α足够小,
T
T
T足够大时,在一定的规律性条件下,
x
T
x_T
xT的分布将接近
p
(
x
)
p(x)
p(x)。假设有一个用
θ
θ
θ参数化的神经网络
s
θ
(
x
)
s_θ(x)
sθ(x)(称为分数网络),并且它已经被训练成:
s
θ
(
x
)
≈
∇
x
log
p
(
x
)
s_θ(x)≈∇_x \log p(x)
sθ(x)≈∇xlogp(x)。可以通过将公式1中的
∇
x
log
p
(
x
t
−
1
)
∇_x \log p(x_{t−1})
∇xlogp(xt−1)替换为
s
θ
(
x
t
−
1
)
s_θ(x_{t−1})
sθ(xt−1)来近似从
p
(
x
)
p(x)
p(x)生成样本。注意,公式1可以解释为对数密度
log
p
(
x
)
\log p(x)
logp(x)上的噪声梯度上升。
基于分数的生成模型
可以从数据中估计得分函数,并使用朗之万动力学生成新的样,。这个想法被命名为基于分数的生成建模。由于在没有训练数据的区域估计得分函数不准确,因此当采样轨迹遇到这些区域时,朗之万动力学可能无法正确收敛。作为补救措施,“基于分数的生成模型论文”提出用不同强度的高斯噪声扰动数据,联合估计所有噪声扰动数据分布的得分函数。在推理过程中,通过从每个噪声扰动分布顺序采样和朗之万动力学来组合来自所有噪声尺度的信息。
更具体地说,假设有一个潜在的数据分布
p
d
a
t
a
(
x
)
p_{data}(x)
pdata(x),并考虑满足
σ
1
>
σ
2
>
⋅
⋅
⋅
>
σ
L
\sigma_1>\sigma_2>\cdot\cdot\cdot>\sigma_L
σ1>σ2>⋅⋅⋅>σL的一系列噪声尺度
{
σ
i
}
i
=
1
L
\lbraceσ_i\rbrace^L_{ i=1}
{σi}i=1L。设
p
σ
(
x
~
∣
x
)
=
N
(
x
~
∣
x
,
σ
2
I
)
p_{\sigma}(\tilde{x}|x)=N(\tilde{x}|x,\sigma^2I)
pσ(x~∣x)=N(x~∣x,σ2I),并将相应的扰动数据分布表示为
p
σ
(
x
~
)
≜
∫
p
σ
(
x
~
∣
x
)
p
d
a
t
a
(
x
)
d
x
p_{\sigma}(\tilde{x}) \triangleq \int p_{\sigma}(\tilde{x}|x)p_{data}(x)dx
pσ(x~)≜∫pσ(x~∣x)pdata(x)dx。“基于分数的生成模型论文”提出通过训练具有以下损失的联合神经网络
s
θ
(
x
,
σ
)
s_θ(x,σ)
sθ(x,σ)(称为噪声条件分数网络)来估计每个
p
σ
i
(
x
)
p_{σ_i} (x)
pσi(x)的得分函数:
1
2
L
∑
i
=
1
L
E
p
d
a
t
a
(
x
)
E
p
σ
i
(
x
~
∣
x
)
[
∣
∣
σ
i
s
θ
(
x
~
,
σ
i
)
+
x
~
−
x
σ
i
∣
∣
2
2
]
,
(2)
\frac{1}{2L}\sum^L_{i=1}E_{p_{data}(x)}E_{p_{\sigma_i(\tilde{x}|x)}}[||\sigma_is_{\theta}(\tilde{x},\sigma_i)+\frac{\tilde{x}−x}{\sigma_i}||^2_2], \tag{2}
2L1i=1∑LEpdata(x)Epσi(x~∣x)[∣∣σisθ(x~,σi)+σix~−x∣∣22],(2)
其中可以使用经验平均值有效地估计所有期望。假设有足够的数据和模型容量,当训练到最优时(记为
s
θ
∗
(
x
,
σ
)
s_{θ^*}(x, σ)
sθ∗(x,σ)),噪声条件分数网络(NCSN)几乎在任何地方都满足
∀
i
:
s
θ
∗
(
x
,
σ
i
)
=
∇
x
log
p
σ
i
(
x
)
∀i:s_{θ^*}(x, σ_i) = ∇_x \log p_{σ_i}(x)
∀i:sθ∗(x,σi)=∇xlogpσi(x)。
训练NCSN后,通过退火朗之万动力学生成样本,这是一种结合所有噪声尺度信息的方法。在算法1中提供了伪代码,该方法相当于在第 i i i步噪声尺度的特殊步长调度方案 α i = ϵ σ i 2 / σ L 2 \alpha_i=\epsilon\,\sigma_i^2/\sigma_L^2 αi=ϵσi2/σL2下,使用朗之万动力学依次从 p σ 1 ( x ) 、 p σ 2 ( x ) , ⋅ ⋅ ⋅ , p σ L ( x ) p_{σ_1}(x)、p_{σ_2}(x),···,p_{σ_L}(x) pσ1(x)、pσ2(x),⋅⋅⋅,pσL(x)中采样。来自每个噪声尺度的样本用于初始化下一个噪声尺度的朗之万动力学,直到达到最小的一个,在那里它为NCSN提供最终的样本。
在NCSN第一次公开发布之后,Adversarial score matching and improved sampling for image generation注意到,在“基于分数的生成模型论文”中原始退火朗之万动力学之后增加一个额外的去噪步骤,通常可以显著提高FID分数,而不影响样本的视觉外观。这个去噪步骤不是直接返回
x
T
x_T
xT,而是返回
x
T
+
σ
T
2
s
θ
(
x
T
,
σ
T
)
x_T + σ^2_Ts_θ(x_T,σ_T)
xT+σT2sθ(xT,σT)(参见算法1),它本质上是使用Tweedie公式从
x
T
x_T
xT中去除不需要的噪声
N
(
0
,
σ
T
2
I
)
N(0,σ^2_TI)
N(0,σT2I)。因此,本文在论文主体中对结果进行了更新,加入了这一去噪技巧,但在附录中保留了一些没有这一去噪步骤的原始结果,以供参考。
有许多设计选择对NCSNs的成功训练和推理至关重要,包括:(i)噪声尺度 { σ i } i = 1 L \lbrace σ_i \rbrace^L_{i=1} {σi}i=1L的集合,(ii) s θ ( x , σ ) s_θ(x,σ) sθ(x,σ)合并 σ σ σ信息的方式,(iii)步长参数 ε ε ε和(iv)算法1中每个噪声尺度 T T T的采样步数。下文提供了理论上激励的方法来配置它们,而不需要手动调优,这将显著提高NCSNs在高分辨率图像上的性能。
选择噪声尺度
噪声尺度是NCSNs成功的关键。用单一噪声训练的分数网络永远无法对大图像产生令人信服的样本。直观地看,高噪声有利于分数函数的估计,但也会导致样本的损坏;而较低的噪声可以提供干净的样本,但使分数函数更难估计。因此,应该把不同的噪音尺度结合起来,以达到两全其美的效果。
当像素值范围为[0,1]时,NCSN上的原始工作建议选择 { σ i } i = 1 L } \brace σ_i \rbrace^L_{i=1} {σi}i=1L}作为几何序列,其中 L = 10 , σ 1 = 1 , σ L = 0.01 L = 10, σ_1 =1, σ_L = 0.01 L=10,σ1=1,σL=0.01。最小噪声尺度 σ L = 0.01 ≪ 1 σL = 0.01 \ll 1 σL=0.01≪1是合理的,因为从噪声尺度下降的扰动分布中采样,希望在最后添加低噪声。然而,一些重要的问题仍然没有得到解答,这些问题对NCSNs在高分辨率图像上的成功至关重要:(1) σ 1 = 1 σ_1 = 1 σ1=1合适吗?如果不是,应该如何调整不同数据集的 σ 1 σ_1 σ1?;(ii)几何级数是一个好的选择吗?;(iii) L = 10是否适用于不同的数据集?如果不是,多少个噪声尺度是理想的?
下面从简单数学模型的理论分析出发,对上述问题进行解答。本文分析对于在实践中配置基于分数的生成建模是有效的,如后续实验结果所证实的那样。
初始的噪声尺度
退火朗之万动力学算法(算法1)是在大噪声条件下生成变化丰富的粗样本,收敛到小噪声条件下变化少的细样本的迭代细化过程。初始噪声尺度 σ 1 σ_1 σ1在很大程度上控制了最终样本的多样性。为了提高样本的多样性,可以选择 σ 1 σ_1 σ1尽可能大。然而,过大的 σ 1 σ_1 σ1将需要更多的噪声尺度,并使退火朗之万动力学计算更加昂贵。下面将给出一个分析来指导 σ 1 σ_1 σ1的选择,并提供一种技术来达到正确的平衡。
真实世界的数据分布很复杂,很难分析,所以用经验分布来近似它们。假设有一个数据集 { x ( 1 ) , x ( 2 ) , ⋅ ⋅ ⋅ , x ( N ) } \lbrace x^{(1)}, x^{(2)},···,x^{(N)} \rbrace {x(1),x(2),⋅⋅⋅,x(N)},是从 p d a t a ( x ) p_{data}(x) pdata(x)中采样的独立同分布数据。假设 N N N足够大,有 p d a t a ( x ) ≈ p ^ d a t a ( x ) ≜ 1 N ∑ i = 1 N δ ( x = x ( i ) ) p_{data}(x) \approx \hat{p}_{data}(x) \triangleq \frac{1}{N}\sum^N_{i=1}\delta(x=x^{(i)}) pdata(x)≈p^data(x)≜N1∑i=1Nδ(x=x(i)),其中 δ ( ⋅ ) \delta(\cdot) δ(⋅)表示一个点质量分布。当使用 N ( 0 , σ 1 2 I ) N(0,\sigma_1^2I) N(0,σ12I)扰动时,经验分布变成 p ^ σ 1 ( x ) ≜ 1 N ∑ i = 1 N p ( i ) ( x ) \hat{p}_{\sigma_1}(x) \triangleq \frac{1}{N}\sum^N_{i=1}p^{(i)}(x) p^σ1(x)≜N1∑i=1Np(i)(x),其中 p ( i ) ( x ) ≜ N ( x ∣ x ( i ) , σ 1 2 I ) p^{(i)}(x) \triangleq N(x|x^{(i)},\sigma^2_1I) p(i)(x)≜N(x∣x(i),σ12I)。为了在不考虑初始化的情况下生成不同的样本,自然期望朗之万动力学可以在从任何其他分量 p ( j ) ( x ) p^{(j)}(x) p(j)(x)初始化时探索任何分量 p ( i ) ( x ) p^{(i)}(x) p(i)(x),其中 i ≠ j i \neq j i=j。朗之万动力学的性能由分数函数 ∇ x log p σ 1 ( x ) ∇_x \log p_{σ_1}(x) ∇xlogpσ1(x)(见式(1))所决定。
命题1:设
p
^
σ
1
(
x
)
≜
1
N
∑
i
=
1
N
p
(
i
)
(
x
)
\hat{p}_{\sigma_1}(x) \triangleq \frac{1}{N}\sum^N_{i=1}p^{(i)}(x)
p^σ1(x)≜N1∑i=1Np(i)(x),其中
p
(
i
)
(
x
)
≜
N
(
x
∣
x
(
i
)
,
σ
1
2
I
)
p^{(i)}(x) \triangleq N(x|x^{(i)},\sigma^2_1I)
p(i)(x)≜N(x∣x(i),σ12I)。当
r
(
i
)
(
x
)
≜
p
(
i
)
(
x
)
∑
k
=
1
N
p
(
k
)
(
x
)
r^{(i)}(x) \triangleq \frac{p^{(i)}(x)}{\sum^N_{k=1}p^{(k)}(x)}
r(i)(x)≜∑k=1Np(k)(x)p(i)(x),分数函数
∇
x
log
p
^
σ
1
(
x
)
=
∑
i
=
1
N
r
(
i
)
(
x
)
∇
x
log
p
(
i
)
(
x
)
\nabla_x \log \hat{p}_{\sigma_1}(x)=\sum^N_{i=1}r^{(i)}(x) \nabla_x \log p^{(i)}(x)
∇xlogp^σ1(x)=∑i=1Nr(i)(x)∇xlogp(i)(x)。此外,
E
p
(
i
)
(
x
)
[
r
(
i
)
(
x
)
]
≤
1
2
exp
(
−
∣
∣
x
(
i
)
−
x
(
j
)
∣
∣
2
2
8
σ
1
2
)
.
(3)
E_{p^{(i)}(x)}[r^{(i)}(x)] \leq \frac{1}{2} \exp(-\frac{||x^{(i)}-x^{(j)}||^2_2}{8\sigma^2_1}).\tag{3}
Ep(i)(x)[r(i)(x)]≤21exp(−8σ12∣∣x(i)−x(j)∣∣22).(3)
为了让朗之万动力学在 i ≠ j i \neq j i=j的情况下容易地从 p ( i ) ( x ) p_{(i)}(x) p(i)(x)过渡到 p ( j ) ( x ) p_{(j)}(x) p(j)(x), E p ( i ) ( x ) [ r ( j ) ( x ) ] E_{p^{(i)}(x)}[r^{(j)}(x)] Ep(i)(x)[r(j)(x)]必须相对较大,否则在初始化 x ∼ p ( i ) ( x ) x \sim p^{(i)}(x) x∼p(i)(x)时, ∇ x log p ^ σ 1 ( x ) = ∑ k = 1 N r ( k ) ( x ) ∇ x log p ( k ) ( x ) ∇_x \log \hat{p}_{σ_1}(x) = ∑^N_{k=1} r^{(k)}(x) ∇_x \log p^{(k)}(x) ∇xlogp^σ1(x)=∑k=1Nr(k)(x)∇xlogp(k)(x)将忽略 p ( j ) ( x ) p^{(j)}(x) p(j)(x)(平均)分量,在这种情况下朗之万动力学将表现得好像 p ( j ) ( x ) p^{(j)}(x) p(j)(x)不存在一样。公式3的边界指出如果与 ∣ ∣ x ( i ) − x ( j ) ∣ ∣ 2 ||x^{(i)}−x^{(j)}||_2 ∣∣x(i)−x(j)∣∣2相比, σ 1 σ_1 σ1较小,则 E p ( i ) ( x ) [ r ( j ) ( x ) ] E_{p^{(i)}(x)}[r^{(j)}(x)] Ep(i)(x)[r(j)(x)]会以指数快速衰减。因此, σ 1 σ_1 σ1有必要在数值上与数据的最大成对距离相比较,以促进朗之万动力学的转换,从而提高样本多样性。本文建议:
技巧1:(初始噪声尺度)。选择 σ 1 σ_1 σ1与所有训练数据对之间的最大欧几里得距离一样大。
以CIFAR-10为例,所有训练图像之间成对距离的中值约为18,因此“基于分数的生成模型论文”中的
σ
1
=
1
σ_1=1
σ1=1意味着
E
[
r
(
x
)
]
<
1
0
−
17
E[r(x)] < 10^{−17}
E[r(x)]<10−17,并且根据本文分析不太可能生成多样化的样本。为了测试根据技巧1选择
σ
1
σ_1
σ1(即
σ
1
=
50
σ_1 = 50
σ1=50)是否比使用
σ
1
=
1
σ_1=1
σ1=1提供更多样化的样本,运行退火朗之万动力学从具有10000个分量的高斯混合分布中采样,其中每个分量都集中在一个CIFAR-10 测试图像上。所有初始样本都是从
[
0
,
1
]
32
×
32
×
3
[0,1]^{32×32×3}
[0,1]32×32×3上的均匀分布中抽取的。这个设置允许避免由NCSN训练引入的混杂因素,因为训练使用了ground truth的分数函数。如图2所示,图2c(使用技术1)中的样本表现出与ground truth图像(图2a)相当的多样性,并且比图2b(
σ
1
=
1
σ_1=1
σ1=1)的多样性更好。在数量上,图2c中样本的平均配对距离为18.65,与数据(17.78)相当,但远高于图2b(10.12)。
其它噪声等级
在设置 σ L \sigma_L σL和 σ 1 \sigma_1 σ1后,需要选择噪声尺度的数量 L L L,并指定 { σ i } i = 1 L \lbrace \sigma_i \rbrace^L_{i=1} {σi}i=1L。对于基于分数的生成模型的成功来说,确保 p σ i ( x ) p_{σ_i}(x) pσi(x)在 p σ i − 1 ( x ) p_{σ_{i−1}}(x) pσi−1(x)的高密度区域中所有 1 < i ≤ L 1 < i ≤ L 1<i≤L生成足够数量的训练数据至关重要。直观地说,当用来自 p σ i − 1 ( x ) p_{σ_{i−1}}(x) pσi−1(x)的样本初始化朗之万动力学时,需要可靠的 p σ i ( x ) p_{σ_i}(x) pσi(x)梯度信号。
然而,在 { σ i } i = 1 L \lbrace \sigma_i \rbrace^L_{i=1} {σi}i=1L上进行广泛的网格搜索可能会非常昂贵。为了给寻找好的噪声尺度提供一些理论指导,考虑一个简单的情况,即数据集只包含一个数据点,或等价地, ∀ 1 ≤ i ≤ L : p σ i ( x ) = N ( x ∣ 0 , σ 2 I ) ∀1≤i≤L: p_{σ_i}(x) = N (x|0,σ^2I) ∀1≤i≤L:pσi(x)=N(x∣0,σ2I)。第一步是更好地理解 p σ i ( x ) p_{σ_i}(x) pσi(x)的分布,特别是当 x x x具有高维时。可以将超球坐标下的 σ i ( x ) σ_i(x) σi(x)分解为 p ( ϕ ) p σ i ( r ) p(\phi)p_{σ_i}(r) p(ϕ)pσi(r),其中 r , ϕ r, \phi r,ϕ分别表示 x x x的径向坐标和角坐标。因为 σ i ( x ) σ_i(x) σi(x)是一个各向同性的高斯分布,所以角分量 p ( ϕ ) p(\phi) p(ϕ)在所有噪声尺度上是均匀的和共享的。对于 p σ i ( r ) p_{σ_i}(r) pσi(r),有如下公式:
命题2:设
x
∈
R
D
∼
N
(
0
,
σ
2
I
)
,
r
=
∣
∣
x
∣
∣
2
x \in R^D\sim N(0, \sigma^2I),\quad r = ||x||_2
x∈RD∼N(0,σ2I),r=∣∣x∣∣2,有
p
(
r
)
=
1
2
D
/
2
−
1
Γ
(
D
/
2
)
r
D
−
1
σ
D
exp
(
−
r
2
2
σ
2
)
,
r
−
D
σ
→
d
N
(
0
,
σ
2
/
2
)
,
w
h
e
n
D
→
∞
.
p(r)=\frac{1}{2^{D/2-1}\Gamma(D/2)}\frac{r^{D-1}}{\sigma^D} \exp(-\frac{r^2}{2\sigma^2}),\quad r-\sqrt{D}\sigma \overset{d}{\to} N(0, \sigma^2/2) , \quad when \, D \to \infty.
p(r)=2D/2−1Γ(D/2)1σDrD−1exp(−2σ2r2),r−Dσ→dN(0,σ2/2),whenD→∞.
在实践中,图像数据的维数可以从几千到几百万不等,并且通常大到足以保证 p ( r ) ≈ N ( r ∣ D σ , σ 2 / 2 ) p(r) ≈ N(r|\sqrt{D}σ, σ^2/2) p(r)≈N(r∣Dσ,σ2/2)的误差可以忽略不计。因此取 p σ i ( r ) = N ( r ∣ m i , s i 2 ) p_{\sigma_i}(r)=N(r|m_i,s^2_i) pσi(r)=N(r∣mi,si2)来简化分析,其中 m i ≜ D σ , s i 2 ≜ σ 2 / 2 m_i \triangleq \sqrt{D}\sigma, \, s^2_i \triangleq \sigma^2/2 mi≜Dσ,si2≜σ2/2。
回想一下,目标是确保来自 p σ i ( x ) p_{σ_i}(x) pσi(x)的样本将覆盖 p σ i − 1 ( x ) p_{σ_{i-1}}(x) pσi−1(x)的高密度区域。因为 p ( ϕ ) p(\phi) p(ϕ)在所有噪声尺度上是共享的,所以 p σ i ( x ) p_{σ_i}(x) pσi(x)已经覆盖了 p σ i − 1 ( x ) p_{σ_{i-1}}(x) pσi−1(x)的角分量。因此,需要 p σ i ( x ) p_{σ_i}(x) pσi(x)和 p σ i − 1 ( x ) p_{σ_{i-1}}(x) pσi−1(x)的径向分量有很大的重叠。由于 p σ i − 1 ( r ) p_{σ_{i-1}}(r) pσi−1(r)在 I i − 1 ≜ [ m i − 1 − 3 s i − 1 , m i − 1 + 3 s i − 1 ] \rm{I}_{i-1} \triangleq [m_{i-1}-3s_{i-1}, m_{i-1}+3s_{i-1}] Ii−1≜[mi−1−3si−1,mi−1+3si−1]有高密度(“三西格玛经验法则”),一种自然的选择是固定 p σ i ( r ∈ I i − 1 ) = Φ ( 2 D ( γ i − 1 ) + 3 γ i ) − Φ ( 2 D ( γ i − 1 ) − 3 γ i ) = C p_{σ_i}(r∈\rm{I}_{i−1})= Φ(\sqrt{2D}(\gamma_i−1)+ 3γ_i)−Φ(\sqrt{2D}(γ_i−1)−3γ_i) = C pσi(r∈Ii−1)=Φ(2D(γi−1)+3γi)−Φ(2D(γi−1)−3γi)=C,对于所有 1 < i ≤ L 1 < i≤L 1<i≤L都有一个中等大常数 C > 0 C > 0 C>0,其中 γ i ≜ σ i − 1 / σ i γ_i \triangleq σ_{i−1}/{σ_i} γi≜σi−1/σi和 Φ ( ⋅ ) Φ(·) Φ(⋅)是标准高斯函数的CDF。这个选择立即意味着 γ 2 = γ 3 = ⋅ ⋅ γ L γ_2 = γ_3 =··γ_L γ2=γ3=⋅⋅γL,因此 { σ i } i = 1 L \lbrace \sigma_i \rbrace^L_{i=1} {σi}i=1L是一个几何级数序列。
理想情况下,应该选择尽可能多的噪声尺度,使 C ≈ 1 C≈1 C≈1。然而,有太多的噪声尺度将使采样成本非常高,因为需要对每个噪声尺度依次运行朗之万动力学。另一方面,“基于分数的生成模型论文”原始设置中的 L = 10 L = 10 L=10(对于32 × 32张图像)可能太小, C = 0 C = 0 C=0达到数值精度。为了达到平衡,本文建议 C ≈ 0.5 C≈0.5 C≈0.5,此在本文的实验中表现良好。总之,
技巧2:(其它噪声尺度)。选取 { σ i } i = 1 L \lbrace \sigma_i \rbrace^L_{i=1} {σi}i=1L为公比是 γ γ γ的几何级数序列(等比序列),使 Φ ( 2 D ( γ − 1 ) + 3 γ ) − Φ ( 2 D ( γ − 1 ) − 3 γ ) ≈ 0.5 Φ(\sqrt{2D}(\gamma−1)+ 3γ)−Φ(\sqrt{2D}(γ−1)−3γ)≈0.5 Φ(2D(γ−1)+3γ)−Φ(2D(γ−1)−3γ)≈0.5。
结合噪音信息
对于高分辨率图像,需要一个大的 σ 1 σ_1 σ1和大量的噪声尺度,如技巧1和2。回想一下,NCSN是一个单一的平摊网络,它采用噪声尺度并给出相应的分数。在“基于分数的生成模型论文”中,作者在归一化层中使用一组单独的标度和偏置参数去合并来自每个噪声标度的信息。然而,它的内存消耗是随着 L L L线性增长的,当NCSN没有归一化层时,它就不适用了。
本文提出了一个更容易实现和更广泛适用的有效替代方案。对于前文分析的 p σ ( x ) = N ( x ∣ 0 , σ 2 I ) p_σ(x) = N (x|0,σ^2I) pσ(x)=N(x∣0,σ2I),观察到 E [ ∣ ∣ ∇ x log p σ ( x ) ∣ ∣ 2 ] ≈ D / σ E[||∇_x \log p_σ(x)||_2] ≈ \sqrt{D}/σ E[∣∣∇xlogpσ(x)∣∣2]≈D/σ。此外,正如“基于分数的生成模型论文”中经验指出的,对于在真实数据上训练的NCSN有 ∣ ∣ s θ ( x , σ ) ∣ ∣ 2 ∝ 1 / σ ||s_θ(x,σ)||_2 ∝ 1/σ ∣∣sθ(x,σ)∣∣2∝1/σ。由于分数函数的范数与 σ σ σ成反比缩放,可以通过将无条件分数网络 s θ ( x ) s_θ(x) sθ(x)的输出缩放为 1 / σ 1/σ 1/σ来合并噪声信息。这促使出以下建议:
技巧3:(噪声条件)。用 s θ ( x , σ ) = s θ ( x ) / σ s_θ(x,σ) = s_θ(x)/σ sθ(x,σ)=sθ(x)/σ参数化NCSN,其中 s θ ( x ) s_θ(x) sθ(x)是一个无条件分数网络。
深度网络通常很难自动学习这种缩放,因为
σ
1
σ_1
σ1和
σ
L
σ_L
σL可能相差好几个数量级。这种简单的选择更容易实现,并且可以轻松处理大量的噪声尺度(甚至是连续的)。如图3所示(具体设置见附录B),与“基于分数的生成模型论文”中的原始噪声调理方法相比,它获得了相似的训练损失,生成的样本质量更好(见附录C.4)。
配置退火朗之万动力学
为了从具有退火朗之万动力学的NCSN中采样,需要在算法1中指定每个噪声尺度下的采样步数 T T T和步长参数 ϵ \epsilon ϵ。“基于分数的生成模型论文”的作者建议 ϵ = 2 × 1 0 − 5 , T = 100 \epsilon = 2 × 10^{−5},\,T = 100 ϵ=2×10−5,T=100。对于不同的噪声尺度,应该如何改变 ϵ \epsilon ϵ和 T T T仍然不清楚。
为了获得一些理论见解,回顾前文中的设置,其中数据集有一个点(即, p σ i ( x ) = N ( x ∣ 0 , σ i 2 ) p_{σ_i}(x) = N(x|0,σ^2_i) pσi(x)=N(x∣0,σi2))。退火的朗之万动力学通过用从 p σ i − 1 ( x ) p_{σ_{i-1}}(x) pσi−1(x)获得的样本初始化 p σ i ( x ) p_{σ_i}(x) pσi(x)的朗之万动力学,将两个相邻的噪声尺度 σ i − 1 > σ i σ_{i−1} > σ_i σi−1>σi连接起来。当将朗之万动力学应用于 p σ i ( x ) p_{σ_i}(x) pσi(x)时,有 x t + 1 ← x t + α ∇ x log p σ i ( x t ) + 2 α z t x_{t+1} ← x_t + α∇_x \log p_{σ_i}(x_t) + \sqrt{2α}z_t xt+1←xt+α∇xlogpσi(xt)+2αzt,其中 x 0 ∼ p σ i − 1 ( x ) x_0 ∼ p_{σ_{i−1}}(x) x0∼pσi−1(x)和 z t ∼ N ( 0 , I ) z_t ∼ N(0,I) zt∼N(0,I)。 x T x_T xT的分布可以以封闭形式计算:
命题3:设
γ
=
σ
i
−
1
σ
i
\gamma=\frac{\sigma_{i-1}}{\sigma_i}
γ=σiσi−1。对于算法1中的
α
=
ϵ
⋅
σ
i
2
σ
L
2
\alpha = \epsilon \cdot \frac{\sigma^2_i}{\sigma^2_L}
α=ϵ⋅σL2σi2,有
x
T
∼
N
(
0
,
s
T
2
I
)
x_T \sim N(0, s^2_TI)
xT∼N(0,sT2I),其中
s
T
2
σ
i
2
=
(
1
−
ϵ
σ
L
2
)
2
T
(
γ
2
−
2
ϵ
σ
L
2
−
σ
L
2
(
1
−
ϵ
σ
L
2
)
2
)
+
2
ϵ
σ
L
2
−
σ
L
2
(
1
−
ϵ
σ
L
2
)
2
.
(4)
\frac{s^2_T}{\sigma^2_i}=(1-\frac{\epsilon}{\sigma^2_L})^{2T}(\gamma^2-\frac{2\epsilon}{\sigma^2_L-\sigma^2_L(1-\frac{\epsilon}{\sigma_L^2})^2})+\frac{2\epsilon}{\sigma^2_L-\sigma^2_L(1-\frac{\epsilon}{\sigma_L^2})^2}.\tag{4}
σi2sT2=(1−σL2ϵ)2T(γ2−σL2−σL2(1−σL2ϵ)22ϵ)+σL2−σL2(1−σL2ϵ)22ϵ.(4)
当 { σ i } i = 1 L \lbrace σ_i \rbrace^L_{i=1} {σi}i=1L是技巧2所倡导的等比级数时,立即看到 s T 2 / σ i 2 s^2_T/σ^2_i sT2/σi2在所有 1 < i ≤ T 1 <i ≤ T 1<i≤T中是相同的,因为共享 γ γ γ。此外, s T 2 / σ i 2 s^2_T/σ^2_i sT2/σi2的值与维度 D D D没有明显的相关性。为了更好地混合退火后的朗之万动力学,希望 s T 2 / σ i 2 s^2_T/σ^2_i sT2/σi2在所有噪声尺度上都接近1,这可以通过寻找 ϵ \epsilon ϵ和 T T T使公式4和1之间的差最小化来实现。不幸的是,这通常会导致不必要的大 T T T,使得大 L L L的采样非常昂贵。作为一种替代方案,建议首先根据合理的计算预算(通常 T × L T × L T×L是几千)选择 T T T,然后通过使公式4尽可能接近1来寻找 ϵ \epsilon ϵ。总而言之:
技巧4:(选择 ϵ \epsilon ϵ和 T T T)。选择计算预算允许的最大 T T T,然后选择使公式4尽可能接近1的 ϵ \epsilon ϵ。
本文遵循这个指导来生成本文中的所有样本,除了那些来自原始NCSN的样本,其中采用与“基于分数的生成模型论文”中相同的设置。当使用技巧4和公式4进行查找时,建议执行网格搜索 ϵ \epsilon ϵ,而不是使用基于梯度的优化方法。
EMA改善稳定性
与GANs不同,基于分数的生成模型有一个统一的目标(公式2),不需要对抗性训练。然而,尽管NCSNs的损失函数通常在训练过程中稳步下降,但观察到生成的图像样本有时表现出不稳定的视觉质量,特别是对于较大分辨率的图像。通过在CIFAR-10 32 × 32和CelebA 64 × 64数据集上按照“基于分数的生成模型论文”的设置训练NCSNs经验地证明这一事实,也表明了其他图像数据集上的典型行为。本文公布了在1000个样本上计算的每进行5000次迭代的FID分数。图4中的结果是经过去噪步骤计算得到的,但是没有去噪步骤的结果是相似的(见附录C.1中的图8)。如图4和图8所示,在训练过程中,原始NCSN的FID分数经常出现显著波动。此外,来自原始NCSN的样本有时会表现出特征伪影:来自同一检查点的图像样本具有强烈的同一公共颜色漂移的趋势。此外,在整个训练过程中,样本会转向不同的颜色。在附录C.3中提供了更多的示例来说明这个情况。
这个问题可以很容易地通过==指数移动平均(EMA)==固定。具体来说,设 θ i θ_i θi表示第 i i i次训练迭代后NCSN的参数, θ ′ θ^′ θ′是参数的独立副本。在每个优化步骤之后,用 θ ′ ← m θ ′ + ( 1 − m ) θ i \theta^{'} \leftarrow m\theta^{'}+(1-m)\theta_i θ′←mθ′+(1−m)θi更新 θ ′ \theta^{'} θ′,其中 m m m是动量参数,通常 m = 0.999 m=0.999 m=0.999。在生成样本时,使用 s θ ′ ( x , σ ) s_{θ^{'}}(x,σ) sθ′(x,σ)而不是 s θ i ( x , σ ) s_{θ_i}(x,σ) sθi(x,σ)。如图 4 所示,EMA可以有效地稳定FID,去除伪影(附录 C.3 中的更多样本),并在大多数情况下提供更好的FID分数。根据经验,观察到EMA的有效性在大量不同的图像数据集中很常见。因此,建议以下经验法则:
技巧5:(EMA)。训练时进行EMA,模型使用EMA后的参数进行采样。
组合所有技巧
采用技巧1-5,构建了可以在大量不同数据集上轻松工作的NCNS,包括以前基于分数的生成建模无法实现的高分辨率图像。本文的修正模型被命名为NCSNv2。关于实验细节和更多结果的完整描述,请参见附录B和C。
定量结果
考虑CIFAR-10 32×32和CelebA 64×64,其中NCSN和NCSNv2都产生了合理的样本。在1000个样本上每5000次训练中计算FID(越低越好),并给出图5(去噪)和图9(不去噪,延迟至附录C.1)中的结果。如图5和图9所示,观察到NCSNv2(应用了所有技术)的FID分数平均而言优于NCSN,并且在训练过程中的方差要小得多。在“基于分数的生成模型论文”之后,本文选择在训练期间遇到的FID最小的检查点(在1000个样本上),并在其中的更多样本上计算完整的FID和Inception分数。从表1的结果可以看出,NCSNv2 (不去噪/去噪)能够显著提高NCSN在CIFAR-10和CelebA上的FID分数,而在CIFAR-10上略微降低Inception分数。然而,注意到Inception和FID分数存在已知问题,应谨慎解释,因为它们可能与预期的视觉质量不相关。特别是,它们可以对轻微的噪声扰动敏感,如表1中去噪和不去噪的得分差异所示。为了验证NCSNv2生成的图像确实比NCSN更好,在附录C.4中提供了额外的非精选样本进行视觉比较。
消融研究
进行消融研究,以隔离不同技术的贡献。将所有技术分为三组:(i)技巧5,(ii)技巧1、2、4和(iii)技巧3,不同的组可以同时应用。技巧1、2和4被分组在一起,因为技巧1和2共同决定了噪声尺度的集合,并且从使用这些噪声尺度训练的NCSNs中采样,需要技巧4来正确配置退火朗之万动力学。测试了从NCSNv2中依次去除组(iii), (ii), (i)的性能,并在图5中报告了去噪采样的结果,在图9(附录C.1)中报告了不去噪采样的结果。所有的技巧组都比普通NCSN有所改进。尽管在逐步去除(iii)、(ii)和(i)时,FID分数并没有严格地增加,但注意到FID可能并不总是与样本质量很好地相关。事实上,通过目测,确实观察到了样品质量的下降(见附录C.4),并结合所有技术得到了最好的样品。
更高分辨率
原始的NCSN只能成功地生成低分辨率的图像。事实上,“基于分数的生成模型论文”只在MNIST 28 × 28和CelebA/CIFAR-10 32 × 32上进行了测试。对于略大的图像,如CelebA 64 × 64, NCSN可以生成全局结构一致的图像,但具有较强的颜色伪影,很容易被注意到(见图4,并将图10a与图10b进行比较)。对于分辨率超过96 × 96的图像,NCSN将完全无法生成结构或颜色正确的样本(如图7所示)。这里所示的所有样本都是在没有去噪步骤的情况下生成的,但由于 σ L σ_L σL非常小,在视觉上与去噪步骤的样本难以区分。
通过结合技巧1-5,NCSNv2可以处理更高分辨率的图像。请注意,本文直接计算了训练NCSNs的噪声尺度,并计算了退火朗之万动力学采样的步长,而无需手动超参数调优。网络架构在数据集之间是相同的,除了对于分辨率更高的数据集,本文使用更多的层和更多的过滤器来确保接受域和模型容量足够大(详见附录B.1)。在图6和图1中,展示了NCSNv2能够生成分辨率从96 × 96到256 × 256的高保真图像样本。为了表明这种高样本质量不是数据集记忆的结果,提供了用于训练/测试的损失曲线,以及附录C.5中样本的最近邻居。此外,NCSNv2可以在两个给定样本之间产生平滑的插值,如图6所示(详见附录B.2),表明了学习可泛化图像表示的能力。
结论
在理论分析和实证观察的激励下,本文提出了一套改进基于分数的生成模型的技术。提出的技术显著改善了训练和采样过程,导致更好的样本质量,并能够以高分辨率生成高保真图像。尽管提出的技术不需要手动调优就能很好地工作,但相信通过微调各种超参数可以进一步提高性能。未来的研究方向包括对基于分数的生成模型样本质量的理论理解,以及高斯扰动的替代噪声分布。
更广泛的影响
本文工作代表了向更强大的生成模型又迈进了一步。虽然关注的是图像,但类似的技术很可能也适用于其他数据形式,如语音或行为数据(在模仿学习的背景下)。与之前提出的其他生成模型(如GANs和WaveNets)一样,分数模型也有很多应用。在许多其他应用中,它们可以用于自动合成新数据,检测异常和对抗的例子,还可以提高半监督学习和强化学习等关键任务的结果。反过来,这些技术可以对社会产生积极和消极的影响,这取决于应用。特别是,在图像数据集上训练的模型可以用来合成人类难以与真实图像区分的新图像。来自生成模型的合成图像已经被用于恶意欺骗人类。这些技术也有积极的用途,例如在艺术和作为辅助工程设计的工具。还注意到,本文的模型是在有偏见的数据集上训练的(例如,CelebA不是性别平衡的),除了由所谓的模型归纳偏见引起的其他分布之外,学习的分布很可能继承了它们。