【概述】
扩散概率模型(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}$ 都可视为参数,这对应于一个高斯分布(新高斯分布近似于原高斯分布乘以扰动),即:
故而可得: