去噪扩散模型基本理论:DDPM与DDIM
DDPM
Denoising Diffusion Probabilistic Models(DDPM)去噪扩散概率模型原理
DDPM论文推导
思路梳理:如何从变分法的优化目标逐步推导成为拟合噪声
主要步骤如下:
【变分下界确定优化目标】将对数似然最大化作为优化目标,用类似VAE的方式写出变分下界,作为优化目标
; 【目标转化为逆向条件分布的KL散度】将优化目标中正向的
和反向的 统一修改成反向(即从 到 ),由于扩散过程中,正向过程可以对上一步采样结果映射到高斯均值的方式计算出下一步的分布,但是反向过程不能直接算,因此再修改正向过程的反向条件概率的过程中,对于 加入了 的初始条件,得到 参与计算。有了 的参与,这个分布(其实是分布的均值和方差)就可以直接计算出来了。这样修改后,上述优化目标 就可以被拆分成三个部分 ,其中 没有参数,所以不用处理;重点解决 ,即从1到T的过程(这也是最终的算法流程中timestep采样从1到T的原因); 【高斯分布KL散度转为均值拟合】针对
,即 ,其中由于 是一个已知的分布,即均值和方差都可以直接解析地写出来,那么这个KL散度就是用参数 去拟合这个 的条件分布的均值和方差(度量两个高斯分布的KL散度就可以直接用两者均值方差解析地进行计算,这里又一次看到高斯分布的便捷之处)。由于方差与 都无关,因此只需要拟合均值,这时我们的目标函数就变成了拟合均值。优化目标变成了: 【均值拟合转为标准正态误差
拟合】由于 可以写成 和一个标准正态的误差项 的函数,因此将上式中的 替换为 和 的函数,这时我们发现,由于拟合函数 的输入就是 和时间 ,因此真正未知的项是 ,只要拟合出这个值,真正的 就可以解析计算出来。最终的结论就是,通过输入 和timestemp ,网络对从 加噪的那个噪声项本身(不考虑幅度值的调整)进行预测,最终的优化目标为: 这个拟合目标用可以实现的语义表述就是:先对训练集中抽取的一个样本 利用线性高斯的方式加入一个噪声 ,这里的线性系数由选择的某个时间步 决定,得到的结果 和 一起作为输入,送入一个approximator ,这个approximator 用于将刚刚的那个 预测出来(直接通过L2拟合的方式)。这就是diffusion model的训练过程了。
论文中提供的训练和采样算法流程如下:
采样过程的公式来源于上面对均值的预测
DDIM
DENOISING DIFFUSION IMPLICIT MODELS(DDIM)去噪扩散隐式模型
DDIM的核心思路
取消了DDPM的马尔可夫性限制,重写了
DDIM对于DDPM过程的一个核心的observation在于:DDPM的目标函数只和边缘分布(marginal distribution)
详细来说,
下面就是如何更换联合分布,考虑到DDPM的联合概率分布可以写成given
在采样的过程中,我们需要先预测出一个
那么,DDIM是如何加速采样呢?相比于DDPM扩散