TL;DR: 去噪扩散隐式模型 (DDIM) 是利用非马尔可夫的思想,以牺牲一小部分图片质量为代价,对图像生成过程大幅度加速的采样方法。
这个话题太过复杂,如内容有错误,还请在评论里面指正。
本人数学不好,尽量绕开复杂的公式(?)
首先,有一个问题必须要回答——为什么 DDPM 要基于马尔可夫链,马尔可夫链到底起一个什么样的作用。
在这里,以一个小白的视角来理一下DDPM的大致过程:
。
在多次加噪之后,数据最终将会变成高斯分布。
去贴合去噪的分布。
(事实上我们也没有去学习 ). 我们的最终目的,是去模拟出原始数据的分布 .
(很明显,如果我们能够直接极大化似然的话,就不用在这里费这么大力气了😂), DDPM 的优化目标是最大化其变分下界(Evidence Lower Bound). (这里 的意思是 )
我们在 log 前面加一个负号,把最大化目标变成最小化目标,于是就得到了 DDPM 的优化目标:
. 很明显,这是一个依赖于 的联合分布(Joint Distribution). 对于联合分布,我们初高中学过,有链式法则
而在马尔可夫链的情况下,上面这个公式将变成
所以,在马尔可夫链的前提下, 这个联合分布可以被写成如下的乘积形式(如果外面带 log 的话就相当于加和形式)
也是差不多的道理,这里就不去花力气解释了。总之,在马尔可夫链的前提下,上面的优化目标可以进一步地写下去:
这一项从 中拆分出来。然后我们再将 改写一下,变成 的形式(后面一项可以被相互抵消掉),然后我们就得到了目标的一个新的形式:
至此,我们利用了马尔可夫链的性质对公式做了变形,如果我们把高斯分布这一个条件也加上去的话,我们可以对上面的目标做进一步的推导(这里就省略过程了,如果想知道过程,可以参考之前推荐的DDPM的文章,或者DDIM原论文附录C,链接在文章末尾),得到如下的最终形式:
,依赖于 而不是联合分布 . 那么什么是 呢?首先,这是个加噪/前向过程,并且根据定义,有
并且,根据马尔可夫链和高斯分布的两个大前提,我们还知道,
呃,所以扯了大半天,这家伙在一本正经的胡说八道什么?
到公式的“解” ,我们是通过了马尔可夫链推导出来的。但是实际上,我们未必一定要通过马尔可夫链去"求解"。有没有一种方法,基于非马尔可夫链的方式,也能求得这个"解"呢?
这里,直接照搬论文给出的标准答案了。如果我们的概率分布 q 满足以下的条件:
.
上面的第三个公式非常重要,至于怎么来的,论文没有给出过程和说明。网上有许多大神们针对这一步写了不少文章,感兴趣的可以去看(链接在文章末尾)。
然后我们利用贝叶斯理论(Bayes' Rule)获得非马尔科夫下的前向过程:
不再已知。
,和前向一样,同时依赖于 和 . 当然遵循 DDPM 的思路,我们可以将这个概率分布改写一下
这里注意 α 和 σ 长得特别像,不要搞错了 (lll¬ω¬)。另外,在这里,我们依旧是老老实实地在一步步地进行采样,还没有涉及到任何加速采样的内容。
BANG! 又是一个重磅炸弹——DDIM 不需要再训练一个单独的模型,直接利用已经训练好的 DDPM 模型就可以进行采样。
, 都存在 , 和一个常数 , 使得等式 成立。(这是什么天书)
这里对于论证过程不做叙述,但是有必要解释一下上面的这个结论是什么意思。
,或者完整地说,, 是我们 DDIM 非马尔可夫过程下的目标,而 是我们利用 DDPM 推导出来的目标(上文中有完整的公式)。这里主要想说的一点,就是因为两者目标相等,所以 DDIM 可以借用其对应的参数下的 DDPM 的模型。
, 在不同的时间 t, 权重是不共享的(比如,不同的时间点 t,我们都用一个不同的神经网络)。那么最小化目标 就变成了独立地最小化 里面的每一项,于是 在优化目标的时候就不再起作用(我们最优解 将不再依赖 的取值)。比如,我们可以取 ,那么这就变成了 DDPM 原论文中的情况。
所以,讲了这么多废话。终于到了最关键的部分——如何利用DDIM来加速推理。
的集合中,取一个子集出来 , 这个子集的长度将远小于1000。然后我们把 带入非马尔可夫过程这一节里面的迭代公式,就得到了我们加速采样的过程。
Why? 首先,论文里面把联合分布拆解成了以下的形式。
是等价的。
的情况)。所以目前就把它当作一个定理来看吧,不要太深究了。
上一篇文章最后留了一个坑没填。
时,那么方差这一项就变成了 0. 于是原先的 stochastic 的过程就变成了 deterministic 的过程(即,已知 和 的情况下,是一个确定的值;意味着从相同的噪音出发,将会导出相同的图片)
的离散情况连续化,就能得到对应的 ODE.
出发
, 然后我们再把它压缩到一个连续的区间 [0,1] 上面去,所以 , 并且
, 来使公式变得更加简洁。
就变成了 . 就变成了 .最终形式就是
.
推荐过N遍了😂,这里不厌其烦地再推荐一遍,一篇系统性介绍DDPM的文章:https://zhuanlan.zhihu.com/p/638442430
讲 DDIM 的文章中,经典中的经典(里面有不少跳步,建议先看一眼上面那个讲DDPM的):https://www.zhangzhenhu.com/aigc/ddim.html#equation-eq-ddim-226
非马尔可夫下的公式由来:https://zhuanlan.zhihu.com/p/627616358
填坑结束(😵)