论文名称:A Survey on Generative Diffusion Models(2023)
论文地址:https://ieeexplore.ieee.org/abstract/document/10419041
代码地址:https://github.com/chq1155/A-Survey-on-Generative-Diffusion-Model
1. 介绍
作者在本文中总结了扩散模型中基本算法的数学表达和推导过程,并对改进的扩散算法进行了全面的分类。同时,作者提供了扩散模型在计算机视觉、自然语言处理、生物信息学、语音处理中应用的广泛陈述,提出目前模型的局限性和扩散模型可能的进一步证明方向。
作者把现今扩散模型的改进分成四个主要类别:
1)抽样加速
2) 扩散过程设计 / 结构多样化
3)似然优化
4)降低维度
论文作者在github上整理了生成扩散模型领域近年各大改进方法,以及在计算机视觉、序列建模、音频、科学领域应用的相关论文和代码。
2. 概念介绍
上图表示几种常见生成模型,即生成对抗模型GAN、能量模型EBM、变分自编码器VAE、归一化流、扩散概率模型DPM,几者在结构上的差异。而下图为扩散概率模型的流程示意图,及先从一个图片不断加噪至白噪音,再通过不断减噪,最终生成一个新的图片。
2.1. 时间 & 状态
整个过程在连续或离散的时间轴内进行,其中时间分别表示为 t ∈ [0,1] 或 toT。噪声被递增地引入到初始分布中,及从数据分布po中采样得到的起始状态xo。通过一系列噪声注入,该分布逐渐收敛到已知的噪声分布 pT(p1) (通常是高斯分布),称为先验状态 xT(x1) 。位于起始状态和先验状态之间的状态被称为中间状态xt,每个中间状态都与边际分布相关。通过这种方法,扩散模型能够探索数据分布从起始状态到先验状态的进展通过一系列中间状态发生,其中每个状态对应于扩散过程中的特定时间点。
2.2. 正向/反向过程 & 过渡核
在扩散模型中,起始状态到可管理噪声的转换是通过正向过程F进行的。相反地,去噪过程在相反方向上操作,逐渐将先前状态去噪回到起始状态。这两个过程都涉及使用转换核来促进任何两个状态之间的转换。
正向过程:
反向过程:
2.3. 由离散到连续
取足够小的扰动核,这对离散过程将推广到连续过程。由于离散的马尔可夫链的扩散模型可以集成到连续的随机微分方程(Stochastic Differential Equation,简称SDD)框架中,其中生成过程相当于反转固定的正向扩散过程。储备常微分方程边际等效于反向微分方程。
3. 背景
去噪扩散概率模型(2020)
DDPM = Denoising Diffusion Probailistic Model
基于分数的生成模型(2020)
SGM = Score-based Generative Model
3.1. DDPM
3.1.1. 前向过程
基于上述框架,DDPM选择噪声系数序列 𝛽1, 𝛽2, …, 𝛽𝑇 作为马尔可夫转移核。常见模式选择包括常数时间表、线性时间表和余弦时间表。
【常数时间表】
系数始终保持固定值,简化了训练,但可能导致样本的多样性或精细度降低。
【线性时间表】
系数随时间线性变化,逐渐从高噪声水平过渡到低噪声水平以优化样本。
【余弦时间表】
系数随时间呈余弦形式周期性变化,从而实现对不同阶段的噪声水平的细微控制,提高了样本质量。
DDPM前向步骤定义为
βt 是预定义的噪声比例参数,ϵ 是从标准正态分布中抽取的噪声。
选择前向核的想法最初源于非平衡热力学中的扩散过程,通过从xo到xT的前向转移核的部分,我们有以下前向扩散过程,该过程通过马尔可夫核逐渐将高斯噪声添加到数据中。
3.1.2. 反向过程
反向过程经过一个从xT到xo的反向序列
DDPM的目标是通过反向过程中的一系列去噪操作获得的模型分布近似数据分布
3.1.3. 扩散训练目标
为了通过模型分布近似数据分布,扩散模型被训练为最小化负对数似然(NLL)的变分界限,类似于VAE。
由贝叶斯公式可得
作以下定义
保持上述参数化并且将xt重新参数化为xt(xo, 𝜎),Lt-1可以被视为两个平均系数之间l2损失的期望。
到目前为止,大多数扩散模型都使用DDPM的训练策略。但也有一些例外,改进后的DDPM提出将Lsimple与其他辅助目标相结合。然而,在这一共同目标中,Lsimple仍然发挥着主要作用。在训练之后,神经预测器用于祖先采样的反向过程。
3.2. SGM
Score将DDPM中的离散时间方案扩展到基于随机微分方程的统一连续时间框架。给出了基于分数阶的DDPM的连续构造,并提出了一种密度估计的常微分方程框架–概率流常微分方程。该方法最初受维纳过程 / 布朗运动启发,即悬浮在液体或气体中的微粒做永不停息的无规则运动。
【维纳过程 / 布朗运动】
若一个随机过程 {X(t), t >=0} 满足以下条件,则称X(t)是布朗运动或维纳过程。
- X(t)是独立增量过程
- 任意s, t >= 0,X(t + s) -X(s) ~ N(0, c^2*t)
(当c = 1时,属于标准布朗运动)- X(t)关于t是连续函数
【随机微分方程】
一类含有随机项(如维纳过程)的微分方程,用于描述系统状态随时间的演变,这种演变不仅受到确定性因素的影响,还受到随机性因素的作用
dXt = a(Xt, t)dt + b(Xt, t)dWt
Xt:随机过程,表示系统状态
a(Xt, t):漂移项,表示系统随时间确定性变化的部分
b(Xt, t):扩散项,表示系统变化中的随机性
Wt是维纳过程,表示随机扰动
dt和dWt分别代表时间和维纳过程的微小变化
3.2.1. 前向过程
通过随机微分方程,扩散过程可被看作一个连续的过程,且其的解等于Ito SDE的解。
其中f(., t) 是x(t)的漂移系数,g(t)表示简化版本的扩散系数(假设与x无关),wt是标准维纳过程。
将时刻t的边际分布记作Pt(x)。因此,Pt记作没有从Po信息的先验分布。当系数在段上连续,则前向SDE方程存在唯一解。基于这种SDE框架,存在两种前向过程,分别称为变异保持(VP)和变异爆炸(VP)
其中VP对应于DDPM框架中的连续扩展,其中𝛽(𝑡)为𝛽t连续时间变量。
3.2.2. 反向过程
扩散模型的采样通过正向过程的相应逆时采样完成。
其中xo是从po分布中的采样,𝜆(𝑡)是保持时间相关损失保持在相同幅度的正权重函数。最优情况下,去噪得分匹配目标的加权和(如下式所示)等于真正分数函数∇𝑥log𝑝P𝑡(𝑥)。同时,分数函数S也可看做是DDPM中神经预测𝝐的重参数化。当从近场移动到远场,扰动数据受到数据分布中更多模式的影响。
3.2.3. 概率流ODE
(ODE指常微分方程)
概率流常微分方程指支持确定性过程的连续时间常微分方程,用于描述概率密度随时间演化的偏微分方程,与随机过程具有相同的边际概率分布。被证明任何类型的扩散过程都可以导出为一种特殊形式的常微分方程,其相应表示如下
由于没有随机性,与随机微分方程相比,概率流常微分方程可用更大的步长求解。