原论文:Denoising Diffusion Probabilistic Models
(1)-1 p θ ( x 0 : T ) : = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) p_{\theta}(x_0:T) := p(x_T) \prod_{t=1}^{T} p_{\theta}(x_{t-1} \mid x_t) pθ(x0:T):=p(xT)t=1∏Tpθ(xt−1∣xt)
这个公式描述了扩散模型(Diffusion Model)中的反向过程(reverse process),具体是模型如何通过一系列的条件概率来生成数据。
这个公式可以拆分为以下几个部分来理解:
-
联合分布 p θ ( x 0 : T ) p_{\theta}(x_0:T) pθ(x0:T):
这是模型中所有变量 x 0 x_0 x0 到 x T x_T xT 的联合概率分布。这里的 x 0 x_0 x0 通常代表原始数据,而 x 1 x_1 x1 到 x T x_T xT 是在扩散过程中引入的潜变量。 -
初始分布 p ( x T ) p(x_T) p(xT):
这个分布是生成过程的起点,通常是一个标准正态分布 N ( x T ; 0 ; I ) N(x_T; 0; I) N(xT;0;I),即从均值为 0 0 0,方差为 I I I的高斯分布中采样 x T x_T xT。 -
条件概率 p θ ( x t − 1 ∣ x t ) p_{\theta}(x_{t-1} \mid x_t) pθ(xt−1∣xt):
这是反向过程中的每一步转移概率,表示给定 x t x_t xt 生成 x t − 1 x_{t-1} xt−1 的概率。这个概率通常被定义为高斯分布,其均值和方差是通过神经网络 μ θ ( x t , t ) \mu_{\theta}(x_t, t) μθ(xt,t)和 Σ θ ( x t , t ) \Sigma_{\theta}(x_t, t) Σθ(xt,t) 来确定的。 -
逐步生成过程:
公式中的乘积符号 ∏ t = 1 T \prod_{t=1}^{T} ∏t=1T 表示从 t = T t = T t=T 开始,一直到 t = 1 t = 1 t=1 的逐步生成过程。在每一步中,模型从上一步生成的潜变量 x t x_t xt 出发,生成前一个时间点的潜变量 x t − 1 x_{t-1} xt−1,直到生成最终的 x 0 x_0 x0,即我们希望生成的数据。
总结
这个公式描述了如何从一个简单的高斯分布 p ( x T ) p(x_T) p(xT) 开始,通过一系列条件概率 p θ ( x t − 1 ∣ x t ) p_{\theta}(x_{t-1} \mid x_t) pθ(xt−1∣xt) 逐步生成一个复杂数据分布 p θ ( x 0 ) p_{\theta}(x_0) pθ(x0) 的过程。扩散模型利用这种逐步生成的机制来生成与训练数据分布相似的数据。
(1)-2 p θ ( x t − 1 ∣ x t ) : = N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) p_{\theta}(x_{t-1} \mid x_t) := N(x_{t-1}; \mu_{\theta}(x_t, t), \Sigma_{\theta}(x_t, t)) pθ(xt−1∣xt):=N(xt−1;μθ(xt,t),Σθ(xt,t))
这个公式描述了扩散模型中的反向生成过程的一个具体步骤,即如何从一个已知的潜变量 x t x_t xt 生成前一个时间步的潜变量 x t − 1 x_{t-1} xt−1。
这里的各个符号解释如下:
-
条件概率 p θ ( x t − 1 ∣ x t ) p_{\theta}(x_{t-1} \mid x_t) pθ(xt−1∣xt):
这是一个条件概率,表示在已知当前时间步的潜变量 x t x_t xt 的情况下,生成前一个时间步的潜变量 x t − 1 x_{t-1} xt−1 的概率分布。 -
高斯分布 N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) N(x_{t-1}; \mu_{\theta}(x_t, t), \Sigma_{\theta}(x_t, t)) N(xt−1;μθ(xt,t),Σθ(xt,t)):
该条件概率被假设为一个多维高斯分布。高斯分布的形式为 N ( ⋅ ; mean , covariance ) N(\cdot; \text{mean}, \text{covariance}) N(⋅;mean,covariance),即在给定均值和协方差矩阵的情况下,描述随机变量的概率分布。 -
均值 μ θ ( x t , t ) \mu_{\theta}(x_t, t) μθ(xt,t):
这是生成 x t − 1 x_{t-1} xt−1 的均值,它是一个由神经网络或某种参数化模型 μ θ \mu_{\theta} μθ 来预测的函数,依赖于当前的潜变量 x t x_t xt 和时间步 t t t。 -
协方差矩阵 Σ θ ( x t , t ) \Sigma_{\theta}(x_t, t) Σθ(xt,t):
这是生成 x t − 1 x_{t-1} xt−1 的协方差矩阵,同样由一个参数化模型 Σ θ \Sigma_{\theta} Σθ 来预测,也依赖于当前的潜变量 x t x_t xt 和时间步 t t t。
过程解释
在扩散模型中,反向生成过程是从 x T x_T xT开始,通过一系列的高斯分布逐步生成潜变量,直到生成最终的数据样本 x 0 x_0 x0。在每一步,模型根据当前时间步的潜变量 x t x_t xt来确定生成前一个时间步潜变量 x t − 1 x_{t-1} xt−1 的分布,这个分布由均值和协方差来确定。
这个过程通过高斯分布进行采样,使得生成的潜变量序列逐步从噪声(如标准正态分布)趋近于真实数据分布,从而生成与训练数据相似的样本。
(2)-1 q ( x 1 : T ∣ x 0 ) : = ∏ t = 1 T q ( x t ∣ x t − 1 ) q(x_{1:T} \mid x_0) := \prod_{t=1}^{T} q(x_t \mid x_{t-1}) q(x1:T∣x0):=t=1∏Tq(xt∣xt−1)
这个公式描述了扩散模型中前向过程(forward process)的联合概率分布。前向过程描述了从原始数据 x 0 x_0 x0 开始,如何逐步添加噪声来生成一系列潜变量 x 1 x_1 x1 到 x T x_T xT 的过程。
这个公式可以拆分为以下部分来理解:
-
条件概率 q ( x 1 : T ∣ x 0 ) q(x_{1:T} \mid x_0) q(x1:T∣x0):
这是给定原始数据 x 0 x_0 x0 的情况下,从 x 1 x_1 x1 到 x T x_T xT 的潜变量序列的联合概率分布。 -
乘积符号 ∏ t = 1 T \prod_{t=1}^{T} ∏t=1T:
这个符号表示从 t = 1 t = 1 t=1 到 t = T t = T t=T 的乘积。这个乘积表示模型在前向过程中,每一步生成潜变量的条件概率相乘。 -
条件概率 q ( x t ∣ x t − 1 ) q(x_t \mid x_{t-1}) q(xt∣xt−1):
这是前向过程中的每一步的条件概率,表示给定前一个时间步的潜变量 x t − 1 x_{t-1} xt−1,生成当前时间步的潜变量 x t x_t xt 的概率。通常,这个概率会是一个添加了噪声的分布,用来逐步增加数据的不确定性。
过程解释
在扩散模型的前向过程(forward process)中,原始数据 x 0 x_0 x0 逐步被添加噪声,生成一系列的潜变量 x 1 x_1 x1 到 x T x_T xT,直到最后生成一个完全随机的潜变量 x T x_T xT。这个过程的目标是通过增加噪声来逐渐“破坏”原始数据,使其变得更接近噪声分布。
这一步步生成的潜变量是通过每一步的条件概率 q ( x t ∣ x t − 1 ) q(x_t \mid x_{t-1}) q(xt∣xt−1) 来完成的,而这些条件概率通常是高斯分布或其他适合模型的分布。最终,前向过程的联合概率 q ( x 1 : T ∣ x 0 ) q(x_{1:T} \mid x_0) q(x1:T∣x0) 是所有这些条件概率的乘积。
(2)-2 q ( x t ∣ x t − 1 ) : = N ( x t ; 1 − β t x t − 1 , β t I ) q(x_t \mid x_{t-1}) := N\left(x_t; \sqrt{1 - \beta_t} x_{t-1}, \beta_t I\right) q(xt∣xt−1):=N(xt;1−βtxt−1,βtI)
这个公式定义了扩散模型中前向过程(forward process)每一步的条件概率分布。具体来说,它描述了在给定前一个时间步的潜变量 x t − 1 x_{t-1} xt−1 的情况下,如何生成当前时间步的潜变量 x t x_t xt。
这个公式表示的是条件概率 q ( x t ∣ x t − 1 ) q(x_t \mid x_{t-1}) q(xt∣xt−1) 被定义为一个多维高斯分布,其具体参数如下:
-
条件概率 q ( x t ∣ x t − 1 ) q(x_t \mid x_{t-1}) q(xt∣xt−1):
这是给定前一个时间步的潜变量 x t − 1 x_{t-1} xt−1 后,生成当前时间步潜变量 x t x_t xt 的概率分布。 -
高斯分布 N ( ⋅ ; μ , Σ ) N(\cdot; \mu, \Sigma) N(⋅;μ,Σ):
这个条件概率是一个高斯分布,具有均值 μ \mu μ 和协方差矩阵 Σ \Sigma Σ。 -
均值 μ = 1 − β t x t − 1 \mu = \sqrt{1 - \beta_t} x_{t-1} μ=1−βtxt−1:
生成 x t x_t xt 的均值是 1 − β t \sqrt{1 - \beta_t} 1−βt 倍的 x t − 1 x_{t-1} xt−1。这里的 β t \beta_t βt 是一个小的正数,通常用于控制每一步添加噪声的程度。这个均值表示在生成新变量时,前一个时间步的潜变量 x t − 1 x_{t-1} xt−1 被缩放并作为当前变量的期望值。 -
协方差矩阵 Σ = β t I \Sigma = \beta_t I Σ=βtI:
协方差矩阵为 β t I \beta_t I βtI,其中 I I I 是单位矩阵。这表示生成 x t x_t xt 时加入了方差为 β t \beta_t βt 的噪声。噪声的大小由 β t \beta_t βt 决定,不同的时间步 t t t 可能有不同的 β t \beta_t βt 值。
过程解释
在扩散模型的前向过程中,每一步 q ( x t ∣ x t − 1 ) q(x_t \mid x_{t-1}) q(xt∣xt−1) 的操作是对前一个潜变量 x t − 1 x_{t-1} xt−1 进行缩放,同时加入一定的高斯噪声。通过多次迭代这样的操作,模型可以将原始数据 x 0 x_0 x0 逐步转化为一个近似于标准正态分布的随机变量 x T x_T xT。
这个过程的目的在于引入噪声,从而破坏数据的结构,为后续的反向生成过程提供基础。在反向过程中,模型会尝试逆转这些噪声影响,以生成与原始数据分布相似的样本。
(3) E [ − log p θ ( x 0 ) ] ≤ E q [ − log p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ] = E q [ − log p ( x T ) − ∑ t ≥ 1 log p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) ] = : L \mathbb{E}[- \log p_{\theta}(x_0)] \leq \mathbb{E}_q\left[- \log \frac{p_{\theta}(x_{0:T})}{q(x_{1:T} \mid x_0)}\right] = \mathbb{E}_q\left[- \log p(x_T) - \sum_{t \geq 1} \log \frac{p_{\theta}(x_{t-1} \mid x_t)}{q(x_t \mid x_{t-1})}\right] =: L E[−logpθ(x0)]≤Eq[−logq(x1:T∣x0)pθ(x0:T)]=Eq[−logp(xT)−t≥1∑logq(xt∣xt−1)pθ(xt−1∣xt)]=:L
这个公式描述了在扩散模型中,通过变分推断来优化模型的损失函数 L L L。公式中的内容涉及到模型目标的上界(upper bound),并利用变分下界(Variational Lower Bound, VLB)进行估计。
可以拆分为以下部分来理解:
-
目标函数 E [ − log p θ ( x 0 ) ] \mathbb{E}[- \log p_{\theta}(x_0)] E[−logpθ(x0)]:
这里的目标函数是最大化模型生成真实数据 x 0 x_0 x0 的对数概率,即最小化其负对数概率。由于直接优化这个目标比较困难,模型引入了一个上界(upper bound)来进行优化。 -
变分下界 E q [ − log p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ] \mathbb{E}_q\left[- \log \frac{p_{\theta}(x_{0:T})}{q(x_{1:T} \mid x_0)}\right] Eq[−logq(x1:T∣x0)pθ(x0:T)]:
这是目标函数的上界。通过引入潜变量 x 1 : T x_{1:T} x1:T 和近似分布 q ( x 1 : T ∣ x 0 ) q(x_{1:T} \mid x_0) q(x1:T∣x0),模型对真实分布 p θ ( x 0 ) p_{\theta}(x_0) pθ(x0) 进行近似估计。这个上界可以通过变分推断的方式进行优化。 -
公式展开 E q [ − log p ( x T ) − ∑ t ≥ 1 log p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) ] \mathbb{E}_q\left[- \log p(x_T) - \sum_{t \geq 1} \log \frac{p_{\theta}(x_{t-1} \mid x_t)}{q(x_t \mid x_{t-1})}\right] Eq[−logp(xT)−∑t≥1logq(xt∣xt−1)pθ(xt−1∣xt)]:
这个公式展开将分布 p θ ( x 0 : T ) p_{\theta}(x_{0:T}) pθ(x0:T) 表示为联合分布的形式,并将其与 q ( x 1 : T ∣ x 0 ) q(x_{1:T} \mid x_0) q(x1:T∣x0) 的比值展开。这个比值的对数被拆解成两部分:初始分布 p ( x T ) p(x_T) p(xT) 和逐步生成的条件分布比值 p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) \frac{p_{\theta}(x_{t-1} \mid x_t)}{q(x_t \mid x_{t-1})} q(xt∣xt−1)pθ(xt−1∣xt) 的对数和。 -
损失函数 L L L:
最终这个公式定义了损失函数 L L L,它是整个优化过程中需要最小化的目标。通过最小化这个损失函数,模型可以学到如何通过反向生成过程 p θ ( x t − 1 ∣ x t ) p_{\theta}(x_{t-1} \mid x_t) pθ(xt−1∣xt) 逐步生成接近真实数据 x 0 x_0 x0 的样本。
过程解释
在扩散模型的训练过程中,这个损失函数 L L L 被用来引导模型学习反向生成过程。损失函数的第一项 − log p ( x T ) - \log p(x_T) −logp(xT) 表示模型从初始噪声分布生成样本的难度,而第二项 ∑ t ≥ 1 log p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) \sum_{t \geq 1} \log \frac{p_{\theta}(x_{t-1} \mid x_t)}{q(x_t \mid x_{t-1})} ∑t≥1logq(xt∣xt−1)pθ(xt−1∣xt) 表示在每一步中,从当前时间步 x t x_t xt 生成前一个时间步 x t − 1 x_{t-1} xt−1 的难度。
通过优化这个损失函数,模型学会了如何有效地从噪声中逐步恢复到原始数据分布,从而生成与训练数据相似的样本。
公式详细推导
E [ − log p θ ( x 0 ) ] ≤ − log E [ p θ ( x 0 ) ] = − log E [ p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ] ≤ E [ − log p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ] = E [ − log p θ ( x 0 : T ) + log q ( x 1 : T ∣ x 0 ) ] = E [ − log p ( x T ) − ∑ t = 1 T log p θ ( x t − 1 ∣ x t ) + ∑ t = 1 T log q ( x t ∣ x t − 1 ) ] = E [ − log p ( x T ) − ∑ t ≥ 1 log p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) ] \begin{align*} & \mathbb{E}[-\log p_\theta(x_0)] \\ &\leq -\log \mathbb{E}[p_\theta(x_0)] \tag{Jensen's inequality} \\ &= -\log \mathbb{E}\left[\frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)}\right] \tag{Importance sampling} \\ &\leq \mathbb{E}\left[-\log\frac{p_\theta(x_{0:T})}{q(x_{1:T}|x_0)}\right] \tag{Jensen's inequality} \\ &= \mathbb{E}[-\log p_\theta(x_{0:T}) + \log q(x_{1:T}|x_0)] \\ &= \mathbb{E}\left[-\log p(x_T) - \sum_{t=1}^T \log p_\theta(x_{t-1}|x_t) + \sum_{t=1}^T \log q(x_t|x_{t-1})\right] \\ &= \mathbb{E}\left[-\log p(x_T) - \sum_{t\geq1} \log \frac{p_\theta(x_{t-1}|x_t)}{q(x_t|x_{t-1})}\right] \end{align*} E[−logpθ(x0)]≤−logE[pθ(x0)]=−logE[q(x1:T∣x0)pθ(x0:T)]≤E[−logq(x1:T∣x0)pθ(x0:T)]=E[−logpθ(x0:T)+logq(x1:T∣x0)]=E[−logp(xT)−t=1∑Tlogpθ(xt−1∣xt)+t=1∑Tlogq(xt∣xt−1)]=E[−logp(xT)−t≥1∑logq(xt∣xt−1)pθ(xt−1∣xt)](Jensen’s inequality)(Importance sampling)(Jensen’s inequality)
(4) q ( x t ∣ x 0 ) = N ( x t ; α ˉ t x 0 , ( 1 − α ˉ t ) I ) q(x_t|x_0) = \mathcal{N} \left(x_t; \sqrt{\bar{\alpha}_t}x_0, (1 - \bar{\alpha}_t)I \right) q(xt∣x0)=N(xt;αˉtx0,(1−αˉt)I)
这个公式描述了在扩散模型(Diffusion Models)中的一个关键步骤,即从初始数据 x 0 x_0 x0 到时间步 t t t 时刻的中间状态 x t x_t xt 的条件分布 q ( x t ∣ x 0 ) q(x_t|x_0) q(xt∣x0)。
-
q ( x t ∣ x 0 ) q(x_t|x_0) q(xt∣x0): 这是一个条件概率分布,表示给定初始状态 x 0 x_0 x0 后,在时间步 t t t 时刻的中间状态 x t x_t xt 的概率分布。
-
N ( ⋅ ) \mathcal{N}(\cdot) N(⋅): 表示一个正态分布(高斯分布)。正态分布由两个参数决定:均值和协方差矩阵。
-
α ˉ t x 0 \sqrt{\bar{\alpha}_t}x_0 αˉtx0: 这是正态分布的均值,表示 x t x_t xt 的期望值是初始状态 x 0 x_0 x0 经过缩放因子 α ˉ t \sqrt{\bar{\alpha}_t} αˉt调整后的结果。
-
( 1 − α ˉ t ) I (1 - \bar{\alpha}_t)I (1−αˉt)I: 这是正态分布的协方差矩阵,表示 x t x_t xt 相对于均值的随机波动。 I I I 是单位矩阵,表明各个维度的波动是独立且等方差的,而 ( 1 − α ˉ t ) (1 - \bar{\alpha}_t) (1−αˉt) 则决定了波动的幅度。
整体理解
这个公式表明,给定 x 0 x_0 x0 后, x t x_t xt 是一个以 α ˉ t x 0 \sqrt{\bar{\alpha}_t}x_0 αˉtx0 为均值、以 ( 1 − α ˉ t ) I (1 - \bar{\alpha}_t)I (1−αˉt)I 为协方差的正态分布随机变量。随着时间步 t t t 的变化, α ˉ t \bar{\alpha}_t αˉt 的值会影响 x t x_t xt 的分布,即从接近 x 0 x_0 x0的集中分布逐渐扩展为更分散的分布。这种形式用于在扩散模型中模拟从数据到噪声的逐渐退化过程。
公式详细推导
(5)
E
q
[
D
K
L
(
q
(
x
T
∣
x
0
)
∥
p
(
x
T
)
)
⏟
L
T
+
∑
t
>
1
D
K
L
(
q
(
x
t
−
1
∣
x
t
,
x
0
)
∥
p
θ
(
x
t
−
1
∣
x
t
)
)
⏟
L
t
−
1
−
log
p
θ
(
x
0
∣
x
1
)
⏟
L
0
]
\mathbb{E}_q \left[ \underbrace{D_{KL}(q(x_T \mid x_0) \parallel p(x_T))}_{L_T} + \sum_{t>1} \underbrace{D_{KL}(q(x_{t-1} \mid x_t, x_0) \parallel p_\theta(x_{t-1} \mid x_t))}_{L_{t-1}} - \underbrace{\log p_\theta(x_0 \mid x_1)}_{L_0} \right]
Eq
LT
DKL(q(xT∣x0)∥p(xT))+t>1∑Lt−1
DKL(q(xt−1∣xt,x0)∥pθ(xt−1∣xt))−L0
logpθ(x0∣x1)
这个公式是扩散模型中变分下界(ELBO)的一个重要表达式。让我们逐部分解析这个公式:
-
整体结构:
这是一个在分布q下的期望 E q \mathbb{E}_q Eq,其中包含三个主要部分: L T L_T LT, L t − 1 L_{t-1} Lt−1, 和 L 0 L_0 L0。 -
L T L_T LT 项:
D K L ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) ⏟ L T \underbrace{D_{KL}(q(x_T \mid x_0) \parallel p(x_T))}_{L_T} LT DKL(q(xT∣x0)∥p(xT))
这是最终时间步 T T T 的 K L KL KL散度。它衡量了给定初始状态 x 0 x_0 x0的条件下,最终状态 x T x_T xT的后验分布 q ( x T ∣ x 0 ) q(x_T|x_0) q(xT∣x0)与先验分布 p ( x T ) p(x_T) p(xT)之间的差异。
-
L t − 1 L_{t-1} Lt−1 项:
∑ t > 1 D K L ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ⏟ L t − 1 \sum_{t>1} \underbrace{D_{KL}(q(x_{t-1} \mid x_t, x_0) \parallel p_\theta(x_{t-1} \mid x_t))}_{L_{t-1}} ∑t>1Lt−1 DKL(q(xt−1∣xt,x0)∥pθ(xt−1∣xt))
这是一个求和项,涵盖了从 t = 2 t=2 t=2到 T T T 的所有时间步。每个时间步计算了两个分布之间的 K L KL KL散度:
- q ( x t − 1 ∣ x t , x 0 ) q(x_{t-1} | x_t, x0) q(xt−1∣xt,x0):给定当前状态xt和初始状态x0的情况下,前一时间步状态 x t − 1 x_{t-1} xt−1的后验分布。
- p θ ( x t − 1 ∣ x t ) p_θ(x_{t-1} | x_t) pθ(xt−1∣xt):模型预测的从 x t x_t xt到 x t − 1 x_{t-1} xt−1的逆向转移概率。
这个 K L KL KL散度衡量了真实的后验分布与模型预测的分布之间的差异。
-
L 0 L_0 L0 项:
log p θ ( x 0 ∣ x 1 ) ⏟ L 0 \underbrace{\log p_\theta(x_0 \mid x_1)}_{L_0} L0 logpθ(x0∣x1)
这是模型对初始状态 x 0 x_0 x0的对数似然,给定第一个扩散步骤的状态 x 1 x_1 x1。 -
负号:
注意L0项前面有一个负号,这意味着我们要最大化这一项,而最小化其他项。
这个公式的目标是最小化整体期望。在训练过程中,我们通过优化模型参数 θ θ θ 来实现这一目标。具体来说:
- 最小化 L T L_T LT使得最终状态的分布接近先验。
- 最小化 L t − 1 L_{t-1} Lt−1使得模型的逆向过程尽可能接近真实的后验分布。
- 最大化 L 0 L_0 L0使得模型能够准确重构初始数据。
这个公式捕捉了扩散模型的核心思想:通过一系列的扩散步骤将数据转换为噪声,然后学习一个逆过程来重构数据。
公式详细推导
L = E q [ − log p θ ( x 0 : T ) + log q ( x 1 : T ∣ x 0 ) ] = E q [ − log p ( x T ) − ∑ t ≥ 1 log p θ ( x t − 1 ∣ x t ) − log p θ ( x 0 ∣ x 1 ) + log q ( x 1 : T ∣ x 0 ) ] = E q [ − log p ( x T ) + log q ( x T ∣ x 0 ) − ∑ t > 1 log p θ ( x t − 1 ∣ x t ) + ∑ t > 1 log q ( x t − 1 ∣ x t , x 0 ) − log p θ ( x 0 ∣ x 1 ) ] = E q [ log q ( x T ∣ x 0 ) − log p ( x T ) ] + ∑ t > 1 E q [ log q ( x t − 1 ∣ x t , x 0 ) − log p θ ( x t − 1 ∣ x t ) ] − E q [ log p θ ( x 0 ∣ x 1 ) ] = D K L ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) + ∑ t > 1 D K L ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) − E q [ log p θ ( x 0 ∣ x 1 ) ] = D K L ( q ( x T ∣ x 0 ) ∥ p ( x T ) ) ⏟ L T + ∑ t > 1 D K L ( q ( x t − 1 ∣ x t , x 0 ) ∥ p θ ( x t − 1 ∣ x t ) ) ⏟ L t − 1 − E q [ log p θ ( x 0 ∣ x 1 ) ] ⏟ L 0 \begin{align*} \mathcal{L} &= \mathbb{E}_q[-\log p_\theta(x_{0:T}) + \log q(x_{1:T}|x_0)] \\[10pt] &= \mathbb{E}_q[-\log p(x_T) - \sum_{t\geq1} \log p_\theta(x_{t-1}|x_t) - \log p_\theta(x_0|x_1) + \log q(x_{1:T}|x_0)] \\[10pt] &= \mathbb{E}_q[-\log p(x_T) + \log q(x_T|x_0) - \sum_{t>1} \log p_\theta(x_{t-1}|x_t) + \sum_{t>1} \log q(x_{t-1}|x_t,x_0) - \log p_\theta(x_0|x_1)] \\[10pt] &= \mathbb{E}_q[\log q(x_T|x_0) - \log p(x_T)] + \sum_{t>1} \mathbb{E}_q[\log q(x_{t-1}|x_t,x_0) - \log p_\theta(x_{t-1}|x_t)] - \mathbb{E}_q[\log p_\theta(x_0|x_1)] \\[10pt] &= D_{KL}(q(x_T|x_0) \parallel p(x_T)) + \sum_{t>1} D_{KL}(q(x_{t-1}|x_t,x_0) \parallel p_\theta(x_{t-1}|x_t)) - \mathbb{E}_q[\log p_\theta(x_0|x_1)] \\[10pt] &= \underbrace{D_{KL}(q(x_T|x_0) \parallel p(x_T))}_{L_T} + \underbrace{\sum_{t>1} D_{KL}(q(x_{t-1}|x_t,x_0) \parallel p_\theta(x_{t-1}|x_t))}_{L_{t-1}} - \underbrace{\mathbb{E}_q[\log p_\theta(x_0|x_1)]}_{L_0} \end{align*} L=Eq[−logpθ(x0:T)+logq(x1:T∣x0)]=Eq[−logp(xT)−t≥1∑logpθ(xt−1∣xt)−logpθ(x0∣x1)+logq(x1:T∣x0)]=Eq[−logp(xT)+logq(xT∣x0)−t>1∑logpθ(xt−1∣xt)+t>1∑logq(xt−1∣xt,x0)−logpθ(x0∣x1)]=Eq[logq(xT∣x0)−logp(xT)]+t>1∑Eq[logq(xt−1∣xt,x0)−logpθ(xt−1∣xt)]−Eq[logpθ(x0∣x1)]=DKL(q(xT∣x0)∥p(xT))+t>1∑DKL(q(xt−1∣xt,x0)∥pθ(xt−1∣xt))−Eq[logpθ(x0∣x1)]=LT DKL(q(xT∣x0)∥p(xT))+Lt−1 t>1∑DKL(q(xt−1∣xt,x0)∥pθ(xt−1∣xt))−L0 Eq[logpθ(x0∣x1)]
(6)&(7)
q ( x t − 1 ∣ x t , x 0 ) = N ( x t − 1 q(x_{t-1}|x_t, x_0) = \mathcal{N}(x_{t-1} q(xt−1∣xt,x0)=N(xt−1; μ ~ t ( x t , x 0 ) \tilde{\mu}_t(x_t, x_0) μ~t(xt,x0), β ~ t I ) \tilde{\beta}_t I) β~tI)
其中:
μ ~ t ( x t , x 0 ) : = α ˉ t − 1 β t 1 − α ˉ t x 0 + α t ( 1 − α ˉ t − 1 ) 1 − α ˉ t x t \tilde{\mu}_t(x_t, x_0) := \frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{1 - \bar{\alpha}_t}x_0 + \frac{\sqrt{\alpha_t}(1 - \bar{\alpha}_{t-1})}{1 - \bar{\alpha}_t}x_t μ~t(xt,x0):=1−αˉtαˉt−1βtx0+1−αˉtαt(1−αˉt−1)xt
β ~ t : = 1 − α ˉ t − 1 1 − α ˉ t β t \tilde{\beta}_t := \frac{1 - \bar{\alpha}_{t-1}}{1 - \bar{\alpha}_t}\beta_t β~t:=1−αˉt1−αˉt−1βt
公式理解
-
整体结构:
这个公式给出了给定 x t x_t xt 和 x 0 x_0 x0 的情况下, x t − 1 x_{t-1} xt−1 的条件分布。这是一个高斯分布,均值为 μ ~ t ( x t , x 0 ) \tilde{\mu}_t(x_t, x_0) μ~t(xt,x0),协方差矩阵为 β ~ t I \tilde{\beta}_t I β~tI。 -
均值 μ ~ t ( x t , x 0 ) \tilde{\mu}_t(x_t, x_0) μ~t(xt,x0):
- 这是 x 0 x_0 x0 和 x t x_t xt 的加权组合。
- α ˉ t − 1 β t 1 − α ˉ t \frac{\sqrt{\bar{\alpha}_{t-1}}\beta_t}{1 - \bar{\alpha}_t} 1−αˉtαˉt−1βt 是 x 0 x_0 x0 的权重。
- α t ( 1 − α ˉ t − 1 ) 1 − α ˉ t \frac{\sqrt{\alpha_t}(1 - \bar{\alpha}_{t-1})}{1 - \bar{\alpha}_t} 1−αˉtαt(1−αˉt−1) 是 x t x_t xt 的权重。
- 这个组合反映了 x t − 1 x_{t-1} xt−1 如何同时依赖于初始状态 x 0 x_0 x0 和当前状态 x t x_t xt。
-
方差 β ~ t \tilde{\beta}_t β~t:
- 这个值决定了分布的不确定性。
- 它是 β t \beta_t βt 的一个缩放版本,缩放因子为 1 − α ˉ t − 1 1 − α ˉ t \frac{1 - \bar{\alpha}_{t-1}}{1 - \bar{\alpha}_t} 1−αˉt1−αˉt−1。
-
参数解释:
- α t = 1 − β t \alpha_t = 1 - \beta_t αt=1−βt,其中 β t \beta_t βt 是每个时间步的噪声水平。
- α ˉ t = ∏ s = 1 t α s \bar{\alpha}_t = \prod_{s=1}^t \alpha_s αˉt=∏s=1tαs,是累积的信号保留率。
- 1 − α ˉ t 1 - \bar{\alpha}_t 1−αˉt 代表了累积的噪声水平。
-
直观理解:
- 均值公式中的两个权重之和为1,这保证了 x t − 1 x_{t-1} xt−1 是 x 0 x_0 x0 和 x t x_t xt 的有效插值。
- 当 t t t 接近 T T T 时, x t x_t xt 的权重会增加,因为此时 x t x_t xt 包含了更多关于最终状态的信息。
- 当 t t t 接近 0 0 0 时, x 0 x_0 x0 的权重会增加,因为此时初始状态对 x t − 1 x_{t-1} xt−1 的影响更大。
这个公式在扩散模型中非常重要,因为它允许我们在给定观察到的数据 x 0 x_0 x0 和当前状态 x t x_t xt 的情况下,推断前一时间步的状态 x t − 1 x_{t-1} xt−1。这是实现逆向扩散过程(从噪声重构数据)的关键。