扩散模型(Diffusion Model)是图像生成模型的一种。有别于此前 AI 领域大名鼎鼎的 GAN、VAE 等算法,扩散模型另辟蹊径,其主要思想是一种先对图像增加噪声,再逐步去噪的过程,其中如何去噪还原图像是算法的核心部分。而它的最终算法能够从一张随机的噪声图像中生成图像。
近年来,生成式 AI 的惊人增长为文本到图像生成、视频生成领域等许多令人兴奋的应用提供了支持。这些生成工具背后的基本原理是扩散的概念,这是一种特殊的采样机制,克服了以前的方法中被认为难以解决的一些缺点。
最近,来自普渡大学的 Stanley H. Chan 发布了一份扩散模型的教程《Tutorial on Diffusion Models for Imaging and Vision》,对该方向技术进行了直观详尽的解释。
文章链接:https://arxiv.org/abs/2403.18103
该教程包括四个部分,涵盖了最近研究文献中支持扩散生成模型的一些基本概念:变分自编码器(VAE)、DDPM(Denoising Diffusion Probabilistic Models)、SMLD(Score Matching with Langevin Dynamics)和 SDE,从多个角度独立导出了相同的扩散思想。
1. 变分自编码器(VAE)
- VAE设置:VAE是一种生成模型,通过编码器-解码器对来生成图像。它使用潜在代码z来生成输入变量x,例如图像。
- 证据下界(ELBO):VAE优化的目标是最大化证据下界,这是对数先验分布log p(x)的下界。
- VAE训练:通过最小化重建误差和KL散度来训练VAE,其中KL散度用于度量编码器输出的分布与先验分布之间的差异。
- 损失函数:VAE的损失函数结合了重建项和先验匹配项,通过蒙特卡洛模拟来近似期望值。
2. 去噪扩散概率模型(DDPM)
- 构建块:DDPM通过一系列状态x0, x1, ..., xT来定义,其中x0是原始图像,xT是白噪声。
- 魔法标量√αt和1 − αt:这些标量用于控制状态之间的转换,确保方差在迭代中保持一致。
- 分布qϕ(xt|x0):给定x0时,xt的分布是通过添加噪声来获得的。
- ELBO:DDPM的ELBO包括重建、先验匹配和一致性项,用于训练模型。
- 训练和推理:通过最小化与目标分布的差异来训练DDPM。推理时,从白噪声开始,逐步去除噪声以生成图像。
3. 分数匹配与朗道动力学(SMLD)
- 朗道动力学:一种用于从分布p(x)中抽样的迭代过程,通过随机梯度下降实现。
- 分数函数:与数据点x相关的梯度,用于指导样本沿着分布的轮廓线移动。
- 分数匹配技术:通过训练网络来近似分数函数,然后使用它来进行样本生成。
4. 随机微分方程(SDE)
- 动机示例:展示了如何将离散时间迭代算法映射到连续时间的SDE。
- SDE的正向和反向迭代:正向迭代模拟数据生成过程,而反向迭代用于从数据中恢复潜变量。
- DDPM的SDE:DDPM的迭代过程可以表示为SDE,这有助于理解DDPM的迭代更新。
- SMLD的SDE:SMLD也可以通过SDE来描述,其中分数匹配损失函数与SDE的反向迭代相关。
结论
- 文章强调了扩散模型的多种视角,包括VAE、DDPM、SMLD和SDE,每种方法都有其优势和应用场景。
- 扩散模型的核心在于小增量更新,这是其与GAN和VAE时代相比的一个关键区别。
- 尽管迭代去噪是当前的先进技术,但它并不被视为最终解决方案,因为人类不是从纯噪声中生成图像的。
- 文章还提出了一些关于非高斯噪声生成的问题,并探讨了将扩散模型应用于逆问题的潜力。