生成模型 (1.3):Denoising Diffusion Probabilistic Model
引言
DDPMs (Denoising Diffusion Probabilistic Models) 是扩散生成模型的基石。和VAE与HVAE类似,DDPM在变分框架下解决复杂分布的建模问题,但DDPM通过一些巧妙的技巧,解决了VAE和HVAE所面临的一些问题。
DDPM的核心是下面两个随机过程:
- 前向过程(固定的编码器):在前向过程中,DDPM通过向数据中逐步注入高斯噪声
来逐步地破坏数据。随着加噪步数趋于无穷,原始数据就会被破坏为纯高斯噪声。因此DDPM的前向过程是固定的,没有可学习的参数。 - 反向过程(可学习的解码器):在反向过程中,DDPM使用神经网络
来学习如何从被破坏的纯噪声中还原得到原始数据。每一个去噪步骤都和VAE类似,希望从一个隐变量中还原原始的数据。
和VAE不同的是,DDPM使用固定的编码器,专注于提升解码器的去噪能力,因而展示出非常强大的生成能力和稳定性。
一、DDPM的数学模型
1.1. 前向过程
在DDPM中,前向过程使用一个固定的、不可学习的编码器来逐步破坏原始数据,直至其变为纯高斯噪声
前向过程的每一步可以通过下面的高斯转移核 (Gaussian transition kernel) 来描述:
其中,
超参数
其中,
由公式
其中,
同样地,我们也可以用递推式来表示:
由于
也就是说,当加噪步数
此时破坏后的数据
1.2. 反向去噪过程
DDPM的核心之处在于其反向去噪过程。在反向过程中,DDPM可以逐步地逆转前向过程中被破坏的数据。
反向过程是一个马尔可夫链,从纯高斯噪声
因此,DDPM中最为关键的问题在于:我们如何能够精确地计算(至少是高效地近似)反向转移核
从这里可以看出DDPM和变分推断的相似性所在:这两者都是希望估计一个难解的复杂的后验概率。因此,在DDPM中也同样引入ELBO作为优化目标。在DDPM的原论文中是直接从ELBO的定义开始推导,在本文中,我们试图使用一种更加易于理解的方式:利用条件概率来得到一个可解的表达式。
1.2.1. 训练目标
我们的目标是对难解的反向转移核
通过贝叶斯定理,我们可以写出后验分布
其中,
然而,由于原始数据分布
1.2.2. 条件化技巧
DDPM的一个核心insight在于:我们在给定某个干净数据样本
为什么通过引入初始条件之后,就可以使得后验概率变得可解?这来自于前向过程中两个非常重要的性质:
- 前向过程具有马尔可夫性,即
; - 前向过程具有高斯性:即
服从高斯分布。
我们即将看到 (Lemma 1),这两个性质使得条件后验概率
更重要的是,这种巧妙的条件化技巧使得我们可以推导出在功能上和公式
Theorem 1 (优化边缘KL和条件KL的等价性). 我们有如下的等式成立:
其中,
更进一步,使得上式最小的变分分布满足:
定理1的完整证明在附录中。
定理1揭示了一个非常重要的等价性质:最小化两个边缘分布之间的KL散度,在数学上等价于最小化某些条件分布之间的KL散度。当我们引入条件分布之后,
Lemma 1 (反向条件转移核).
其中,
引理1的完整证明在附录中。
二、建模反向转移核
定理1为我们揭示了DDPM的一个核心insight:边缘KL散度和条件KL散度在梯度上是等价的。
由于在引理1中,我们已经知道
其中,
因此,我们考虑优化每个时间步上的条件KL散度:
其中,
在实际实现中,这个损失函数有多种实现方式:
2.1. mean prediction
由于所有分布都是高斯分布,因此公式
我们对
2.2. -prediction (noise prediction)
在实践中,一般不使用上面的mean prediction实现,而是会预测噪声 (noise prediction)。这两种方式是完全等价的,下面我们展示这一点。
前面我们提到,任何一个噪声样本
代入公式
因此,预测均值
又由于均值和方差之间是线性关系,因此在训练目标中,二者可以完全等价替代,即:
二者只相差了与
在实际实现中,我们一般使用下面的loss来训练DDPM模型,这是最常用的训练方式:
2.3. -prediction (clean prediction)
公式
和上面的过程类似,由于均值和数据样本是线性关系,二者可以完全等价替代:
这也就引出了在预测干净样本时使用的损失函数:
需要补充的是,
三、DDPM中的ELBO
在公式
其中,
因此,我们可以写出DDPM模型的联合分布以及边缘分布:
借此,我们就能够和VAE或HVAE那样,写出DDPM中ELBO的形式。下面的定理2说明了这一点:
Theorem 2 (DDPM’s ELBO). 我们可以如下定义DDPM的ELBO项,这也是对数概率密度的下界:
其中,
定理2的证明在附录中。
ELBO中包括三项:
用于保证前向过程能收敛到先验分布 上。只要我们选择合适的 ,使得 足够小,此时有 即可。在实践中我们一般有下面几种选择方式:- 线性调度:
; - 余弦调度:
。
- 线性调度:
用于保证第一步的重建精度,我们一般通过蒙特卡洛估计来近似和优化这一项。在实践中,我们一般把这一步融合进入 的噪声估计loss中来优化。 用于拉近变分分布 和真实反向转移核 之间的距离。正如我们之前介绍的,共有3中不同的实现方式,其中最常用的是预测噪声。
四、DDPM的采样
我们假设使用
在采样过程中我们从一个纯噪声
其中,
附录
公式 (3) 的证明
下面我们证明在DDPM的前向过程中,如果使用如下的高斯转移核:
则在任意时间步
其中,
我们使用数学归纳法。
归纳基:当
代入公式
归纳步:假设当
当
代入归纳假设,得:
我们计算
由于对高斯分布进行线性变换不改变其高斯性,因此
得证。
Proof on Theorem 1.
定理1描述了最小化边缘KL和条件KL的等价性,下面我们证明这一点。
首先,我们展开等式的右侧:
根据KL散度的定义:
代入上式得:
其中,第一项是和参数
得证。
Proof on Lemma 1.
我们先重新说明一下符号定义。在DDPM的前向过程中,我们定义了如下的前向转移核:
我们记
其中,
引理1描述了条件后验分布
下面我们证明这一点。
根据贝叶斯定理,有:
由于前向过程具有马尔可夫性,即
由于等式右侧的三个分布都是高斯分布,因此所求条件后验分布也是一个高斯分布。
又由于分母的
为了简化符号,我们令
令
我们仅考虑上式的指数部分,在忽略常数项的情况下,我们对指数部分进行化简得到:
展开平方项:
我们仅保留与
Remark. 考虑多元高斯分布:
(55) 将指数部分展开为二次型得:
(56) 因此,任意形如:
(57) 的表达式都对应着一个高斯分布,其中:
- 精度矩阵(拟协方差)为:
; - 均值满足:
,即 。
这正好是一个高斯分布,其精度矩阵为:
均值为:
首先我们计算协方差矩阵,我们有:
因此,协方差矩阵为:
然后我们计算均值。我们有:
得证。
公式 (20) 的证明
下面我们证明均值表达式可以写为:
将
其中,
代入得:
得证。
Proof on Theorem 2.
定理2描述了DDPM中ELBO的形式,下面我们来证明这个ELBO是对数概率密度
Step 1: 通过Jensen不等式写出ELBO的形式
由定义,我们可以写出联合分布和边缘分布的形式:
我们引入一个变分分布
Step 2: 分解ELBO的形式
我们将变分分布
代入ELBO中得:
进行一些合并得:
这第一项对应
我们将最后一项做一些变形:
因此,第三项正好就是
得证。