Alex_McAvoy

想要成为渔夫的猎手

扩散概率模型 DPM

【概述】

扩散概率模型(Diffusion Probabilistic Models,DPM)于 2015 年 《Deep Unsupervised Learning using Nonequilibrium Thermodynamics》提出,其目的是消除对训练图像连续应用的高斯噪声,可以将其视为一系列去噪自编码器,是扩散模型的起源,但是没有真正应用于 CV,NLP 任务

其基本思想是使用马尔可夫链利用扩散过程将一个简单的已知分布(例如高斯分布)逐渐转换为目标分布(例如数据分布)

为达到这一目标,利用一个前向过程,不断的对图片加噪声,最终得到噪声的图片,这一过程也是训练模型对分布进行估计的过程,然后,利用一个反向过程,不断对噪声进行估计,从而从初始结果中减去噪声,得到干净的图片

【基本过程】

前向过程

记数据分布为 $q(\mathbf{x}_{0})$,这个数据分布可以通过多次应用马尔可夫扩散核函数 $T_{\pi}(\mathbf{y}|\mathbf{y}’;\beta)$ 变成另一个简单、可解析处理的分布 $\pi(\mathbf{y})$(为便于讨论,该分布选用高斯分布),其中 $\beta$​ 为扩散系数​

根据核函数 $T_{\pi}(\mathbf{y}|\mathbf{y}’;\beta)$,利用贝叶斯公式 $p(\mathbf{x}) = \int p(\mathbf{x},\mathbf{y})d\mathbf{y}=\int p(\mathbf{x}|\mathbf{y})p(\mathbf{y})d\mathbf{y}$,有:

记条件概率:

其中,$\{\beta_t\}_{t=1}^T,\beta_t\in (0,1)$ 是每一步扩散采用的方差,通常随着 $t$ 的增加 $\beta_t$ 而增大,即满足 $\beta_1<\beta_2<\cdots<\beta_T$

从原始数据分布 $q(\mathbf{x}_{0})$ 开始,在 $\beta_t$ 的作用下,经过马尔可夫链的 $T$ 步扩散,基于贝叶斯公式、马尔可夫过程的无后效性可得新的分布:

由于 $q(\mathbf{x}_{t} | \mathbf{x}_{t-1})$ 是通过马尔可夫扩散核函数 $T_{\pi}(\mathbf{x}_{t}|\mathbf{x}_{t-1};\beta_t)$ 多次扩散得来的,故有:

反向过程

反向过程与前向过程具有相同的形式,只是扩散过程相反,如果知道反向过程中每一步的真实分布 $q(\mathbf{x}_{t-1}|\mathbf{x}_t)$,那么从一个随机噪声 $\mathbf{x}_T\sim \mathcal{N}(\mathbf{0},\mathbf{I})$ 开始,逐渐去除噪声

由于真实分布难以计算,因此反向过程是通过神经网络,利用 $p(\mathbf{x}_{t-1}|\mathbf{x}_{t})$ 去拟合逆向过程 $q(\mathbf{x}_{t-1}|\mathbf{x}_t)$,即从高斯分布 $p(\mathbf{x}_{T}) =\pi(\mathbf{x}_{T}) $ 出发,通过一个反向过程,可得联合概率分布:

由于 $p(\mathbf{x}_{t} | \mathbf{x}_{t-1})$ 是一个高斯分布,当扩散系数 $\beta_t$ 足够小时,那么 $p(\mathbf{x}_{t-1} | \mathbf{x}_{t})$​ 也是高斯分布

而对高斯分布的估计,只需要利用训练网络对均值 $f_u(\mathbf{x}_{t},t)$ 和方差 $f_{\Sigma}(\mathbf{x}_{t},t)$​ 进行估计即可

【模型设计】

模型

对于真实分布 $q(\mathbf{x}_{0})$,模型估计的数据概率分布为:

这个积分是难以直接求解的,但基于 Jarzynski 恒等式以及退火重要性采样,可对上式进行如下变换:

这个公式可以看做是对前向过程以及反向过程的相对概率求均值,因此,可以基于前向过程 $q(\mathbf{x}_{1:T}|\mathbf{x}_{0})$ 中的样本进行快速评估

优化目标

训练过程相当于最大化模型的对数似然(前向取 $q(\mathbf{x}_{0})$,反向取 $p(\mathbf{x}_{0})$,两者概率都要最大),即:

由于对数函数是凹函数,根据 Jensen 不等式:当且仅当 $\varphi$ 为凸函数时, $\varphi(E[X])\leq E[\varphi(X)]$

可以给出下界:

记:

利用贝叶斯公式、KL 散度、熵,可将 $K$ 重写为(详细推导过程见原论文附录):

其中,熵可以被解析运算,KL 散度可以在已知 $\mathbf{x}_{0}$ 和 $\mathbf{x}_{t}$ 的情况下被解析运算

因此,训练的目标在于找到最大化对数似然下界的马尔可夫转移概率,即:

而估计这样一个高斯分布形式的转移概率,等价于学习对应的均值 $f_{\mu}(\mathbf{x}_{t},t)$ 和方差 $f_{\Sigma}(\mathbf{x}_{t},t)$,即:

【扰动的处理】

扰动

在计算后验分布以进行信号去噪或推断缺失值等任务时,需要将模型分布 $p(\mathbf{x}_{0})$ 与第二个分布或有界的正函数 $r(\mathbf{x}_{0})$ 相乘,产生一个新的分布:

这一步骤的目的是将第二个分布视为扩散过程中每一步的一个扰动,以去除噪声中复杂的干扰

扰动表达式

为计算 $\tilde{p}(\mathbf{x}_{0})$,将每个中间分布 $p(\mathbf{x}_{t})$ 乘以相应的函数 $r(\mathbf{x}_{0})$,那么,修改后的逆向过程的扩散轨迹为 $\tilde{p}(\mathbf{x}_{0:T})$,起点是:

中间分布也就对应为:

其中,$\tilde{Z}_t$ 是第 $t$​ 个中间分布的标准化常数

修正的扩散步骤

反向过程的马尔可夫核 $p(\mathbf{x}_{t}|\mathbf{x}_{t+1})$ 遵循平衡条件:

我们希望扰动的马尔可夫核 $\tilde{p}(\mathbf{x}_{t}|\mathbf{x}_{t+1})$ 仍然遵循该平衡条件,因此先做出满足的假设,再逆推要满足需要符合什么条件,即:

带入扰动表达式,有:

对 $p(\mathbf{x}_{t})$ 化简,得:

所以,若要想仍遵循平衡条件,就要将扰动项全部消掉,即必须满足:

由于该式不对应于一个标准化的概率分布,$\tilde{Z}_{t}$ 是标准化常数,因此选择:

其中,$\tilde{Z}_t (\mathbf{x}_{t+1})$ 是标准化常数,包括了被略去的 $\tilde{Z}_{t+1}$、$\tilde{Z}_t$、$r(\mathbf{x}_{t+1})$ 三项

对于一个高斯过程来说,由于它的方差很小,所以每个扩散步相对于 $r(\mathbf{x}_{t})$ 通常是一个较为尖锐的峰值,这就意味着 $\frac{r(\mathbf{x}_{t})}{r(\mathbf{x}_{t+1})}$ 可以作为 $p(\mathbf{x}_{t}|\mathbf{x}_{t+1})$ 的一个小扰动

扰动后的过渡概率

现在,要计算 $\tilde{p}(\mathbf{x}_{t}|\mathbf{x}_{t+1})$,为便于表示,记 $\mu = f_{\mu}(\mathbf{x}_{t},t),\Sigma=f_{\Sigma}(\mathbf{x}_{t},t),y=\mathbf{x}_{t-1}$

基于该标注,有:

在没有扰动的情况下,其是以上一时刻变量 $\mathbf{x}_{t-1}$ 均值和方差高斯分布与扰动的乘积,重新根据能量函数进行重写,有:

记 $E_r(\mathbf{y})=-\log r(\mathbf{y})$,若 $E_r(\mathbf{y})$ 与 $\frac{1}{2}(\mathbf{y}-\mu)^T \Sigma^{-1}(\mathbf{y}-\mu)$ 平滑相关,那么可以使用 $\mu$ 周围的 $E_r(\mathbf{y})$ 进行泰勒展开(要满足的充分条件是:$E_r(\mathbf{y})$ 的黑塞矩阵特征值比 $\Sigma^{-1}$ 的特征值小几个量级)

其中,$\mathbf{g}=\frac{\partial E_r(y’}{\partial y’}|_{y’=\mu}$

可以看出,是一阶的线性近似,将其带入能量函数,有:

其中,$C$ 为常数,$\Sigma,\mu,\mathbf{g}$ 都可视为参数,这对应于一个高斯分布(新高斯分布近似于原高斯分布乘以扰动),即:

故而可得:

感谢您对我的支持,让我继续努力分享有用的技术与知识点!