扩散模型爆火,这是首篇综述与Github论文分类汇总(1)

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 扩散模型爆火,这是首篇综述与Github论文分类汇总


作者:杨灵

本文首次对现有的扩散生成模型(diffusion model)进行了全面的总结分析,还在Github分类汇总了相关论文。


本综述(Diffusion Models: A Comprehensive Survey of Methods and Applications)来自加州大学 & Google Research 的 Ming-Hsuan Yang、北京大学崔斌实验室以及 CMU、UCLA、蒙特利尔 Mila 研究院等众研究团队,首次对现有的扩散生成模型(diffusion model)进行了全面的总结分析,从 diffusion model 算法细化分类、和其他五大生成模型的关联以及在七大领域中的应用等方面展开,最后提出了 diffusion model 的现有 limitation 和未来的发展方向。

文章链接:https://arxiv.org/abs/2209.00796论文分类汇总 github 链接:https://github.com/YangLing0818/Diffusion-Models-Papers-Survey-Taxonomy


介绍

扩散模型(diffusion models)是深度生成模型中新的 SOTA。扩散模型在图片生成任务中超越了原 SOTA:GAN,并且在诸多应用领域都有出色的表现,如计算机视觉,NLP、波形信号处理、多模态建模、分子图建模、时间序列建模、对抗性净化等。此外,扩散模型与其他研究领域有着密切的联系,如稳健学习、表示学习、强化学习。然而,原始的扩散模型也有缺点,它的采样速度慢,通常需要数千个评估步骤才能抽取一个样本;它的最大似然估计无法和基于似然的模型相比;它泛化到各种数据类型的能力较差。如今很多研究已经从实际应用的角度解决上述限制做出了许多努力,或从理论角度对模型能力进行了分析。

然而,现在缺乏对扩散模型从算法到应用的最新进展的系统回顾。为了反映这一快速发展领域的进展,我们对扩散模型进行了首个全面综述。我们设想我们的工作将阐明扩散模型的设计考虑和先进方法,展示其在不同领域的应用,并指出未来的研究方向。此综述的概要如下图所示:


尽管 diffusion model 在各类任务中都有着优秀的表现,它仍还有自己的缺点,并有诸多研究对 diffusion model 进行了改善。为了系统地阐明 diffusion model 的研究进展,我们总结了原始扩散模型的三个主要缺点,采样速度慢,最大化似然差、数据泛化能力弱,并提出将的 diffusion models 改进研究分为对应的三类:采样速度提升、最大似然增强和数据泛化增强。我们首先说明改善的动机,再根据方法的特性将每个改进方向的研究进一步细化分类,从而清楚的展现方法之间的联系与区别。在此我们仅选取部分重要方法为例, 我们的工作中对每类方法都做了详细的介绍,内容如图所示:


在分析完三类扩散模型后,我们将介绍其他的五种生成模型 GAN,VAE,Autoregressive model, Normalizing flow, Energy-based model。考虑到扩散模型的优良性质,研究者们已经根据其特性将 diffusion model 与其他生成模型结合,所以为了进一步展现 diffusion model 的特点和改进工作,我们详细地介绍了 diffusion model 和其他生成模型的结合的工作并阐明了在原始生成模型上的改进之处。Diffusion model 在诸多领域都有着优异的表现,并且考虑到不同领域的应用中 diffusion model 产生了不同的变形,我们系统地介绍了 diffusion model 的应用研究,其中包含如下领域:计算机视觉,NLP、波形信号处理、多模态建模、分子图建模、时间序列建模、对抗性净化。对于每个任务,我们定义了该任务并介绍利用扩散模型处理任务的工作,我们将本项工作的主要贡献总结如下

  • 新的分类方法:我们对扩散模型和其应用提出了一种新的、系统的分类法。具体的我们将模型分为三类:采样速度增强、最大似然估计增强、数据泛化增强。进一步地,我们将扩散模型的应用分为七类:计算机视觉,NLP、波形信号处理、多模态建模、分子图建模、时间序列建模、对抗性净化。
  • 全面的回顾:我们首次全面地概述了现代扩散模型及其应用。我们展示了每种扩散模型的主要改进,和原始模型进行了必要的比较,并总结了相应的论文。对于扩散模型的每种类型的应用,我们展示了扩散模型要解决的主要问题,并说明它们如何解决这些问题。
  • 未来研究方向:我们对未来研究提出了开放型问题,并对扩散模型在算法和应用方面的未来发展提供了一些建议。


扩散模型基础

生成式建模的一个核心问题是模型的灵活性和可计算性之间的权衡。扩散模型的基本思想是正向扩散过程来系统地扰动数据中的分布,然后通过学习反向扩散过程恢复数据的分布,这样就了产生一个高度灵活且易于计算的生成模型。

A.Denoising Diffusion Probabilistic Models(DDPM)
一个 DDPM 由两个参数化马尔可夫链组成,并使用变分推断以在有限时间后生成与原始数据分布一致的样本。前向链的作用是扰动数据,它根据预先设计的噪声进度向数据逐渐加入高斯噪声,直到数据的分布趋于先验分布,即标准高斯分布。反向链从给定的先验开始并使用参数化的高斯转换核,学习逐步恢复原数据分布。用表示原始数据及其分布, 则前向链的分布是可由下式表达:



这说明前向链是马尔可夫过程,x_t 是加入 t 步噪音后的样本,β_t 是事先给定的控制噪声进度的参数。当趋于 1 时,x_T 可以近似认为服从标准高斯分布。当β_t 很小时,逆向过程的转移核可以近似认为也是高斯的:



我们可以将变分下界作为损失函数进行学习:


B.Score-Based Generative Models(SGM)
上述 DDPM 可以视作 SGM 的离散形式。SGM 构造一个随机微分方程(SDE)来平滑的扰乱数据分布,将原始数据分布转化到已知的先验分布:


和一个相应的逆向 SDE,来将先验分布变换回原始数据分布:


因此,要逆转扩散过程并生成数据,我们需要的唯一信息就是在每个时间点的分数函数。利用 score-matching 的技巧我们可以通过如下损失函数来学习分数函数:


对两种方法的进一步介绍和两者关系的介绍请参见我们的文章。

原始扩散模型的三个主要缺点,采样速度慢,最大化似然差、数据泛化能力弱。最近许多研究都在解决这些缺点,因此我们将改进的扩散模型分为三类:采样速度提升、最大似然增强和数据泛化增强。在接下来的三、四、五节我们将对这三类模型进行详细的介绍。

采样加速方法

在应用时,为了让新样本的质量达到最佳,扩散模型往往需要进行成千上万步计算来获取一个新样本。这限制了 diffusion model 的实际应用价值,因为在实际应用时,我们往往需要产生大量的新样本,来为下一步处理提供材料。研究者们在提高 diffusion model 采样速度上进行了大量的研究。我们对这些研究进行了详细的阐述。我们将其细化分类为三种方法:Discretization Optimization,Non-Markovian Process,Partial Sampling。

A.Discretization Optimization 方法优化求解 diffusion SDE 的方法。因为现实中求解复杂 SDE 只能使用离散解来逼近真正的解,所以该类方法试图优化 SDE 的离散化方法,在保证样本质量的同时减少离散步数。SGM 提出了一个通用的方法来求解逆向过程,即对前向和后向过程采取相同的离散方法。如果给定了前向 SDE 的离散方式:


那么我们就可以以相同的方式离散化逆向 SDE:


这种方法比朴素 DDPM 效果略好一点。进一步,SGM 向 SDE 求解器中加入了一个矫正器,从而让每一步生成的样本都有正确的分布。在求解的每一步,求解器给出一个样本后,矫正器都使用马尔可夫链蒙特卡罗方法来矫正刚生成的样本的分布。实验表明向求解器中加入矫正器比直接增加求解器的步数效率更高。

B.Non-Markovian Process 方法突破了原有 Markovian Process 的限制,其逆过程的每一步可以依赖更多以往的样本来进行预测新样本,所以在步长较大时也能做出较好的预测,从而加速采样过程。其中主要的工作 DDIM,不再假设前向过程是马尔可夫过程,而是服从如下分布:


DDIM 的采样过程可以视为离散化的神经常微分方程,其采样过程更高效,并且支持样本的内插。进一步的研究发现 DDIM 可以视作流形上扩散模型 PNDM 的特例。

C.Partial Sampling 方法通过在 generation process 中忽略一部分的时间节点,而只使用剩下的时间节点来生成样本,直接减少了采样时间。例如,Progressive Distillation 从训练好的扩散模型中蒸馏出效率更高的扩散模型。对于训练好的一个扩散模型,Progressive Distillation 会从新训练一个扩散模型,使新的扩散模型的一步对应于训练好的扩散模型的两步,这样新模型就可以省去老模型一半的采样过程。具体算法如下:


不断循环这个蒸馏过程就能让采样步骤指数级下降。


相关文章
|
6月前
|
自然语言处理 并行计算 PyTorch
GitHub 开源神器 Bark模型,让文本转语音更简单!
GitHub 开源神器 Bark模型,让文本转语音更简单!
210 0
|
算法 Java
号称Java圣经!Github上爆火的1058页JVM全栈小册到底有什么魅力
对于JVM,我想大部分小伙伴都是要面试了才会去学,其余时间基本不会去看(掐指一算,你们书架上面的深入理解Java虚拟机第三版应该都一层灰了吧【手动狗头】)。但值得一说的是,当你工作多年之后,你遇到的项目会越来越复杂,遇到的问题也会越来越复杂:各种古怪的内存溢出,死锁,应用崩溃……这些都会迫使你不得不去深入学习JVM底层原理 那么应该如何学JVM 只靠周大神的JVM圣经(深入理解Java虚拟机)吗?当然不够,JVM知识庞杂,一本书肯定不能把其方方面面全部总结出来(其重点是JVM的工作原理,对于源码,GC算法并没花过多篇幅)所以,借此机会,LZ今天为大家带来了其他两份业界评价还不错的JVM学习小
|
4月前
|
机器人 vr&ar 计算机视觉
|
6月前
|
机器学习/深度学习 自然语言处理 网络安全
【pkuseg】由于网络策略组织下载请求,因此直接在github中下载细分领域模型medicine
【pkuseg】由于网络策略组织下载请求,因此直接在github中下载细分领域模型medicine
69 1
|
6月前
|
消息中间件 缓存 算法
太全!不愧是Github爆火的阿里812页高并系统设计核心技术全解
某乎上有这样一个问答:现在好点的互联网公司招聘基本都要求有高并发经验,但没有高并发的经验的人感觉只有在好点的互联网才获得高并发经验,这难道不是死循环?没有高并发经验的人如何才能获取高并发方面的经验呢? 如何获取高并发经验? 其实并不是去了大公司就能获得高并发的经验,高并发只是一个结果,并不是过程。在来自全人类的高并发访问面前,一切都有可能发生,所以我们经常能看到顶级网站的颤抖。想要获得高并发经验基础最重要,这包括算法,操作系统,jvm,数据库,缓存,多线程等等。这些独立而又关联的知识其实书本里都有,我们需要时不时地去温习,不能一直痴迷于框架,框架只会挡住你的眼睛,让你觉得什么都不重要。大并发
|
6月前
|
机器学习/深度学习 运维 数据可视化
中科院版「分割一切」模型来了,比Meta原版提速50倍 | GitHub 4.2K+星
中科院版「分割一切」模型来了,比Meta原版提速50倍 | GitHub 4.2K+星
82 0
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
16CODEIPPROMPT:顶会ICML’23 从GitHub到AI,探索代码生成的侵权风险与缓解策略的最新进展:训练数据`有限制性许可;模型微调+动态Token过滤【网安AIGC专题11.8】
16CODEIPPROMPT:顶会ICML’23 从GitHub到AI,探索代码生成的侵权风险与缓解策略的最新进展:训练数据`有限制性许可;模型微调+动态Token过滤【网安AIGC专题11.8】
134 1
|
缓存 算法 搜索推荐
Github一夜爆火的阿里术小册究竟有什么魅力?才能引大家趋之若鹜
谈谈我的真实感受吧~ 程序员真的是需要将终生学习贯彻到底的职业,一旦停止学习,离被淘汰,也就不远了。
|
运维 Oracle 关系型数据库
后悔极了!GitHub开源爆火阿里「DBA攻坚指南」笔记,我竟没下载
Oracle和MySQL在国内市场的占有率高达60%以上,因此国内需要大量具有综合能力的数据库管理人才。市面上绝大多数的数据库相关书籍和资料只介绍了其中一类数据库,且大多只介绍基础原理或只阐述深奥的方法论,质量参差不齐,极少有同时涵盖Oracle和MySQL这两种数据库的书籍。
|
Java 开发工具 开发者
开发者必看!GitHub爆火的lntelliJ IDEA软件开发手册堪称又一神作
lntelliJ IDEA是一款优秀的软件开发工具,学习和掌握IntelliJ IDEA对于开发者来讲具有十分重要的意义。
103 0

热门文章

最新文章