生成模型 (1.3):Denoising Diffusion Probabilistic Model

生成模型 #生成模型 #DDPM 约 62 分钟 · 21499 字

引言

DDPMs (Denoising Diffusion Probabilistic Models) 是扩散生成模型的基石。和VAE与HVAE类似,DDPM在变分框架下解决复杂分布的建模问题,但DDPM通过一些巧妙的技巧,解决了VAE和HVAE所面临的一些问题。

DDPM的核心是下面两个随机过程:

  1. 前向过程(固定的编码器):在前向过程中,DDPM通过向数据中逐步注入高斯噪声 来逐步地破坏数据。随着加噪步数趋于无穷,原始数据就会被破坏为纯高斯噪声。因此DDPM的前向过程是固定的,没有可学习的参数。
  2. 反向过程(可学习的解码器):在反向过程中,DDPM使用神经网络 来学习如何从被破坏的纯噪声中还原得到原始数据。每一个去噪步骤都和VAE类似,希望从一个隐变量中还原原始的数据。

和VAE不同的是,DDPM使用固定的编码器,专注于提升解码器的去噪能力,因而展示出非常强大的生成能力和稳定性。

一、DDPM的数学模型

1.1. 前向过程

在DDPM中,前向过程使用一个固定的、不可学习的编码器来逐步破坏原始数据,直至其变为纯高斯噪声 。

前向过程的每一步可以通过下面的高斯转移核 (Gaussian transition kernel) 来描述:

(1)

其中, 是从真实数据分布中采样得到的样本。

超参数 表示第 步所加高斯噪声的方差,且满足 。为了表示方便,我们记 ,则高斯转移核等价于下面的迭代方程:

(2)

其中, 是来自标准高斯分布的独立同分布噪声。

由公式 ,我们可以写出在任意时间步 时,数据点 的概率分布(证明见附录):

(3)

其中,

(4)

同样地,我们也可以用递推式来表示:

(5)

由于 是一个递增序列,因此 ,即 ,因此 。

也就是说,当加噪步数 时,最终数据点会被破坏为纯高斯噪声:

(6)

此时破坏后的数据 的分布与原始数据 无关。

1.2. 反向去噪过程

DDPM的核心之处在于其反向去噪过程。在反向过程中,DDPM可以逐步地逆转前向过程中被破坏的数据。

反向过程是一个马尔可夫链,从纯高斯噪声 开始,目标是逐步将其中的噪声进行去除,直到产生一个服从原始数据分布的数据 。

因此,DDPM中最为关键的问题在于:我们如何能够精确地计算(至少是高效地近似)反向转移核 。这个问题的难点在于,去噪过程中每一个时间步上数据的概率分布 都极其复杂,因此我们很难利用贝叶斯定理等方式来快速得到这个反向转移核。

从这里可以看出DDPM和变分推断的相似性所在:这两者都是希望估计一个难解的复杂的后验概率。因此,在DDPM中也同样引入ELBO作为优化目标。在DDPM的原论文中是直接从ELBO的定义开始推导,在本文中,我们试图使用一种更加易于理解的方式:利用条件概率来得到一个可解的表达式。

1.2.1. 训练目标

我们的目标是对难解的反向转移核 进行精确的估计。为此,我们引入一个可解的变分分布 ,通过训练参数 来找到最优的近似,即我们希望找到如下的最优参数 :

(7)

通过贝叶斯定理,我们可以写出后验分布 的形式:

(8)

其中, 和 分别表示在第 步和第 步中数据的边缘分布,其表达式如下:

(9)

然而,由于原始数据分布 是未知的,因此这个积分不存在闭式解,即后验分布 是难解的。

1.2.2. 条件化技巧

DDPM的一个核心insight在于:我们在给定某个干净数据样本 的情况下对后验概率进行近似。这种“条件化”技巧虽然简单,但非常实用,是一种使得难解分布变得可解的常用技巧(我们在流模型中可以看到,通过 Conditioning Flows 来避免 Normalizing Flows 中对ODE的模拟):

(10)

为什么通过引入初始条件之后,就可以使得后验概率变得可解?这来自于前向过程中两个非常重要的性质:

  1. 前向过程具有马尔可夫性,即 ;
  2. 前向过程具有高斯性:即 服从高斯分布。

我们即将看到 (Lemma 1),这两个性质使得条件后验概率 也会服从高斯分布,因此其具有闭式解,是可解的。

更重要的是,这种巧妙的条件化技巧使得我们可以推导出在功能上和公式 等价的一个可解的优化目标。下面的 Theorem 1 说明了这一点。

Theorem 1 (优化边缘KL和条件KL的等价性). 我们有如下的等式成立:

(11)

其中, 是一个与参数 无关的常数。

更进一步,使得上式最小的变分分布满足:

(12)

定理1的完整证明在附录中。

定理1揭示了一个非常重要的等价性质:最小化两个边缘分布之间的KL散度,在数学上等价于最小化某些条件分布之间的KL散度。当我们引入条件分布之后, 是一个高斯分布,就变得可解了。下面的引理说明了这一点。

Lemma 1 (反向条件转移核). 是一个高斯分布,其形式如下:

(13)

其中,

(14)

引理1的完整证明在附录中。

二、建模反向转移核

定理1为我们揭示了DDPM的一个核心insight:边缘KL散度和条件KL散度在梯度上是等价的。

由于在引理1中,我们已经知道 是一个高斯分布,因此DDPM假设反向转移核 也是是一个高斯分布:

(15)

其中, 是可学习的均值,而 则是固定的常数。

因此,我们考虑优化每个时间步上的条件KL散度:

(16)

其中,。

在实际实现中,这个损失函数有多种实现方式:

2.1. mean prediction

由于所有分布都是高斯分布,因此公式 可以化简为:

(17)

我们对 取期望,并忽略与 无关的常数 之后,就能够得到DDPM的训练目标:

(18)

2.2. -prediction (noise prediction)

在实践中,一般不使用上面的mean prediction实现,而是会预测噪声 (noise prediction)。这两种方式是完全等价的,下面我们展示这一点。

前面我们提到,任何一个噪声样本 都可以由下面的表达式来生成:

(19)

代入公式 可以得到,均值的表达式可以写为如下形式(证明见附录):

(20)

因此,预测均值 和预测噪声 是完全等价的:

(21)

又由于均值和方差之间是线性关系,因此在训练目标中,二者可以完全等价替代,即:

(22)

二者只相差了与 相关的一个常数。

在实际实现中,我们一般使用下面的loss来训练DDPM模型,这是最常用的训练方式:

(23)

2.3. -prediction (clean prediction)

公式 同样描述了均值 与干净样本 之间的关系,因此还有一种等价的优化方式,称为 -prediction,即训练一个神经网络 从噪声样本 中预测干净样本 :

(24)

和上面的过程类似,由于均值和数据样本是线性关系,二者可以完全等价替代:

(25)

这也就引出了在预测干净样本时使用的损失函数:

(26)

需要补充的是,-prediction和 -prediction是完全等价的,因为:

(27)

三、DDPM中的ELBO

在公式 中,我们定义了如下的反向转移核:

(28)

其中, 是可学习的均值,而 则是固定的常数。

因此,我们可以写出DDPM模型的联合分布以及边缘分布:

(29)

借此,我们就能够和VAE或HVAE那样,写出DDPM中ELBO的形式。下面的定理2说明了这一点:

Theorem 2 (DDPM’s ELBO). 我们可以如下定义DDPM的ELBO项,这也是对数概率密度的下界:

(30)

其中,

(31)

定理2的证明在附录中。

ELBO中包括三项:

  • 用于保证前向过程能收敛到先验分布 上。只要我们选择合适的 ,使得 足够小,此时有 即可。在实践中我们一般有下面几种选择方式:
    1. 线性调度:;
    2. 余弦调度:。
  • 用于保证第一步的重建精度,我们一般通过蒙特卡洛估计来近似和优化这一项。在实践中,我们一般把这一步融合进入 的噪声估计loss中来优化。
  • 用于拉近变分分布 和真实反向转移核 之间的距离。正如我们之前介绍的,共有3中不同的实现方式,其中最常用的是预测噪声。

四、DDPM的采样

我们假设使用 -prediction 的方式进行训练,在训练完成后,我们得到了一个噪声预测模型 。

在采样过程中我们从一个纯噪声 开始,逐步使用噪声预测模型进行采样,直到得到干净样本 :

(32)

其中,。

附录

公式 (3) 的证明

下面我们证明在DDPM的前向过程中,如果使用如下的高斯转移核:

(33)

则在任意时间步 时,数据点 的概率分布为

(34)

其中,

(35)

我们使用数学归纳法。

归纳基:当 时,有 ,且 。

代入公式 得:

(36)

归纳步:假设当 时,公式 成立。

当 时,考虑从 到 的转移,我们有:

(37)

代入归纳假设,得:

(38)

我们计算 的均值和方差。由于 和 都是服从 的独立同分布随机向量,因此:

(39)

由于对高斯分布进行线性变换不改变其高斯性,因此 仍然服从高斯分布,即:

(40)

得证。

Proof on Theorem 1.

定理1描述了最小化边缘KL和条件KL的等价性,下面我们证明这一点。

首先,我们展开等式的右侧:

(41)

根据KL散度的定义:

(42)

代入上式得:

(43)

其中,第一项是和参数 无关的常数。

得证。

Proof on Lemma 1.

我们先重新说明一下符号定义。在DDPM的前向过程中,我们定义了如下的前向转移核:

(44)

我们记 ,则在任意时间步 时,数据点 的概率分布为:

(45)

其中,

(46)

引理1描述了条件后验分布 是一个高斯分布,其均值和方差分别为:

(47)

下面我们证明这一点。

根据贝叶斯定理,有:

(48)

由于前向过程具有马尔可夫性,即 ,于是:

(49)

由于等式右侧的三个分布都是高斯分布,因此所求条件后验分布也是一个高斯分布。

又由于分母的 与 无关,因此我们只需要计算 的均值和方差即可。

为了简化符号,我们令 。由定义,我们有:

(50)

令 ,,则我们有:

(51)

我们仅考虑上式的指数部分,在忽略常数项的情况下,我们对指数部分进行化简得到:

(52)

展开平方项:

(53)

我们仅保留与 有关的项,并代入上式得:

(54)

Remark. 考虑多元高斯分布:

(55)

将指数部分展开为二次型得:

(56)

因此,任意形如:

(57)

的表达式都对应着一个高斯分布,其中:

  • 精度矩阵(拟协方差)为:;
  • 均值满足:,即 。

这正好是一个高斯分布,其精度矩阵为:

(58)

均值为:

(59)

首先我们计算协方差矩阵,我们有:

(60)

因此,协方差矩阵为:

(61)

然后我们计算均值。我们有:

(62)

得证。

公式 (20) 的证明

下面我们证明均值表达式可以写为:

(63)

将 代入得:

(64)

其中, 前的系数可以化简为:

(65)

代入得:

(66)

得证。

Proof on Theorem 2.

定理2描述了DDPM中ELBO的形式,下面我们来证明这个ELBO是对数概率密度 的下界估计。

Step 1: 通过Jensen不等式写出ELBO的形式

由定义,我们可以写出联合分布和边缘分布的形式:

(67)

我们引入一个变分分布 ,并应用Jensen不等式得:

(68)

Step 2: 分解ELBO的形式

我们将变分分布 拆分为下面的形式:

(69)

代入ELBO中得:

(70)

进行一些合并得:

(71)

这第一项对应 ,第二项对应 。

我们将最后一项做一些变形:

(72)

因此,第三项正好就是 的形式。

得证。