社区计算机视觉课程文档
扩散模型简介
并获得增强的文档体验
开始使用
扩散模型简介
本章你将学到什么
- 什么是扩散模型,它们与 GAN 有何不同
- 扩散模型的主要子类别
- 扩散模型的用例
- 扩散模型的缺点
扩散模型及其与 GAN 的区别
扩散模型是计算机视觉领域一个令人兴奋的新兴方向,在图像生成方面表现出令人印象深刻的成果。这些生成模型分两个阶段工作,即前向扩散阶段和反向扩散阶段:首先,它们通过添加一些噪声轻微改变输入数据,然后尝试撤销这些改变以恢复原始数据。这种先改变后撤销的过程有助于生成逼真的图像。
这些生成模型将生成建模领域提升到了一个新的水平,特别是像 Imagen 和 潜在扩散模型(LDM) 这样的模型。例如,请看下面通过这些模型生成的图像。
在扩散模型最近兴起之前,GAN 被许多人认为是生成样本质量方面的最先进生成模型。GAN 也因其对抗性目标而难以训练,并且经常遭受模式崩溃。将不同的模式视为不同的类别。假设猫和狗是两个独立的模式。如果生成器的任务是生成猫和狗的图像,如果发生模式崩溃,则意味着生成器只生成可信的猫或狗图像。发生这种情况的一个原因是判别器未能从局部最小值中移出,最终重复地只将其中一种模式(猫或狗)分类为假。相比之下,扩散模型具有稳定的训练过程,并提供更大的多样性,因为它们是基于似然的。
然而,与 GAN 相比,扩散模型往往计算密集,并且由于其逐步的反向过程,需要更长的推理时间。
在科学中,扩散是指溶质颗粒在溶剂中从溶质浓度较高的区域向溶质浓度较低的区域移动的过程。请看下面的扩散类比以获得高层次的直觉。
上图是传统的扩散过程,一滴墨水滴入一杯清水中,一段时间后完全融合。实际上,逆转这个过程是不可能的,即从混合物中取出墨滴。但这正是扩散模型所做的,即去除噪声,从而产生一张干净的图像。
在扩散模型中,高斯噪声被一步步添加到训练图像中,直到它们完全变成垃圾噪声图像。通过这个过程,模型学会了逐步去除噪声,因此它能够将任何高斯噪声图像变成一张新的多样化图像(也可以根据文本提示进行条件生成)。
扩散模型的主要变体
扩散模型有 3 个主要框架
- 去噪扩散概率模型 (DDPM)
- DDPM 是使用潜在变量来估计概率分布的模型。从这个角度来看,DDPM 可以看作是一种特殊类型的变分自编码器 (VAE),其中前向扩散阶段对应于 VAE 内部的编码过程,而反向扩散阶段对应于解码过程。
- 噪声条件分数网络 (NCSN)
- 它基于通过分数匹配训练共享神经网络,以估计不同噪声水平下扰动数据分布的得分函数(定义为对数密度梯度)。
- 随机微分方程 (SDE)
- 它代表了一种替代的扩散建模方式,构成了扩散模型的第三个子类别。通过前向和反向 SDE 建模扩散可以实现高效的生成策略以及强大的理论结果。这可以看作是对 DDPM 和 NCSN 的泛化。
扩散模型的用例
扩散模型用于各种任务,包括但不限于:
- 图像生成 - 基于提示生成图像。
- 图像超分辨率 - 提高图像分辨率。
- 图像修复 - 根据提示填充图像的损坏部分。
- 图像编辑 - 编辑图像的特定/整个部分而不失去其视觉特性。
- 图像到图像转换 - 这包括更改背景、位置属性等。
- 从扩散模型中学习到的潜在表示也可以用于:
- 图像分割
- 分类
- 异常检测
想玩转扩散模型?不用担心,Hugging Face 的 Diffusers 库可以帮你。你可以使用几乎所有最新的扩散 SOTA 模型来完成几乎任何任务。
扩散模型的缺点
扩散模型最显著的缺点仍然是在推理时需要执行多个步骤才能生成一个样本。潜在一致性模型(LCM)是为克服潜在扩散模型(LDM)缓慢的迭代采样过程而提出的一种研究方向,它可以在任何预训练的 LDM(例如 Stable Diffusion)上实现少量步骤的快速推理。尽管在这个方向上进行了大量的研究,但 GAN 在生成图像方面仍然更快。
扩散模型的其他问题可能与文本到图像生成中常用的 CLIP 嵌入策略有关。一些文献研究强调,他们的模型难以在图像中呈现可读文本,并将其行为归因于 CLIP 嵌入不包含拼写信息。
< > 在 GitHub 上更新