爆火Sora背后的技术,一文综述扩散模型的最新发展方向

  机器之心专栏

  机器之心编辑部

  为了使机器具有人类的想象力,深度生成模型取得了重大进展。这些模型能创造逼真的样本,尤其是扩散模型,在多个领域表现出色。扩散模型解决了其他模型的限制,如 VAEs 的后验分布对齐问题、GANs 的不稳定性、EBMs 的计算量大和 NFs 的网络约束问题。因此,扩散模型在计算机视觉、自然语言处理等方面备受关注。

  扩散模型由两个过程组成:前向过程和反向过程。前向过程把数据转化为简单的先验分布,而反向过程则逆转这一变化,用训练好的神经网络模拟微分方程来生成数据。与其他模型相比,扩散模型提供了更稳定的训练目标和更好的生成效果。

  不过,扩散模型的采样过程伴随反复推理求值。这一过程面临着不稳定性、高维计算需求和复杂的似然性优化等挑战。研究者为此提出了多种方案,如改进 ODE/SDE 解算器和采取模型蒸馏策略来加速采样,以及新的前向过程来提高稳定性和降低维度。

  近期,港中文联合西湖大学、MIT、之江实验室,在 IEEE TKDE 上发表的题为《A Survey on Generative Diffusion Models》的综述论文从四个方面讨论了扩散模型的最新进展:采样加速、过程设计、似然优化和分布桥接。该综述还深入探讨了扩散模型在不同应用领域的成功,如图像合成、视频生成、3D 建模、医学分析和文本生成等。通过这些应用案例,展示了扩散模型在真实世界中的实用性和潜力。

  • 论文地址:https://arxiv.org/pdf/2209.02646.pdf
  • 项目地址:https://github.com/chq1155/A-Survey-on-Generative-Diffusion-Model?tab=readme-ov-file

  算法改进

  采样加速

  • 知识蒸馏

  在扩散模型领域,提高采样速度的关键技术之一是知识蒸馏。这个过程涉及从一个大型、复杂的模型中提取出知识,并将其转移到一个更小、更高效的模型中。例如,通过使用知识蒸馏,我们可以简化模型的采样轨迹,使得在每个步骤中都以更高的效率逼近目标分布。Salimans 等人采用了一种基于常微分方程(ODE)的方法来优化这些轨迹,而其他研究者则发展了直接从噪声样本估计干净数据的技术,从而在时间点 T 上加速了这一过程。

  • 训练方式

  改进训练方式也是提升采样效率的一种方法。一些研究专注于学习新的扩散方案,其中数据不再是简单地加入高斯噪声,而是通过更复杂的方法映射到潜在空间。这些方法中,有些关注于优化逆向解码过程,比如调整编码的深度,而其他则探索了新的噪声规模设计,使噪声的加入不再是静态的,而是变成了一个可以在训练过程中学习的参数。

  • 免训练采样

  除了训练新的模型以提高效率,还有一些技术致力于加速已经预训练好的扩散模型的采样过程。ODE 加速是其中的一种技术,它利用 ODE 来描述扩散过程,从而使得采样可以更快地进行。例如,DDIM 是一种利用 ODE 进行采样的方法,后续的研究则引入了更高效的 ODE 求解器,如 PNDM 和 EDM,以进一步提升采样速度。

  • 结合其他生成模型

  此外,还有研究者提出了解析方法来加速采样,这些方法试图找到一个无需迭代就能从噪声数据中直接恢复干净数据的解析解。这些方法包括 Analytic-DPM 及其改进版本 Analytic-DPM++,它们提供了一种快速且精确的采样策略。

  扩散过程设计

  • 潜在空间

  潜在空间扩散模型如 LSGM 和 INDM 结合了 VAE 或归一化流模型,通过共用的加权去噪分数匹配损失来优化编解码器和扩散模型,使得 ELBO 或对数似然的优化旨在构建易于学习和生成样本的潜在空间。例如,Stable Diffusion 首先使用 VAE 学习潜在空间,然后训练扩散模型以接受文本输入。DVDP 则在图像扰动过程中动态调整像素空间的正交组件。

  • 创新的前向过程

  为了提高生成模型的效率和强度,研究人员探索了新的前向过程设计。泊松场生成模型将数据视为电荷,沿电场线将简单分布引向数据分布,与传统扩散模型相比,它提供了更强大的反向采样。PFGM++ 进一步将这一概念纳入高维度变量。Dockhorn 等人的临界阻尼朗之万扩散模型利用哈密顿动力学中的速度变量简化了条件速度分布的分数函数学习。

  • 非欧几里得空间

  在离散空间数据(如文本、分类数据)的扩散模型中,D3PM 定义了离散空间的前向过程。基于这种方法,已有研究扩展到语言文本生成、图分割和无损压缩等。在多模态挑战中,矢量量化数据转换为代码,显示出卓越的结果。在黎曼流形中的流形数据,如机器人技术和蛋白质建模,要求扩散采样纳入黎曼流形。图神经网络和扩散理论的结合,如 EDP-GNN 和 GraphGDP,处理图数据来捕捉排列不变性。

  似然优化

  尽管扩散模型优化了 ELBO,但似然优化仍是一个挑战,特别是对于连续时间扩散模型。ScoreFlow 和变分扩散模型(VDM)等方法建立了 MLE 训练与 DSM 目标的联系,Girsanov 定理在此中起到了关键作用。改进的去噪扩散概率模型(DDPM)提出了一种结合变分下界和 DSM 的混合学习目标,以及一种简单的重新参数化技术。

  分布连接

  扩散模型在将高斯分布转换为复杂分布时表现出色,但在连接任意分布时存在挑战。α- 混合方法通过迭代混合和解混来创建确定性桥梁。矫正流加入额外步骤来矫正桥梁路径。另一种方法是通过 ODE 实现两个分布之间的连接,而薛定谔桥或高斯分布作为中间连接点的方法也在研究之中。

  应用领域

  图片生成

  扩散模型在图像生成中非常成功,不仅能生成普通图像,还能完成复杂任务,比如把文本转换成图像。模型如 Imagen、Stable Diffusion 和 DALL-E 2 在这方面展示了高超技术。它们使用扩散模型结构,结合跨注意力层的技术,把文本信息整合进生成图像。除了生成新图像,这些模型还能编辑图像而不需再训练。编辑是通过调整跨注意力层(键、值、注意力矩阵)实现的。比如,通过调整特征图改变图像元素或引入新文本嵌入加入新概念。有研究确保模型生成时能关注文本的所有关键词,以确保图像准确反映描述。扩散模型还能处理基于图像的条件输入,比如源图像、深度图或人体骨架等,通过编码并整合这些特征来引导图像生成。一些研究把源图像编码特征加入模型开始层,实现图像到图像编辑,也适用于深度图、边缘检测或骨架作为条件的场景。

  3D 生成

  在 3D 生成方面,通过扩散模型的方法主要有两种。第一种是直接在 3D 数据上训练模型,这些模型已被有效应用在多种 3D 表示形式,如 NeRF、点云或体素等。例如,研究者们已经展示了如何直接生成 3D 对象的点云。为了提高采样的效率,一些研究引入了混合点 - 体素表示,或者将图像合成作为点云生成的额外条件。另一方面,有研究使用扩散模型来处理 3D 对象的 NeRF 表示,并通过训练视角条件扩散模型来合成新颖视图,优化 NeRF 表示。第二种方法强调使用 2D 扩散模型的先验知识来生成 3D 内容。比如,Dreamfusion 项目使用得分蒸馏采样目标,从预训练的文本到图像模型中提取出 NeRF,并通过梯度下降优化过程来实现低损失的渲染图像。这一过程也被进一步扩展,以加快生成速度。

  视频生成

  视频扩散模型是对 2D 图像扩散模型的扩展,它们通过添加时间维度来生成视频序列。这种方法的基本思想是在现有的 2D 结构中添加时间层,以此来模拟视频帧之间的连续性和依赖关系。相关的工作展示了如何利用视频扩散模型来生成动态内容,例如 Make-A-Video、AnimatedDiff 等模型。更具体地,RaMViD 模型使用 3D 卷积神经网络扩展图像扩散模型到视频,并开发了一系列视频特定的条件技术。

  医学分析

  扩散模型帮助解决了医学分析中获取高质量数据集的挑战,尤其在医学成像方面表现出色。这些模型凭借其强大的图像捕捉能力,在提升图像的分辨率、进行分类和噪声处理方面取得了成功。例如,Score-MRI 和 Diff-MIC 使用先进的技术加速 MRI 图像的重建和实现更精确的分类。MCG 在 CT 图像超分辨率中采用流形校正,提高了重建速度和准确性。在生成稀有图像方面,通过特定技术,模型能在不同类型的图像间进行转换。例如,FNDM 和 DiffuseMorph 分别用于脑部异常检测和 MR 图像配准。一些新方法通过少量高质量样本合成训练数据集,如一个使用 31,740 个样本的模型合成了一个包含 100,000 个实例的数据集,取得了非常低的 FID 得分。

  文本生成

  文本生成技术是连接人类和 AI 的重要桥梁,能制造流畅自然的语言。自回归语言模型虽然生成连贯性强的文本但速度慢,而扩散模型能够快速生成文本但连贯性相对较弱。两种主流的方法是离散生成和潜在生成。离散生成依赖于先进技术和预训练模型;例如,D3PM 和 Argmax 视词汇为分类向量,而 DiffusionBERT 将扩散模型与语言模型结合提升文本生成。潜在生成则在令牌的潜在空间中生成文本,例如,LM-Diffusion 和 GENIE 等模型在各种任务中表现出色,显示了扩散模型在文本生成中的潜力。扩散模型预计将在自然语言处理中提升性能,与大型语言模型结合,并支持跨模态生成。

  时间序列生成

  时间序列数据的建模是在金融、气候科学、医疗等领域中进行预测和分析的关键技术。扩散模型由于其能够生成高质量的数据样本,已经被用于时间序列数据的生成。在这个领域,扩散模型通常被设计为考虑时间序列数据的时序依赖性和周期性。例如,CSDI(Conditional Sequence Diffusion Interpolation)是一种模型,它利用了双向卷积神经网络结构来生成或插补时间序列数据点。它在医疗数据生成和环境数据生成方面表现出色。其他模型如 DiffSTG 和 TimeGrad 通过结合时空卷积网络,能够更好地捕捉时间序列的动态特性,并生成更加真实的时间序列样本。这些模型通过自我条件指导的方式,逐渐从高斯噪声中恢复出有意义的时间序列数据。

  音频生成

  音频生成涉及到从语音合成到音乐生成等多个应用场景。由于音频数据通常包含复杂的时间结构和丰富的频谱信息,扩散模型在此领域同样表现出潜能。例如,WaveGrad 和 DiffSinger 是两种扩散模型,它们利用条件生成过程来产生高质量的音频波形。WaveGrad 使用 Mel 频谱作为条件输入,而 DiffSinger 则在这个基础上添加了额外的音乐信息,如音高和节奏,从而提供更精细的风格控制。文本到语音(TTS)的应用中,Guided-TTS 和 Diff-TTS 将文本编码器和声学分类器的概念结合起来,生成既符合文本内容又遵循特定声音风格的语音。Guide-TTS2 进一步展现了如何在没有明确分类器的情况下生成语音,通过模型自身学习到的特征引导声音生成。

  分子设计

  在药物设计、材料科学和化学生物学等领域,分子设计是发现和合成新化合物的重要环节。扩散模型在这里作为一种强大的工具,能够高效探索化学空间,生成具有特定性质的分子。在无条件的分子生成中,扩散模型不依赖于任何先验知识,自发地生成分子结构。而在跨模态生成中,模型可能会结合特定的功能条件,例如药效或目标蛋白的结合倾向,来生成具有所需性质的分子。基于序列的方法可能会考虑蛋白质序列来引导分子的生成,而基于结构的方法则可能使用蛋白质的三维结构信息。这样的结构信息可以在分子对接或者抗体设计中被用作先验知识,从而提高生成分子的质量。

  图生成

  使用扩散模型生成图,旨在更好地理解和模拟现实世界的网络结构和传播过程。这种方法帮助研究人员挖掘复杂系统中的模式和相互作用,预测可能的结果。应用包括社交网络、生物网络分析以及图数据集的创建。传统方法依赖于生成邻接矩阵或节点特征,但这些方法可扩展性差,实用性有限。因此,现代图生成技术更倾向于根据特定条件生成图。例如,PCFI 模型使用图的一部分特征和最短路径预测来引导生成过程;EDGE 和 DiffFormer 分别用节点度和能量约束来优化生成;D4Explainer 则通过结合分布和反事实损失来探索图的不同可能性。这些方法提高了图生成的精确度和实用性。

  结论与展望

  数据限制下的挑战

  除了推理速度低外,扩散模型在从低质量数据中辨识模式和规律时也常常遇到困难,导致它们无法泛化到新的场景或数据集。此外,处理大规模数据集时也会出现计算上的挑战,如延长的训练时间、过度的内存使用,或者无法收敛到期望的状态,从而限制了模型的规模和复杂性。更重要的是,有偏差或不均匀的数据采样会限制模型生成适应不同领域或人群的输出的能力。

  可控的基于分布的生成

  提高模型理解和生成特定分布内样本的能力对于在有限数据情况下实现更好的泛化至关重要。通过专注于识别数据中的模式和相关性,模型可以生成与训练数据高度匹配并满足特定要求的样本。这需要有效的数据采样、利用技术以及优化模型参数和结构。最终,这种增强的理解能力允许更加控制和精确的生成,从而改善泛化性能。

  利用大型语言模型的高级多模态生成

  扩散模型的未来发展方向涉及通过整合大型语言模型(LLMs)来推进多模态生成。这种整合使模型能够生成包含文本、图像和其他模态组合的输出。通过纳入 LLMs,模型对不同模态间相互作用的理解得到增强,生成的输出更加多样化和真实。此外,LLMs 显著提高了基于提示的生成效率,通过有效利用文本与其他模态之间的联系。另外,LLMs 作为催化剂,提高了扩散模型的生成能力,扩大了它可以生成模态的领域范围。

  与机器学习领域的整合

  将扩散模型与传统的机器学习理论结合,为提高各种任务的性能提供了新的机会。半监督学习在解决扩散模型的固有挑战,例如泛化问题,以及在数据有限的情况下实现有效的条件生成方面特别有价值。通过利用未标记数据,它加强了扩散模型的泛化能力,并在特定条件下生成样本时实现了理想的性能。

  此外,强化学习通过使用精调算法,在模型的采样过程中提供针对性的指导,起着至关重要的作用。这种指导确保了专注的探索并促进了受控生成。另外,通过整合额外的反馈,丰富了强化学习,从而改善了模型的可控条件生成能力。

  算法改进方法(附录)

  领域应用方法(附录)