DDPM与DDIM

DDPM与DDIM
HoliDDPM优化目标梳理
DDPM本质上是一种自回归的隐变量模型,将对目标分布$q({\bf x}_0)$的拟合转变为对$q({\bf x}_{0:T})$的拟合。
前向过程被定义为马尔科夫链:
且(或许是为了保证拟合目标是可计算的tractable)单步转移也是高斯的:
其中$\beta_t$为可以人为定义的超参数。结合$(\ref{1})$和$(\ref{2})$,我们可以得到
当然,最简单的推导方法是将其转化为离散随机微分方程(计算这类方程的时候要十分注意随机项带来的时间反演失效)
通过不断迭代,我们可以得到
上面式子中$\hat\varepsilon_t$为所有$\varepsilon_t$的随机效果的等效总和,下面定义$\alpha_t=1-\beta_t$,${\bar \alpha}_t={\prod_{k=1}^{t}\alpha_k}$。(计算方差的时候会用到$\frac{y_n}{y_{n+1}}=\frac{\beta_n(1-\beta_{n+1})}{\beta_{n+1}}$,$y_t=\beta_t$,需要求解$\sum_{n=0}^t y_n$,可以通过引入-1合并同类项来化简)
我们希望拟合出一个模型$p_\theta({\bf x}_{0:T})$,使得$p_\theta({\bf x}_0)$与$q({\bf x}_0)$尽可能接近,则一般需要最小化KL散度:
由于我们只关心与$\theta$有关的项,因此优化目标可以重新写为
对这个目标的直接优化并不容易(因为概率空间很大,并且需要始终保证模型输出的概率是归一化的),但是由于我们引入了一系列隐含变量${\bf x}_{1:T}$,因此可以曲线救国,通过压缩上述优化目标的上界(ELBO)来实现对上述优化目标的优化
为了说明为什么该不等号成立,我们可以从只有一个隐变量(实际上就是把${\bf x}_{1:T}$视为一个整体)的情形出发,考虑${\bf x}_{0:1}$的情况
$(\ref{8})$的第二项是关于$q({\bf x}_1|{\bf x}_0)$与$p_\theta({\bf x}_1|{\bf x}_0)$的KL散度的期望,显然是非负的。从$(\ref{8})$也可以看到得到这个ELBO的过程实际上就是加了一个额外的非负项,这不是多此一举吗?通过下面的推导(参考原文附录中的推导)我们可以看到这样的举措实际上是把原来难以求解的非条件概率变为容易求解(tractable)的条件概率
此处要注意的是$(\ref{9})$到$(\ref{10})$不只用到了前向过程是马尔科夫链的假设【我们将在DDIM中看到,这一步实际上是不必要的】,并且用到了模型拟合的反向过程也是马尔科夫链的假设,即
而$(\ref{11})$到$(\ref{12})$用到了如下关系(用到了前向过程的马尔科夫链假设)
分析得到的$(\ref{13})$式子,可以看到第1项和第2项实际上是多个KL散度,本质上都是让分子和分母上的分布足够接近,而第3项则可以通过在对数函数中重新引入分母$q({\bf x}_0|{\bf x}_1)$,使得其也变为KL散度的形式(此处本质上是引入了一个常数,所以对优化目标没影响)。
由于一般取$p_\theta({\bf x}_T)$为固定正态分布,而前向过程的$\beta_t$参数也一般人为确定,因此$(\ref{13})$中第1项就没有可学习的参数了。再考虑第二项,在DDPM中,其假设反向过程的单次转移也满足高斯分布(为了保证可计算性tractable):
我们可以通过简单的推导得到:
可以看到$q({\bf x}_{t-1}|{\bf x}_t,{\bf x}_0)\sim\mathcal{N}({\bf x}_{t-1};\tilde\mu({\bf x}_t,{\bf x}_0, t),\sigma^2_t{\bf I})$,其中
如果认为反向过程单次转移的各个通道是完全独立的,那么就有
为了方便计算,不妨直接令$\tilde\sigma^2_\theta({\bf x}_t, t)=\sigma_t^2$【此处可以做一些研究工作】,那么针对第二项的损失函数就可以展开写为闭合形式(closed-form)
DDPM在这里做的进一步处理是,考虑到${\bf x}_t$是作为输入直接输入$\mu_\theta$的,因此借鉴ResNet的思想,我们希望不再重复预测这一部分内容,所以可以将$\tilde\mu$转变为以${\bf x}_t$为主导的形式(利用$(\ref{*})$)【此处论述有待商榷】
回到$\mathcal{L}_{t-1}$,继续推导得到【原文期望的底是${\bf x}_0$,本质上是相同的】
最后,分析优化目标中的第三项,DDPM原文中采取了一种离散化方法来将连续高斯分布$\mathcal{N}({\bf x}_0;\mu_\theta({\bf x}_1,1),\sigma^2{\bf I})$【此处认为各个通道相互独立】分配给各个离散单元(在图片中,一般认为为$\{0,1,…,255\}$到$[-1,1]$的线性映射):
其中$D$为数据维度,$i$为其中某个指定维度。【此处留待进一步分析】
DDIM优化目标梳理
DDIM是对DDPM的假设条件的放宽,从而得到了更加广义的结果。
重新考虑$(\ref{9})$式
实际上在$(\ref{9})$到$(\ref{10})$这里,我们压根不需要用到前向过程的马尔科夫链假设,也就是说之前DDPM中引入的假设实际上比我们需要的假设要多。
DDPM构建核心的优化目标的推导思路如下【参考苏神博客】
DDIM作者对DDPM的一个观察是其最终得到的第二项的损失函数实际上仅仅与$q({\bf x}_t|{\bf x}_0)$和$q({\bf x}_t|{\bf x}_{t-1},{\bf x}_0)$直接相关,而不是直接依赖于$q({\bf x}_{t}|{\bf x}_{t-1})$和马尔科夫链假设。如果我们将对$q({\bf x}_{t}|{\bf x}_{t-1})$的假设和马尔科夫链假设扔掉,那么实际上就拓宽了解的空间,因为对于形式确定的$q({\bf x}_t|{\bf x}_0)$与$q({\bf x}_t|{\bf x}_{t-1},{\bf x}_0)$,可以反推出$q({\bf x}_t|{\bf x}_{t-1})$形式:
反推出的$q({\bf x}_t|{\bf x}_{t-1})$并不一定是高斯分布,因此相较于DDPM扩展了解的空间,事实上我们可以进一步思考,对于给定的$q({\bf x}_t|{\bf x}_{t-1})$,我们必定可以推导出确定的$q({\bf x}_t|{\bf x}_0)$和$q({\bf x}_t|{\bf x}_{t-1},{\bf x}_0)$,但是给定$q({\bf x}_t|{\bf x}_0)$和$q({\bf x}_t|{\bf x}_{t-1},{\bf x}_0)$,我们却无法(在不给定$q({\bf x}_0)$的时候)反推出确定的$q({\bf x}_t|{\bf x}_{t-1})$,可以说DDPM中的假设实际上隐含了某种对$q({\bf x}_0)$的限制,而DDIM放宽了这种限制【有待商榷】。
不过在假设$q({\bf x}_t|{\bf x}_0)$与$q({\bf x}_t|{\bf x}_{t-1},{\bf x}_0)$的形式的时候,需要额外满足限制
在如上背景下,DDIM作者提出了如下的前向扩散过程的展开形式
此时引入假设1:
假设2:
那么上述两个假设需要满足限制$(\ref{23})$,求解该限制
此处用离散随机微分方程比较好计算(千万注意各个噪声变量之间的独立性)
(对应系数相等)求解得到
进而可以得到(注意此处不能直接使用前面提到的随机微分方程进行计算,因为存在独立性问题)
【DDIM原文中的结果实际上是做了代换$\sigma_t^2=\frac{1-\bar\alpha_{t-1}}{1-\bar\alpha_t}\sigma_t^2$】接下来的步骤就和DDPM很相似了(仍然设方差一致,是不需要学习的):
进一步可以推导得到损失函数
损失函数前的系数其实不是很重要,可以认为主要是推理时的采样流程发生了变化,尤其是$\sigma_t^2$可以被设置为零,这实际上就实现了初始值到末尾值的一一对应,即为DDIM名字的由来。