DDIM与加速采样
DDPM Recap
前向过程
设有一列 noise schedule:,记 ,. 定义一个向输入逐渐添加噪声的马尔可夫过程如下: 则可以推得从输入到任意一步加噪的转移概率分布为: 也就是说我们可以用 和一个高斯随机变量 的线性组合来表达 : 逆向过程
在给定 的条件下,从 生成 的概率分布为: 但由于 实际未知,我们用 去近似 : 其中均值 参数化为: 方差可以选择为 或 .
损失函数
与 VAE 类似,我们优化 ELBO: 该式可以变换为: 代入 和 ,并简化系数,可得最终损失函数:
Respaced Timesteps
在 Improved DDPM[1]中,作者阐述了一种直接简便的加速采样方法,即不要一步一步地走逆向过程,而是跳着走。受益于 DDPM 前向过程的特殊构造,运用从 式推导出 式的思想,我们能轻松地导出任意两个 timesteps 之间的转移概率: 因此,我们可以选取一个子序列 ,构建一个新的 步马尔可夫链:
由于新马尔可夫链更短(),所以在其上采样即可达到加速采样的目的。另外,由于新马尔可夫链是原马尔可夫链的一个子序列,原来的训练本就包括了对子序列的训练,所以我们可以直接加载训练好的 DDPM 模型。
对比 式与 式,容易知道新马尔可夫链对应的 序列为: 为与原来的 作区分,这里用紫色来表示新的 . 以新的 为基础,重新定义一套新的参数: 那么原来的所有结论在新的参数下都适用。(其实 和 是一样的,毕竟新的 就是用 定义出来的。换句话说, 才是决定扩散过程的最本质的参数。)
在具体实现上,我们有两种方案:
第一种方案是 Improved DDPM GitHub repo 所采用的。我们继承原来的 DDPM 类,更新
序列为新的 序列并重新初始化其他参数,就可以直接调用原本 DDPM 的方法了。值得注意的一点是,给到模型的 timestep 要映射回原来的 timestep,见 repo 中的_WrappedModel
类。第二种方案是 DDIM GitHub repo 所采用的,更加简单粗暴,即直接在采样时重新计算
等参数。
DDIM
Idea
在 DDPM 中,我们先定义了
首先,为了与 DDPM 对齐,保持
论文给出的一族满足条件的解是:
推导过程:论文的发展顺序是先直接给出了
设
根据
在实际采样时,我们依旧用
虽然 DDIM 与 DDPM 的
Two Special Cases
第一种方案,取
第二种方案,取
确定性意味着每个图像
球面线性插值(Spherical Linear Interpolation,Slerp)
设有单位向量
至于作者为什么要用球面线性插值而不是一般的线性插值,我其实也不是很清楚,作者似乎也没提……
Update 2023.03.10:在生成模型中使用 Slerp 应该最先是在论文[5]中阐述的,在后来的 StyleGAN 等生成模型里也有应用。论文认为 Slerp 插值出的隐变量更符合先验分布,但是并没有说服 ICLR 2017 的审稿人,最后也没中,可以在 openreview 上看审稿意见。但是就其引用量而言,论文提出的许多可视化方法还是受到了人们的广泛认可。
Faster Sampling
截至目前,我们似乎并没有看出 DDIM 有什么加速之处。其实,DDIM 的加速采样思想和上一节是类似的,即取子序列
Neural ODE
在「扩散模型的SDE与ODE描述」一文中,我们介绍了如何将离散时间的 DDPM 连续化为 SDE 形式,同时还说明了每个 SDE 都对应着一个确定性的 ODE. 而 DDIM 恰是一种确定性情形,所以我们自然会想到——能不能用 ODE 来描述一个 DDIM 呢?答案是肯定的。
首先,我们把
两边均减去
事实上,该 ODE 与「扩散模型的SDE与ODE描述」一文的结果是等价的。回顾当时我们得到的 ODE 为:
另外,如果对
DDIM Inversion
前文提及,DDIM 使得每个图像都唯一对应了一个隐变量,但并没有说明如何求这个隐变量。现在有了 ODE,事情就变得简单了。如果说采样过程是沿着
References
- Nichol, Alexander Quinn, and Prafulla Dhariwal. Improved denoising diffusion probabilistic models. In International Conference on Machine Learning, pp. 8162-8171. PMLR, 2021. ↩︎
- Song, Jiaming, Chenlin Meng, and Stefano Ermon. Denoising Diffusion Implicit Models. In International Conference on Learning Representations. 2020. ↩︎
- 苏剑林. (Jul. 27, 2022). 《生成扩散模型漫谈(四):DDIM = 高观点DDPM 》[Blog post]. Retrieved from https://kexue.fm/archives/9181 ↩︎
- 四元数插值与均值(姿态平滑). https://www.cnblogs.com/21207-iHome/p/6952004.html ↩︎
- White, Tom. Sampling generative networks. arXiv preprint arXiv:1609.04468 (2016). ↩︎
- Liu, Luping, Yi Ren, Zhijie Lin, and Zhou Zhao. Pseudo numerical methods for diffusion models on manifolds. arXiv preprint arXiv:2202.09778 (2022). ↩︎