前言
书接上回
https://blog.csdn.net/crazyjinks/article/details/140646409
3.3 Diffusion-based generation
第一段
3.3 Diffusion-based generation
第一段
翻译:
作为一种新的深度生成模型,扩散模型最近在许多领域取得了巨大成功,包括图像合成(image synthesis)、视频生成(video generation)、语音生成(speech generation)、生物信息学(bioinformatics)和自然语言处理(natural language processing),这得益于它们强大的生成能力[88]–[92]。扩散模型的关键设计包含两个逆过程:向数据注入随机噪声以扰乱数据(corrupt data)的前向过程,以及从噪声分布(通常为正态分布(normal distribution))生成样本的反向过程。直观上,如果前向过程是在任意两个相邻状态之间使用转移核(transition kernel)逐步完成的,那么反向过程可以遵循反向状态转移操作从噪声(前向过程的最终状态)生成样本。然而,通常很难制定反向转移核(reverse transition kernel),因此扩散模型学习通过深度神经网络来近似该核。如今,扩散模型主要有三种基本公式:去噪扩散概率模型(denoising diffusion probabilistic models, DDPMs)[88],[93]、得分匹配扩散模型(score matching diffusion models)[94],[95]和得分随机微分方程(score SDEs)[96],[97]。
理解:
作者在这段话中主要介绍了扩散模型(新模型)在多个领域取得的成功,并概述了扩散模型的关键设计,包括前向过程(向数据注入随机噪声以扰乱数据)和反向过程(从噪声分布生成样本)。作者还提到了当前扩散模型的三种主要方法:去噪扩散概率模型(DDPMs)、得分匹配扩散模型(score matching diffusion models)和得分随机微分方程(score SDEs)。后面作者将介绍这三类
第二段
翻译:
对于去噪扩散概率模型(DDPMs),前向过程和反向过程是两个马尔可夫链(Markov chains):一个前向链向数据添加随机噪声,另一个反向链将噪声转换回数据。形式上,将数据分布表示为x0 ~ q(x0),前向马尔可夫过程根据转移核(transition kernel)q(xt|xt-1)逐渐向数据添加高斯噪声。它生成一系列随机变量x1, x2, …, xT。因此,给定x0时,x1, x2, …, xT的联合分布为
q
(
x
1
,
x
2
,
…
,
x
T
∣
x
0
)
=
∏
t
=
1
T
q
(
x
t
∣
x
t
−
1
)
.
(11)
q(\mathbf{x}_1, \mathbf{x}_2, \ldots, \mathbf{x}_T | \mathbf{x}_0) = \prod_{t=1}^T q(\mathbf{x}_t | \mathbf{x}_{t-1}). \tag{11}
q(x1,x2,…,xT∣x0)=t=1∏Tq(xt∣xt−1).(11)
为了简化计算,转移核通常设置为
q
(
x
t
∣
x
t
−
1
)
=
N
(
x
t
;
1
−
β
t
x
t
−
1
,
β
t
I
)
,
(12)
q(\mathbf{x}_t | \mathbf{x}_{t-1}) = \mathcal{N}(\mathbf{x}_t; \sqrt{1 - \beta_t}\mathbf{x}_{t-1}, \beta_t\mathbf{I}), \tag{12}
q(xt∣xt−1)=N(xt;1−βtxt−1,βtI),(12)
其中β1, β2, …, β**T是前向过程的方差计划(variance schedule)(通常在模型训练之前选择β**t ∈ (0, 1)),并且p(xT) = N(xT; 0, I)。类似地,反向过程的联合分布为
p
θ
(
x
0
,
x
1
,
…
,
x
T
)
=
p
(
x
T
)
∏
t
=
1
T
p
θ
(
x
t
−
1
∣
x
t
)
,
(13)
p_\theta(\mathbf{x}_0, \mathbf{x}_1, \ldots, \mathbf{x}_T) = p(\mathbf{x}_T) \prod_{t=1}^T p_\theta(\mathbf{x}_{t-1} | \mathbf{x}_t), \tag{13}
pθ(x0,x1,…,xT)=p(xT)t=1∏Tpθ(xt−1∣xt),(13)
其中θ是模型参数,p**θ(xt-1|xt) = N(xt-1; µ**θ(xt, t), Σ**θ(xt, t))。实现样本生成成功的关键是训练参数θ以匹配实际的反向过程,即最小化两个联合分布之间的Kullback-Leibler散度(Kullback-Leibler divergence)。因此,根据Jensen不等式,训练损失为
K
L
(
q
(
x
1
,
x
2
,
…
,
x
T
)
∣
∣
p
θ
(
x
0
,
x
1
,
…
,
x
T
)
)
≥
E
[
−
log
p
θ
(
x
0
)
]
+
const
.
(14)
\mathbf{KL}(q(\mathbf{x}_1, \mathbf{x}_2, \ldots, \mathbf{x}_T) || p_\theta(\mathbf{x}_0, \mathbf{x}_1, \ldots, \mathbf{x}_T)) \ge \mathbb{E}[-\log p_\theta(\mathbf{x}_0)] + \text{const}. \tag{14}
KL(q(x1,x2,…,xT)∣∣pθ(x0,x1,…,xT))≥E[−logpθ(x0)]+const.(14)
理解:
作者这里主要讨论了去噪扩散概率模型(DDPMs)中的前向过程和反向过程,去噪扩散概率模型(DDPMs)通过前向过程逐步向数据添加高斯噪声,然后在反向过程中将噪声转换回原始数据。模型训练的目标是最小化实际反向过程和估计反向过程之间的Kullback-Leibler (KL)散度,这直接依赖于选择合适的损失函数。在时序任务中,损失函数是连接模型训练和时序数据特性的桥梁,合适的损失函数可以帮助模型学习时序数据的长期依赖性,处理不同时间尺度上的模式和规律,对噪声和变化具有鲁棒性,并生成连贯、平滑的时序输出。因此,选择和设计适当的损失函数对于优化模型性能和生成质量至关重要,我们学习时也要特别注意这些各种方法中对损失函数的设计。
公式(12)描述了去噪扩散概率模型(DDPMs)中的转移核,即从时间步 t − 1 t-1 t−1的状态 x t − 1 \mathbf{x}_{t-1} xt−1转移到时间步 t t t的状态 x ∗ t \mathbf{x}*t x∗t的条件概率分布。这个条件概率分布被建模为一个多元高斯分布 N ( x t ; 1 − β t x t − 1 , β t I ) \mathcal{N}(\mathbf{x}_t; \sqrt{1 - \beta_t}\mathbf{x}_{t-1}, \beta_t\mathbf{I}) N(xt;1−βtxt−1,βtI),其中均值为 1 − β t x t − 1 \sqrt{1 - \beta_t}\mathbf{x}_{t-1} 1−βtxt−1,协方差矩阵为 β t I \beta_t\mathbf{I} βtI。
均值 1 − β t x t − 1 \sqrt{1 - \beta_t}\mathbf{x}_{t-1} 1−βtxt−1表示时间步 t t t的状态 x t \mathbf{x}_t xt是由前一时间步的状态 x t − 1 \mathbf{x}_{t-1} xt−1乘以一个标量因子 1 − β t \sqrt{1 - \beta_t} 1−βt得到的,这个因子控制了状态之间的相关性。协方差矩阵 β t I \beta_t\mathbf{I} βtI是一个对角矩阵,对角线上的元素都等于 β t \beta_t βt,表示各维度之间是独立的,并且具有相同的方差 β t \beta_t βt。
这简化了转移核的计算,因为对角协方差矩阵的逆和行列式都很容易计算;其次,通过调整标量因子 1 − β t \sqrt{1 - \beta_t} 1−βt和方差 β t \beta_t βt,可以灵活地控制状态之间的相关性和不确定性;最后,这种参数化形式在高维空间中具有良好的数值稳定性,因为协方差矩阵的对角线结构避免了求逆时的病态问题(ill-conditioned or badly conditioned problem)。
第三段
翻译:
对于基于分数的扩散模型,关键思想是用一系列高斯噪声扰动数据,然后通过训练一个以噪声水平为条件的深度神经网络,联合估计所有噪声数据分布的分数函数。这个想法的动机是,在许多情况下,建模和估计分数函数比原始概率密度函数更容易。郎之万动力学(Langevin Dynamics)是一种合适的技术。对于步长
α
>
0
\alpha > 0
α>0,迭代次数
T
T
T,以及初始样本
x
0
\mathbf{x}_0
x0,Langevin动力学迭代地进行以下估计,以获得
p
(
x
)
p(\mathbf{x})
p(x)的近似值
x
t
←
x
t
−
1
+
α
∇
x
log
p
(
x
t
−
1
)
+
2
α
z
t
,
1
≤
t
≤
T
,
(15)
\mathbf{x}_t \leftarrow \mathbf{x}_{t-1} + \alpha\nabla_{\mathbf{x}} \log p(\mathbf{x}_{t-1}) + \sqrt{2\alpha}\mathbf{z}_t, \quad 1 \leq t \leq T, \tag{15}
xt←xt−1+α∇xlogp(xt−1)+2αzt,1≤t≤T,(15)
其中
z
t
)
\mathbf{z}_t )
zt)服从标准正态分布。然而,在缺乏训练数据的情况下,分数函数的估计可能不准确,Langevin动力学(Langevin dynamics)可能无法正确收敛。为了解决这个问题,研究者提出了一种主要方法,即噪声条件分数网络(noise-conditional score network, NCSN)[94]。该方法通过用一系列噪声扰动数据,并使用以噪声水平为条件的深度神经网络来联合估计所有噪声数据的分数函数。在基于分数的生成模型中,训练和采样是解耦的,这启发了在这两个过程中采取不同的策略[95]。
理解:
作者介绍了基于分数的扩散模型的关键思想和主要方法,基于分数的扩散模型的关键思想是通过估计分数函数(概率密度函数梯度的对数)来生成新样本,而不是直接估计原始数据分布的概率密度函数。其中,Langevin动力学用于从估计的分数函数中采样,噪声条件分数网络(NCSN)用于在不同噪声水平下估计分数函数,以解决缺乏训练数据导致的分数函数估计不准确问题。这种方法的优点在于训练和采样过程的解耦,允许在这两个阶段采取不同的策略,从而提高模型的性能和效率。
文中的公式来自郎之万动力学,它描述了如何通过迭代更新来生成接近目标概率分布的样本。
首先,让我们看一下公式中的符号:
- x t \mathbf{x}_t xt: 表示第 t t t 次迭代生成的样本。
- x t − 1 \mathbf{x}_{t-1} xt−1: 表示第 t − 1 t-1 t−1 次迭代生成的样本。
- α \alpha α: 表示步长,即每次迭代更新的幅度。
- ∇ x log p ( x ∗ t − 1 ) \nabla_{\mathbf{x}} \log p(\mathbf{x}*{t-1}) ∇xlogp(x∗t−1): 表示分数函数在 x ∗ t − 1 \mathbf{x}*{t-1} x∗t−1 处的值,其中 p ( x ) p(\mathbf{x}) p(x) 是我们要估计的目标概率密度函数。
- z t \mathbf{z}_t zt: 表示从标准正态分布中采样的随机噪声。
- T T T: 表示总的迭代次数。
现在,让我们来看公式的每一部分:
- x t − 1 \mathbf{x}_{t-1} xt−1: 这是上一次迭代生成的样本,我们将在此基础上进行更新。
- α ∇ x log p ( x ∗ t − 1 ) \alpha\nabla_{\mathbf{x}} \log p(\mathbf{x}*{t-1}) α∇xlogp(x∗t−1): 这一项表示根据分数函数对当前样本进行更新。分数函数 ∇ ∗ x log p ( x ) \nabla*{\mathbf{x}} \log p(\mathbf{x}) ∇∗xlogp(x) 表示概率密度函数 p ( x ) p(\mathbf{x}) p(x) 的梯度的对数,它指示了概率密度函数增长最快的方向。通过沿着这个方向移动,我们可以生成更接近目标分布的样本。 α \alpha α 控制了每次更新的步长。
- 2 α z t \sqrt{2\alpha}\mathbf{z}_t 2αzt: 这一项表示添加随机噪声。我们从标准正态分布中采样噪声 z t \mathbf{z}_t zt,并将其缩放by 2 α \sqrt{2\alpha} 2α。添加噪声的目的是为了帮助样本逃离局部最优,并更好地探索整个概率分布空间。
- 整个公式的意义: 我们将上一次迭代的样本 x ∗ t − 1 \mathbf{x}*{t-1} x∗t−1,根据分数函数指示的方向进行更新 α ∇ ∗ x log p ( x t − 1 ) \alpha\nabla*{\mathbf{x}} \log p(\mathbf{x}_{t-1}) α∇∗xlogp(xt−1),并添加随机噪声 2 α z t \sqrt{2\alpha}\mathbf{z}_t 2αzt,得到新的样本 x t \mathbf{x}_t xt。通过多次迭代这个过程(从 t = 1 t=1 t=1 到 t = T t=T t=T),我们可以生成越来越接近目标概率分布的样本。
这个公式描述了Langevin动力学的迭代更新过程,通过沿着分数函数指示的方向移动并添加随机噪声,我们可以生成接近目标概率分布的样本。这个过程可以看作是一种受控的随机游走,既考虑了概率密度函数的梯度信息,又引入了随机性以帮助探索整个概率空间
第四段
对于得分随机微分方程(Score SDEs),扩散过程按照以下随机微分方程进行[97]:
d
x
=
f
(
x
,
t
)
d
t
+
g
(
t
)
d
w
,
(16)
d\mathbf{x} = f(\mathbf{x}, t)dt + g(t)d\mathbf{w}, \tag{16}
dx=f(x,t)dt+g(t)dw,(16)
其中
f
(
x
,
t
)
f(\mathbf{x}, t)
f(x,t) 和
g
(
t
)
g(t)
g(t) 分别是SDE的扩散函数和漂移函数,
w
\mathbf{w}
w 是标准维纳过程(Wiener process)。与去噪扩散概率模型(DDPMs)和得分生成模型(SGMs)不同,Score SDEs将扩散过程推广到无限时间步的情况。幸运的是,DDPMs和SGMs也可以用相应的SDE来表示。对于DDPMs,SDE为:
d
x
=
−
1
2
β
(
t
)
x
d
t
+
β
(
t
)
d
w
,
(17)
d\mathbf{x} = -\frac{1}{2}\beta(t)\mathbf{x}dt + \sqrt{\beta(t)}d\mathbf{w}, \tag{17}
dx=−21β(t)xdt+β(t)dw,(17)
其中当T趋于无穷时,
β
(
t
T
)
=
T
β
t
\beta(\frac{t}{T}) = T\beta_t
β(Tt)=Tβt;对于SGMs,SDE为:
d
x
=
d
[
δ
(
t
d
t
)
2
]
d
w
,
(18)
d\mathbf{x} = \sqrt{d[\delta(\frac{t}{dt})^2]}d\mathbf{w}, \tag{18}
dx=d[δ(dtt)2]dw,(18)
其中当T趋于无穷时,
δ
(
t
T
)
=
δ
t
\delta(\frac{t}{T}) = \delta_t
δ(Tt)=δt。对于任何形如(16)的扩散过程,通过求解以下SDE可以得到逆过程:
d
x
=
[
f
(
x
,
t
)
−
g
(
t
)
2
∇
x
log
q
t
(
x
)
]
d
t
+
g
(
t
)
d
w
ˉ
,
(19)
d\mathbf{x} = [f(\mathbf{x}, t) - g(t)^2\nabla_\mathbf{x} \log q_t(\mathbf{x})]dt + g(t)d\bar{\mathbf{w}}, \tag{19}
dx=[f(x,t)−g(t)2∇xlogqt(x)]dt+g(t)dwˉ,(19)
其中
w
ˉ
\bar{\mathbf{w}}
wˉ 是表示反向时间流动的标准维纳过程,
d
t
dt
dt是无穷小时间步长。此外,还存在一个常微分方程,也称为概率流ODE(probability flow ODE),定义如下:
d
x
=
[
f
(
x
,
t
)
−
1
2
g
(
t
)
2
∇
x
log
q
t
(
x
)
]
d
t
.
(20)
d\mathbf{x} = [f(\mathbf{x}, t) - \frac{1}{2}g(t)^2\nabla_\mathbf{x} \log q_t(\mathbf{x})]dt. \tag{20}
dx=[f(x,t)−21g(t)2∇xlogqt(x)]dt.(20)
概率流ODE的轨迹与逆时间SDE具有相同的边际分布。一旦知道每个时间步的得分函数,就可以用各种数值技术求解逆SDE。类似的目标也用于SGMs设计。
第五段
扩散模型最近也被应用于时间序列分析。我们根据设计的架构和使用的主要扩散技术对它们进行简要总结。用于插补(imputation)的条件得分基扩散模型(Conditional score-based diffusion models for imputation,CSDI)[98]被提出用于时间序列插补任务。CSDI利用基于观测数据的条件得分扩散模型。在时间序列预测任务中,TimeGrad [99]在某个时间步使用一个基于RNN条件的扩散概率模型来描述固定的前向过程和学习的反向过程。D3VAE [100]是一个配备了扩散、去噪和解耦的双向变分自编码器(bidirectional variational auto-encoder,BVAE)。在D3VAE中,耦合扩散过程同时增强输入时间序列和输出时间序列。ImDiffusion [101]结合插补和扩散模型用于时间序列异常检测。SSSD [102]结合扩散模型和结构化状态空间模型用于时间序列插补和预测任务。DiffLoad [103]提出了一个基于扩散的结构,用于考虑认知不确定性(epistemic uncertainty)和偶然不确定性(aleatoric uncertainty)的电力负荷概率预测。DiffSTG [104]首次尝试使用去噪扩散概率模型(DDPMs)预测时空图的演变。
一图总结: