基于扩散的生成模型架构理论综述

97 阅读40分钟

现有的生成建模技术在很大程度上可以根据它们如何表示概率分布分为两类。
1.基于似然的模型,通过(近似)最大似然直接学习分布的概率密度(或质量)函数。典型的基于似然的模型包括自回归模型、归一化流动模型、基于能量的模型 (EBM) 和变分自编码器 (VAE)。
2.隐式生成模型,其中概率分布由其采样过程的模型隐式表示。最突出的例子是生成对抗网络(GAN),其中通过用神经网络变换随机高斯向量来合成来自数据分布的新样本。
基于似然的模型又分为:精确的似然模型、近似的似然模型。然而,基于似然的模型和隐式生成模型都有很大的局限性。基于似然的模型要么需要对模型架构进行严格的限制,以确保似然计算的可处理的归一化常数,要么必须依靠代理目标来近似最大似然训练。另一方面,隐式生成模型通常需要对抗性训练,这是出了名的不稳定,并可能导致模式崩溃。
另一种表示概率分布的方法,这些方法可能会规避其中的几个限制。关键思想是对数概率密度函数的梯度进行建模,该量通常称为 (Stein) 分数函数。这种基于分数的模型不需要具有可处理的归一化常数,并且可以通过分数匹配直接学习。
基于似然和隐式生成可以认为把生成看成是随机分布拟合问题,也就是把生成问题建模成一个随机分布。SDE是把生成问题看成随机过程,也就是把生成问题建模成一个多个随机分布的过程问题。基于分数(SGMs)是按模型求解维度来划分,没有直接对生成问题做建模,而是认为生成模型可以是任何分布(随机分布或者随机过程)直接通过分数方式可以把问题求解出来最后通过逆过程得到生成内容。
这篇文章主要集中在扩散生成模型介绍,包括:DPMs、基于分数模型、SDE。

image.png

文章叙述逻辑

1.通过历史故事回溯,看看大佬当时是如何把生成问题抽象成数学模型
2.通过历史回溯,看看大佬是如何对抽象数学模型做求解优化改进
3.把问题做学科分类,更工整介绍不同类扩散生成算法

背景

“一滴蓝色墨水在水容器中扩散。起初,它在一个地方形成一个黑色的斑点。此时,如果您想计算在容器的某个小体积中找到墨水分子的概率,则需要一个概率分布来清晰地模拟墨水开始扩散之前的初始状态。但这种分布很复杂,因此很难采样。
然而,最终墨水扩散到整个水中,使其呈现淡蓝色。这导致分子的概率分布更加简单、更加均匀,可以用简单的数学表达式来描述。非平衡热力学描述了扩散过程中每一步的概率分布。至关重要的是,每个步骤都是可逆的——通过足够小的步骤,您可以从简单的分布回到复杂的分布。”
————墨水扩散物理模型

生成问题抽象成扩散模型

1.生成图是一个复杂概率分布,很难用精确函数表示
2.通过多步加噪来模拟扩散过程,每一步条件概率可以用简单函数表示
3.扩散到稳态,图像像素分布符合高斯分布
4.逆扩散过程,把高斯噪声变成图片
Sohl-Dickstein 使用扩散原理开发了一种生成建模算法。这个想法很简单:算法首先将训练数据集中的复杂图像转化为简单的噪声——类似于从一滴墨水变成扩散的浅蓝色水——然后教系统如何反转该过程,将噪声转化为图像。
这是它的工作原理。首先,该算法从训练集中获取图像。和之前一样,假设每百万像素都有一些值,我们可以将图像绘制为百万维空间中的一个点。该算法在每个时间步长处向每个像素添加一些噪声,相当于一个小时间步长后墨水的扩散。随着这个过程的继续,像素的值与原始图像中的值的关系越来越小,并且像素看起来更像是简单的噪声分布。 (该算法还在每个时间步将每个像素值稍微向原点移动,即所有这些轴上的零值。这种移动可以防止像素值变得太大而无法轻松处理计算机。)
对数据集中的所有图像执行此操作,百万维空间中最初复杂的点分布(无法轻松描述和采样)将变成围绕原点的简单、正态分布的点。
“转换序列非常缓慢地将数据分布变成一个大噪音球,”Sohl-Dickstein 说。这个“转发过程”为您提供了一个可以轻松采样的分布。

DPM求解

Sohl-Dickstein 在 2015 年发布了他的扩散模型算法,但仍然远远落后于 GAN 的能力。虽然扩散模型可以对整个分布进行采样,并且永远不会只输出图像的子集,但图像看起来更糟,而且过程太慢。 “我认为当时这并不令人兴奋,”索尔-迪克斯坦说。

需要两名学生(他们都不认识 Sohl-Dickstein 或彼此)将这项最初工作中的点与 DALL·E 2 这样的现代扩散模型联系起来。第一个是宋,当时是斯坦福大学的博士生。 2019 年,他和他的顾问发布了一种用于构建生成模型的新方法,该方法不估计数据(高维表面)的概率分布。相反,它估计分布的梯度(将其视为高维表面的斜率)。
Song 发现,如果他首先用增加的噪声水平扰动训练数据集中的每个图像,然后要求他的神经网络使用分布的梯度来预测原始图像,从而有效地对其进行去噪,那么他的技术效果最好。经过训练后,他的神经网络可以获取从简单分布中采样的噪声图像,并逐步将其转回代表训练数据集的图像。图像质量很棒,但他的机器学习模型采样速度非常慢。他在不了解索尔-迪克斯坦的工作的情况下做到了这一点。 “我根本不知道扩散模型,”宋说。 “我们 2019 年的论文发表后,我收到了 Jascha 发来的电子邮件。他向我指出,[我们的模型]有着非常紧密的联系。”

DDPM求解

2020 年,第二位学生看到了这些联系,并意识到宋的工作可以改进 Sohl-Dickstein 的扩散模型。 Jonathan Ho 最近在加州大学伯克利分校完成了生成建模方面的博士研究,但他仍在继续研究。 “我认为这是机器学习中数学上最美丽的分支学科,”他说。
Ho 利用 Song 的一些想法以及神经网络领域的其他进展重新设计并更新了 Sohl-Dickstein 的扩散模型。 “我知道,为了引起社区的关注,我需要让模型生成漂亮的样本,”他说。 “我确信这是我当时能做的最重要的事情。”
他的直觉很准。 Ho 和他的同事于 2020 年在一篇题为“去噪扩散概率模型”的论文中宣布了这种新的改进扩散模型。它很快成为一个里程碑,研究人员现在将其简称为 DDPM。根据一项图像质量基准(将生成图像的分布与训练图像的分布进行比较),这些模型匹配或超越了所有竞争的生成模型,包括 GAN。没过多久,大玩家就注意到了。现在,DALL·E 2、Stable Diffusion、Imagen 和其他商业模型都使用了 DDPM 的某些变体。

小结

我们对上面的故事做一个小结,研究者通过观察墨水滴入水中扩散的观察,发现生成问题是一个扩散的逆过程。把生成问题建模成逆扩散过程,有了数学模型研究者提出了对问题求解方案:DPM、DDPM。有了求解方案,发现求解存在:1.生成效果不好,无法提升效果 2.求解速度很慢,性能是个问题。针对对一个问题需要做的是对扩散生成做更深入的理论研究:1.数学模型和生成的物理意义映射 2.验证数学模型和物理意义的合理性 3.验证映射满足的前提 4.验证这个数学模型的效果上下界,是否有办法提升下界,上界较高。针对第二个问题,是在第一个问题能够较好的解决后再做的一个数值求解加速问题。
问题抽象:把生成问题看成是扩散随机过程
建模:扩散模型,随机过程
求解器:SDE、ODE、PDE求解
算法:DDPM、Score-SDE、SGM、薛定谔桥
求解技巧:

image.png

算法介绍

DDPM

DPM

扩散模型可以被视为变分自编码器(VAE)的一个扩展。在VAE模型中,主要涉及两个变量: x和 z。自编码的过程包括两个主要步骤:首先,将输入x编码成z;然后,将 z解码回 x。这里,x 代表编码器的输入和解码器的输出,z代表编码器的输出和解码器的输入。如图所示,p(z|x) 对应编码过程,而 p(x|z) 对应解码过程。x是可观测的变量,而 z是不可观测的隐藏变量。

变分自编码器(VAE) 把 VAE 的编码过程扩展成多次,从图上看,形如一个马尔科夫链的链式结构。 整个链是双向的,从左到右是一个逐步编码的过程,相当于把 VAE 的编码器循环执行了 T 次; 从右到左是一个逐步解码的过程,相当于把 VAE 的解码器循环执行了 T 次。 把编码过程称为前向过程(Forward Trajectory),解码过程称逆向过程(Reverse Trajectory), 无论前向还是逆向,每一个步骤(时刻)t仅与它的上一个步骤(时刻)相关, 这是一个典型的马尔科夫过程(Markov chain)。把 VAE 扩展成马尔科夫链式结构就得到了 MHVAE, MHVAE 是扩散模型的雏形。

image.png image.png

前向-后项过程

上图所示是一个马尔科夫链式结构的贝叶斯网络(有向图网络),x0x_0 是模型的起点变量代表真实图片的分布(或者说随机变量)。 从 x0x_0开始,按照链式结构逐步的演变成一个标准的高斯分布xTx_T。 整个网络的联合概率分布可以表示为 p(x0:T)p(x_{0:T}), 前向过程按照从左到右的顺序把一个真实图片逐步添加噪声,并最终变成一个纯粹的随机高斯变量的过程。前向联合概率如下:
q(x0:T)=q(x0)t=1Tq(xtxt1)1q(x_{0:T}) = q(x_0) \prod_{t=1}^T q(x_t|x_{t-1}) (1)
从右到左的顺序,正好是前向扩散过程的逆过程,所以称之为逆过程, 从一个纯粹的高斯噪声(标准高斯分布)随机变量逐步演变到一张真实图片 。逆向过程联合概率分布如下:
p(x0:T)=p(xT)t=T1p(xt1xt)2p(x_{0:T}) = p(x_T) \prod_{t=T}^1 p(x_{t-1}|x_{t}) (2)

前向过程

真实图片的概率分布是未知的,所以q(x0)q(x_0)无法得到;但是我们能得到意图真实图像数据,也就是我们有观测样本x0x_0,x1:Tx_{1:T}是隐藏状态。把求解前向联合概率图q(x0:T)q(x_{0:T})问题转成给定观测值求解条件概率q(x1:Tx0)q(x_{1:T}|x_0)问题。
q(x1:Tx0)=q(x1x0)t=2Tq(xtxt1)=t=1Tq(xtxt1)3q(x_{1:T}|x_0) = q(x_1|x_0) \prod_{t=2}^T q(x_t|x_{t-1}) = \prod_{t=1}^T q(x_t|x_{t-1}) (3)
q(xtxt1)q(x_t|x_{t-1})是线性高斯变换,方差与xt1x_{t-1}无关为βtI\beta_t \textit{I}。其中0<β1<β2<βT<10 \lt \beta_1 \lt \beta_2 \lt \dots \beta_T \lt 1,模拟扩散的物理过程前期方差较小,添加的噪声少,扩散速度慢;随着方差逐步加大,添加的噪声越来越多,扩散的速度加快。βt\beta_t是一个超参,人为设定好就可以。定义q(xtxt1)q(x_t|x_{t-1})均值μxt\mu_{x_t}xt1x_{t-1}线性关系,比例为 αt=1βt\alpha_t = 1-\beta_t
$\mu_{x_t} = \sqrt{\alpha_t} \ x_{t-1} (4) \

μxt=αt xt14\mu_{x_t} = \sqrt{\alpha_t} \ x_{t-1} (4)
Σxt=βtI=(1αt)I(5)\Sigma_{x_t} = \beta_t \textit{I} = (1- \alpha_t ) \textit{I} (5)


得到:
q(x_tx_t1)=N(α_t x_t1,(1α_t)I)6q(x\_t|x\_{t-1}) = \mathcal{N} (\sqrt{\alpha\_t} \ x\_{t-1}, (1- \alpha\_t ) \textit{I} ) (6)

xt=αt xt1+N(0,(1αt)I)=αt xt1+1αt ϵ   ,ϵN(0,I)7\begin{align}\begin{aligned}x_{t} &=\sqrt{\alpha_t} \ x_{t-1} + \mathcal{N} (0, (1- \alpha_t ) \textit{I} )\\&=\sqrt{\alpha_t} \ x_{t-1} + \sqrt{1- \alpha_t } \ \epsilon \ \ \ ,\epsilon \sim \mathcal{N} (0, \textit{I} )\end{aligned}\end{align} (7)


所以前向过程是一个确定的线性高斯变化,不需要进行参数化表示,不需要模型学习。计算每一时刻的x_tx\_t,可以写一个循环从时刻0到t公式(6)循环就可以得到。然而这样计算非常费时,有没可能一步就可以求解到任意时刻x_tx\_t。得益于线性高斯假设,可以推导出任意时刻一步到位求解方法。

xt=αt xt1+1αt ϵt=αt(αt1 xt2+1αt1 ϵt1)+1αt ϵt=αtαt1 xt2+αtαtαt1 ϵt1+1αt ϵt两个相互独立的0均值的高斯分布相加=αtαt1 xt2+αtαtαt12+1αt2 ϵ两个方差相加,用一个新的高斯分布代替=αtαt1 xt2+1αtαt1 ϵ=...=i=1tαi x0+1i=1tαi ϵ=αˉt x0+1αˉt ϵ   ,αˉ=i=1tαi,  ϵN(0,I)N(αˉt x0,(1αˉt)I)8\begin{align}\begin{aligned}x_t &= \sqrt{\alpha_t} \ x_{t-1} + \sqrt{1-\alpha_t} \ \epsilon_{t}\\&= \sqrt{\alpha_t} \left( \sqrt{\alpha_{t-1}} \ x_{t-2} + \sqrt{1-\alpha_{t-1}} \ \epsilon_{t-1} \right ) + \sqrt{1-\alpha_t} \ \epsilon_{t}\\&= \sqrt{\alpha_t \alpha_{t-1} } \ x_{t-2} + \underbrace{ \sqrt{\alpha_t - \alpha_t \alpha_{t-1} }\ \epsilon_{t-1} + \sqrt{1- \alpha_t} \ \epsilon_{t} }_{\text{两个相互独立的0均值的高斯分布相加}}\\ &= \sqrt{\alpha_t \alpha_{t-1} } \ x_{t-2} + \underbrace{ \sqrt{ \sqrt{\alpha_t - \alpha_t \alpha_{t-1} }^2 + \sqrt{1- \alpha_t}^2 } \ \epsilon }_{\text{两个方差相加,用一个新的高斯分布代替}}\\&= \sqrt{\alpha_t \alpha_{t-1} } \ x_{t-2} + \sqrt{1- \alpha_t \alpha_{t-1}} \ \epsilon\\&= ...\\&= \sqrt{\prod_{i=1}^t \alpha_i} \ x_0 + \sqrt{1- \prod_{i=1}^t \alpha_i } \ \epsilon\\&= \sqrt{\bar{ \alpha}_t } \ x_0 + \sqrt{1- \bar{ \alpha}_t } \ \epsilon \ \ \ , \bar{\alpha} = \prod_{i=1}^t \alpha_i ,\ \ \epsilon \sim \mathcal{N}(0,\textit{I})\\&\sim \mathcal{N}(\sqrt{\bar{\alpha}_t } \ x_0, (1- \bar{ \alpha}_t) \textit{I})\end{aligned}\end{align} (8)

后向过程

p(x0:T)=p(xT)t=T10p(xtxt+1)p(x_{0:T}) = p(x_T) \prod_{t={T-1}}^0 p(x_{t}|x_{t+1})
其中p(xT)p(x_T)是标准高斯分布p(xT)N(0,I)p(x_T) \sim \mathcal{N}(0,\textit{I})pθ(xtxt+1)p_{\theta}(x_{t}|x_{t+1})没有解析解难以计算。用一个神经网络学习pθ(xtxt+1)p_{\theta}(x_{t}|x_{t+1}),把学习好的网络求解pθ(xtxt+1)p_{\theta}(x_{t}|x_{t+1})代入(2)式就可以从高斯噪声生成一张真实图。
注:p(xtxt+1)p(x_t|x_{t+1})真实数据分布,pθ(xtxt+1)p_{\theta}(x_{t}|x_{t+1})参数化网络学习到的数据分布。

设计学习模型

优化目标:

极大观测数据的对数似然,网络联合概率分布为p(x0:T)p(x_{0:T}),只有观测数据x0x_0,没有x1:Tx_{1:T}观测样本。所以把极大联合概率分布p(x0:T)p(x_{0:T})问题转为极大边缘概率p(x0)p(x_0)
p(x0)=p(x0:T)dx1:T9p(x_0) = \int p(x_{0:T}) dx_{1:T} (9)
lnp(x0)\ln p(x_0)包含隐变量积分无法直接极大化,所以用它的下界函数(ELBO)替代。下面是下界函数推导过程:

lnp(x0)=lnp(x0:T)dx1:T=lnp(x0:T)q(x1:Tx0)q(x1:Tx0)dx1:T=lnEq(x1:Tx0)[p(x0:T)q(x1:Tx0)]Eq(x1:Tx0)[lnp(x0:T)q(x1:Tx0)]=Eq(x1:Tx0)[lnp(xT)t=1Tpxθ(xt1xt)t=1Tq(xtxt1)]=Eq(x1:Tx0)[lnp(xT)pxθ(x0x1)t=2Tpxθ(xt1xt)q(xTxT1)t=1T1q(xtxt1)]=Eq(x1:Tx0)[lnp(xT)pxθ(x0x1)t=1T1pxθ(xtxt+1)q(xTxT1)t=1T1q(xtxt1)]=Eq(x1:Tx0)[lnp(xT)pxθ(x0x1)q(xTxT1)]+Eq(x1:Tx0)[lnt=1T1pxθ(xtxt+1)q(xtxt1)]=Eq(x1:Tx0)[lnpxθ(x0x1)]+Eq(x1:Tx0)[lnp(xT)q(xTxT1)]+Eq(x1:Tx0)[t=1T1lnpxθ(xtxt+1)q(xtxt1)]=Eq(x1:Tx0)[lnpxθ(x0x1)]+Eq(x1:Tx0)[lnp(xT)q(xTxT1)]+t=1T1Eq(x1:Tx0)[lnpxθ(xtxt+1)q(xtxt1)]=Eq(x1x0)[lnpxθ(x0x1)]+Eq(xT1,xTx0)[lnp(xT)q(xTxT1)]+t=1T1Eq(xt1,xt,xt+1x0)[lnpxθ(xtxt+1)q(xtxt1)]=Eq(x1x0)[lnpθ(x0x1)]reconstruction termEq(xT1x0)[KLq(xTxT1)p(xT)]prior matching termt=1T1Eq(xt1,xt+1x0)[KLq(xtxt1)pθ(xtxt+1)]consistency term10\begin{align} {\ln p(x_0)} &= {\ln \int p(x_{0:T}) dx_{1:T}}\\ &= {\ln \int \frac{p(x_{0:T})q(x_{1:T}|x_0)}{q(x_{1:T}|x_0)} dx_{1:T}}\\ &= {\ln \mathbb{E}_{q(x_{1:T}|x_0)}\left[\frac{p(x_{0:T})}{q(x_{1:T}|x_0)}\right]}\\ &\geq {\mathbb{E}_{q(x_{1:T}|x_0)}\left[\ln \frac{p(x_{0:T})}{q(x_{1:T}|x_0)}\right]}\\ &= {\mathbb{E}_{q(x_{1:T}|x_0)}\left[\ln \frac{p(x_T)\prod_{t=1}^{T}p_{x{\theta}}(x_{t-1}|x_t)}{\prod_{t = 1}^{T}q(x_{t}|x_{t-1})}\right]}\\ &= {\mathbb{E}_{q(x_{1:T}|x_0)}\left[\ln \frac{p(x_T)p_{x{\theta}}(x_0|x_1)\prod_{t=2}^{T}p_{x{\theta}}(x_{t-1}|x_t)}{q(x_T|x_{T-1})\prod_{t = 1}^{T-1}q(x_{t}|x_{t-1})}\right]}\\ &= {\mathbb{E}_{q(x_{1:T}|x_0)}\left[\ln \frac{p(x_T)p_{x{\theta}}(x_0|x_1)\prod_{t=1}^{T-1}p_{x{\theta}}(x_{t}|x_{t+1})}{q(x_T|x_{T-1})\prod_{t = 1}^{T-1}q(x_{t}|x_{t-1})}\right]}\\ &= {\mathbb{E}_{q(x_{1:T}|x_0)}\left[\ln \frac{p(x_T)p_{x{\theta}}(x_0|x_1)}{q(x_T|x_{T-1})}\right] + \mathbb{E}_{q(x_{1:T}|x_0)}\left[\ln \prod_{t = 1}^{T-1}\frac{p_{x{\theta}}(x_{t}|x_{t+1})}{q(x_{t}|x_{t-1})}\right]}\\ &= {\mathbb{E}_{q(x_{1:T}|x_0)}\left[\ln p_{x{\theta}}(x_0|x_1)\right] + \mathbb{E}_{q(x_{1:T}|x_0)}\left[\ln \frac{p(x_T)}{q(x_T|x_{T-1})}\right] + \mathbb{E}_{q(x_{1:T}|x_0)}\left[ \sum_{t=1}^{T-1} \ln \frac{p_{x{\theta}}(x_{t}|x_{t+1})}{q(x_{t}|x_{t-1})}\right]}\\ &= {\mathbb{E}_{q(x_{1:T}|x_0)}\left[\ln p_{x{\theta}}(x_0|x_1)\right] + \mathbb{E}_{q(x_{1:T}|x_0)}\left[\ln \frac{p(x_T)}{q(x_T|x_{T-1})}\right] + \sum_{t=1}^{T-1}\mathbb{E}_{q(x_{1:T}|x_0)}\left[ \ln \frac{p_{x{\theta}}(x_{t}|x_{t+1})}{q(x_{t}|x_{t-1})}\right]}\\ &= \mathbb{E}_{q(x_{1}|x_0)}\left[\ln p_{x{\theta}}(x_0|x_1)\right] + \mathbb{E}_{q(x_{T-1}, x_T|x_0)}\left[\ln \frac{p(x_T)}{q(x_T|x_{T-1})}\right] \\ &+ \sum_{t=1}^{T-1}\mathbb{E}_{q(x_{t-1}, x_t, x_{t+1}|x_0)}\left[\ln \frac{p_{x{\theta}}(x_{t}|x_{t+1})}{q(x_{t}|x_{t-1})}\right]\\ &= \begin{aligned} {\underbrace{\mathbb{E}_{q(x_{1}|x_0)}\left[\ln p_{\theta}(x_0|x_1)\right]}_\text{reconstruction term}} &- {\underbrace{\mathbb{E}_{q(x_{T-1}|x_0)}\left[ KL{q(x_T|x_{T-1})}{p(x_T)}\right]}_\text{prior matching term}} \\ &- {\sum_{t=1}^{T-1}\underbrace{\mathbb{E}_{q(x_{t-1}, x_{t+1}|x_0)}\left[ KL {q(x_{t}|x_{t-1})}{p_{\theta}(x_{t}|x_{t+1})}\right]}_\text{consistency term}} \end{aligned} \end{align} (10)

极大化(10)式,第二项不包含学习参数可以当成常数忽略不计;另外两项都是期望项,可以通过MCMC采样求解。第三项(xt1,xt+1)(x_{t-1},x_{t+1})包含两个变量,直接MCMC采样会导致更大方差,训练过程容易不稳定,不容易优化。所以需要对第三项做等价替换,替换的目的就是希望只包含一个变量,对应下图就是粉红线和绿线能够一致。

根据条件独立性,可以给分布q(xtxt1)q(x_t | x_{t-1})增加观测值x0x_0条件,会得到:
q(xtxt1)=q(xtxt1,x0)11q(x_t | x_{t-1}) = q(x_t | x_{t-1}, x_0) (11)
对上式做贝叶斯展开得:
q(xtxt1,x0)=q(xt1xt,x0)q(xtx0)q(xt1x0)12q(x_t | x_{t-1}, x_0) = \frac{q(x_{t-1} \mid x_t, x_0)q(x_t \mid x_0)}{q(x_{t-1} \mid x_0)} (12)
把(11)、(12)式带入(10)式重新推导ELBO,推导过程如下:

lnp(x0)Eq(x1:Tx0)[lnp(x0:T)q(x1:Tx0)]=Eq(x1:Tx0)[lnp(xT)t=1Tpθ(xt1xt)t=1Tq(xtxt1)]=Eq(x1:Tx0)[lnp(xT)pθ(x0x1)t=2Tpθ(xt1xt)q(x1x0)t=2Tq(xtxt1)]=Eq(x1:Tx0)[lnp(xT)pθ(x0x1)t=2Tpθ(xt1xt)q(x1x0)t=2Tq(xtxt1,x0)]=Eq(x1:Tx0)[lnpθ(xT)pθ(x0x1)q(x1x0)+lnt=2Tpθ(xt1xt)q(xtxt1,x0)]=Eq(x1:Tx0)[lnp(xT)pθ(x0x1)q(x1x0)+lnt=2Tpθ(xt1xt)p(xt1xt,x0)q(xtx0)q(xt1x0)]=Eq(x1:Tx0)[lnp(xT)pθ(x0x1)q(x1x0)+lnt=2Tpθ(xt1xt)p(xt1xt,x0)q(xtx0)q(xt1x0)]=Eq(x1:Tx0)[lnp(xT)pθ(x0x1)q(x1x0)+lnq(x1x0)q(xTx0)+lnt=2Tpθ(xt1xt)q(xt1xt,x0)]=Eq(x1:Tx0)[lnp(xT)pθ(x0x1)q(xTx0)+t=2Tlnpθ(xt1xt)q(xt1xt,x0)]=Eq(x1:Tx0)[lnpθ(x0x1)]+Eq(x1:Tx0)[lnp(xT)q(xTx0)]+t=2TEq(x1:Tx0)[lnpθ(xt1xt)q(xt1xt,x0)]=Eq(x1x0)[lnpθ(x0x1)]+Eq(xTx0)[lnp(xT)q(xTx0)]+t=2TEq(xt,xt1x0)[lnpθ(xt1xt)q(xt1xt,x0)]=Eq(x1x0)[lnpθ(x0x1)]reconstruction termKLq(xTx0)p(xT)prior matching termt=2TEq(xtx0)[KLq(xt1xt,x0)pθ(xt1xt)]denoising matching term13\begin{split}\begin{align} {\ln p(x_0)} &\geq {\mathbb{E}_{q(x_{1:T}|x_0)}\left[\ln \frac{p(x_{0:T})}{q(x_{1:T}|x_0)}\right]}\\ &= {\mathbb{E}_{q(x_{1:T}|x_0)}\left[\ln \frac{p(x_T)\prod_{t=1}^{T}p_{{\theta}}(x_{t-1}|x_t)}{\prod_{t = 1}^{T}q(x_{t}|x_{t-1})}\right]}\\ &= {\mathbb{E}_{q(x_{1:T}|x_0)}\left[\ln \frac{p(x_T)p_{{\theta}}(x_0|x_1)\prod_{t=2}^{T}p_{{\theta}}(x_{t-1}|x_t)}{q(x_1|x_0)\prod_{t = 2}^{T}q(x_{t}|x_{t-1})}\right]}\\ &= {\mathbb{E}_{q(x_{1:T}|x_0)}\left[\ln \frac{p(x_T)p_{{\theta}}(x_0|x_1)\prod_{t=2}^{T}p_{{\theta}}(x_{t-1}|x_t)}{q(x_1|x_0)\prod_{t = 2}^{T}q(x_{t}|x_{t-1}, x_0)}\right]}\\ &= {\mathbb{E}_{q(x_{1:T}|x_0)}\left[\ln \frac{p_{{\theta}}(x_T)p_{{\theta}}(x_0|x_1)}{q(x_1|x_0)} + \ln \prod_{t=2}^{T}\frac{p_{{\theta}}(x_{t-1}|x_t)}{q(x_{t}|x_{t-1}, x_0)}\right]}\\ &= {\mathbb{E}_{q(x_{1:T}|x_0)}\left[\ln \frac{p(x_T)p_{{\theta}}(x_0|x_1)}{q(x_1|x_0)} + \ln \prod_{t=2}^{T}\frac{p_{{\theta}}(x_{t-1}|x_t)}{\frac{p(x_{t-1}|x_{t}, x_0)q(x_t|x_0)}{q(x_{t-1}|x_0)}}\right]}\\ &= {\mathbb{E}_{q(x_{1:T}|x_0)}\left[\ln \frac{p(x_T)p_{{\theta}}(x_0|x_1)}{q(x_1|x_0)} + \ln \prod_{t=2}^{T}\frac{p_{{\theta}}(x_{t-1}|x_t)}{\frac{p(x_{t-1}|x_{t}, x_0)\cancel{q(x_t|x_0)}}{\cancel{q(x_{t-1}|x_0)}}}\right]}\\ &= {\mathbb{E}_{q(x_{1:T}|x_0)}\left[\ln \frac{p(x_T)p_{{\theta}}(x_0|x_1)}{\cancel{q(x_1|x_0)}} + \ln \frac{\cancel{q(x_1|x_0)}}{q(x_T|x_0)} + \ln \prod_{t=2}^{T}\frac{p_{{\theta}}(x_{t-1}|x_t)}{q(x_{t-1}|x_{t}, x_0)}\right]}\\ &= {\mathbb{E}_{q(x_{1:T}|x_0)}\left[\ln \frac{p(x_T)p_{{\theta}}(x_0|x_1)}{q(x_T|x_0)} + \sum_{t=2}^{T}\ln\frac{p_{{\theta}}(x_{t-1}|x_t)}{q(x_{t-1}|x_{t}, x_0)}\right]}\\ &= \begin{aligned} { \mathbb{E}_{ q(x_{1:T}|x_0) } \left[ \ln p_{{\theta}}(x_0|x_1) \right]\\ \\+ \mathbb{E}_{ q(x_{1:T}|x_0)} \left[ \ln \frac{p(x_T)}{q(x_T|x_0)} \right ]\\ \\+ \sum_{t=2}^{T} \mathbb{E}_{q(x_{1:T}|x_0)} \left[\ln\frac{p_{{\theta}}(x_{t-1}|x_t)}{q(x_{t-1}|x_{t}, x_0)}\right] }\\ \end{aligned}\\ &= \begin{aligned}{ \mathbb{E}_{q(x_{1}|x_0)}\left[\ln p_{{\theta}}(x_0|x_1)\right] + \mathbb{E}_{q(x_{T}|x_0)}\left[\ln \frac{p(x_T)}{q(x_T|x_0)}\right] \\ + \sum_{t=2}^{T}\mathbb{E}_{q(x_{t}, x_{t-1}|x_0)}\left[\ln\frac{p_{{\theta}}(x_{t-1}|x_t)}{q(x_{t-1}|x_{t}, x_0)}\right] \\ }\end{aligned} \\ &= \begin{aligned} \underbrace{\mathbb{E}_{q(x_{1}|x_0)}\left[\ln p_{{\theta}}(x_0|x_1)\right]}_\text{reconstruction term} &- \underbrace{KL{q(x_T|x_0)}{p(x_T)}}_\text{prior matching term}\\ &- \sum_{t=2}^{T} \underbrace{\mathbb{E}_{q(x_{t}|x_0)}\left[KL{q(x_{t-1}|x_t, x_0)}{p_{{\theta}}(x_{t-1}|x_t)}\right]}_\text{denoising matching term}\\ \end{aligned} \end{align}\end{split} (13)

image.png 经过等价变化后变量只剩一个,两者的KL散度正好是参数化模型pθ(xt1xt)p_{{\theta}}(x_{t-1}|x_t)尽量和实际数据分布q(xt1xt,x0)q(x_{t-1}|x_t, x_0)一致。

reconstruction termpθ(x0x1)p_{{\theta}}(x_0|x_1)是一个依赖x1x_1条件高斯分布;假设它的方差是一个常量记为Σ\Sigma,均值μθ\mu_{\theta}是一个关于x1x_1t=1t=1的参数化函数表达。高斯概率密度函数展开lnp(x0x1)\ln p(x_0|x_1)

lnp(x0x1)=ln1(2π)n/2Σ1/2exp{12(x0μθ(x1,t=1))TΣ1(xμθ(x1,t=1))}12(x0μθ(x1,t=1))T(x0μθ(x1,t=1))}=12x0μθ(x1,t=1)2214\begin{align}\begin{aligned}\ln p(x_0|x_1) &=\ln \frac{1}{(2\pi)^{n/2} |\Sigma |^{1/2}}exp\{-\frac{1}{2}(x_0 - \mu_{\theta}(x_1,t=1))^{T}\Sigma^{-1}(x - \mu_{\theta}(x_1,t=1))\}\\& \propto -\frac{1}{2}(x_0 - \mu_{\theta}(x_1,t=1))^{T}(x_0 - \mu_{\theta}(x_1,t=1))\}\\& = -\frac{1}{2} \left\lVert x_0 - \mu_{\theta}(x_1,t=1) \right\rVert_2^2\end{aligned}\end{align} (14)

通过上式可以看出这一项目的就在于极小化μθ(x1,t=1)\mu_{\theta}(x_1,t=1)x0x_0平均误差,相当于在预测x0x_0的值。用x^0(x1,t=1)表示μθ(x1,t=1)\hat x_{0}(x_1,t=1)表示\mu_{\theta}(x_1,t=1)

argmaxθEq(x1x0)[lnpθ(x0x1)]argmaxθ Eq(x1x0)[12x0x^0(x1,t=1)22]argminθ Eq(x1x0)[x0x^0(x1,t=1)22]15\begin{align}\begin{aligned}& {\operatorname{\arg\max}}_{\theta} \mathbb{E}_{q(x_{1}|x_0)}\left[\ln p_{{\theta}}(x_0|x_1)\right]\\&\Leftrightarrow {\operatorname{\arg\max}}_{\theta} \ \mathbb{E}_{q(x_{1}|x_0)} \left [ -\frac{1}{2} \left\lVert x_0 - \hat x_{0}(x_1,t=1) \right\rVert_2^2 \right ]\\&\Leftrightarrow {\operatorname{\arg\min}}_{\theta} \ \mathbb{E}_{q(x_{1}|x_0)} \left [ \left\lVert x_0 - \hat x_{0}(x_1,t=1) \right\rVert_2^2 \right ]\end{aligned}\end{align} (15)


denoising matching term中两项都是高斯分布,如果可以得到两个高斯分布的均值和方差,就可以把这项求解出来。但q(xt1xt,x0)q(x_{t-1}|x_t, x_0)xt1x_{t-1}是未知量,所以我们需要对这个函数表达式做等价转化,把未知项剥离开做等价消除。

image.png

q(xt1xt,x0)=q(xtxt1,x0)q(xt1x0)q(xtx0)=N(xt;αtxt1,(1αt)I)N(xt1;αˉt1x0,(1αˉt1)I)N(xt;αˉtx0,(1αˉt)I)exp{[(xtαtxt1)22(1αt)+(xt1αˉt1x0)22(1αˉt1)(xtαˉtx0)22(1αˉt)]}=exp{12[(xtαtxt1)21αt+(xt1αˉt1x0)21αˉt1(xtαˉtx0)21αˉt]}=exp{12[(2αtxtxt1+αtxt12)1αt+(xt122αˉt1xt1x0)1αˉt1+C(xt,x0)]}exp{12[2αtxtxt11αt+αtxt121αt+xt121αˉt12αˉt1xt1x01αˉt1]}=exp{12[(αt1αt+11αˉt1)xt122(αtxt1αt+αˉt1x01αˉt1)xt1]}=exp{12[αt(1αˉt1)+1αt(1αt)(1αˉt1)xt122(αtxt1αt+αˉt1x01αˉt1)xt1]}=exp{12[αtαˉt+1αt(1αt)(1αˉt1)xt122(αtxt1αt+αˉt1x01αˉt1)xt1]}=exp{12[1αˉt(1αt)(1αˉt1)xt122(αtxt1αt+αˉt1x01αˉt1)xt1]}=exp{12(1αˉt(1αt)(1αˉt1))[xt122(αtxt1αt+αˉt1x01αˉt1)1αˉt(1αt)(1αˉt1)xt1]}=exp{12(1αˉt(1αt)(1αˉt1))[xt122(αtxt1αt+αˉt1x01αˉt1)(1αt)(1αˉt1)1αˉtxt1]}=exp{12(1(1αt)(1αˉt1)1αˉt)[xt122αt(1αˉt1)xt+αˉt1(1αt)x01αˉtxt1]}N(xt1;αt(1αˉt1)xt+αˉt1(1αt)x01αˉtμq(xt,x0),(1αt)(1αˉt1)1αˉtIΣq(t))16\begin{split}\begin{align} {q(x_{t-1}|x_t, x_0)} &= {\frac{q(x_t | x_{t-1}, x_0)q(x_{t-1}|x_0)}{q(x_{t}|x_0)}}\\ &= {\frac{\mathcal{N}(x_{t} ; \sqrt{\alpha_t} x_{t-1}, (1 - \alpha_t)\textit{I})\mathcal{N}(x_{t-1} ; \sqrt{\bar\alpha_{t-1}}x_0, (1 - \bar\alpha_{t-1}) \textit{I})}{\mathcal{N}(x_{t} ; \sqrt{\bar\alpha_{t}}x_0, (1 - \bar\alpha_{t})\textit{I})}}\\ &\propto {\text{exp}\left\{-\left[\frac{(x_{t} - \sqrt{\alpha_t} x_{t-1})^2}{2(1 - \alpha_t)} + \frac{(x_{t-1} - \sqrt{\bar\alpha_{t-1}} x_0)^2}{2(1 - \bar\alpha_{t-1})} - \frac{(x_{t} - \sqrt{\bar\alpha_t} x_{0})^2}{2(1 - \bar\alpha_t)} \right]\right\}}\\ &= {\text{exp}\left\{-\frac{1}{2}\left[\frac{(x_{t} - \sqrt{\alpha_t} x_{t-1})^2}{1 - \alpha_t} + \frac{(x_{t-1} - \sqrt{\bar\alpha_{t-1}} x_0)^2}{1 - \bar\alpha_{t-1}} - \frac{(x_{t} - \sqrt{\bar\alpha_t} x_{0})^2}{1 - \bar\alpha_t} \right]\right\}}\\ &= {\text{exp}\left\{-\frac{1}{2}\left[\frac{(-2\sqrt{\alpha_t} x_{t}x_{t-1} + \alpha_t x_{t-1}^2)}{1 - \alpha_t} + \frac{(x_{t-1}^2 - 2\sqrt{\bar\alpha_{t-1}}x_{t-1} x_0)}{1 - \bar\alpha_{t-1}} + C(x_t, x_0)\right]\right\}} \\ &\propto {\text{exp}\left\{-\frac{1}{2}\left[- \frac{2\sqrt{\alpha_t} x_{t}x_{t-1}}{1 - \alpha_t} + \frac{\alpha_t x_{t-1}^2}{1 - \alpha_t} + \frac{x_{t-1}^2}{1 - \bar\alpha_{t-1}} - \frac{2\sqrt{\bar\alpha_{t-1}}x_{t-1} x_0}{1 - \bar\alpha_{t-1}}\right]\right\}}\\ &= {\text{exp}\left\{-\frac{1}{2}\left[(\frac{\alpha_t}{1 - \alpha_t} + \frac{1}{1 - \bar\alpha_{t-1}})x_{t-1}^2 - 2\left(\frac{\sqrt{\alpha_t}x_{t}}{1 - \alpha_t} + \frac{\sqrt{\bar\alpha_{t-1}}x_0}{1 - \bar\alpha_{t-1}}\right)x_{t-1}\right]\right\}}\\ &= {\text{exp}\left\{-\frac{1}{2}\left[\frac{\alpha_t(1-\bar\alpha_{t-1}) + 1 - \alpha_t}{(1 - \alpha_t)(1 - \bar\alpha_{t-1})}x_{t-1}^2 - 2\left(\frac{\sqrt{\alpha_t}x_{t}}{1 - \alpha_t} + \frac{\sqrt{\bar\alpha_{t-1}}x_0}{1 - \bar\alpha_{t-1}}\right)x_{t-1}\right]\right\}}\\ &= {\text{exp}\left\{-\frac{1}{2}\left[\frac{\alpha_t-\bar\alpha_{t} + 1 - \alpha_t}{(1 - \alpha_t)(1 - \bar\alpha_{t-1})}x_{t-1}^2 - 2\left(\frac{\sqrt{\alpha_t}x_{t}}{1 - \alpha_t} + \frac{\sqrt{\bar\alpha_{t-1}}x_0}{1 - \bar\alpha_{t-1}}\right)x_{t-1}\right]\right\}}\\ &= {\text{exp}\left\{-\frac{1}{2}\left[\frac{1 -\bar\alpha_{t}}{(1 - \alpha_t)(1 - \bar\alpha_{t-1})}x_{t-1}^2 - 2\left(\frac{\sqrt{\alpha_t}x_{t}}{1 - \alpha_t} + \frac{\sqrt{\bar\alpha_{t-1}}x_0}{1 - \bar\alpha_{t-1}}\right)x_{t-1}\right]\right\}}\\ &= {\text{exp}\left\{-\frac{1}{2}\left(\frac{1 -\bar\alpha_{t}}{(1 - \alpha_t)(1 - \bar\alpha_{t-1})}\right)\left[x_{t-1}^2 - 2\frac{\left(\frac{\sqrt{\alpha_t}x_{t}}{1 - \alpha_t} + \frac{\sqrt{\bar\alpha_{t-1}}x_0}{1 - \bar\alpha_{t-1}}\right)}{\frac{1 -\bar\alpha_{t}}{(1 - \alpha_t)(1 - \bar\alpha_{t-1})}}x_{t-1}\right]\right\}}\\ &= {\text{exp}\left\{-\frac{1}{2}\left(\frac{1 -\bar\alpha_{t}}{(1 - \alpha_t)(1 - \bar\alpha_{t-1})}\right)\left[x_{t-1}^2 - 2\frac{\left(\frac{\sqrt{\alpha_t}x_{t}}{1 - \alpha_t} + \frac{\sqrt{\bar\alpha_{t-1}}x_0}{1 - \bar\alpha_{t-1}}\right)(1 - \alpha_t)(1 - \bar\alpha_{t-1})}{1 -\bar\alpha_{t}}x_{t-1}\right]\right\}}\\ &= {\text{exp}\left\{-\frac{1}{2}\left(\frac{1}{\frac{(1 - \alpha_t)(1 - \bar\alpha_{t-1})}{1 -\bar\alpha_{t}}}\right)\left[x_{t-1}^2 - 2\frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})x_{t} + \sqrt{\bar\alpha_{t-1}}(1-\alpha_t)x_0}{1 -\bar\alpha_{t}}x_{t-1}\right]\right\}}\\ &\propto {\mathcal{N}(x_{t-1} ;} \underbrace{{\frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})x_{t} + \sqrt{\bar\alpha_{t-1}}(1-\alpha_t)x_0}{1 -\bar\alpha_{t}}}}_{\mu_q(x_t, x_0)}, \underbrace{{\frac{(1 - \alpha_t)(1 - \bar\alpha_{t-1})}{1 -\bar\alpha_{t}}\textit{I}}}_{{\Sigma}_q(t)}) \end{align}\end{split} (16)

均值是一个关于xtx0x_t、x_0函数,方差是一个仅和α\alpha相关的函数,α\alpha如果作为超参,方差可以直接解析出。

μq(xt,x0)=αt(1αˉt1)xt+αˉt1(1αt)x01αˉtΣq(t)=(1αt)(1αˉt1)1αˉtI=σq2(t)I17\begin{align}\begin{aligned}\mu_q(x_t, x_0) &= { \frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})x_{t} + \sqrt{\bar\alpha_{t-1}}(1-\alpha_t)x_0}{1 -\bar\alpha_{t}}}\\\Sigma_q(t) &= \frac{(1 - \alpha_t)(1 - \bar\alpha_{t-1})}{ 1 -\bar\alpha_{t}} \textit{I} = \sigma_q^2(t) \textit{I}\end{aligned}\end{align} (17)


参数化模型分布pθ(xt1xt)p_{\theta} (x_{t-1}|x_t)也是一个高斯分布:
pθ(xt1xt)N(xt1;μθ,Σq(t))18p_{\theta} (x_{t-1}|x_t) \sim \mathcal{N}(x_{t-1} ;\mu_{\theta},\Sigma_q(t)) (18)
所以两个高斯分布的KL散度如下:

DKLq(xt1xt,x0)pθ(xt1xt)=DKLN(xt1;μq,Σq(t))N(xt1;μθ,Σq(t))=12[logΣq(t)Σq(t)d+tr(Σq(t)1Σq(t))+(μθμq)TΣq(t)1(μθμq)]=12[log1d+d+(μθμq)TΣq(t)1(μθμq)]=12[(μθμq)TΣq(t)1(μθμq)]=12[(μθμq)T(σq2(t)I)1(μθμq)]=12σq2(t)[μθμq22](19)\begin{split}\begin{align} & \quad \,D_{KL}{q(x_{t-1}|x_t, x_0)}||{p_{{\theta}}(x_{t-1}|x_t)} \\ &= D_{KL}{\mathcal{N}(x_{t-1}; {\mu}_q,{\Sigma}_q(t))}||{\mathcal{N}(x_{t-1}; {\mu}_{{\theta}},{\Sigma}_q(t))}\\ &=\frac{1}{2}\left[\log\frac{|{\Sigma}_q(t)|}{|{\Sigma}_q(t)|} - d + \text{tr}({\Sigma}_q(t)^{-1}{\Sigma}_q(t)) + ({\mu}_{{\theta}}-{\mu}_q)^T {\Sigma}_q(t)^{-1} ({\mu}_{{\theta}}-{\mu}_q)\right]\\ &=\frac{1}{2}\left[\log1 - d + d + ({\mu}_{{\theta}}-{\mu}_q)^T {\Sigma}_q(t)^{-1} ({\mu}_{{\theta}}-{\mu}_q)\right]\\ &=\frac{1}{2}\left[({\mu}_{{\theta}}-{\mu}_q)^T {\Sigma}_q(t)^{-1} ({\mu}_{{\theta}}-{\mu}_q)\right]\\ &=\frac{1}{2}\left[({\mu}_{{\theta}}-{\mu}_q)^T \left(\sigma_q^2(t)\textbf{I}\right)^{-1} ({\mu}_{{\theta}}-{\mu}_q)\right]\\ &=\frac{1}{2\sigma_q^2(t)}\left[\left\lVert{\mu}_{{\theta}}-{\mu}_q\right\rVert_2^2\right] \end{align}\end{split} (19)


根据公式(17)可以得到:
μ_q(x_t,x_0)=α_t(1αˉt1)xt+αˉt1(1α_t)x_01αˉt20\mu\_q(x\_t, x\_0) = { \frac{\sqrt{\alpha\_t}(1-\bar\alpha*{t-1})x*{t} + \sqrt{\bar\alpha*{t-1}}(1-\alpha\_t)x\_0}{1 -\bar\alpha*{t}}}(20)
根据公式(19)可以看出我们是希望μθ{\mu}*{\theta}μq{\mu}*{q}相同,我们已经得到μq{\mu}*{q}得表示形式,所以我们可以让μθ{\mu}*{\theta}有相似表达形式:
μθ=μθ(x_t,t)=α_t(1αˉt1)x_t+αˉ_t1(1α_t)x^_θ(x_t,t)1αˉ_t21\mu*{\theta}={\mu}*{{\theta}}(x\_t, t) = \frac{\sqrt{\alpha\_t}(1-\bar\alpha*{t-1})x\_{t} + \sqrt{\bar\alpha\_{t-1}}(1-\alpha\_t)\hat x\_{{\theta}}(x\_t, t)}{1 -\bar\alpha\_{t}}(21)
有了两个高斯分布的均值表达形式,方差已经设定为一个常数超参数,两个分布的KL三度可以等价为:

μθμq22=αt(1αˉt1)xt+αˉt1(1αt)x^θ(xt,t)1αˉtαt(1αˉt1)xt+αˉt1(1αt)x01αˉt22=αˉt1(1αt)x^θ(xt,t)1αˉtαˉt1(1αt)x01αˉt22=αˉt1(1αt)1αˉt(x^θ(xt,t)x0)22=αˉt1(1αt)1αˉt(x^θ(xt,t)x0)2222\begin{align}\begin{aligned}& \quad \left\lVert{\mu}_{{\theta}}-{\mu}_q \right\rVert_2^2\\&= \left\lVert \frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})x_{t} + \sqrt{\bar\alpha_{t-1}}(1-\alpha_t)\hat x_{{\theta}}(x_t, t)}{1 -\bar\alpha_{t}} - { \frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})x_{t} + \sqrt{\bar\alpha_{t-1}}(1-\alpha_t)x_0}{1 -\bar\alpha_{t}}} \right\rVert_2^2\\&= \left\lVert \frac{ \sqrt{\bar\alpha_{t-1}}(1-\alpha_t)\hat x_{{\theta}}(x_t, t)}{1 -\bar\alpha_{t}} - { \frac{\sqrt{\bar\alpha_{t-1}}(1-\alpha_t)x_0}{1 -\bar\alpha_{t}}} \right\rVert_2^2\\&= \left\lVert \frac{ \sqrt{\bar\alpha_{t-1}}(1-\alpha_t) } {1 -\bar\alpha_{t}} ( \hat x_{{\theta}}(x_t, t) - x_0 ) \right\rVert_2^2\\&= \frac{ \sqrt{\bar\alpha_{t-1}}(1-\alpha_t) } {1 -\bar\alpha_{t}} \left\lVert ( \hat x_{{\theta}}(x_t, t) - x_0 ) \right\rVert_2^2\end{aligned}\end{align}(22)


所以第三项的代价函数等价为:

argmaxθ[t=2TEq(xtx0)[DKLq(xt1xt,x0)pθ(xt1xt)]]argminθ[t=2T12σq2(t)αˉt1(1αt)1αˉtEq(xtx0)[(x^θ(xt,t)x0)22]]argminθ[t=2TEq(xtx0)[(x^θ(xt,t)x0)22]]23\begin{align}\begin{aligned}& {\operatorname{\arg\max}}_{\theta} \left[ -\sum_{t=2}^{T} \mathbb{E}_{q(x_{t}|x_0)} \left[D_{KL}{q(x_{t-1}|x_t, x_0)}{p_{{\theta}}(x_{t-1}|x_t)}\right] \right ]\\& \Leftrightarrow {\operatorname{\arg\min}}_{\theta} \left [ \sum_{t=2}^{T} \frac{1}{2\sigma_q^2(t)} \frac{ \sqrt{\bar\alpha_{t-1}}(1-\alpha_t) } {1 -\bar\alpha_{t}} \mathbb{E}_{q(x_{t}|x_0)} \left [ \left\lVert ( \hat x_{{\theta}}(x_t, t) - x_0 ) \right\rVert_2^2 \right ] \right ]\\ & \Leftrightarrow {\operatorname{\arg\min}}_{\theta} \left [ \sum_{t=2}^{T} \mathbb{E}_{q(x_{t}|x_0)} \left [ \left\lVert ( \hat x_{{\theta}}(x_t, t) - x_0 ) \right\rVert_2^2 \right ] \right ]\end{aligned}\end{align}(23)


整合ELBO的第一项和第三项可以得到最终优化的代价函数(第二项是常数去除):

argmaxθELBOargmaxθ[Eq(x1x0)[lnpθ(x0x1)]t=2TEq(xtx0)[DKLq(xt1xt,x0)pθ(xt1xt)]]argminθ[Eq(x1x0)[x0x^0(x1,t=1)22]]+[t=2TEq(xtx0)[(x^θ(xt,t)x0)22]]argminθt=1TEq(xtx0)[(x^θ(xt,t)x0)22](24)\begin{align}\begin{aligned} & {\operatorname{\arg\max}}_{\theta} \quad \text{ELBO}\\ & \Leftrightarrow {\operatorname{\arg\max}}_{\theta} \left [ \mathbb{E}_{q(x_{1}|x_0)}\left[\ln p_{{\theta}}(x_0|x_1)\right] - \sum_{t=2}^{T} \mathbb{E}_{q(x_{t}|x_0)}\left[D_{KL}{q(x_{t-1}|x_t, x_0)}{p_{{\theta}}(x_{t-1}|x_t)}\right] \right]\\ &\Leftrightarrow {\operatorname{\arg\min}}_{\theta} \left[ \mathbb{E}_{q(x_{1}|x_0)} \left [ \left\lVert x_0 - \hat x_{0}(x_1,t=1) \right\rVert_2^2 \right ] \right ] + \left [ \sum_{t=2}^{T} \mathbb{E}_{q(x_{t}|x_0)} \left [ \left\lVert( \hat x_{{\theta}}(x_t, t) - x_0 ) \right\rVert_2^2 \right ] \right ]\\ & \Leftrightarrow {\operatorname{\arg\min}}_{\theta} \sum_{t=1}^{T} \mathbb{E}_{q(x_{t}|x_0)} \left [ \left\lVert( \hat x_{{\theta}}(x_t, t) - x_0 ) \right\rVert_2^2 \right ]\end{aligned}\end{align}(24)


模型只要学习逆向过程p_θ(x_t1x_t)p\_{\theta}(x\_{t-1}|x\_t),训练过程中前向过程计算得到的中间数据作为逆向过程学习的训练样本。推理过程时候只需要逆向过程计算生成需要的图片。
逆向求解过程:

p(xt1xt)pθ(xt1xt)q(xt1xt,x0)N(xt1;μq(xt,x0),Σq(t))μq(xt,x0)=αt(1αˉt1)xt+αˉt1(1αt)x^θ(xt,t)1αˉtΣq(t)=(1αt)(1αˉt1)1αˉtI=σq2(t)I\begin{align}\begin{aligned}p(x_{t-1}|x_{t}) &\approx p_{\theta} (x_{t-1}|x_{t})\\&\approx q(x_{t-1}|x_t, x_0)\\&\sim \mathcal{N} (x_{t-1} ; \mu_q(x_t, x_0) , \Sigma_q(t) )\end{aligned}\end{align}\\ \begin{align}\begin{aligned}\mu_q(x_t, x_0) &= { \frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})x_{t} + \sqrt{\bar\alpha_{t-1}}(1-\alpha_t) \hat{x}_{\theta}(x_t, t) }{1 -\bar\alpha_{t}}}\\\Sigma_q(t) &= \frac{(1 - \alpha_t)(1 - \bar\alpha_{t-1})}{ 1 -\bar\alpha_{t}} \textit{I} = \sigma_q^2(t) \textit{I}\end{aligned}\end{align}


1.设定采样次数,比如T=10
2.从一个标准高斯分布采样得到噪声x_Tx\_T
3.利用训练好的模型计算出x^θ(x_t,t)\hat{x}*{\theta}(x\_t, t)
4.计算出p(xt1x_t)p(x*{t-1}|x\_{t})的均值和方差
5.从随机高斯分布p(x_t1x_t)p(x\_{t-1}|x\_{t})采样x\_{t-1}\
6.重复3-5,知道T=1

DDPM

DPM预测的是每一个时刻的像素的概率分布,并且每一时刻预测的都是x0x_0,当t较大时xtx0x_t离x_0是比较远的预测难度是很高的,所以很明显这是不合理的。事实也是DPM的效果一直做的不如GAN好。
DDPM对DPM做了改进,不再预测x0x_0而是预测每一时刻的噪声分布。这样不仅降低了学习的难度,也是更符合实际物理意义的学习任务。噪声的学习其实就等价于域预测分子扩散的分布,分子的扩散运动带来的每一时刻分钟分布的互补面就是噪声分布的变化。
根据前面DPM章节介绍的前向递推公式(7)和(8)
q(xtx0)N(xt;αˉt x0,(1αˉt)I)7xt=αˉt x0+1αˉt ϵt   ,αˉt=i=1tαi,  ϵtN(0,I)(8)q(x_t|x_0) \sim \mathcal{N}(x_t; \sqrt{\bar{\alpha}_t } \ x_0, (1- \bar{ \alpha}_t) \textit{I}) (7)\\ x_t = \sqrt{\bar{\alpha}_t } \ x_0 + \sqrt{1- \bar{ \alpha}_t } \ \epsilon_t \ \ \ , \bar{\alpha}_t = \prod_{i=1}^t \alpha_i ,\ \ \epsilon_t \sim \mathcal{N}(0,\textit{I}) (8)
可以推出:
x0=xt1αˉt ϵtαˉt,  ϵtN(0,I)25x_0 = \frac{x_t -\sqrt{1- \bar{ \alpha}_t } \ \epsilon_t }{ \sqrt{\bar{\alpha}_t } } ,\ \ \epsilon_t \sim \mathcal{N}(0,\textit{I}) (25)
根据DPM章节的公式(20)
μq(xt,x0)=αt(1αˉt1)xt+αˉt1(1αt)x01αˉt20\mu_q(x_t, x_0) = { \frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})x_{t} + \sqrt{\bar\alpha_{t-1}}(1-\alpha_t)x_0}{1 -\bar\alpha_{t}}}(20)
把公式(25)代入可以得到:

μq=μq(xt,x0)=αt(1αˉt1)xt+αˉt1(1αt)x01αˉt=αt(1αˉt1)xt+αˉt1(1αt)xt1αˉtϵαˉt1αˉt=αt(1αˉt1)xt+(1αt)xt1αˉtϵαt1αˉt=αt(1αˉt1)xt1αˉt+(1αt)xt(1αˉt)αt(1αt)1αˉtϵ(1αˉt)αt=(αt(1αˉt1)1αˉt+1αt(1αˉt)αt)xt(1αt)1αˉt(1αˉt)αtϵ=(αt(1αˉt1)(1αˉt)αt+1αt(1αˉt)αt)xt1αt1αˉtαtϵ=αtαˉt+1αt(1αˉt)αtxt1αt1αˉtαtϵ=1αˉt(1αˉt)αtxt1αt1αˉtαtϵ=1αtxt1αt1αˉtαtϵ26\begin{split}\begin{align} {\mu}_q &= {\mu}_q(x_t, x_0) = \frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})x_{t} + \sqrt{\bar\alpha_{t-1}}(1-\alpha_t)x_0}{1 -\bar\alpha_{t}}\\ &= \frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})x_{t} + \sqrt{\bar\alpha_{t-1}}(1-\alpha_t)\frac{x_t - \sqrt{1 - \bar\alpha_t}\epsilon }{\sqrt{\bar\alpha_t}}}{1 -\bar\alpha_{t}}\\ &= \frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})x_{t} + (1-\alpha_t)\frac{x_t - \sqrt{1 - \bar\alpha_t}\epsilon }{\sqrt{\alpha_t}}}{1 -\bar\alpha_{t}}\\ &= \frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})x_{t}}{1 - \bar\alpha_t} + \frac{(1-\alpha_t)x_t}{(1-\bar\alpha_t)\sqrt{\alpha_t}} - \frac{(1 - \alpha_t)\sqrt{1 - \bar\alpha_t}\epsilon }{(1-\bar\alpha_t)\sqrt{\alpha_t}}\\ &= \left(\frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})}{1 - \bar\alpha_t} + \frac{1-\alpha_t}{(1-\bar\alpha_t)\sqrt{\alpha_t}}\right)x_t - \frac{(1 - \alpha_t)\sqrt{1 - \bar\alpha_t}}{(1-\bar\alpha_t)\sqrt{\alpha_t}}\epsilon \\ &= \left(\frac{\alpha_t(1-\bar\alpha_{t-1})}{(1 - \bar\alpha_t)\sqrt{\alpha_t}} + \frac{1-\alpha_t}{(1-\bar\alpha_t)\sqrt{\alpha_t}}\right)x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar\alpha_t}\sqrt{\alpha_t}}\epsilon \\ &= \frac{\alpha_t-\bar\alpha_{t} + 1-\alpha_t}{(1 - \bar\alpha_t)\sqrt{\alpha_t}}x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar\alpha_t}\sqrt{\alpha_t}}\epsilon \\ &= \frac{1-\bar\alpha_t}{(1 - \bar\alpha_t)\sqrt{\alpha_t}}x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar\alpha_t}\sqrt{\alpha_t}}\epsilon \\ &= \frac{1}{\sqrt{\alpha_t}}x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar\alpha_t}\sqrt{\alpha_t}}\epsilon \end{align}\end{split}(26)


根据DPM章节公式(19)的推导结论,可以推导出预测输出μθ\mu_{\theta}是和μq(xt,x0)\mu_q(x_t, x_0)一致,也就是说我们可以把μθ\mu_{\theta}构造成和μq(xt,x0)\mu_q(x_t, x_0)一样的表达形式。
μθ=μθ(xt,t)=1αtxt1αt1αˉtαtϵ^θ(xt,t)27\mu_{\theta}={\mu}_{{\theta}}(x_t, t) = \frac{1}{\sqrt{\alpha_t}}x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar\alpha_t}\sqrt{\alpha_t}} {\hat\epsilon}_{ {\theta}}(x_t, t)(27)
其中ϵ^θ(xt,t){\hat\epsilon}_{ {\theta}}(x_t, t)为模型的预测输出。
由此得到两个高斯分布的KL散度为:

DKLq(xt1xt,x0)pθ(xt1xt)=12σq2(t)[μθμq22]=12σq2(t)[1αtxt1αt1αˉtαtϵ^θ(xt,t)1αtxt+1αt1αˉtαtϵ22]=12σq2(t)[1αt1αˉtαtϵ1αt1αˉtαtϵ^θ(xt,t)22]=12σq2(t)[1αt1αˉtαt(ϵϵ^θ(xt,t))22]=12σq2(t)(1αt)2(1αˉt)αt[ϵϵ^θ(xt,t)22](28)\begin{split}\begin{align} & D_{KL}{q(x_{t-1}|x_t, x_0)}{p_{{\theta}}(x_{t-1}|x_t)} \\ &=\frac{1}{2\sigma_q^2(t)}\left[\left\lVert{\mu}_{{\theta}}-{\mu}_q\right\rVert_2^2\right]\\ &= \frac{1}{2\sigma_q^2(t)}\left[\left\lVert\frac{1}{\sqrt{\alpha_t}}x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar\alpha_t}\sqrt{\alpha_t}}{\hat\epsilon}_{{\theta}}(x_t, t) - \frac{1}{\sqrt{\alpha_t}}x_t + \frac{1 - \alpha_t}{\sqrt{1 - \bar\alpha_t}\sqrt{\alpha_t}}\epsilon \right\rVert_2^2\right]\\ &= \frac{1}{2\sigma_q^2(t)}\left[\left\lVert \frac{1 - \alpha_t}{\sqrt{1 - \bar\alpha_t}\sqrt{\alpha_t}}\epsilon - \frac{1 - \alpha_t}{\sqrt{1 - \bar\alpha_t}\sqrt{\alpha_t}}{\hat\epsilon}_{{\theta}}(x_t, t)\right\rVert_2^2\right]\\ &= \frac{1}{2\sigma_q^2(t)}\left[\left\lVert \frac{1 - \alpha_t}{\sqrt{1 - \bar\alpha_t}\sqrt{\alpha_t}}(\epsilon - {\hat\epsilon}_{{\theta}}(x_t, t))\right\rVert_2^2\right]\\ &= \frac{1}{2\sigma_q^2(t)}\frac{(1 - \alpha_t)^2}{(1 - \bar\alpha_t)\alpha_t}\left[\left\lVert\epsilon - {\hat\epsilon}_{{\theta}}(x_t, t)\right\rVert_2^2\right] \end{align}\end{split}(28)


其中ϵ\epsilon为前向过程中添加的噪声。

xt=αt xt1+1αt ϵ=αˉt x0+1αˉt ϵ   ,αˉt=i=1tαi,  ϵN(0,I)N(αtˉ x0,(1αtˉ)I)29\begin{align}\begin{aligned}x_t &=\sqrt{\alpha_t} \ x_{t-1} + \sqrt{1- \alpha_t } \ \epsilon\\&= \sqrt{\bar{\alpha}_t } \ x_0 + \sqrt{1- \bar{ \alpha}_t } \ \epsilon \ \ \ , \bar{\alpha}_t = \prod_{i=1}^t \alpha_i ,\ \ \epsilon \sim \mathcal{N}(0,\textit{I})\\&\sim \mathcal{N}(\sqrt{\bar{\alpha_t} } \ x_0, (1- \bar{ \alpha_t}) \textit{I})\end{aligned}\end{align}(29)


训练过程:

1.标准高斯分布ϵ\epsilon随机采样
2.代入(29)式,计算xtx_t
3.把xtx_t和t输入参数升级网络预测ϵ^θ(xt,t)\hat \epsilon_{{\theta}}(x_t, t)
4.最小化预测噪声和真实噪声的平方差
推理过程:
逆过程最后输出的图不是直接通过xt1x_{t-1}计算得到,而是对需要采样步数生成的x~0\tilde{x}_0均值。也就是说x~0\tilde{x}_0q(xt1xt,x0,t=1)q(x_{t-1}|x_t, x_0,t=1)期望,而不是q(xt1xt,x0,t=1)q(x_{t-1}|x_t, x_0,t=1)的一次采样。

image.png image.png

DDIM

去噪扩散概率模型(DDPMs)已经实现了无需对抗性训练的高质量图像生成,但它们需要模拟一个马尔可夫链需要很多步骤以产生一个样本。对于DDPMs来说,这是因为生成过程(从噪声到数据)近似于前向扩散过程的逆过程(从数据到噪声),这可能有数千步;需要迭代所有步骤才能产生单个样本,与只需要通过网络一次的GANs相比,这要慢得多。为了缩小DDPMs和GANs之间的效率差距,这章节提出了去噪扩散隐式模型(DDIMs)。DDIMs是隐式概率模型并且与DDPMs密切相关,因为它们使用相同的目标函数进行训练。DDPMs使用的马尔可夫前向扩散过程泛化为非马尔可夫的,所以可以通过一步的方式从随机噪声计算出生成图片。

image.png 根据公式(13)知道denoising matching term是决定扩散生成效果的关键,其中q(xt1xt,x0)q(x_{t-1}|x_t, x_0)是逆向求解的核心,所以只要这个表达式能够做非马尔科夫泛化,那求解加速问题就成功了。

lnp(x0)=Eq(x1x0)[lnpθ(x0x1)]reconstruction termKLq(xTx0)p(xT)prior matching termt=2TEq(xtx0)[KLq(xt1xt,x0)pθ(xt1xt)]denoising matching term13\begin{split}\begin{align} {\ln p(x_0)} &= \begin{aligned} \underbrace{\mathbb{E}_{q(x_{1}|x_0)}\left[\ln p_{{\theta}}(x_0|x_1)\right]}_\text{reconstruction term} &- \underbrace{KL{q(x_T|x_0)}{p(x_T)}}_\text{prior matching term}\\ &- \sum_{t=2}^{T} \underbrace{\mathbb{E}_{q(x_{t}|x_0)}\left[KL{q(x_{t-1}|x_t, x_0)}{p_{{\theta}}(x_{t-1}|x_t)}\right]}_\text{denoising matching term}\\ \end{aligned} \end{align}\end{split} (13)


我们来看看在训练阶段q(xt1x_t,x_0)q(x*{t-1}|x\_t, x\_0)如何得到:
1.其中x_0x\_0是观测值是已知的
2.x_tx\_t是通过q(x_tx_t1)q(x\_t|x\_{t-1})前向映射分布求解得到,然而利用前向映射是线性高斯这个假设可以通过q(x_tx_0)q(x\_t|x\_0)一步求的,绕开前向链式递推过程。
3.接下来看q(x_tx_0)q(x\_t|x\_0)如何求解,可以看成是联合概率q(x_1:tx_0)q(x\_{1:t}|x\_0)边界求解
q(x_tx_0)=q(x_1:tx_0)dx_1:t130q(x\_t|x\_0) = \int q(x\_{1:t}|x\_0) d x\_{1:t-1}(30)
马尔可夫链假设下,形式如下:

q(xtx0)=q(x1:tx0)dx1:t1=i=1tq(xixi1)dx1:t131\begin{align}\begin{aligned}q(x_t|x_0) &= \int q(x_{1:t}|x_0) d x_{1:t-1}\\&= \int \prod_{i=1}^t q(x_{i}|x_{i-1}) d x_{1:t-1}\end{aligned}\end{align}(31)


如果想放弃马尔可夫链假设,又保留马尔可夫链假设下分布的求解形式(这样在训练时候可以实现用DDPM,只是在推理使用用DDIM加速)。
引入一个手动定义的代表q_σ(x_t1x_t,x_0)q\_{\sigma}(x\_{t-1}|x\_t,x\_0)方差的参数σ2\sigma^2,定义q_σ(x_1:Tx_0)q\_\sigma (x\_{1:T}|x\_0)分解形式如下:
q_σ(x_1:Tx_0):=q_σ(x_Tx_0)_t=2Tq_σ(x_t1x_t,x_0)32q\_\sigma (x\_{1:T}|x\_0) := q\_{\sigma}(x\_T|x\_0) \prod\_{t=2}^T q\_{\sigma}(x\_{t-1}|x\_t,x\_0)(32)
确保q_σ(x_Tx_0)q\_\sigma(x\_T|x\_{0})分解形式和DDPM中分解形式一至(对于任意1tT1\le t \le T下都满足,具体证明可以看DDPM附录b):
q_σ(x_Tx_0)N(αˉT x_0,(1αˉT)I)33q\_\sigma(x\_T|x\_{0}) \sim \mathcal{N}(\sqrt{\bar{ \alpha}*T } \ x\_0, (1- \bar{ \alpha}*T) \textit{I})(33)
定义:
qσ(xt1x_t,x_0)N(αˉt1 x_0\+1αˉt1σ_t2x_tαˉt x_01αˉt期望,σ_t2I方差)34q*{\sigma}(x*{t-1}|x\_t,x\_0) \sim \mathcal{N} \left( \underbrace{ \sqrt{\bar{\alpha}*{t-1}} \ x\_0 \+ \sqrt{1-\bar{\alpha}*{t-1}-\sigma\_t^2} \cdot \frac{x\_t - \sqrt{\bar{\alpha}*t} \ x\_0 }{\sqrt{1-\bar{\alpha}*t}} }*{\text{期望}} , \underbrace{ \sigma\_t^2 \textit{I} }*{\text{方差}} \right )(34)
这样我们就可以在非马尔可夫链假设下经过和DDPM一样的训练,在逆向过程中一步求解出生成图片。
x^0=fθ(t)(x_t)=x_t1αˉ_t ϵ^t(x_t,t)αˉt35\hat{x}*0 =f*{\theta}^{(t)}(x\_t)= \frac{x\_t -\sqrt{1- \bar{ \alpha}\_t } \ \hat{\epsilon}*t (x\_t,t)}{ \sqrt{\bar{\alpha}*t } } (35)
其中ϵ^t(x_t,t)\hat{\epsilon}*t (x\_t,t)直接用DDPM训练好的模型预测值。
把(35)式带入(34)式,根据最大ELBO的denoising matching term的物理意义得到:

pθ,σ(xt1xt)N(αˉt1 x^0+1αˉt1σt2xtαˉt x^01αˉt,σt2I)qσ(xt1xt,x0)36\begin{align}\begin{aligned}p_{{\theta},\sigma}(x_{t-1}|x_t) &\sim \mathcal{N} \left( \sqrt{\bar{\alpha}_{t-1}} \ \hat{x}_0 + \sqrt{1-\bar{\alpha}_{t-1}-\sigma_t^2} \cdot \frac{x_t - \sqrt{\bar{\alpha}_t} \ \hat{x}_0 }{\sqrt{1-\bar{\alpha}_t}} ,\sigma_t^2 \textit{I} \right )\\&\approx q_{\sigma}(x_{t-1}|x_t,x_0)\end{aligned}\end{align}(36)


综合上面的推导得到:

p(xt1xt)={N(x^0(x1,t=1),σ12I )\mboxift=1qσ(xt1xt,x^0(xt,t))\mboxif1<tT37\begin{split}p(x_{t-1}|x_t) = \left \{ \begin{array}{rcl} &\mathcal{N}(\hat{x}_0(x_1,t=1), \sigma^2_1 \textit{I} \ ) &\mbox{if}\quad t =1\\ &q_{\sigma}(x_{t-1}|x_t,\hat{x}_0(x_t,t)) &\mbox{if}\quad 1 \lt t \le T \end{array} \right .\end{split}(37)


xt1x*{t-1}的计算公式如下:

xt1=αˉt1 x^0+1αˉt1σt2xtαˉt x^01αˉt+σtϵt=αˉt1(xt1αˉt ϵ^t(xt,t)αˉt)predict x0+1αˉt1σt2ϵ^t(xt,t)direction pointing to xt+σtϵtrandom noisewhereϵtN(0,I)38\begin{align}\begin{aligned}x_{t-1} &= \sqrt{\bar{\alpha}_{t-1}} \ \hat{x}_0 + \sqrt{1-\bar{\alpha}_{t-1}-\sigma_t^2} \cdot \frac{x_t - \sqrt{\bar{\alpha}_t} \ \hat{x}_0 }{\sqrt{1-\bar{\alpha}_t}} + \sigma_t \epsilon_t^*\\&=\sqrt{\bar{\alpha}_{t-1}} \underbrace{ \left ( \frac{x_t -\sqrt{1- \bar{ \alpha}_t } \ \hat{\epsilon}_t (x_t,t)}{ \sqrt{\bar{\alpha}_t } } \right ) }_{\text{predict } x_0} + \underbrace{\sqrt{1-\bar{\alpha}_{t-1}-\sigma_t^2} \quad \hat{\epsilon}_t (x_t,t)}_{\text{direction pointing to }x_t} + \underbrace{\sigma_t \epsilon_t^{*}}_{\text{random noise}}\\& \text{where}\quad \epsilon_t^{*} \sim \mathcal{N}(0,\textit{I})\end{aligned}\end{align}(38)


上式中σ2\sigma^2q_σ(x_t1x_t,x_0)q\_{\sigma}(x\_{t-1}|x\_t,x\_0)的方差,在DDPM中国这个方差是直接通过贝叶斯公式(26)推导来的,是一个固定表达式:
σ2=(1α_t)(1αˉ_t1)1αˉ_t39\sigma^2 = \frac{(1 - \alpha\_t)(1 - \bar\alpha\_{t-1})}{ 1 -\bar\alpha\_{t}}(39)
σ2\sigma^2,通过设定不通知来控制生成图片差异。

SDEs

DPMs是对扩散的简化近似,利用马尔可夫链+高斯加噪的方式来简化版本的近似扩散建模。其中做了很多的假设、近似,现实的场景往往很难满足这些假设、近似;所以会导致生成效果不容易提升、适用范围不够管。这也是我们在这章节引入SDE建模的原因。对于扩散想象是有严格的数学建模的,对应的就是SDE学科。所以我们何不直接把扩散生成用已经成熟的SDE模型开建模。
1.连续性问题表达
2.表达更复杂分布
3.有解析解
在研究客观现象时,常常遇到这样一类数学问题,即其中某个变量和其他变量之间的函数依赖关系是未知的, 但是这个未知的函数关系以及它的某些阶的导数(或微分)连同自变量都由一个已知的方程联系在一起, 这样的方程称为微分方程(Differential Equation)。简单来说, 微分方程指的是:含有未知函数及其导数的方程
微分方程是联系自变量x ,关于自变量x的未知函数f和它的某些阶导数dfdx,d2fdx2,,dnfdxn\frac{df}{dx},\frac{d^2f}{dx^2},\dots,\frac{d^nf}{dx^n}的关系式:
F(x,f,dfdx,d2fdx2,,dnfdxn)=040F\left(x,f,\frac{df}{dx},\frac{d^2f}{dx^2},\dots,\frac{d^nf}{dx^n} \right ) = 0(40)
如果未知函数是一元的,对应的微分方程称为常微分方程(Ordinary Differential Equation, ODE); 如果未知函数是多元的,对应的微分方程称为偏微分方程(Partial Differential Equations, PDE)。 方程中出现的最高阶导数的阶数称为这个微分方程的阶(order)。
接下是关于微分方程的解,微分方程解的数量是不固定的,有些微分方程有无穷多解,有的微分方程无解,有的微分方程则仅有有限个解。 特解 指的是满足微分方程的某一个解; 通解 指的是满足微分方程的一组解。
在概率论和统计学中,扩散过程(diffusion process)是一种随机过程(random process), 它是一种连续时间上马尔科夫过程(Markov process)。 扩散过程本质上是随机的,因此用于模拟许多现实生活中的随机系统, 布朗运动、反射布朗运动和奥恩斯坦-乌伦贝克过程是扩散过程的例子。
扩散过程(diffusion process)可以用如下特殊的微分方程去描述:
dXt=a(Xt,t)dt+b(Xt,t)dWt41d X_t = a(X_t,t)dt + b(X_t,t) d W_t(41)
其中 t[0,T]t \in [0,T]表示连续的时间, a(Xt,t)a(X_t,t)漂移系数(drift coefficient), b(Xt,t)b(X_t,t)噪声系数(noise coefficient),又名扩散系数(diffusion coefficient)。WtW_t表示一个 标准温拿过程(standard Wiener process),又名标准布朗运动(standard Brownian motion)。 如果 b(Xt,t)b(X_t,t)XX无关,则称为加性(additive)噪声。 如果 b(Xt,t)b(X_t,t)XX相关,那么噪声是乘性(multiplicative)的。
这个方程也被称为随机微分方程(stochastic differential equation,SDE), 如果去掉噪声项b(Xt,t)dWtb(X_t,t) d W_t ,就称为常微分方程(ordinary differential equation,ODE)。
式中dXtd X_t是对XtX_t的微分,可以理解成,在极小的时间变化中Δt0\Delta t \rightarrow 0XtX_t的变化量。那么可以得到XtX_t的表达式:
Xt=X0+0ta(Xs,t)dt+0tb(Xs,s)dWs42X_t = X_0 + \int_0^t a(X_s,t)dt + \int_0^t b(X_s,s) d W_s(42)
图像生成扩散模型可以用上述随机微分方程来描述,建立在连续时间 t[0,T]t \in [0,T]上的扩散过程 {Xt}t=0T\{X_t\}_{t=0}^TX0p0X_0 \sim p_0表示初始时刻的随机变量,也就是真实图像背后的概率分布。 换句话说X0p0X_0 \sim p_0是数据样本的概率分布。 定义一个扩散过程:
dx=f(x,t)dt+g(t)dw43d x = f(x,t)dt + g(t) dw(43)
x是一个向量,表示多个独立随机变量的值组成的向量。 这里我们对噪声系数进行了简化, 简化为关于时间的函数 g(t), 只与时间 x相关,而与 x无关,因此 g(t)是一个标量。
相当于 DDPM 中的前向扩散过程, 只不过在 DDPM 中,时间t是离散的,而在SDE中,时间是连续的。 SDE 可以看做是DDPM在连续时间上的扩展
s表示早于t 的时刻,即 0≤s<t≤T, 从时刻 s到时刻 t ,变量转换的条件概率表示为 pst(xtxs)p_{st}(x_t|x_s), 也可以称pst(xtxs)p_{st}(x_t|x_s)xsx_sxtx_t 的转换核(transition kernel)。
XTpTX_T \sim p_T为最终时刻的概率分布,它是一个无结构的先验分布(unstructured prior distribution ), 并且它不包含 p0p_0的任何信息,这里把它定义成了一个标准高斯分布。 其中 f(,t):RdRd\mathbf{f}(\cdot, t): \mathbb{R}^d \to \mathbb{R}^d是称为漂移系数的向量值函数, g(t)Rg(t)\in \mathbb{R}是称为扩散系数的实值函数,w\mathbf{w}表示标准布朗运动dw\mathrm{d} \mathbf{w}可以视为无穷小白噪声。随机微分方程的解是随机变量{x(t)}t[0,T]\{ \mathbf{x}(t) \}_{t\in [0, T]}的连续集合。随着时间索引t从开始时间0到结束时间T的增长,这些随机变量跟踪随机轨迹。让 pt(x)p_t(\mathbf{x})表示x(t)\mathbf{x}(t) 的(边际)概率密度函数。这里t[0,T]t \in [0, T]类似于当我们有i=1,2,,Li = 1, 2, \cdots, L有限数量的噪声尺度时,并且pt(x)p_t(\mathbf{x})类似于pσi(x)p_{\sigma_i}(\mathbf{x}) 。显然,p0(x)=p(x)p_0(\mathbf{x}) = p(\mathbf{x}) 是数据分布,因为没有对t=0t=0处的数据应用扰动。在随机过程扰动足够长的时间T后,pT(x)p_T(\mathbf{x})变得接近易处理的噪声分布π(x)\pi(\mathbf{x}),称为先验分布。我们注意到pT(x)p_T(\mathbf{x})这类似于pσL(x)p_{\sigma_L}(\mathbf{x})有限噪声尺度的情况,对应于对数据应用最大的σL\sigma_L噪声扰动。
(43)中的 SDE 是手工设计的,类似于我们在有限噪声尺度情况下的手工设计σ1<σ2<<σL\sigma_1 < \sigma_2 < \cdots < \sigma_L。添加噪声扰动的方法有很多种,并且 SDE 的选择并不是唯一的。例如,以下 SDE:

dx=etdw44\begin{align} \mathrm{d}\mathbf{x} = e^{t} \mathrm{d} \mathbf{w} \end{align}(44)


使用均值为零和指数增长方差的高斯噪声扰动数据,这类似于当σ1<σ2<<σL\sigma_1 < \sigma_2 < \cdots < \sigma_L几何级数 N(0,σ12I),N(0,σ22I),,N(0,σL2I)\mathcal{N}(0, \sigma_1^2 I), \mathcal{N}(0, \sigma_2^2 I), \cdots, \mathcal{N}(0, \sigma_L^2 I)时扰动数据。因此,SDE 应被视为模型的一部分,就像{σ1,σ2,,σL}\{\sigma_1, \sigma_2, \cdots, \sigma_L\} .我们提供了三种通常适用于图像的 SDE:Variance Exploding SDE (VE SDE), the Variance Preserving SDE (VP SDE), and the sub-VP SDE。
回想一下,在有限数量的噪声尺度下,我们可以通过使用退火朗之万动力学反转扰动过程来生成样本,即使用朗之万动力学从每个噪声扰动分布中顺序采样。对于无限噪声尺度,我们可以使用反向 SDE 类似地反转扰动过程以生成样本。

image.png


这个前向扩散过程不需要模型去学习,逆过程从数据分布p0p_0中去采样新的样本。 这里直接给出 SDE 的逆过程方程:
dx=[f(x,t)g(t)2Δxlogpt(x)]dt+g(t)dwˉ(45)d x = \left [ f(x,t) -g(t)^2 \Delta_x \log p_t(x) \right ] dt + g(t) d \bar{w}(45)
这里dt\mathrm{d} t表示负的无穷小时间步长,因为 SDE 需要在时间上向后求解(从t=Tt=Tt=0t=0 )。
求解逆时间SDE通常比正时间SDE更加复杂,因为它涉及到时间的反向处理,导致一些标准的求解方法不再直接适用。下面介绍几种求解逆时间SDE的方法:

image.png

  1. 数值方法
  • 欧拉-马拉松方法(Euler-Maruyama Method):这是求解SDE最基本的数值方法之一,也可以用于逆时间SDE。通过将时间轴逆向划分成小的时间步长,然后利用SDE的离散化版本逐步求解。这种方法简单易行,但精度和稳定性可能受到限制。
  • 随机Runge-Kutta方法:这是一种更高阶的数值求解方法,可以提供比欧拉-马拉松方法更好的精度。通过在每一步中使用多个估计值来改进解的近似,适用于逆时间SDE的求解,尤其是在需要较高精度的情况下。
  1. 变换方法
  • Feynman-Kac公式:这是一个将SDE与偏微分方程(PDE)联系起来的强有力工具。对于逆时间SDE,可以尝试将其转换为一个相应的PDE问题,然后利用已知的PDE求解方法来解决。这种方法需要对问题有深入的理解,并且能够找到合适的PDE表示。
  • Girsanov变换:这是一种改变概率测度的方法,可以将一个难以直接求解的SDE转化为一个更易处理的形式。对于逆时间SDE,Girsanov变换可以用来简化求解过程,尤其是在涉及到期望值计算的情况下。
  1. 模拟方法
  • 蒙特卡洛模拟:这是一种基于随机抽样的方法,适用于各种SDE的求解,包括逆时间SDE。通过生成大量的随机样本路径,然后对这些路径进行统计分析,来估计SDE的解。这种方法在处理高维问题时特别有用,但计算成本可能较高。
  1. 解析方法
  • 在某些特殊情况下,逆时间SDE可能有解析解。这通常要求SDE具有特定的结构或者限制条件。解析解的寻找依赖于数学技巧和对问题的深刻理解,但在大多数情况下,这种方法是不可行的。

针对逆时间随机微分方程(SDE)的求解,我们可以采用数值方法中较为通用且实际可操作的**欧拉-马拉松方法(Euler-Maruyama Method)**进行详细介绍和计算。这种方法因其实现简单和适用性广泛而被广泛使用,尽管它可能在精度上不如一些更高级的数值方法。

欧拉-马拉松方法(Euler-Maruyama Method)简介

欧拉-马拉松方法是求解随机微分方程的一种基本数值方法,适用于形式为
dXt=f(Xt,t)dt+g(Xt,t)dWtdX_t = f(X_t, t)dt + g(X_t, t)dW_t
的SDE,其中XtX_t是我们要求解的随机过程,f(Xt,t)f(X_t, t)g(Xt,t)g(X_t, t)是已知的函数,WtW_t是标准布朗运动。对于逆时间SDE,我们可以通过逆转时间轴的方式,将其转换为标准形式,然后应用欧拉-马拉松方法。

求解流程

  1. 时间离散化
  • 选择一个适当的时间步长Δt\Delta t,并将整个时间区间[T0,T][T_0, T]离散化为(N)个小步,其中N=TT0ΔtN = \frac{T - T_0}{\Delta t}。对于逆时间SDE,我们从终点(T)开始向起点(T_0)逆向离散化。
  1. 初始化
  • 设定初始条件XT=X0X_{T} = X_0,这里X0X_0是给定的初始值。
  1. 迭代求解
  • 对于每一个时间步(n = N, N-1, ..., 1),计算
    [Xn1=Xnf(Xn,tn)Δtg(Xn,tn)ΔWn][X_{n-1} = X_n - f(X_n, t_n)\Delta t - g(X_n, t_n)\Delta W_n]
    其中,ΔWn\Delta W_n是第n步的布朗运动增量,可以通过正态分布生成,ΔWn=ΔtZ)(ZN(0,1)\Delta W_n = \sqrt{\Delta t}Z),(Z \sim N(0,1)
  1. 输出结果
  • 重复上述迭代过程直到(n=1),得到的(X_1, X_2, ..., X_N)即为在各个时间点上的近似解。

SGM(基于分数的生成模型)

基于分数生成的优势

假设我们有一个数据集{x1,x2,,xN}\{\mathbf{x}_1, \mathbf{x}_2, \cdots, \mathbf{x}_N\},其中每个点都是独立于基础数据分布p(x)p(\mathbf{x})绘制的。给定这个数据集,生成建模的目标是使模型适合数据分布,以便我们可以通过从分布中采样随意合成新的数据点。
为了构建这样的生成模型,我们首先需要一种表示概率分布的方法。与基于可能性的模型一样,其中一种方法是直接对概率密度函数 (p.d.f.) 或概率质量函数 (p.m.f.) 进行建模。让 fθ(x)Rf_\theta(\mathbf{x}) \in \mathbb{R}是一个由可学习参数θ\theta 参数化的实值函数。我们可以定义一个 p.d.f. 6 通过

pθ(x)=efθ(x)Zθ46,\begin{align} p_\theta(\mathbf{x}) = \frac{e^{-f_\theta(\mathbf{x})}}{Z_\theta}(46), \end{align}


其中Zθ>0Z_\theta > 0是一个依赖于θ\theta 的归一化常数,使得pθ(x)dx=1\int p_\theta(\mathbf{x}) \textrm{d} \mathbf{x} = 1 .这里的函数fθ(x)f_\theta(\mathbf{x})通常称为非归一化概率模型或基于能量的模型。
我们可以通过最大化数据的对数似然来进行训练pθ(x)p_\theta(\mathbf{x})

maxθi=1Nlogpθ(xi)47. \begin{align} \max_\theta \sum_{i=1}^N \log p_\theta(\mathbf{x}_i)(47). \ \end{align}

然而,方程(47)需要pθ(x)p_\theta(\mathbf{x})是归一化的概率密度函数。这是不可取的,因为为了计算 pθ(x)p_\theta(\mathbf{x}),我们必须评估归一化常数ZθZ_\theta——对于任何一般的fθ(x)f_\theta(\mathbf{x})来说,这通常是一个难以处理的量。因此,为了使最大似然训练可行,基于似然的模型必须限制其模型架构(例如,自回归模型中的因果卷积、归一化流模型中的可逆网络)以使其易于处理,或者逼近归一化常数(例如,VAE 中的变分推理) ,或对比散度中使用的 MCMC 采样),这可能在计算上很昂贵。
通过对得分函数而不是密度函数进行建模,我们可以避开难以处理的标准化常数的困难。分布p(x)p(\mathbf{x})得分函数定义为

xlogp(x)48,\begin{equation} \nabla_\mathbf{x} \log p(\mathbf{x})(48), \notag \end{equation}


基于分数的模型,我们将其表示为sθ(x)\mathbf{s}_\theta(\mathbf{x}) .基于分数的模型的学习使得sθ(x)xlogp(x)\mathbf{s}_\theta(\mathbf{x}) \approx \nabla_\mathbf{x} \log p(\mathbf{x}) 可以被参数化,而不必担心归一化常数。例如,我们可以使用方程(46)中定义的基于能量的模型轻松参数化基于分数的模型,通过:
sθ(x)=xlogpθ(x)=xfθ(x)xlogZθ=0=xfθ(x).49\mathbf{s}_\theta (\mathbf{x}) = \nabla_{\mathbf{x}} \log p_\theta (\mathbf{x} ) = -\nabla_{\mathbf{x}} f_\theta (\mathbf{x}) - \underbrace{\nabla_\mathbf{x} \log Z_\theta}_{=0} = -\nabla_\mathbf{x} f_\theta(\mathbf{x}).(49)
请注意,基于分数的模型sθ(x)\mathbf{s}_\theta(\mathbf{x})与归一化常数ZθZ_\theta无关!这显着扩展了我们可以轻松使用的模型系列,因为我们不需要任何特殊的架构来使标准化常数变得易于处理。

image.png

image.png 与基于似然的模型类似,我们可以通过最小化 Fisher 散度Fisher 散度通常位于两个分布 p 和 q 之间来训练基于分数的模型,定义为:
Ep(x)[xlogp(x)sθ(x)22](50)\mathbb{E}_{p(\mathbf{x})}[\| \nabla_\mathbf{x} \log p(\mathbf{x}) - \mathbf{s}_\theta(\mathbf{x}) \|_2^2] (50)
直观上,费舍尔散度比较了真实数据得分与基于得分的模型之间的平方距离l2l^2。然而,直接计算这种差异是不可行的,因为它需要访问未知的数据分数xlogp(x)\nabla_\mathbf{x} \log p(\mathbf{x})。幸运的是,存在一系列称为分数匹配的方法,常用的分数匹配方法包括去噪分数匹配和切片分数匹配。这里介绍一下分数匹配和切片分数匹配。在不知道真实数据分数的情况下最小化费舍尔散度。分数匹配目标可以直接在数据集上估计,并通过随机梯度下降进行优化,类似于训练基于似然的模型的对数似然目标(具有已知的归一化常数)。我们可以通过最小化分数匹配目标来训练基于分数的模型,无需对抗性优化
此外,使用分数匹配目标为我们提供了相当大的建模灵活性。 Fisher 散度本身不需要sθ(x)\mathbf{s}_\theta(\mathbf{x})是任何归一化分布的实际得分函数——它只是比较真实数据得分与基于得分的模型之间的距离2\ell_2,而不需要对sθ(x)\mathbf{s}_\theta(\mathbf{x})的形式做出任何额外假设。事实上,基于分数的模型的唯一要求是它应该是具有相同输入和输出维度的向量值函数,这在实践中很容易满足。
简而言之,我们可以通过对其得分函数进行建模来表示分布,可以通过训练具有得分匹配的自由形式架构的基于得分的模型来估计该分布。

基于分数的求解方法

一旦我们训练了基于分数的模型sθ(x)xlogp(x)\mathbf{s}_\theta(\mathbf{x}) \approx \nabla_\mathbf{x} \log p(\mathbf{x}),我们就可以使用名为 Langevin Dynamics 的迭代过程从中抽取样本。
Langevin Dynamics 提供了一个 MCMC 过程,仅使用xlogp(x)\nabla_\mathbf{x} \log p(\mathbf{x})其得分函数从分布p(x)p(\mathbf{x})中进行采样。具体来说,它从任意先验分布初始化链x0π(x)\mathbf{x}_0 \sim \pi(\mathbf{x}),然后迭代以下:


其中ziN(0,I)\mathbf{z}_i \sim \mathcal{N}(0, I) 。当 ϵ0\epsilon \to 0KK \to \infty时,从过程(51)中得到的 xK\mathbf{x}_K在一定的规则条件下会收敛到 p(x)p(\mathbf{x}) 的一个样本。实际上,当误差ϵ\epsilon足够小和KK足够大时,误差可以忽略不计。请注意,朗之万动力学只通过xlogp(x)\nabla_x \log p(x)来访问 p(x)p(x)。因为 xp^(x)xlogp(x)\nabla_x \hat{p}(x) \approx \nabla_x \log p(x),我们可以通过将其代入方程(51)来从我们的基于评分的模型 p^(x)\hat{p}(x)中产生样本。

image.png

朴素生成模型求解的问题

单一尺度的噪声扰动,导致低数据量的区域得不到充分表示。
到目前为止,我们已经讨论了如何通过分数匹配训练基于分数的模型,然后通过 Langevin 动力学生成样本。然而,这种朴素的方法在实践中应用存在问题。 这个问题关键在于估计的得分函数在低密度区域不准确,其中很少有数据点可用于计算得分匹配目标。这是预期的,因为分数匹配最小化了费舍尔散度
Ep(x)[xlogp(x)sθ(x)22]=p(x)xlogp(x)sθ(x)22dx.52\mathbb{E}_{p(\mathbf{x})}[\| \nabla_\mathbf{x} \log p(\mathbf{x}) - \mathbf{s}_\theta(\mathbf{x}) \|_2^2] = \int p(\mathbf{x}) \| \nabla_\mathbf{x} \log p(\mathbf{x}) - \mathbf{s}_\theta(\mathbf{x}) \|_2^2 \mathrm{d}\mathbf{x}.(52)
由于真实数据评分函数和基于评分的模型之间的差异由 加权,因此在较小的低密度区域中,它们在很大程度上被忽略。这种行为可能会导致结果低于标准,如下图所示:
由于真实数据评分函数与基于评分的模型之间的 2\ell_2差异是通过 p(x)p(x)加权的,因此在p(x)p(x)较小的低密度区域,这些差异往往会被大量忽略。如下图所示,这种行为可能导致次优的结果:当使用朗之万动力学进行采样时,如果数据位于高维空间,我们的初始样本很可能位于低密度区域。因此,一个不准确的基于评分的模型会从程序的一开始就使朗之万动力学偏离轨道,阻止其生成代表数据的高质量样本。

image.png image.png

多重噪声扰动求解

我们如何绕过在低数据密度区域进行准确评分估计的难题呢?我们的解决方案是用噪声扰动数据点,并在这些带噪声的数据点上训练基于评分的模型。当噪声的幅度足够大时,它可以填充低数据密度区域,以提高评分估计的准确性。例如,这里展示了当我们对两个高斯混合体进行额外的高斯噪声扰动时会发生什么。然而,还有另一个问题:我们如何为扰动过程选择一个合适的噪声规模?较大的噪声显然可以覆盖更多低密度区域以获得更好的评分估计,但它会过度破坏数据并使其与原始分布显著不同。另一方面,较小的噪声对原始数据分布的破坏较少,但它并不能像我们希望的那样覆盖低密度区域。
为了兼顾两者的优势,我们同时使用多个噪声扰动规模。假设我们总是用各向同性的高斯噪声扰动数据,并且有总共 N个递增的标准差σ1<σ2<<σN\sigma_1 < \sigma_2 < \cdots < \sigma_N。我们首先用每个高斯噪声 N(0,σi2I)(i=1,2,,NN(0, \sigma_i^2I),(i=1,2,\cdots,N)扰动数据分布 p(x)p(x) 来获得一个噪声扰动分布
pσi(x)=p(y)N(x;y,σi2I)dy(53).p_{\sigma_i}(\mathbf{x}) = \int p(\mathbf{y}) \mathcal{N}(\mathbf{x}; \mathbf{y}, \sigma_i^2 I) \mathrm{d} \mathbf{y}(53).
请注意,我们可以通过采样 xp(x)x \sim p(x) 并计算 x+σizx + \sigma_i z,其中 zN(0,I)z \sim N(0, I),来轻松地从 pσ(x)p_{\sigma}(x)中抽取样本。
接下来,我们通过训练一个噪声条件评分模型 sθ(x,i)s_{\theta}(x, i)(当用神经网络参数化时,也称为噪声条件评分网络,或NCSN)进行评分匹配,来估计每个噪声扰动分布的评分函数 xlogpσi(x)\nabla_x \log p_{\sigma_i}(x),以使得 sθ(x,i)xlogpσi(x)s_{\theta}(x, i) \approx \nabla_x \log p_{\sigma_i}(x) 对所有的 i=1,2,,Li=1,2,\cdots,L 都成立。

image.png image.png

image.png sθ(x,i)s_{\theta}(x, i)的训练目标是所有噪声规模的Fisher散度的加权和。具体来说,我们使用下面的目标:
i=1Lλ(i)Epσi(x)[xlogpσi(x)sθ(x,i)22](54),\sum_{i=1}^{L} \lambda(i) \mathbb{E}_{p_{\sigma_i}(x)} \left[ \|\nabla_x \log p_{\sigma_i}(x) - s_{\theta}(x, i)\|_2^2 \right](54),
其中λ(i)R>0\lambda(i) \in \mathbb{R}_{>0}是一个正的权重函数,通常选择为λ(i)=σi2\lambda(i) = \sigma_i^2。目标 (54) 可以通过评分匹配进行优化,就像优化朴素(无条件)基于评分的模型sθ(x)\mathbf{s}_\theta(\mathbf{x})一样。
在训练了我们的噪声条件评分模型sθ(x,i)\mathbf{s}_\theta(\mathbf{x}, i)之后,我们可以通过按顺序对 i=L,L1,,1i = L, L-1, \cdots, 1 运行朗之万动力学来从中产生样本。这种方法称为退火朗之万动力学(由算法1定义,并得到改进),因为噪声规模 σi\sigma_i随时间逐渐降低(退火)。image.png image.png 退火朗之万动力学用于噪声条件评分网络(NCSN)模型(参考文献中)训练的CelebA(左)和CIFAR-10(右)。我们可以从无结构的噪声开始,根据评分修改图像,并生成优质样本。该方法在当时实现了CIFAR-10上的最先进的Inception得分。
在调整具有多个噪声规模的基于评分的生成模型时,这里有一些实用的建议:
选择 σ1<σ2<<σL\sigma_1 < \sigma_2 < \cdots < \sigma_L作为一个几何级数,其中 σ1\sigma_1足够小,而 σL\sigma_L与所有训练数据点之间的最大成对距离相当。L通常是几百或几千的数量级。
用 U-Net 跳跃连接参数化基于评分的模型 sθ(x,i)\mathbf{s}_\theta(\mathbf{x}, i)
在测试时应用基于评分模型权重的指数移动平均。
通过这些最佳实践,我们能够在各种数据集上生成与GANs相当的高质量图像样本,如下所示:

image.png image.png

基于分数生成模型例子

Score-SDE

解决逆向随机微分方程(SDE)需要我们知道终端分布 pT(x)p_T(x) 和评分函数 xlogpt(x)\nabla_x \log p_t(x)。按设计,前者接近于先验分布 π(x)\pi(x),这是完全可追踪的。为了估计xlogpt(x)\nabla_x \log p_t(x),我们训练了一个时间依赖的基于评分的模型 sθ(x,t)s_{\theta}(x, t),使得 sθ(x,t)xlogpT(x)s_{\theta}(x, t) \approx \nabla_x \log p_T(x)。这类似于用于有限噪声规模的噪声条件评分模型 sθ(x,i)s_{\theta}(x, i),训练使得 sθ(x,i)xlogpσi(x)s_{\theta}(x, i) \approx \nabla_x \log p_{\sigma_i}(x)
我们对 sθ(x,t)s_{\theta}(x, t) 的训练目标是Fisher散度的连续加权组合,由下式给出
Etu(0,T)Ept(x)[λ(t)xlogpt(x)sθ(x,t)22](55),\mathbb{E}_{t \in u(0,T)} \mathbb{E}_{p_t(x)} \left[ \lambda(t) \| \nabla_x \log p_t(x) - s_{\theta}(x, t) \|_2^2 \right] (55),
其中 u(0,T)u(0, T) 表示时间间隔[0,T][0, T] 上的均匀分布,λ:RR>0\lambda: \mathbb{R} \rightarrow \mathbb{R}_{>0}是一个正的加权函数。通常我们使用 λ(t)1/E[x(t)p(x)logp(x(t)x(0))22]\lambda(t) \propto 1/\mathbb{E} [ \| \nabla_{x(t)} p(x) \log p(x(t)|x(0)) \|_2^2 ]来平衡不同时间跨度上的评分匹配损失的大小。
如前所述,我们的Fisher散度的加权组合可以通过评分匹配方法高效优化,如去噪评分匹配和切片评分匹配。一旦我们的基于评分的模型 sθ(x,t)s_{\theta}(x, t)训练到最优,我们可以将其插入到逆向SDE的表达式中
dx=[f(x,t)g2(t)sθ(x,t)]dt+g(t)dw(56).dx = [f(x, t) - g^2(t) s_{\theta}(x, t)]dt + g(t)dw(56).
我们可以从 x(T)πx(T) \sim \pi开始,解上述逆向SDE以获得样本 x(0)x(0)。让我们将以这种方式获得的 x(0)x(0)的分布表示为pθp_{\theta}。当基于评分的模型 sθ(x,t)s_{\theta}(x, t)训练良好时,我们有pθp0p_{\theta} \approx p_0,在这种情况下,x(0)x(0)是数据分布 p0p_0 的一个近似样本。
λ(t)=g2(t)\lambda(t) = g^2(t)时,我们在某些规则条件下,将我们的Fisher散度的加权组合与从 p0p_0pθp_{\theta}的KL散度之间建立了重要联系:

由于这种与KL散度的特殊联系,以及最小化KL散度和最大化模型训练似然之间的等价性,我们称 λ(t)=g(t)2\lambda(t) = g(t)^2为似然权重函数。利用这个似然权重函数,我们可以训练基于评分的生成模型,达到非常高的似然,可比拟甚至超过最先进的自回归模型。

image.png

通过使用数值随机微分方程(SDE)

求解器求解估计的逆向SDE,我们可以模拟逆向随机过程以生成样本。或许最简单的数值SDE求解器是欧拉-马里亚马法。当应用于我们估计的逆向SDE时,它通过有限的时间步长和小的高斯噪声来离散化SDE。具体来说,它选择一个小的负时间步长Δt≈0,初始化tTt←T,并迭代以下过程直到t≈0:
Δx[f(x,t)g2(t)sθ(x,t)]Δt+g(t)Δt(1/2)zt,其中xx+Δx,tt+Δt,这里ztN(0,I)Δx←[f(x,t)−g^2(t)s_θ(x,t)]Δt+g(t)|Δt|^{(1/2)}z_t , \\ 其中x←x+Δx, \\ t←t+Δt, \\这里z_t∼N(0,I)
欧拉-马里亚马法在性质上类似于朗之万动力学——两者都通过受高斯噪声干扰的评分函数来更新x。
除了欧拉-马里亚马法外,其他数值SDE求解器也可以直接用于求解逆向SDE以生成样本,包括例如米尔斯坦方法和随机龙格-库塔方法。在我们提供了一个类似于欧拉-马里亚马的逆向扩散求解器,但更适合求解逆向时间SDE。更近期,作者们介绍了适应性步长SDE求解器,可以更快地生成更高质量的样本。
此外,我们的逆向SDE有两个特殊属性,允许更灵活的采样方法:
1.我们通过我们的时间依赖评分模型sθ(x,t)估计了xlogpt(x)∇_xlogp_t(x)
2.我们只关心从每个边际分布pt(x)p_t(x)采样。在不同时间步获得的样本可以有任意的相关性,并不需要形成从逆向SDE采样的特定轨迹。
由于这两个属性,我们可以应用MCMC方法来微调数值SDE求解器获得的轨迹。具体来说,我们提出了预测器-校正器采样器。预测器可以是任何数值SDE求解器,它预测x(t+Δt)pt+Δt(x)x(t+Δt)∼p_{t+Δt}(x)从现有样本x(t)pt(x)x(t)∼p_t(x)。校正器可以是任何仅依赖于评分函数的MCMC过程,如朗之万动力学和哈密顿蒙特卡洛。
在预测器-校正器采样器的每一步中,我们首先使用预测器选择一个合适的步长Δt<0,然后基于当前样本x(t)预测x(t+Δt)。接下来,我们运行几个校正步骤,根据我们的评分模型sθ(x,t+Δt)来改善样本x(t+Δt),使x(t+Δt)成为来自pt+Δt(x)p_{t+Δt}(x)的更高质量样本。
通过预测器-校正器方法和更好的评分模型架构,我们可以在CIFAR-10上实现最先进的样本质量(以FID和Inception分数衡量),超过了迄今为止最好的GAN模型(StyleGAN2 + ADA)。

概率流ODE求解

尽管基于朗之万MCMC和SDE求解器的采样器能够生成高质量样本,但它们无法提供一种计算基于评分的生成模型确切对数似然的方法。下面,我们将介绍一种基于常微分方程(ODEs)的采样器,该采样器允许精确计算似然性。
我们展示了将任何SDE转换为常微分方程(ODE)而不改变其边际分布{pt(x)}t[0,T]\{p_t(x)\}_{t∈[0,T]}的可能性。因此,通过解这个ODE,我们可以从与逆向SDE相同的分布中采样。SDE对应的ODE被称为概率流ODE,由以下公式给出
dX=[f(X,t)1/2g2(t)Xlogpt(X)]dt(58)dX=[f(X,t)-1/2g^2(t)∇_Xlogp_{t(X)}]dt(58)
下图描述了SDE和概率流ODE的轨迹。尽管ODE轨迹明显比SDE轨迹平滑,但它们将相同的数据分布转换为相同的先验分布,反之亦然,共享相同的一组边际分布{pt(x)}t[0,T]\{p_t(x)\}_{t∈[0,T]}。换句话说,通过解概率流ODE获得的轨迹具有与SDE轨迹相同的边际分布。这种概率流ODE公式有几个独特的优势。
Xlogt(X)∇_Xlog_t(X)被其近似sθ(X,t)替代时,概率流ODE变成了神经ODE的一个特例。特别是,它是连续归一化流的一个例子,因为概率流ODE将数据分布p0(X)p_0(X)转换为先验噪声分布pT(X)p_T(X)(因为它与SDE共享相同的边际分布)并且是完全可逆的。
因此,概率流ODE继承了神经ODE或连续归一化流的所有属性,包括精确的对数似然计算。具体来说,我们可以利用瞬时变量变化公式来利用数值ODE求解器计算未知的数据密度p0从已知的先验密度pT。
事实上,即使没有最大似然训练,我们的模型在均匀去量化的CIFAR-10图像上也达到了最先进的对数似然

image.png

Score-DDPM

假设有一个多远高斯分布z(Nz;μz,Σz)z \sim (\mathcal{N}{z;\mu_z,\Sigma_z}),它的Tweedie 公式可以写为:
E[μzz]=z+Σzzlogp(z)score\mathbb{E}[\mu_z | z] = z + \Sigma_z \underbrace{ \nabla_z \log p(z)}_{\text{score}}
其中等式左边 E[μzz]\mathbb{E}[\mu_z | z]表示:有 z的样本条件下, μz\mu_z的期望,直观地理解,就是用 z的样本估计 μz\mu_z 的值。 等式右边就是具体计算方式,在这里只需要 z的一条样本就可以。 logp(z)\log p(z)就是观测样本的对数似然, zlogp(z)\nabla_z \log p(z)就是观测样本的对数似然的一阶导数,又名梯度, 也叫 Stein 分数(Stein score),简称分数(score)。 注意,还有另外一个分数, fisher score ,二者不太一样,不要搞混了。 fisher score 是对数似然关于 参数 的梯度 θlogp(z;θ)\nabla_{\theta} \log p(z;\theta) ; Stein score 是对数似然关于 观测变量(样本) 的梯度 zlogp(z)\nabla_z \log p(z)
根据前面章节的推导可以知道DDPM的前向过程映射分布为:
q(xtx0)=N(xt;αˉtx0,(1αˉt)I)q(x_t|x_0) = \mathcal{N}(x_{t} ; \sqrt{\bar\alpha_t} x_0, \left(1 - \bar\alpha_t\right)\textit{I})
利用 Tweedie 公式估计它的均值参数:
αˉtx0=E[μxtxt]=xt+(1αˉt)xtlogp(xt)\sqrt{\bar\alpha_t} x_0 = \mathbb{E}\left[{\mu}_{x_t}|x_t\right] = x_t + (1 - \bar\alpha_t)\nabla_{x_t}\log p(x_t)
对上式进行移项可以得到一个新的关系式:
x0=xt+(1αˉt)logp(xt)αˉt(59)x_0 = \frac{x_t + (1 - \bar\alpha_t)\nabla\log p(x_t)}{\sqrt{\bar\alpha_t}}(59)
根据前面DDPM章节推导μq(xt,x0){\mu}_q(x_t, x_0),把(59)式带入得:

μq(xt,x0)=αt(1αˉt1)xt+αˉt1(1αt)x01αˉt=αt(1αˉt1)xt+αˉt1(1αt)xt+(1αˉt)logp(xt)αˉt1αˉt=αt(1αˉt1)xt+(1αt)xt+(1αˉt)logp(xt)αt1αˉt=αt(1αˉt1)xt1αˉt+(1αt)xt(1αˉt)αt+(1αt)(1αˉt)logp(xt)(1αˉt)αt=(αt(1αˉt1)1αˉt+1αt(1αˉt)αt)xt+1αtαtlogp(xt)=(αt(1αˉt1)(1αˉt)αt+1αt(1αˉt)αt)xt+1αtαtlogp(xt)=αtαˉt+1αt(1αˉt)αtxt+1αtαtlogp(xt)=1αˉt(1αˉt)αtxt+1αtαtlogp(xt)=1αtxt+1αtαtlogp(xt)60\begin{split}\begin{align} {\mu}_q(x_t, x_0) &= \frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})x_{t} + \sqrt{\bar\alpha_{t-1}}(1-\alpha_t)x_0}{1 -\bar\alpha_{t}}\\ &= \frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})x_{t} + \sqrt{\bar\alpha_{t-1}}(1-\alpha_t)\frac{x_t + (1 - \bar\alpha_t)\nabla\log p(x_t)}{\sqrt{\bar\alpha_t}}}{1 -\bar\alpha_{t}}\\ &= \frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})x_{t} + (1-\alpha_t)\frac{x_t + (1 - \bar\alpha_t)\nabla\log p(x_t)}{\sqrt{\alpha_t}}}{1 -\bar\alpha_{t}}\\ &= \frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})x_{t}}{1 - \bar\alpha_t} + \frac{(1-\alpha_t)x_t}{(1-\bar\alpha_t)\sqrt{\alpha_t}} + \frac{(1 - \alpha_t)(1 - \bar\alpha_t)\nabla\log p(x_t)}{(1-\bar\alpha_t)\sqrt{\alpha_t}}\\ &= \left(\frac{\sqrt{\alpha_t}(1-\bar\alpha_{t-1})}{1 - \bar\alpha_t} + \frac{1-\alpha_t}{(1-\bar\alpha_t)\sqrt{\alpha_t}}\right)x_t + \frac{1 - \alpha_t}{\sqrt{\alpha_t}}\nabla\log p(x_t)\\ &= \left(\frac{\alpha_t(1-\bar\alpha_{t-1})}{(1 - \bar\alpha_t)\sqrt{\alpha_t}} + \frac{1-\alpha_t}{(1-\bar\alpha_t)\sqrt{\alpha_t}}\right)x_t + \frac{1 - \alpha_t}{\sqrt{\alpha_t}}\nabla\log p(x_t)\\ &= \frac{\alpha_t-\bar\alpha_{t} + 1-\alpha_t}{(1 - \bar\alpha_t)\sqrt{\alpha_t}}x_t + \frac{1 - \alpha_t}{\sqrt{\alpha_t}}\nabla\log p(x_t)\\ &= \frac{1-\bar\alpha_t}{(1 - \bar\alpha_t)\sqrt{\alpha_t}}x_t + \frac{1 - \alpha_t}{\sqrt{\alpha_t}}\nabla\log p(x_t)\\ &= \frac{1}{\sqrt{\alpha_t}}x_t + \frac{1 - \alpha_t}{\sqrt{\alpha_t}} \nabla\log p(x_t) \end{align}\end{split}(60)

按照个形式设定参数化分布 pθ(xt1xt)p_{\theta}(x_{t-1}|x_t)均值 μθ\mu_{\theta}的表达式:
μθ(xt,t)=1αtxt+1αtαtsθ(xt,t)61\mu_{\theta}(x_t, t) = \frac{1}{\sqrt{\alpha_t}}x_t + \frac{1 - \alpha_t}{\sqrt{\alpha_t}}s_{{\theta}}(x_t, t)(61)
sθ(xt,t)s_{{\theta}}(x_t, t)是模型预测内容,相当于模型直接预测的是分数xtlogp(xt)\nabla_{x_t} \log p(x_t)
把这种表达形式带入ELBO第三项,得到:

arg minθDKLq(xt1xt,x0)pθ(xt1xt)=arg minθDKLN(xt1;μq,Σq(t))N(xt1;μθ,Σq(t))=arg minθ12σq2(t)[1αtxt+1αtαtsθ(xt,t)1αtxt1αtαtlogp(xt)22]=arg minθ12σq2(t)[1αtαtsθ(xt,t)1αtαtlogp(xt)22]=arg minθ12σq2(t)[1αtαt(sθ(xt,t)logp(xt))22]=arg minθ12σq2(t)(1αt)2αt[sθ(xt,t)logp(xt)22](62)\begin{split}\begin{align} & \quad \,\argmin_{{\theta}} D_{KL}{q(x_{t-1}|x_t, x_0)}{p_{{\theta}}(x_{t-1}|x_t)} \nonumber \\ &= \argmin_{{\theta}}D_{KL}{\mathcal{N}\left(x_{t-1}; {\mu}_q,{\Sigma}_q\left(t\right)\right)}{\mathcal{N}\left(x_{t-1}; {\mu}_{{\theta}},{\Sigma}_q\left(t\right)\right)}\\ &=\argmin_{{\theta}}\frac{1}{2\sigma_q^2(t)}\left[\left\lVert\frac{1}{\sqrt{\alpha_t}}x_t + \frac{1 - \alpha_t}{\sqrt{\alpha_t}}s_{{\theta}}(x_t, t) - \frac{1}{\sqrt{\alpha_t}}x_t - \frac{1 - \alpha_t}{\sqrt{\alpha_t}}\nabla\log p(x_t)\right\rVert_2^2\right]\\ &=\argmin_{{\theta}}\frac{1}{2\sigma_q^2(t)}\left[\left\lVert \frac{1 - \alpha_t}{\sqrt{\alpha_t}}s_{{\theta}}(x_t, t) - \frac{1 - \alpha_t}{\sqrt{\alpha_t}}\nabla\log p(x_t)\right\rVert_2^2\right]\\ &=\argmin_{{\theta}}\frac{1}{2\sigma_q^2(t)}\left[\left\lVert \frac{1 - \alpha_t}{\sqrt{\alpha_t}}(s_{{\theta}}(x_t, t) - \nabla\log p(x_t))\right\rVert_2^2\right]\\ &=\argmin_{{\theta}}\frac{1}{2\sigma_q^2(t)}\frac{(1 - \alpha_t)^2}{\alpha_t}\left[\left\lVert s_{{\theta}}(x_t, t) - \nabla\log p(x_t)\right\rVert_2^2\right] \end{align}\end{split}(62)

logp(xt)\nabla\log p(x_t)是真实值,可以直接计算得到。sθ(xt,t)s_{{\theta}}(x_t, t)代表一个神经网络模型,它去学习和预测logp(xt)\nabla\log p(x_t)
得到:

x0=xt+(1αˉt)logp(xt)αˉt=xt1αˉtϵtαˉt(1αˉt)logp(xt)=1αˉtϵtlogp(xt)=11αˉtϵt63\begin{split}\begin{align} x_0 = \frac{x_t + (1 - \bar\alpha_t)\nabla\log p(x_t)}{\sqrt{\bar\alpha_t}} &= \frac{x_t - \sqrt{1 - \bar\alpha_t}{\epsilon}_t}{\sqrt{\bar\alpha_t}}\\ \therefore (1 - \bar\alpha_t)\nabla\log p(x_t) &= -\sqrt{1 - \bar\alpha_t}{\epsilon}_t\\ \nabla\log p(x_t) &= -\frac{1}{\sqrt{1 - \bar\alpha_t}}{\epsilon}_t \end{align}\end{split}(63)

梯度的方向,是函数极值的方向。 梯度 logp(xt)\nabla\log p(x_t)指向的是对数概率函数 logp(xt)\log p(x_t)概率密度最大的方向。

采样加速

image.png

知识蒸馏

知识蒸馏是一种将“知识”从较大模型转移到更简单模型的技术。在扩散模型中,目标是通过对齐和最小化原始样本和生成样本之间的差异,使用更少的步骤或更小的网络来生成样本。作为跨分布的轨迹优化,蒸馏提供了最佳映射,以实现经济高效且更快的可控生成。

常微分轨迹

常微分方程(ODE)轨迹知识通过使用ODE公式从教师模型到学生模型的提炼,类似于通过分布场中的高效路径将先验分布映射到目标分布。将这一原理应用于通过逐步提炼采样轨迹来改进扩散模型,每两步直接化潜在映射。TRACT 、Denoising Student和一致性模型扩展了这一效果,通过直接从噪声样本估计干净数据,将加速率增加到64和1024。RFCD通过在训练期间对齐样本特征来提高学生模型的性能。
通过最优运输可以获得最优轨迹。通过流匹配最小化分布之间的运输成本,ReFlow实现一步生成。DSNO提出了一个用于直接时间路径建模的神经算子。一致性模型、SFT-PG和MMD-DDM分别使用LPIPS、IPA和MMD寻找理想轨迹。

随机微分方程(SDE)

轨迹提炼随机轨迹仍然具有挑战性。提出的相关工作很少。

改变训练架构

改进训练计划涉及修改传统训练设置,例如与采样无关的扩散方案和噪声方案。最近的研究强调了训练方案中的关键因素,这些因素影响学习模式和模型性能。将训练增强分为两个主要领域:扩散方案学习和噪声规模设计。

扩散方案学习

类似于变分自编码器(VAEs)的扩散模型将数据投影到潜在空间,由于其更高的表现力而变得更加复杂。这些模型中的逆向解码方法可以分为两种方法:编码程度优化和投影方法。
编码程度优化方法,如CCDF和Franzese等,通过将扩散步骤数视为一个变量来最小化证据下界(ELBO)。截断是另一种方法,通过以一步方式从较少扩散的数据中采样,平衡生成速度和样本保真度。TDPM和ES DDPM结合GAN和CT使用截断。投影方法,如软扩散和模糊扩散模型,通过使用线性损坏如模糊和遮罩探索扩散核的多样性。

噪声规模设计

在传统的扩散过程中,每个转换步骤都由注入的噪声决定,这相当于在前向和反向轨迹上的随机行走。设计噪声规模可以实现合理的生成和快速收敛。与传统的DDPMs不同,现有方法将噪声规模视为整个过程中的一个可学习参数。
前向噪声设计方法如VDM将噪声规模参数化为信噪比,将其与训练损失和模型类型联系起来。FastDPM使用离散时间变量或方差标量将噪声设计与ELBO优化联系起来。对于反向噪声设计,改进的DDPM通过训练混合损失隐式学习反向噪声规模,而San Roman等使用噪声预测网络在祖先采样前更新反向噪声规模。

无需训练的采样方法

旨在利用先进的采样器加速预训练扩散模型的采样过程,消除了对模型重新训练的需求。本小节将这些方法分为几个方面:扩散ODE和SDE采样器的加速、分析方法和动态规划。

ODE加速

展示了DDPM中的随机采样过程有一个几乎等价的概率ODE,它定义了从先验到数据分布的确定性采样轨迹。鉴于ODE采样器产生的离散化误差小于其随机对应物,大多数之前关于采样加速的工作都是以ODE为中心的。例如,广泛使用的采样器DDIM可以被视为一个概率流ODE:
dxˉ(t)=ϵθ(t)(xˉ(t)σ2+1d\bar{x}(t) = \epsilon_{\theta}^{(t)}(\frac{\bar{x}(t)}{\sqrt{\sigma^2+1}}
其中σt\sigma_t是由1αt/αt\sqrt{1-\alpha_t}/\sqrt{\alpha_t}参数化的,而xˉ\bar{x}是由x/αtx/\sqrt{\alpha_t}参数化的。后续工作将DDIM解释为在VP(Variance Preserving)扩散的ODE上应用指数积分器的结果。高级ODE求解器已被用于如PNDM、EDM、DEIS、gDDIM和DPM-Solver等方法中。例如,EDM采用了Heun的二阶ODE求解器,而DEIS/DPM-solver通过在每个离散时间间隔内数值近似分数函数,改进了DDIM。这些方法显著加速了采样速度(减少了函数评估次数,或NFE),同时仍然产生高质量的样本。

image.png

SDE加速

基于ODE的采样器更快,但达到性能限制,而基于SDE的采样器尽管速度较慢,但提供更好的样本质量。几项工作专注于加速随机采样器的速度。《Gotta Go Fast》使用自适应步长来加速SDE采样,而EDM结合了更高阶的ODE与类似Langevin动力学的噪声添加和移除,展示了他们提出的随机采样器在ImageNet-64上显著优于ODE采样器。最近的一项工作揭示了,尽管ODE采样器涉及更小的离散化误差,但SDE中的随机性有助于减少累积误差。这导致了重启采样算法,它融合了两个世界的最佳方面。这种采样方法在添加显著噪声的额外前向步骤和严格遵循后向ODE之间交替,超越了以前的SDE和ODE采样器在标准基准和稳定扩散模型上的表现,无论是在速度还是准确性方面。

解析方法

现有的无需训练的采样方法将逆协方差尺度视为一系列手工制作的噪声,而没有动态考虑它们。从KL散度优化开始,分析方法使用蒙特卡洛方法设置逆均值和协方差。Analytic-DPM和扩展的Analytic-DPM共同提出了在每个状态下的最优逆解决方案的校正。分析方法对近似误差有理论保证,但由于它们的预设假设,它们仅限于特定分布。

image.png

动态规划

调整动态规划(DP)通过使用记忆技术在减少的时间内实现所有选择的遍历,以找到优化解决方案。假设从一个状态到另一个状态的每条路径与其他路径共享相同的KL散度,动态规划算法探索沿轨迹的最优遍历。当前基于DP的方法的计算成本为,通过优化ELBO损失之和。

融合扩散模型与其他生成模型

扩散模型可以与其他生成模型如生成对抗网络(GANs)或变分自编码器(VAEs)相结合,以简化采样过程。例如,可以通过在扩散采样过程的中间阶段从噪声样本中直接通过VAE或GAN预测原始数据。此外,VAE或GAN可以在中间扩散时间步生成样本,然后通过扩散模型去噪,直到时间为0,以加快时间遍历。

可控性生成

在实际应用场景下,带条件的生成式模型往往具有更大的实用意义。例如,在「AI 绘画」等「文-图生成」任务中,我们需要给定相应的主题或故事,即我们需要基于成对数据训练一个条件分p(xc)p(x|c)

分类器指导

在训练中没有成对数据,训练无条件的扩散模型。在测试时,分类器指导方法旨在将无条件的扩散模型转化为有条件的模型。
通过对贝叶斯公式取对数并对 x 求导,得到:
p(xc)=p(cx)p(x)p(c)xlogp(xc)=xlogp(x)+xlogp(cx)p(x|c) = \frac{p(c|x)p(x)}{p(c)} \Rightarrow \nabla_{x} \log p(x|c) = \nabla_{x} \log p(x) + \nabla_{x} \log p(c|x)
引入分类器与某个因子的乘积,得到分类器指导。此时,采样方向可以表示为预训练模型和温度系数与预训练分类器乘积之和(预训练扩散模型和预训练分类器单独训练):
xlogps(xc)Sample direction=xlogps(x)Pretrained model+sxlogps(cx)Pretrained classifier\underbrace{ \nabla_x \log p_s(x|c)}_{\text{Sample direction}} = \underbrace{ \nabla_x \log p_s(x)}_{\text{Pretrained model}} + \underbrace{ s\nabla_x \log p_s(c|x)}_{\text{Pretrained classifier}}
上式可以转化为噪声预测网络的形式,并延时间 t 进行迭代,在每个时间步上提供分类器指导:
ϵ~θ,ϕ(xt,t,c)Sample direction:=ϵθ(xt)Pretrained modelsσtxtlogpϕ(cxt,t)Pretrained classifier\underbrace{\widetilde{\epsilon}_{\theta,\phi}(x_t,t,c) }_{\text{Sample direction}} := \underbrace{\epsilon_{\theta}(x_t) }_{\text{Pretrained model}} - \underbrace{s\sigma_{t} \nabla_{x_t} \log p_{\phi}(c|x_t,t)}_{\text{Pretrained classifier}}
当 s 较大时,上述方法可以很好地权衡生成质量和可控性,甚至当预训练扩散模型本身为条件评分函数时,加入分类器指导仍然有助于提升生成图像和对应条件之间的匹配度。

分类无关指导

「分类无关指导」旨在不训练分类器的情况下提升生成图像和条件之间的匹配程度的权衡,即仅仅利用评分函数近似分类器。为此,我们反向利用贝叶斯法则,对其取对数,并对 x 求梯度。我们发现,分类器项可以由条件评分函数和评分函数之差表示。通过将该式代入分类器指导中,我们得到:
xlogps(xc)Sample direction=(1s)xlogp(x)Uncondition score+sxlogps(xc)Conditional score\underbrace{ \nabla_x \log p_s(x|c)}_{\text{Sample direction}} = \underbrace{ (1-s)\nabla_x \log p(x)}_{\text{Uncondition score}} + \underbrace{ s\nabla_x \log p_s(x|c)}_{\text{Conditional score}}
当 s 较大时,我们在训练时随机丢掉某些类别训练无条件评分函数,在不丢掉类别的情况下训练条件评分函数,上述两个模型可共享参数,一同训练。这二者之差可以替代分类器。
分类无关指导相较于分类器指导的优势在于:分类器和评分函数分开训时,二者的梯度大小有显著区别,稳定性较差,参数也更多。而分类无关指导中的条件评分函数和非条件评分函数的梯度较为一致,也可以节省参数量。目前,分类无关指导成为了「图文生成」等任务的常用技术之一。

分类标签之外的条件

**Meng 等人于 ICLR 2022 发表的 SDEdit **旨在为图到图的转换任务提供指导。给定一个预训练的 SDE 模型,输入的相关域中的图片会被迁移到训练的目标域中。具体而言,对于给定的草图,我们使用训练好的 SDE 过程迭代 500 步加入噪声,得到带噪声的图像(而非完全的高斯噪声)。此时的图像仍然带有一些语义信息,而局部细节信息被高频信号噪声「污染」。接着,我们对带噪声的图片执行反向 SDE 去躁,从而生成图像。**Amir 等人提出的「Prompt-to-prompt image editing with cross attention control」**通过修改 cross-attention 模块控制修改的 prompt 的语义。在 cross-attention 模块中,有一些特征图对某些确定的语义有较强的激活,通过替换特定的语义对应的特征图,得到修改后的 prompt,实现图像生成中的语义保留。如上图所示,将「Photo of a cat riding on a bicycle」中的 bicycle 替换为 car,可以将图中的自行车修改为汽车的模样。

image.png image.png

基于能量的指导

有一些一般化的条件无法用分类器建模。为此,论文「Controllable generation is much more than classifier guidance」相较于分类器指导的优势如下:
(1)更通用的损失:范数、余弦相似度、三元组损失;
(2)特定邻域的性质:几何不变性;
(3)多种控制的融合。基于能量的指导框架是一种对预训练评分函数采样时编码领域知识的通用框架,采样方向为预训练模型与能量函数之差。其中,能量函数由待解决任务的领域知识决定。能量指导的适用性较广,能量函数可微即可。
通过对能量函数取指数进行归一化,我们可以定义一个合法的概率分布。与分类器指导类似,采样分布与无条件模型和能量函数模型之积(PoE)成正比,能量指导从 PoE 中采样。此时,贝叶斯公式也是一种特殊形式的 PoE。

image.png

薛定谔桥

薛定谔桥(Schrödinger Bridge)是数学和物理学中的一个概念,它起源于量子力学中的薛定谔方程,但在随机过程和最优运输问题中也有重要应用。薛定谔桥本质上是一种条件随机过程,特别是指在给定起点和终点分布的条件下,对布朗运动或其他随机过程的一种调制或变换。
扩散模型就是典型的起点终点分布问题,前向过程是复杂分布到高斯分布,逆向过程是高斯分布到复杂分布问题。把薛定谔桥引入扩散生成模型求解是当下一个热点,所以这部分简单介绍了薛定谔桥知识点。

薛定谔桥的数学背景

在数学和概率论中,薛定谔桥是指在给定初始和终止边缘概率分布的条件下,通过最小化某种成本函数来寻找一类随机过程。这种问题最初由物理学家薛定谔在1931年提出,他考虑了一个与量子力学中的薛定谔方程类似的概率恢复问题,即在给定初始和终止概率密度的情况下,寻找一种随机过程,使得该过程在初始和终止时刻分别与给定的概率密度相匹配。

数学表示

数学上,薛定谔桥问题可以通过最优运输理论来表述,即在所有可能的随机过程中寻找一个特定的过程,使得在给定的初始和终止边缘分布约束下,某个成本函数达到最小。这可以通过求解一个与薛定谔方程相关的偏微分方程(PDE)系统来实现,该系统通常包含一个向前的方程和一个向后的方程。
薛定谔桥是一个跨学科的概念,涉及概率论、偏微分方程和量子力学等多个领域,它提供了一种独特的视角来理解和处理给定初始和终止条件下的随机过程。

薛定谔桥的物理意义

在物理学中,薛定谔桥可以被视为对量子粒子的路径进行条件约束的一种方式,即在已知粒子在某一初始时刻和某一终止时刻的概率分布的情况下,研究粒子在这两个时刻之间可能遵循的路径。这与量子力学中粒子的行为有关,其中薛定谔方程描述了粒子的波函数随时间的演化。

在扩散生成中应用

在生成建模领域,薛定谔桥问题的解决方案可以用来设计新的算法,这些算法能够生成具有特定属性的数据样本。例如,通过解决动态薛定谔桥问题,可以创建模拟特定随机过程的算法,这对于生成逼真的图像、音频或其他类型的数据非常有用。此外,这些方法还可以用于提高机器学习模型的性能,通过更好地理解数据的底层分布来提高预测的准确性。
迭代比例拟合(IPF)算法和基于分数的生成模型(SGM)是解决薛定谔桥问题的两种主要方法。IPF算法通过迭代地调整模型参数来逼近目标分布,而SGM则利用梯度信息来生成新的数据样本,这些方法都是基于薛定谔桥理论的应用。
薛定谔桥问题的理论和算法探讨主要集中在动态和静态两个版本上,以及如何通过迭代比例拟合(IPF)算法和基于分数的生成模型(SGM)来解决这些问题。下面分别从理论和算法两个方面进行详细介绍。

理论探讨

动态薛定谔桥问题

动态薛定谔桥问题关注于连续时间随机过程,特别是扩散过程。在这个框架下,目标是找到一个扩散过程,使得其在给定的初始和终止时间点上的概率分布分别匹配给定的两个目标分布,同时使得该过程相对于某个参考扩散过程的Kullback-Leibler散度最小。这个问题可以通过求解一个特定的偏微分方程(PDE)来解决,该PDE通常被称为薛定谔方程。

静态薛定谔桥问题

静态版本则是在离散时间或离散状态空间中定义的,其目标是在给定的初始和终止分布之间找到一个最优的随机映射。虽然静态问题在数学上更为简单,但它在计算上可能仍然非常具有挑战性。

算法探讨

迭代比例拟合(IPF)

IPF是一种经典的算法,用于解决薛定谔桥问题。它通过迭代地调整随机过程的边缘分布,使其逐渐逼近目标分布。在动态薛定谔桥问题中,IPF可以被用来迭代地求解薛定谔方程,从而找到满足边界条件的扩散过程。在静态问题中,IPF则用于调整随机映射的概率分布,以匹配给定的初始和终止分布。

基于分数的生成模型(SGM)

SGM是一种基于深度学习的方法,它利用了随机过程的分数信息来生成数据。在薛定谔桥问题的背景下,SGM可以被用来近似地解决动态问题,通过训练一个深度神经网络来模拟扩散过程的逆过程。这种方法特别适合于当目标分布具有复杂结构时,因为它可以利用深度学习的强大能力来捕捉这种复杂性。

小结

薛定谔桥问题在理论和算法上都有着丰富的研究,动态和静态版本提供了不同的视角和挑战。IPF和SGM是解决这些问题的两种主要方法,它们各有优势。IPF在数学上更为直接,适合于问题的精确求解,而SGM则提供了一种灵活且强大的近似方法,特别适用于处理高维和复杂的数据分布。随着研究的深入,我们可以期待在这一领域出现更多的理论进展和算法创新。

参考文档

  1. The neural autoregressive distribution estimator Larochelle, H. and Murray, I., 2011. International Conference on Artificial Intelligence and Statistics, pp. 29--37.
  2. Made: Masked autoencoder for distribution estimation Germain, M., Gregor, K., Murray, I. and Larochelle, H., 2015. International Conference on Machine Learning, pp. 881--889.
  3. Pixel recurrent neural networks Van Oord, A., Kalchbrenner, N. and Kavukcuoglu, K., 2016. International Conference on Machine Learning, pp. 1747--1756.
  4. NICE: Non-linear independent components estimation Dinh, L., Krueger, D. and Bengio, Y., 2014. arXiv preprint arXiv:1410.8516.
  5. Density estimation using Real NVP Dinh, L., Sohl-Dickstein, J. and Bengio, S., 2017. International Conference on Learning Representations.
  6. A tutorial on energy-based learning LeCun, Y., Chopra, S., Hadsell, R., Ranzato, M. and Huang, F., 2006. Predicting structured data, Vol 1(0).
  7. How to Train Your Energy-Based Models Song, Y. and Kingma, D.P., 2021. arXiv preprint arXiv:2101.03288.
  8. Auto-encoding variational bayes Kingma, D.P. and Welling, M., 2014. International Conference on Learning Representations.
  9. Stochastic backpropagation and approximate inference in deep generative models Rezende, D.J., Mohamed, S. and Wierstra, D., 2014. International conference on machine learning, pp. 1278--1286.
  10. Learning in implicit generative models Mohamed, S. and Lakshminarayanan, B., 2016. arXiv preprint arXiv:1610.03483.
  11. Generative adversarial nets Goodfellow, I., Pouget-Abadie, J., Mirza, M., Xu, B., Warde-Farley, D., Ozair, S., Courville, A. and Bengio, Y., 2014. Advances in neural information processing systems, pp. 2672--2680.
  12. Improved techniques for training gans Salimans, T., Goodfellow, I., Zaremba, W., Cheung, V., Radford, A. and Chen, X., 2016. Advances in Neural Information Processing Systems, pp. 2226--2234.
  13. Unrolled Generative Adversarial Networks [link] Metz, L., Poole, B., Pfau, D. and Sohl-Dickstein, J., 2017. 5th International Conference on Learning Representations, ICLR 2017, Toulon, France, April 24-26, 2017, Conference Track Proceedings. OpenReview.net.
  14. A Kernel Test of Goodness of Fit [HTML] Chwialkowski, K., Strathmann, H. and Gretton, A., 2016. Proceedings of The 33rd International Conference on Machine Learning, Vol 48, pp. 2606--2615. PMLR.
  15. A kernelized Stein discrepancy for goodness-of-fit tests Liu, Q., Lee, J. and Jordan, M., 2016. International conference on machine learning, pp. 276--284.
  16. Estimation of non-normalized statistical models by score matching Hyvarinen, A., 2005. Journal of Machine Learning Research, Vol 6(Apr), pp. 695--709.
  17. A connection between score matching and denoising autoencoders Vincent, P., 2011. Neural computation, Vol 23(7), pp. 1661--1674. MIT Press.
  18. Generative Modeling by Estimating Gradients of the Data Distribution [PDF] Song, Y. and Ermon, S., 2019. Advances in Neural Information Processing Systems, pp. 11895--11907.
  19. Improved Techniques for Training Score-Based Generative Models [PDF] Song, Y. and Ermon, S., 2020. Advances in Neural Information Processing Systems 33: Annual Conference on Neural Information Processing Systems 2020, NeurIPS 2020, December 6-12, 2020, virtual.
  20. Denoising diffusion probabilistic models Ho, J., Jain, A. and Abbeel, P., 2020. arXiv preprint arXiv:2006.11239.
  21. Score-Based Generative Modeling through Stochastic Differential Equations [link] Song, Y., Sohl-Dickstein, J., Kingma, D.P., Kumar, A., Ermon, S. and Poole, B., 2021. International Conference on Learning Representations.
  22. Diffusion models beat gans on image synthesis Dhariwal, P. and Nichol, A., 2021. arXiv preprint arXiv:2105.05233.
  23. Cascaded Diffusion Models for High Fidelity Image Generation Ho, J., Saharia, C., Chan, W., Fleet, D.J., Norouzi, M. and Salimans, T., 2021.
  24. WaveGrad: Estimating Gradients for Waveform Generation [link] Chen, N., Zhang, Y., Zen, H., Weiss, R.J., Norouzi, M. and Chan, W., 2021. International Conference on Learning Representations.
  25. DiffWave: A Versatile Diffusion Model for Audio Synthesis [link] Kong, Z., Ping, W., Huang, J., Zhao, K. and Catanzaro, B., 2021. International Conference on Learning Representations.
  26. Grad-tts: A diffusion probabilistic model for text-to-speech Popov, V., Vovk, I., Gogoryan, V., Sadekova, T. and Kudinov, M., 2021. arXiv preprint arXiv:2105.06337.
  27. Learning Gradient Fields for Shape Generation Cai, R., Yang, G., Averbuch-Elor, H., Hao, Z., Belongie, S., Snavely, N. and Hariharan, B., 2020. Proceedings of the European Conference on Computer Vision (ECCV).
  28. Symbolic Music Generation with Diffusion Models Mittal, G., Engel, J., Hawthorne, C. and Simon, I., 2021. arXiv preprint arXiv:2103.16091.
  29. Robust Compressed Sensing MRI with Deep Generative Priors Jalal, A., Arvinte, M., Daras, G., Price, E., Dimakis, A.G. and Tamir, J.I., 2021. Advances in neural information processing systems.
  30. Training products of experts by minimizing contrastive divergence Hinton, G.E., 2002. Neural computation, Vol 14(8), pp. 1771--1800. MIT Press.
  31. Sliced score matching: A scalable approach to density and score estimation [PDF] Song, Y., Garg, S., Shi, J. and Ermon, S., 2020. Uncertainty in Artificial Intelligence, pp. 574--584.
  32. Correlation functions and computer simulations Parisi, G., 1981. Nuclear Physics B, Vol 180(3), pp. 378--384. Elsevier.
  33. Representations of knowledge in complex systems Grenander, U. and Miller, M.I., 1994. Journal of the Royal Statistical Society: Series B (Methodological), Vol 56(4), pp. 549--581. Wiley Online Library.
  34. Adversarial score matching and improved sampling for image generation [link] Jolicoeur-Martineau, A., Piche-Taillefer, R., Mitliagkas, I. and Combes, R.T.d., 2021. International Conference on Learning Representations.
  35. Reverse-time diffusion equation models Anderson, B.D., 1982. Stochastic Processes and their Applications, Vol 12(3), pp. 313--326. Elsevier.
  36. Maximum Likelihood Training of Score-Based Diffusion Models Song, Y., Durkan, C., Murray, I. and Ermon, S., 2021. Advances in Neural Information Processing Systems (NeurIPS).
  37. Gotta Go Fast When Generating Data with Score-Based Models Jolicoeur-Martineau, A., Li, K., Piche-Taillefer, R., Kachman, T. and Mitliagkas, I., 2021. arXiv preprint arXiv:2105.14080.
  38. GANs Trained by a Two Time-Scale Update Rule Converge to a Local Nash Equilibrium Heusel, M., Ramsauer, H., Unterthiner, T., Nessler, B. and Hochreiter, S., 2017. Advances in Neural Information Processing Systems 30: Annual Conference on Neural Information Processing Systems 2017, December 4-9, 2017, Long Beach, CA, {USA}, pp. 6626--6637.
  39. Training Generative Adversarial Networks with Limited Data Karras, T., Aittala, M., Hellsten, J., Laine, S., Lehtinen, J. and Aila, T., 2020. Proc. NeurIPS.
  40. Neural Ordinary Differential Equations Chen, T.Q., Rubanova, Y., Bettencourt, J. and Duvenaud, D., 2018. Advances in Neural Information Processing Systems 31: Annual Conference on Neural Information Processing Systems 2018, NeurIPS 2018, December 3-8, 2018, Montr{'{e}}al, Canada, pp. 6572--6583.
  41. Scalable Reversible Generative Models with Free-form Continuous Dynamics [link] Grathwohl, W., Chen, R.T.Q., Bettencourt, J. and Duvenaud, D., 2019. International Conference on Learning Representations.
  42. Solving Inverse Problems in Medical Imaging with Score-Based Generative Models [PDF] Song, Y., Shen, L., Xing, L. and Ermon, S., 2022. International Conference on Learning Representations.
  43. Annealed importance sampling Neal, R.M., 2001. Statistics and computing, Vol 11(2), pp. 125--139. Springer.
  44. Deep unsupervised learning using nonequilibrium thermodynamics Sohl-Dickstein, J., Weiss, E., Maheswaranathan, N. and Ganguli, S., 2015. International Conference on Machine Learning, pp. 2256--2265.
  45. Learning to generate samples from noise through infusion training Bordes, F., Honari, S. and Vincent, P., 2017. arXiv preprint arXiv:1703.06975.
  46. Variational walkback: Learning a transition operator as a stochastic recurrent net Goyal, A., Ke, N.R., Ganguli, S. and Bengio, Y., 2017. arXiv preprint arXiv:1711.02282.
  47. GSNs: generative stochastic networks Alain, G., Bengio, Y., Yao, L., Yosinski, J., Thibodeau-Laufer, E., Zhang, S. and Vincent, P., 2016. Information and Inference: A Journal of the IMA, Vol 5(2), pp. 210--249. Oxford University Press.
  48. Diffusion Schrödinger Bridge with Applications to Score-Based Generative Modeling De Bortoli, V., Thornton, J., Heng, J. and Doucet, A., 2021. Advances in Neural Information Processing Systems (NeurIPS).
  49. Denoising Diffusion Implicit Models [link] Song, J., Meng, C. and Ermon, S., 2021. International Conference on Learning Representations.
  50. Knowledge Distillation in Iterative Generative Models for Improved Sampling Speed Luhman, E. and Luhman, T., 2021. arXiv e-prints, pp. arXiv--2101.
  51. Score-based Generative Modeling in Latent Space Vahdat, A., Kreis, K. and Kautz, J., 2021. Advances in Neural Information Processing Systems (NeurIPS).
  52. www.zhangzhenhu.com/aigc/%E6%89…
  53. A Survey on Generative Diffusion Models,arXiv:2209.02646v10 [cs.AI] 23 Dec 2023.