DDPM优化
参数优化
优化\(\beta_t\)
在"Improved Denoising Diffusion Probabilistic Models"一文中,作者提出了多种DDPM的技巧。其中一种就是把\(\beta_t\)的线性机制改为余弦机制。机制函数的实现相对灵活,只要保证在训练中间过程提供近似线性的下降,并且在\(t=0\)和\(t=T\)附近的变化不大即可。
文中给出的余弦机制为
线性机制和余弦机制的对比:
优化\(\sum\theta\)
同样在"Improved Denoising Diffusion Probabilistic Models"一文中作者提出把\(\sum\theta\)设置为可学习参数,作为\(\beta_t\)和\(\hat{\beta}_t\)之间的插值。
由于在DDPM("Denoising Diffusion Probabilistic Models")原文中,\(\sum\theta\)不是可学习的参数,所以损失函数中并不包含该项。因此,作者提出把损失函数由\(L_{simple}\)改为\(L_{hybrid} = L_{simple} +\lambda L_{vlb}\),其中 \(\lambda = 0.001\) 来阻止\(L_{vlb}\)项中的\(\mu_{\theta}\)的梯度,因此\(L_{vlb}\)仅仅由\(\sum\theta\)的学习来引导。
抽样速度优化
DDIM
由于马尔科夫过程依赖于前一个状态的条件概率,因此DDPM的抽样速度很慢。在DDIM("Denoising Diffusion Implicit Models")一文中,作者指出“对DDPM来说,需要花费20小时来采样50K张32*32大小的图片。但对于GAN来说,只需要不到1分钟”。
其中一种优化方式来自 "Improved Denoising Diffusion Probabilistic Models". 通过把抽样的步长更新为[T/S]使得抽样的步骤从T步变为S步。因此,新过程的抽样的样本为\({T_1,...,T_S}, S<T\).
另一种优化方式来自 "Denoising Diffusion Implicit Models"。通过重参数技巧,可以重写\(q(x_{t-1}|x_t,x_0)\)过程为
又因为
因此,
令\(\sigma_t^2 = \eta \cdot \tilde{\beta}_t\)
,可以把\(\eta\)作为超参数来控制抽样过程的随机程度。特殊情况为:
- \(\eta = 1\),抽样过程随机,模型为DDPM(去噪扩散概率模型)
- \(\eta = 0\),抽样过程确定,模型为DDIM(去噪扩散隐模型)
DDIM有着和DDPM相同的边际噪音分布,但是可以确定性地把噪音映射回原始数据样本。
在生成过程中,DDIM从扩散过程的S步骤的子集进行抽样并推断。作者发现:当S很小时,使用DDIM能产出最好的图像质量,而DDPM则表现很差。也就是说:DDIM可以使用比DDPM更少的抽样步骤,生成更好质量的图像。
与DDPM相比,DDIM能够:
1.用更少的步骤生成高质量图像。
2.因为生成过程是确定的,所以DDIM有连续性。意思是在同一个潜变量上进行条件抽样的样本,应该具有类似的高维度特征。
3.因为连续性,DDIM能够从潜变量中得的有意义语义插值。
LDM
"High-Resolution Image Synthesis with Latent Diffusion Models" 一文提出了Stable Diffusion和潜扩散模型(Latent Diffusion Model / LDM)。LDM通过在潜空间中运行扩散过程(DDPM则是在图像像素空间中)减少了训练成本,加快了推断速度。该文的启发来自观察:“在压缩图像后,其语义和概念组成依然极大保留下来,而且大部分比特贡献了图像的细节”。LDM通过生成建模学习松散地分解感知压缩和语义压缩,方法首先是使用自编码器去除像素级冗余,然后通过扩散过程对学习到的潜数据进行操作/生成语义概念。
感知压缩过程依赖于自编码器。自编码器的编码器首先将图像输入压缩为2D的潜向量,解码器随后根据该2D潜向量重建图像。上述文章还探索了两种正则化方法以避免潜空间中的任意高方差。
LDM的结构如下,扩散和生成过程都在潜在空间中进行。使用的自编码器是时间条件U-Net,并且利用例如语义信息、文本、图像等来实行条件控制,这类似于多模态学习。为了处理文本信息,在U-Net中的残差块之间还加入了Cross-Attention跨注意力模块。
条件生成
分类器引导
ImageNet等数据集中不仅包含大量的图片,而且有配对的标签。为了让扩散模型在这样的数据集上训练,需要结合标签信息。
Diffusion "Models Beat GANs on Image Synthesis".一文通过在噪音图片中训练一个分类器来引导抽样过程朝着目标标签移动。因为score function为
所以分类器可以表示为:
作者对U-Net结构也进行了一些修改,包括:网络扩展、注意力扩展。最终在图像生成任务上使用扩散模型打败了GAN。
无分类器引导
"Classifier-Free Diffusion Guidance" 一文提出了无分类器引导方法。不使用分类器,可以通过结合有条件的score函数和无条件的扩散模型来运行扩散步骤。
方法是把条件的去噪扩散模型通过score预测器重参数化,并把有条件的扩散模型也重参数化。这两个模型可以通过一个网络学习,该网络使用带标签的配对数据来训练有条件的模型,并在训练过程中周期性随机丢弃一些条件细腻系来训练无条件模型。
文章的结果表明,无分类器引导的扩散模型能够取得FID(分辨原始图片和生成图片)以及IS(质量和多样性)之间的平衡。
渐进蒸馏
"Progressive Distillation for Fast Sampling of Diffusion Models" 一文提出了“渐进蒸馏”来加速扩散模型的抽样过程,方法如下图:
渐进蒸馏的概念来源于知识蒸馏。首先初始化两个模型:教师模型和学生模型,两个模型完全相同(网络结构、参数等)。渐进蒸馏的做法是:教师模型依然按照常规的方式完成抽样过程,学生模型则把教师模型所需的步骤减半。
上述方法的奇怪之处在于:为什么不可以直接使用学生模型来预测两步结果,或者教师模型的作用是什么?
答案是:因为扩散模型的抽样过程具有一定的随机性,所以如果抽样过程的步长过大,那么在某个时刻应该生成的图片其实有多种可能,但是只有其中一种是正确的。例如:在某个时刻\(t\),确定的是图像中应该包含3个噪音块,那么该时刻的生成图像至少有下述可能:
- 噪音块均匀分布
- 噪音块集中分布在某个位置
- 图片边缘
- 图片中央
教师模型存在的意义就是引导学生模型做出正确的判断。
作者团队对多个学生模型的步长进行了研究,发现减半是效果最优的。
参考文献:
https://www.cnblogs.com/risejl/p/17450790.html
-
Ling Yang et al. “Diffusion Models: A Comprehensive Survey of Methods and Applications .” arXiv 2023.
-
Jonathan Ho et al. "Denoising Diffusion Probabilistic Models". NeurIPS 2020.
-
Jiaming Song et al. "Denoising Diffusion Implicit Models". ICLR 2021.
-
Alex Nichol et al. "Improved Denoising Diffusion Probabilistic Models". ICML 2021.
-
Robin Rombach et al. "High-Resolution Image Synthesis with Latent Diffusion Models". arXiv 2022.
-
Prafulla Dhariwal et al. Diffusion "Models Beat GANs on Image Synthesis". NeurIPS 2021.
-
Jonathan Ho et al. "Classifier-Free Diffusion Guidance". NeurIPS Workshop 2021.
-
Tim Salimans et al. "Progressive Distillation for Fast Sampling of Diffusion Models". ICLR 2022.
-
Chenlin Meng et al. On Distillation of Guided Diffusion Models”. CVPR 2023.
浙公网安备 33010602011771号