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

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

最大似然估计加强

扩散模型在最大似然估计的表现差于基于似然函数的生成模型,但最大化似然估计在诸多应用场景都有重要意义,比如图片压缩, 半监督学习, 对抗性净化。由于对数似然难以直接计算,研究主要集中在优化和分析变分下界(VLB)。我们对提高扩散模型最大似然估计的模型进行了详细的阐述。我们将其细化分类为三类方法:Objectives Designing,Noise Schedule Optimization,Learnable Reverse Variance。

A.Objectives Designing 方法利用扩散 SDE 推倒出生成数据的对数似然与分数函数匹配的损失函数的关系。这样通过适当设计损失函数,就可以最大化 VLB 和对数似然。Song et al. 证明了可以设计损失函数的权重函数,使得 plug-in reverse SDE 生成样本的似然函数值小于等于损失函数值,即损失函数是似然函数的上界。分数函数拟合的损失函数如下:


我们只需将权重函数λ(t)设为扩散系数 g(t)即可让损失函数成为似然函数的 VLB,即:


B.Noise Schedule Optimization 通过设计或学习前向过程的噪声进度来增大 VLB。VDM 证明了当离散步数接近无穷时,损失函数完全由信噪比函数 SNR(t)的端点决定:

那么在离散步数接近无穷时,可以通过学习信噪比函数 SNR(t)的端点最优化 VLB,而通过学习信噪比函数中间部分的函数值来实现模型其他方面的改进。

C.Learnable Reverse Variance 方法学习反向过程的方差,从而较少拟合误差,可以有效地最大化 VLB。Analytic-DPM 证明,在 DDPM 和 DDIM 中存在反向过程中的最优期望和方差:


使用上述公式和训练好的分数函数,在给定前向过程的条件下,最优的 VLB 可以近似达到。

数据泛化增强
扩散模型假设数据存在于欧几里得空间,即具有平面几何形状的流形,并添加高斯噪声将不可避免地将数据转换为连续状态空间,所以扩散模型最初只能处理图片等连续性数据,直接应用离散数据或其他数据类型的效果较差。这限制了扩散模型的应用场景。数个研究工作将扩散模型推广到适用于其他数据类型的模型,我们对这些方法进行了详细地阐释。我们将其细化分类为两类方法:Feature Space Unification,Data-Dependent Transition Kernels。

A.Feature Space Unification 方法将数据转化到统一形式的 latent space,然后再 latent space 上进行扩散。LSGM 提出将数据通过 VAE 框架先转换到连续的 latent space 上后再在其上进行扩散。这个方法的难点在于如何同时训练 VAE 和扩散模型。LSGM 表明由于潜在先验是 intractable 的,分数匹配损失不再适用。LSGM 直接使用 VAE 中传统的损失函数 ELBO 作为损失函数,并导出了 ELBO 和分数匹配的关系:


该式在忽略常数的意义下成立。通过参数化扩散过程中样本的分数函数,LSGM 可以高效的学习和优化 ELBO。

B.Data-Dependent Transition Kernels 方法根据数据类型的特点设计 diffusion process 中的 transition kernels,使扩散模型可以直接应用于特定的数据类型。D3PM 为离散型数据设计了 transition kernel,可以设为 lazy random-walk,absorbing state 等。GEODIFF 为 3D 分子图数据设计了平移 - 旋转不变的图神经网络,并且证明了具有不变性的初分布和 transition kernel 可以导出具有不变性的边缘分布。假设 T 是一个平移 - 旋转变换,如:


那么生成的样本分布也有平移 - 旋转不变性:


和其他生成模型的联系

在下面的每个小节中,我们首先介绍其他五类重要的生成模型,并分析它们的优势和局限性。然后我们介绍了扩散模型是如何与它们联系起来的,并说明通过结合扩散模型来改进这些生成模型。VAE,GAN,Autoregressive model, Normalizing flow, Energy-based model 和扩散模型的联系如下图所示:


DDPM 可以视作层次马尔可夫 VAE(hierarchical Markovian VAE)。但 DDPM 和一般的 VAE 也有区别。DDPM 作为 VAE,它的 encoder 和 decoder 都服从高斯分布、有马尔科夫行;其隐变量的维数和数据维数相同;decoder 的所有层都共用一个神经网络。

DDPM 可以帮助 GAN 解决训练不稳定的问题。因为数据是在高维空间中的低维流形中,所以 GAN 生成数据的分布和真实数据的分布重合度低,导致训练不稳定。扩散模型提供了一个系统地增加噪音的过程,通过扩散模型向生成的数据和真实数据添加噪音,然后将加入噪音的数据送入判别器,这样可以高效地解决 GAN 无法训练、训练不稳定的问题。

Normalizing flow 通过双射函数将数据转换到先验分布,这样的作法限制了 Normalizing flow 的表达能力,导致应用效果较差。类比扩散模型向 encoder 中加入噪声,可以增加 Normalizing flow 的表达能力,而从另一个视角看,这样的做法是将扩散模型推广到前向过程也可学习的模型。

Autoregressive model 在需要保证数据有一定的结构,这导致设计和参数化自回归模型非常困难。扩散模型的训练启发了自回归模型的训练,通过特定的训练方式避免了设计的困难。

Energy-based model 直接对原始数据的分布建模,但直接建模导致学习和采样都比较困难。通过使用扩散恢复似然,模型可以先对样本加入微小的噪声,再从有略微噪声的样本分布来推断原始样本的分布,使的学习和采样过程更简单和稳定。


扩散模型的应用

在本节中,我们分别介绍了扩散模型在计算机视觉、自然语言处理、波形信号处理、多模态学习、分子图生成、时间序列以及对抗学习等七大应用方向中的应用,并对每类应用中的方法进行了细分并解析。例如在计算机视觉中可以用 diffusion model 进行图像补全修复(RePaint):


在多模态任务中可以用 diffusion model 进行文本到图像的生成(GLIDE):


还可以在分子图生成中用 diffusion model 进行药物分子和蛋白质分子的生成(GeoDiff):


应用分类汇总见表:


未来研究方向

应用假设再检验。我们需要检查我们在应用中普遍接受的假设。例如,实践中普遍认为扩散模型的前向过程会将数据转换为标准高斯分布,但事实并非如此,更多的前向扩散步骤会使最终的样本分布与标准高斯分布更接近,与采样过程一致;但更多的前向扩散步骤也会使估计分数函数更加困难。理论的条件很难获得,因此在实践中操作中会导致理论和实践的不匹配。我们应该意识到这种情况并设计适当的扩散模型。

从离散时间到连续时间。由于扩散模型的灵活性,许多经验方法可以通过进一步分析得到加强。通过将离散时间的模型转化到对应的连续时间模型,然后再设计更多、更好的离散方法,这样的研究思路有前景。

新的生成过程。扩散模型通过两种主要方法生成样本:一是离散化反向扩散 SDE,然后通过离散的反向 SDE 生成样本;另一个是使用逆过程中马尔可夫性质对样本逐步去噪。然而,对于一些任务,在实践中很难应用这些方法来生成样本。因此,需要进一步研究新的生成过程和视角。

泛化到更复杂的场景和更多的研究领域。虽然目前 diffusion model 已经应用到多个场景中,但是大多数局限于单输入单输出的场景,将来可以考虑将其应用到更复杂的场景,比如 text-to-audiovisual speech synthesis。也可以考虑和更多的研究领域相结合。

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