【论文解读】Denoising Diffusion Probabilistic Models(DDPM)——Diffusion模型奠基之作(内含大量推导)【一】


由于内容较多,分篇进行解读,此为第一篇。
第二篇:【论文解读】Denoising Diffusion Probabilistic Models(DDPM)——Diffusion模型奠基之作(内含大量推导)【二】-CSDN博客
第三篇:【论文解读】Denoising Diffusion Probabilistic Models(DDPM)——Diffusion模型奠基之作(内含大量推导)【三】-CSDN博客
第四篇:【论文解读】Denoising Diffusion Probabilistic Models(DDPM)——Diffusion模型奠基之作(内含大量推导)【四】-CSDN博客
第五篇:【论文解读】Denoising Diffusion Probabilistic Models(DDPM)——Diffusion模型奠基之作(内含大量推导)【五】-CSDN博客

概览

扩散概率模型(diffusion probabilistic models),简称扩散模型(diffusion model),是一个马尔可夫链,包括前向过程和反向过程,前向过程是有具体的表达式可以计算的,后向过程是利用神经网络来学习的。前向过程,即扩散过程,就是不断地对图像添加高斯噪声,直到图像完全被高斯噪声淹没,如下图中的 q ( x t ∣ x t − 1 ) q(\mathbf{x}_t|\mathbf{x}_{t−1}) q(xtxt1)。而反向过程,即去噪过程,就是逐渐去除噪声生成图片的过程,如下图中的 p θ ( x t − 1 ∣ x t ) p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_t) pθ(xt1xt)

image-20250602100700513

这里结合两篇论文来看,分别是:

  1. Deep Unsupervised Learning using Nonequilibrium Thermodynamics:这篇论文受非平衡统计物理学启发,首先提出了扩散概率模型。

  2. Denoising Diffusion Probabilistic Models:这篇文章是将 diffusion model 用于图像生成领域的关键论文。

一、背景

首先给出概念:扩散模型是一种潜变量模型(latent variable model),即这类模型假设我们观察到的数据( x 0 \mathbf{x}_0 x0)是由一些未观察到的、隐藏的变量(即潜变量 x 1 , … , x T \mathbf{x}_1, \dots, \mathbf{x}_T x1,,xT)生成的。

下面介绍扩散模型相关背景,本部结合论文1、2一起来看。

(一)前向过程

假设 x 0 \mathbf{x}_0 x0 是原始的、未经处理的数据(例如,一张清晰的图片),下标 0 代表时间步 t = 0 t=0 t=0 q ( x 0 ) q(\mathbf{x}_0) q(x0) 是初始数据的分布。通过重复应用一个马尔可夫扩散核 T π ( y ∣ y ′ ; β ) T_\pi(\mathbf{y}|\mathbf{y}'; \beta) Tπ(yy;β),原始数据分布被逐渐转化为一个性质良好(解析上易于处理)的分布 π ( y ) \pi(\mathbf{y}) π(y),其中 β \beta β 是扩散速率。

  • 这个 π ( y ) \pi(\mathbf{y}) π(y) 就是前向过程的目标分布。通常,这个目标分布是一个非常简单的、我们熟知的分布,比如标准正态分布(高斯噪声)。“性质良好”或“解析上易于处理”意味着我们可以很容易地从这个分布中采样,或者计算它的概率密度。
  • T π ( y ∣ y ′ ; β ) T_\pi(\mathbf{y}|\mathbf{y}'; \beta) Tπ(yy;β) 指的是一个转移概率函数,它定义了从一个状态 y ′ \mathbf{y}' y 转换到另一个状态 y \mathbf{y} y 的概率。这个转换过程具有马尔可夫性质,即下一个状态 y \mathbf{y} y 只依赖于当前状态 y ′ \mathbf{y}' y,而与更早之前的状态无关。 T π ( y ∣ y ′ ; β ) T_\pi(\mathbf{y}|\mathbf{y}'; \beta) Tπ(yy;β) 这个核函数描述了单步扩散,即给定当前状态 y ′ \mathbf{y}' y,它会以一定的概率(由 β \beta β 控制)将其“扩散”成 y \mathbf{y} y。下标 π \pi π 表示这个核是设计用来最终趋向于 π ( y ) \pi(\mathbf{y}) π(y) 分布的。

可以写出如下公式:
π ( y ) = ∫ T π ( y ∣ y ′ ; β ) π ( y ′ ) d y ′ q ( x t ∣ x t − 1 ) = T π ( x t ∣ x t − 1 ; β t ) \begin{align} &\pi(\mathbf{y}) = \int T_\pi(\mathbf{y}|\mathbf{y}'; \beta) \pi(\mathbf{y}') d\mathbf{y}' \\ &q(\mathbf{x}_{t}|\mathbf{x}_{t-1}) = T_\pi(\mathbf{x}_{t}|\mathbf{x}_{t-1}; \beta_t) \end{align} π(y)=Tπ(yy;β)π(y)dyq(xtxt1)=Tπ(xtxt1;βt)
因此,从初始数据开始,执行 T T T 次扩散的前向过程由下式给出:
q ( x 0 : T ) = q ( x 0 ) q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 0 x 1 ) … q ( x T ∣ x 0 : T − 1 ) ( 概率乘法公式 ) = q ( x 0 ) q ( x 1 ∣ x 0 ) q ( x 2 ∣ x 1 ) … q ( x T ∣ x T − 1 ) ( 马尔科夫性质 ) = q ( x 0 ) ∏ t = 1 T q ( x t ∣ x t − 1 ) \begin{equation} \begin{aligned} q(\mathbf{x}_{0:T}) &= q(\mathbf{x}_{0}) q(\mathbf{x}_{1}|\mathbf{x}_{0}) q(\mathbf{x}_{2}|\mathbf{x}_{0}\mathbf{x}_{1}) \dots q(\mathbf{x}_{T}|\mathbf{x}_{0:T-1}) &(\text{概率乘法公式}) \\ & = q(\mathbf{x}_{0}) q(\mathbf{x}_{1}|\mathbf{x}_{0}) q(\mathbf{x}_{2}|\mathbf{x}_{1}) \dots q(\mathbf{x}_{T}|\mathbf{x}_{T-1}) &(\text{马尔科夫性质}) \\ &= q(\mathbf{x}_{0}) \prod_{t=1}^T q(\mathbf{x}_{t}|\mathbf{x}_{t-1}) \end{aligned} \end{equation} q(x0:T)=q(x0)q(x1x0)q(x2x0x1)q(xTx0:T1)=q(x0)q(x1x0)q(x2x1)q(xTxT1)=q(x0)t=1Tq(xtxt1)(概率乘法公式)(马尔科夫性质)
其中, q ( x t ∣ x t − 1 ) q(\mathbf{x}_{t}|\mathbf{x}_{t-1}) q(xtxt1)(即单步前向转移概率)要么对应于向具有单位协方差的高斯分布进行高斯扩散,要么对应于向一个独立的二项分布进行二项扩散。前者适用于连续数据,后者适用于离散数据。

多元高斯分布的一般形式:

设随机向量 X = [ X 1 , X 2 , … , X n ] T \mathbf{X} = [X_1, X_2, \dots, X_n]^T X=[X1,X2,,Xn]T 服从 n n n 维高斯分布,记为 X ∼ N ( μ , Σ ) \mathbf{X} \sim \mathcal{N}(\boldsymbol{\mu}, \boldsymbol{\Sigma}) XN(μ,Σ),其中:

  • μ \boldsymbol{\mu} μ 是均值向量(各变量的期望值);
  • Σ \boldsymbol{\Sigma} Σ n × n n \times n n×n 的协方差矩阵,对角线元素 Σ i i = Var ( X i ) \Sigma_{ii} = \text{Var}(X_i) Σii=Var(Xi) 为各变量的方差,非对角线元素 Σ i j = Cov ( X i , X j ) \Sigma_{ij} = \text{Cov}(X_i, X_j) Σij=Cov(Xi,Xj) 为变量间的协方差。

单位协方差的含义:若协方差矩阵 Σ = I \boldsymbol{\Sigma} = \mathbf{I} Σ=I(单位矩阵),则每个变量的方差为 1 ( Var ( X i ) = 1 \text{Var}(X_i) = 1 Var(Xi)=1),且任意两个变量之间的协方差为 0 ( Cov ( X i , X j ) = 0 \text{Cov}(X_i, X_j) = 0 Cov(Xi,Xj)=0, i ≠ j i \neq j i=j)。此时变量间相互独立且标准化,分布称为标准多元高斯分布。

根据条件概率分布:
q ( x 0 : T ) = q ( x 0 ) q ( x 1 : T ∣ x 0 ) \begin{equation} q(\mathbf{x}_{0:T}) = q(\mathbf{x}_{0})q(\mathbf{x}_{1:T}|\mathbf{x}_{0}) \end{equation} q(x0:T)=q(x0)q(x1:Tx0)
扩散模型与其他潜变量模型的区别在于,其后验概率 q ( x 1 : T ∣ x 0 ) q(\mathbf{x}_{1:T}|\mathbf{x}_{0}) q(x1:Tx0),即前向过程或扩散过程,被固定为一个马尔科夫链,根据方差调度 β 1 , … β T \beta_1, \dots \beta_T β1,βT,逐次向数据中添加高斯噪声。根据前面的公式,可知:
q ( x 1 : T ∣ x 0 ) = ∏ t = 1 T q ( x t ∣ x t − 1 ) \begin{equation} \boxed{ q(\mathbf{x}_{1:T}|\mathbf{x}_{0}) = \prod_{t=1}^T q(\mathbf{x}_{t}|\mathbf{x}_{t-1}) } \end{equation} q(x1:Tx0)=t=1Tq(xtxt1)
其单步转移概率是人为设计的,论文2中定义为:
q ( x t ∣ x t − 1 ) : = N ( x t ; 1 − β t x t − 1 , β t I ) \begin{equation} \boxed{ 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}) } \end{equation} q(xtxt1):=N(xt;1βt xt1,βtI)
它是关于 x t \mathbf{x}_t xt 的高斯分布,其均值为 1 − β t x t − 1 \sqrt{1-\beta_t}\mathbf{x}_{t-1} 1βt xt1,方差为 β t I \beta_t\mathbf{I} βtI

(二)反向过程

反向过程需要训练一个生成分布 (The generative distribution),即模型学习到的用于生成数据的概率分布,通常用 p θ p_\theta pθ(其中 θ \theta θ 代表模型参数)来表示。其目标是学习一个从纯噪声 x T \mathbf{x}_{T} xT 出发,逐步去噪,最终生成数据 x 0 \mathbf{x}_{0} x0 的过程,它同样是一个马尔科夫链:
p ( x T ) = π ( x T ) \begin{equation} p(\mathbf{x}_{T})= \pi(\mathbf{x}_{T}) \end{equation} p(xT)=π(xT)
p θ ( x 0 : T ) = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) \begin{equation} \boxed{ p_\theta(\mathbf{x}_{0:T}) = p(\mathbf{x}_{T}) \prod_{t=1}^T p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_{t}) } \end{equation} pθ(x0:T)=p(xT)t=1Tpθ(xt1xt)

p ( x T ) p(\mathbf{x}_{T}) p(xT) 表示反向生成模型在时刻 T T T 的分布(注意这里 p ( x T ) p(\mathbf{x}_{T}) p(xT) 没有下标 θ \theta θ,因为它通常是 π ( x T ) \pi(\mathbf{x}_{T}) π(xT))。 π ( x T ) \pi(\mathbf{x}_{T}) π(xT) 是前向过程在 T T T 步后达到的目标(通常是简单的、已知的)噪声分布,比如标准正态分布 N ( 0 , I ) \mathcal{N}(\mathbf{0}, \mathbf{I}) N(0,I)。反向生成过程从前向过程最终到达的那个已知的噪声分布开始,这是连接前向过程和反向过程的桥梁。因此, p ( x T ) = N ( x T ; 0 , I ) p(\mathbf{x}_T) = \mathcal{N}(\mathbf{x}_T; \mathbf{0}, \mathbf{I}) p(xT)=N(xT;0,I) p θ ( x t − 1 ∣ x t ) p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_{t}) pθ(xt1xt) 是反向过程的核心,表示给定时刻 t t t 的状态 x t \mathbf{x}_{t} xt,生成(或去噪得到)时刻 t − 1 t-1 t1 的状态 x t − 1 \mathbf{x}_{t-1} xt1 的条件概率,这些是模型需要学习的部分。

根据 Feller 等人的研究,对于高斯扩散和二项扩散,在连续扩散(即步长 β \beta β 很小的极限情况)下,扩散过程的逆过程与前向过程具有相同的函数形式。因此,由于 q ( x t ∣ x t − 1 ) q(\mathbf{x}_{t}|\mathbf{x}_{t-1}) q(xtxt1) 是一个高斯(或二项)分布,并且如果 β t \beta_t βt 很小,那么 q ( x t − 1 ∣ x t ) q(\mathbf{x}_{t-1}|\mathbf{x}_{t}) q(xt1xt) 也将是一个高斯(或二项)分布(注意,这里只是相同的分布,但并分布的参数也相同)。轨迹越长,扩散率 β \beta β 就可以设置得越小。这为我们选择反向过程中 p θ ( x t − 1 ∣ x t ) p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_{t}) pθ(xt1xt) 的函数形式提供了理论基础。

在学习过程中,对于高斯扩散核,只需要估计其均值和协方差;对于二项核,只需要估计其比特翻转概率。因此,如果反向转移 p θ ( x t − 1 ∣ x t ) p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_{t}) pθ(xt1xt) 被建模为高斯分布,那么模型需要学习预测这个高斯分布的均值和协方差。 f μ ( x t , t ) f_\mu(\mathbf{x}_{t}, t) fμ(xt,t) f Σ ( x t , t ) f_\Sigma(\mathbf{x}_{t}, t) fΣ(xt,t) 是为高斯情况定义反向马尔可夫转移的均值和协方差的函数,而 f b ( x t , t ) f_b(\mathbf{x}_{t}, t) fb(xt,t) 是为二项分布提供比特翻转概率的函数。这里引入了具体的函数 f μ , f Σ , f b f_\mu, f_\Sigma, f_b fμ,fΣ,fb 来参数化反向过程的转移概率,通常是神经网络。它们都以当前状态 x t \mathbf{x}_{t} xt 和当前时间步 t t t 作为输入。 f μ ( x t , t ) f_\mu(\mathbf{x}_{t}, t) fμ(xt,t): 预测高斯转移的均值 μ ( x t , t ) \mu(\mathbf{x}_{t}, t) μ(xt,t) f Σ ( x t , t ) f_\Sigma(\mathbf{x}_{t}, t) fΣ(xt,t): 预测高斯转移的协方差 Σ ( x t , t ) \Sigma(\mathbf{x}_{t}, t) Σ(xt,t) f b ( x t , t ) f_b(\mathbf{x}_{t}, t) fb(xt,t): 预测二项分布的比特翻转概率。因此,运行此算法的计算成本是这些函数的成本乘以时间步数。在论文1的所有结果中,都使用多层感知机(MLP)来定义这些函数。

在论文2中,给出反向过程的单步转移概率分布为:
p θ ( x t − 1 ∣ x t ) : = N ( x t − 1 ; μ θ ( x t , t ) , Σ θ ( x t , t ) ) \begin{equation} \boxed{ p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_t) := \mathcal{N}(\mathbf{x}_{t-1}; \mu_{\theta}(\mathbf{x}_t, t), \Sigma_{\theta}(\mathbf{x}_t, t)) } \end{equation} pθ(xt1xt):=N(xt1;μθ(xt,t),Σθ(xt,t))
即转移概率分布函数为关于 x t − 1 \mathbf{x}_{t-1} xt1 的高斯分布,其均值 μ θ ( x t , t ) \mu_{\theta}(\mathbf{x}_t, t) μθ(xt,t) 和协方差 Σ θ ( x t , t ) ) \Sigma_{\theta}(\mathbf{x}_t, t)) Σθ(xt,t)) 是关于 x t , t \mathbf{x}_t, t xt,t 的函数,它们是由模型学习得到的。

(三)模型概率

生成模型赋予观测数据 x 0 \mathbf{x}_0 x0的预测概率为(要计算边缘概率密度,就是对联合概率密度的其他所有随机变量求积分):
p θ ( x 0 ) = ∫ p θ ( x 0 : T ) d x 1 : T \begin{equation} p_\theta(\mathbf{x}_{0}) = \int p_\theta(\mathbf{x}_{0:T}) d\mathbf{x}_{1:T} \end{equation} pθ(x0)=pθ(x0:T)dx1:T
其中, p θ ( x 0 : T ) p_\theta(\mathbf{x}_{0:T}) pθ(x0:T) 表示整个反向(生成)轨迹 ( x 0 , x 1 , … , x T ) (\mathbf{x}_{0}, \mathbf{x}_{1}, \dots, \mathbf{x}_{T}) (x0,x1,,xT) 的联合概率。它描述了从噪声 x T \mathbf{x}_{T} xT 一路生成到数据 x 0 \mathbf{x}_{0} x0 的完整路径的概率。 ∫ d x 1 : T \int d\mathbf{x}_{1:T} dx1:T 表示对所有可能的中间潜变量(即轨迹 x 1 , … , x T \mathbf{x}_{1}, \dots, \mathbf{x}_{T} x1,,xT)进行积分。即,要得到模型赋予特定数据 x 0 \mathbf{x}_{0} x0 的概率,我们需要考虑所有可能生成该 x 0 \mathbf{x}_{0} x0 的潜变量路径 ( x 1 , … , x T ) (\mathbf{x}_{1}, \dots, \mathbf{x}_{T}) (x1,,xT),并将这些路径的联合概率 p θ ( x 0 : T ) p_\theta(\mathbf{x}_{0:T}) pθ(x0:T) 积分起来。

直接计算这个积分通常是不可行的,但是借鉴退火重要性采样(annealed importance sampling)和 Jarzynski 等式的思想,可以转而评估前向和反向轨迹的相对概率,并在前向轨迹上取平均:
p θ ( x 0 ) = ∫ p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) q ( x 1 : T ∣ x 0 ) d x 1 : T = ∫ q ( x 1 : T ∣ x 0 ) p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) d x 1 : T = ∫ q ( x 1 : T ∣ x 0 ) ⋅ p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) d x 1 : T \begin{align} p_\theta(\mathbf{x}_{0}) &= \int p_\theta(\mathbf{x}_{0:T}) \frac{q(\mathbf{x}_{1:T}|\mathbf{x}_{0})}{q(\mathbf{x}_{1:T}|\mathbf{x}_{0})} d\mathbf{x}_{1:T} \\ &= \int q(\mathbf{x}_{1:T}|\mathbf{x}_{0}) \frac{p_\theta(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T}|\mathbf{x}_{0})} d\mathbf{x}_{1:T} \\ &= \int q(\mathbf{x}_{1:T}|\mathbf{x}_{0}) \cdot p(\mathbf{x}_{T}) \prod_{t=1}^T \frac{p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_{t})}{q(\mathbf{x}_{t}|\mathbf{x}_{t-1})} d\mathbf{x}_{1:T} \end{align} pθ(x0)=pθ(x0:T)q(x1:Tx0)q(x1:Tx0)dx1:T=q(x1:Tx0)q(x1:Tx0)pθ(x0:T)dx1:T=q(x1:Tx0)p(xT)t=1Tq(xtxt1)pθ(xt1xt)dx1:T
这里的核心思想是重要性采样 (importance sampling)。我们不直接从难以采样的 p θ ( x 0 : T ) p_\theta(\mathbf{x}_{0:T}) pθ(x0:T) 中采样,而是从一个更容易采样的提议分布 (proposal distribution) 中采样,并用一个权重来修正。在这里,前向过程 q q q 扮演了提议分布的角色。上式首先在被积函数中乘以并除以同一个量 q ( x 1 : T ∣ x 0 ) q(\mathbf{x}_{1:T}|\mathbf{x}_{0}) q(x1:Tx0)。这个量是给定真实数据 x 0 \mathbf{x}_{0} x0 时,前向(加噪)过程产生特定潜变量轨迹 ( x 1 , … , x T ) (\mathbf{x}_{1}, \dots, \mathbf{x}_{T}) (x1,,xT) 的概率。现在,在公式 ( 12 ) (12) (12)中,积分可以被看作是关于分布 q ( x 1 : T ∣ x 0 ) q(\mathbf{x}_{1:T}|\mathbf{x}_{0}) q(x1:Tx0) 求期望。即:
p θ ( x 0 ) = E x 1 : T ∼ q ( x 1 : T ∣ x 0 ) [ p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) ] = E x 1 : T ∼ q ( x 1 : T ∣ x 0 ) [ p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) ] p_\theta(\mathbf{x}_{0}) = \mathbb{E}_{\mathbf{x}_{1:T} \sim q(\mathbf{x}_{1:T}|\mathbf{x}_{0})} \left[ \frac{p_\theta(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T}|\mathbf{x}_{0})} \right] = \mathbb{E}_{\mathbf{x}_{1:T} \sim q(\mathbf{x}_{1:T}|\mathbf{x}_{0})} \left[ p(\mathbf{x}_{T}) \prod_{t=1}^T \frac{p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_{t})}{q(\mathbf{x}_{t}|\mathbf{x}_{t-1})} \right] pθ(x0)=Ex1:Tq(x1:Tx0)[q(x1:Tx0)pθ(x0:T)]=Ex1:Tq(x1:Tx0)[p(xT)t=1Tq(xtxt1)pθ(xt1xt)]
其中 p θ ( x 0 : T ) q ( x 1 : T ∣ x 0 ) \frac{p_\theta(\mathbf{x}_{0:T})}{q(\mathbf{x}_{1:T}|\mathbf{x}_{0})} q(x1:Tx0)pθ(x0:T) 即为重要性权重 (importance weight)。上式可以通过从前向过程 q ( x 1 : T ∣ x 0 ) q(\mathbf{x}_{1:T}|\mathbf{x}_{0}) q(x1:Tx0) 中抽取的样本进行平均来快速评估。这是蒙特卡洛估计 (Monte Carlo estimation) 的标准做法。由于直接计算这个期望(即积分)是困难的,我们可以通过以下步骤来近似它:

  1. 从已知的、固定的前向过程 q ( x 1 : T ∣ x 0 ) q(\mathbf{x}_{1:T}|\mathbf{x}_{0}) q(x1:Tx0) 中抽取多条轨迹,即潜变量序列 ( x 1 , … , x T ) (\mathbf{x}_{1}, \dots, \mathbf{x}_{T}) (x1,,xT) 。给定一个 x 0 \mathbf{x}_{0} x0,这是可以做到的,因为前向过程是预先定义好的。
  2. 对于每一条抽取的轨迹,计算重要性权重项: W = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) W = p(\mathbf{x}_{T}) \prod_{t=1}^T \frac{p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_{t})}{q(\mathbf{x}_{t}|\mathbf{x}_{t-1})} W=p(xT)t=1Tq(xtxt1)pθ(xt1xt)
  3. 将所有抽取样本计算得到的权重 W W W 进行平均。这个平均值就是对 p θ ( x 0 ) p_\theta(\mathbf{x}_{0}) pθ(x0) 的一个估计。训练的过程就是通过优化神经网络,使这个估计更准确。

其中:

  • 对于 p ( x T ) p(\mathbf{x}_{T}) p(xT):直接使用预设的简单分布(如标准高斯)来计算其在 x T \mathbf{x}_{T} xT 点的概率密度。
  • 对于 p θ ( x t − 1 ∣ x t ) p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_{t}) pθ(xt1xt):将当前状态 x t \mathbf{x}_{t} xt 和时间步 t t t 输入到已训练(或正在训练)的神经网络中,得到定义该条件概率分布的参数(如高斯分布的均值和方差),然后计算 p θ ( x t − 1 ∣ x t ) p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_{t}) pθ(xt1xt) 的值。

(四)训练目标

训练的目标是最大化模型的对数似然。这是大多数生成模型的标准训练原则,即最大似然估计 (Maximum Likelihood Estimation, MLE)。我们希望调整模型的参数,使得模型赋予真实观测数据 x 0 \mathbf{x}_0 x0 的概率 p θ ( x 0 ) p_\theta(\mathbf{x}_{0}) pθ(x0) 尽可能大,也就是其对数 log ⁡ p θ ( x 0 ) \log p_\theta(\mathbf{x}_{0}) logpθ(x0) 尽可能大。
L ′ = ∫ q ( x 0 ) log ⁡ p θ ( x 0 ) d x 0 = ∫ q ( x 0 ) ⋅ log ⁡ [ ∫ q ( x 1 : T ∣ x 0 ) ⋅ p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) d x 1 : T ] d x 0 \begin{align} L' &= \int q(\mathbf{x}_{0}) \log p_\theta(\mathbf{x}_{0}) d\mathbf{x}_{0} \\ &= \int q(\mathbf{x}_{0}) \cdot \log \left[ \int q(\mathbf{x}_{1:T}|\mathbf{x}_{0}) \cdot p(\mathbf{x}_{T}) \prod_{t=1}^T \frac{p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_{t})}{q(\mathbf{x}_{t}|\mathbf{x}_{t-1})} d\mathbf{x}_{1:T} \right] d\mathbf{x}_{0} \end{align} L=q(x0)logpθ(x0)dx0=q(x0)log[q(x1:Tx0)p(xT)t=1Tq(xtxt1)pθ(xt1xt)dx1:T]dx0
L ′ L' L 代表了希望最大化的目标函数,即在真实数据分布 q ( x 0 ) q(\mathbf{x}_{0}) q(x0) 下,模型对数似然 log ⁡ p θ ( x 0 ) \log p_\theta(\mathbf{x}_{0}) logpθ(x0)期望值。它可以通过琴生不等式(Jensen’s inequality) 得到一个下界。琴生不等式:对于上凸函数 f ( x ) f(x) f(x),比如 log ⁡ ( x ) \log (x) log(x),有 E [ f ( X ) ] ≤ f ( E [ X ] ) \mathbb{E}[f(X)] \leq f(\mathbb{E}[X]) E[f(X)]f(E[X])。在上述公式中, log ⁡ \log log 函数作用于一个期望(积分)之外。我们可以将 log ⁡ \log log 函数移到期望(积分)内部,从而得到一个下界: log ⁡ E x 1 : T ∼ q ( x 1 : T ∣ x 0 ) [ W ] ≥ E x 1 : T ∼ q ( x 1 : T ∣ x 0 ) [ log ⁡ W ] \log \mathbb{E}_{\mathbf{x}_{1:T} \sim q(\mathbf{x}_{1:T}|\mathbf{x}_{0})}[W] \geq \mathbb{E}_{\mathbf{x}_{1:T} \sim q(\mathbf{x}_{1:T}|\mathbf{x}_{0})}[\log W] logEx1:Tq(x1:Tx0)[W]Ex1:Tq(x1:Tx0)[logW] 其中 W = p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) W = p(\mathbf{x}_{T}) \prod_{t=1}^T \frac{p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_{t})}{q(\mathbf{x}_{t}|\mathbf{x}_{t-1})} W=p(xT)t=1Tq(xtxt1)pθ(xt1xt) 是重要性权重。因此得到:
L ′ ≥ ∫ q ( x 0 ) ⋅ [ ∫ q ( x 1 : T ∣ x 0 ) ⋅ log ⁡ ( p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) ) d x 1 : T ] d x 0 = ∫ [ ∫ q ( x 0 ) ⋅ q ( x 1 : T ∣ x 0 ) ⋅ log ⁡ ( p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) ) d x 1 : T ] d x 0 = ∫ q ( x 0 : T ) ⋅ log ⁡ [ p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) ] d x 0 : T = E x 0 : T ∼ q ( x 0 : T ) [ log ⁡ W ] \begin{align} L' &\geq \int q(\mathbf{x}_{0}) \cdot \left[ \int q(\mathbf{x}_{1:T}|\mathbf{x}_{0}) \cdot \log \left( p(\mathbf{x}_{T}) \prod_{t=1}^T \frac{p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_{t})}{q(\mathbf{x}_{t}|\mathbf{x}_{t-1})} \right) d\mathbf{x}_{1:T} \right] d\mathbf{x}_{0} \\ & = \int \left[ \int q(\mathbf{x}_{0}) \cdot q(\mathbf{x}_{1:T}|\mathbf{x}_{0}) \cdot \log \left( p(\mathbf{x}_{T}) \prod_{t=1}^T \frac{p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_{t})}{q(\mathbf{x}_{t}|\mathbf{x}_{t-1})} \right) d\mathbf{x}_{1:T} \right] d\mathbf{x}_{0} \\ &= \int q(\mathbf{x}_{0:T}) \cdot \log \left[ p(\mathbf{x}_{T}) \prod_{t=1}^T \frac{p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_{t})}{q(\mathbf{x}_{t}|\mathbf{x}_{t-1})} \right] d\mathbf{x}_{0:T} \\ &= \mathbb{E}_{\mathbf{x}_{0:T} \sim q(\mathbf{x}_{0:T})}[\log W] \end{align} Lq(x0)[q(x1:Tx0)log(p(xT)t=1Tq(xtxt1)pθ(xt1xt))dx1:T]dx0=[q(x0)q(x1:Tx0)log(p(xT)t=1Tq(xtxt1)pθ(xt1xt))dx1:T]dx0=q(x0:T)log[p(xT)t=1Tq(xtxt1)pθ(xt1xt)]dx0:T=Ex0:Tq(x0:T)[logW]
下界是就是 E x 0 : T ∼ q ( x 0 : T ) [ log ⁡ W ] \mathbb{E}_{\mathbf{x}_{0:T} \sim q(\mathbf{x}_{0:T})}[\log W] Ex0:Tq(x0:T)[logW]以上推导是论文1中的形式

论文2中则写成了负对数似然和期望的形式,优化目标是最小化 L = − L ′ L = -L' L=L。由于直接优化对数似然通常很困难,所以我们转而优化它的一个界限——具体来说是证据下界 (Evidence Lower Bound, ELBO)。最大化ELBO等价于最小化负的ELBO。具体来说,首先将论文1中的 L ′ L' L 添加负号,并写为期望的形式:
L = − L ′ = − ∫ q ( x 0 ) log ⁡ p θ ( x 0 ) d x 0 = E x 0 ∼ q ( x 0 ) [ − log ⁡ p θ ( x 0 ) ] \begin{equation} L = -L' = -\int q(\mathbf{x}_{0}) \log p_\theta(\mathbf{x}_{0}) d\mathbf{x}_{0} = \mathbb{E}_{\mathbf{x}_0 \sim q(\mathbf{x}_0)}[-\log p_{\theta}(\mathbf{x}_0)] \end{equation} L=L=q(x0)logpθ(x0)dx0=Ex0q(x0)[logpθ(x0)]
上面我们已经证明过,在论文1需要最大化 L ′ L' L 的情况下,有:
L ′ ≥ E x 0 : T ∼ q ( x 0 : T ) [ log ⁡ W ] \begin{equation} L' \geq \mathbb{E}_{\mathbf{x}_{0:T} \sim q(\mathbf{x}_{0:T})}[\log W] \end{equation} LEx0:Tq(x0:T)[logW]
因此,有:
L = E x 0 ∼ q ( x 0 ) [ − log ⁡ p θ ( x 0 ) ] ≤ E x 0 : T ∼ q ( x 0 : T ) [ − log ⁡ W ] = E x 0 : T ∼ q ( x 0 : T ) [ − log ⁡ ( p ( x T ) ∏ t = 1 T p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) ) ] = E x 0 : T ∼ q ( x 0 : T ) [ − log ⁡ p ( x T ) − ∑ t ≥ 1 log ⁡ p θ ( x t − 1 ∣ x t ) q ( x t ∣ x t − 1 ) ] \begin{equation} \begin{aligned} L = \mathbb{E}_{\mathbf{x}_0 \sim q(\mathbf{x}_0)}[-\log p_{\theta}(\mathbf{x}_0)] &\leq \mathbb{E}_{\mathbf{x}_{0:T} \sim q(\mathbf{x}_{0:T})}[-\log W] \\ &= \mathbb{E}_{\mathbf{x}_{0:T} \sim q(\mathbf{x}_{0:T})}\left[-\log \left(p(\mathbf{x}_{T}) \prod_{t=1}^T \frac{p_\theta(\mathbf{x}_{t-1}|\mathbf{x}_{t})}{q(\mathbf{x}_{t}|\mathbf{x}_{t-1})}\right)\right] \\ &= \mathbb{E}_{\mathbf{x}_{0:T} \sim q(\mathbf{x}_{0:T})} \left[-\log p(\mathbf{x}_T) - \sum_{t \geq 1} \log \frac{p_{\theta}(\mathbf{x}_{t-1}|\mathbf{x}_t)}{q(\mathbf{x}_t|\mathbf{x}_{t-1})}\right] \end{aligned} \end{equation} L=Ex0q(x0)[logpθ(x0)]Ex0:Tq(x0:T)[logW]=Ex0:Tq(x0:T)[log(p(xT)t=1Tq(xtxt1)pθ(xt1xt))]=Ex0:Tq(x0:T)[logp(xT)t1logq(xtxt1)pθ(xt1xt)]
以上就是论文2中的公式 ( 3 ) (3) (3)

参考链接

  1. 扩散模型(Diffusion Model)奠基之作:DDPM 论文解读 - 知乎
  2. Denoising Diffusion Probabilistic Models 全过程概述 + 论文总结-CSDN博客
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值