3、Improved Denoising Diffusion Probabilistic Models#

news2024/9/29 21:26:36

简介

论文发现通过一些简单的修改,ddpm也可以在保持高样本质量的同时实现竞争对数可能性,反向扩散过程的学习方差允许以更少的正向传递数量级进行采样,而样本质量的差异可以忽略不计,这对于这些模型的实际部署非常重要。

github链接

扩散模型回顾

扩散模型分为加噪过程和去噪过程

加噪过程公式如下

使用重参数技巧,加噪过程可以表示为

目标函数(VLB)

简化为

去噪过程公式如下

训练过程为通过模型预测不同时间步 t 的噪声,并且该噪声符合正态分布,其中均值表示为:

反差可以使用或者

Improving the Log-likelihood

对数似然是生成建模中广泛使用的度量标准,通常认为优化对数似然会迫使生成模型捕获数据分布的所有模式,对数似然的微小改进可以对样本质量和学习到的特征表示产生巨大影响

扩散模型在设置 和t = 1000的同时优化 在ImageNet 64 × 64上经过200K训练迭代后实现了3.99 (bits/dim)的对数似然值。我们在早期的实验中发现,通过将T从1000增加到4000,对数似然提高到3.77。

此外我们可以从不同角度优化DDPM:方差,加噪策略、减少梯度噪声和加速去噪采样过程

可学习的方差

原始DDPM中f方差中的是固定数值或者,实验表明两者都获得了相似的样本质量,它们分别是 给出的方差的上界和下界,要么是各向同性高斯噪声,要么是delta函数。对于不同长度的扩散过程,每个扩散步骤的比值

图 1对于不同长度的扩散过程,每个扩散步骤的比值。

在几何相等,除了在 t = 0附近,即在模型处理细节的时候。随着扩散步骤数的增加,在扩散过程中似乎保持更接近,这表明,在无限扩散步长的极限下, 的选择可能对样本质量没有影响。换句话说,当我们添加更多的扩散步骤时,模型均值 更能决定分布。

虽然上面的论点表明,为了样本质量,固定是一个合理的选择,但它没有说对数似然。事实上,下图显示了扩散过程的前几个步骤对变分下界的贡献最大。因此,我们似乎可以通过使用更好的来提高对数可能性。

图2 时间步下loss term影响

如图1所示,的合理范围非常小,因此即使是在对数域,神经网络也很难直接预测,更好的方法是在对数域中将方差参数化为之间的插值

模型输出一个向量v,每个维度包含一个分量

没有对v施加任何约束,理论上允许模型预测插值范围之外的方差。然而,并没有观察到网络在实践中这样做,这表明的边界确实具有足够的表现力。

由于 不依赖于 ,定义了一个新的混合目标

设定 防止 压倒 ,对 项的 输出应用了一个 stop-gradient。这样, 可以引导 ,而 仍然是影响 的主要来源。

Improving the Noise Schedule

DDPM的噪声在高分辨率图像效果良好,但是在 64 x 64 和 32 x 32 的数据上效果不好。

同时,如下图,潜在样本分别来自线性(上)和余弦(下)表,线性间隔t值从0到t。线性的最后四分之一的潜在因素几乎是纯噪声,而余弦增加噪声的速度更慢 , 前向噪声处理的末端噪声太大,因此对样品质量的贡献不大

图 3 不同加噪策略结果

如下图,当我们跳过高达20%的反向扩散过程时,用线性时间表训练的模型并没有变得更差(由FID测量)。

图4 在ImageNet 64 × 64上跳过反向扩散过程的一个前缀时的FID。

因此可以根据 构造了一个不同的噪声表

在上述公式下,,为了 防止扩散过程结束时在t =T 附近出现奇点,限制 不大于0.999

余弦设计为在过程中间有一个线性下降的 ,而在t = 0和t = T 的极端值附近变化很小,以防止噪声水平的突然变化。图5显示了两种时间表下的 进展情况。我们可以看到线性时间表更快地趋于零,太快地破坏信息。

图 5 两种时间表的比较

公式使用一个小的偏移量s来防止 在t = 0附近太小

实验发现在过程开始时有少量的噪声使得网络很难足够准确地预测 ,因此,选择 s = 0.008 使得 稍小于 像素库大小 1/127.5

这里的余弦公式可以用

Reducing Gradient Noise

论文希望直接优化 ,而不是通过优化 ,来获得最佳的log-likelihood ,但 是 实际上很难在实践中优化

在训练时间相同的前提下,这两条曲线都有噪声,但混合目标显然在训练集上获得了更好的对数似然值

图6不同目标函数的效果

假设 的梯度比 的梯度噪声大得多 ,寻找了一种减少 方差的方法,以直接优化对数似然

图 7 ImageNet 64 × 64上 vlb 和 hybrid 梯度噪声尺度。

注意到 的不同项有很大不同的幅度(图2),假设均匀采样t会导致 目标中不必要的噪声。为了解决这个问题,采用了重要性抽样:

由于 事先是未知的,并且可能在整个训练过程中发生变化,因此为每个损失项保留了前10个值的历史记录,并在训练过程中动态更新。在训练开始时,我们对t进行统一采样,直到为每个t∈[0,t−1]抽取10个样本。

有了这个重要的抽样目标,能够通过优化 来实现最佳对数可能性。这可以在图6中看到 (重采样)曲线。该图还表明,重要采样目标的噪声比原始的均匀采样目标要小得多。我们发现,在直接优化低噪声的 目标时,重要性抽样技术没有帮助。

Results and Ablations

使用 和余弦提高了对数可能性,同时保持相似的FID。优化 以更高的FID为代价进一步提高了log-likelihood。通常更喜欢使用 而不是 ,因为它在不牺牲样本质量的情况下提高了可能性。

Improving Sampling Speed

预训练的 模型可以以比训练时(没有任何微调)少得多的扩散步骤产生高质量的样本

对于用T扩散步骤训练的模型,通常在训练中使用相同的T值序列(1,2,…, T)。但是,也可以使用任意子序列S (t)进行采样。给定训练噪声表,对于给定序列S,我们可以得到采样噪声表 ,然后利用它可以得到相应的采样方差

由于 被参数化为 之间的范围,它将自动为更短的扩散过程重新缩放 ,从而通过 计算

为了减少从T到K的采样步骤数,使用K个在1到T(包括)之间均匀间隔的实数,然后将每个结果数四舍五入到最接近的整数

用25、50、100、200、400、1000和4000个采样步骤来评估一个模型和一个模型的FID。对一个完全训练的检查点和一个正在训练的检查点都这样做。对于CIFAR-10,使用了200K和500K训练迭代,对于ImageNet64,使用了500K和1500K训练迭代,结果如下图

图8 对于在ImageNet 64 × 64(上)和CIFAR-10(下)上训练的模型,FID与采样步骤数的关系。所有模型都训练了4000个扩散步骤

具有固定sigma的模型( 较大,较小)在使用较少的采样步骤时,样本质量受到更大的影响,而具有学习sigma的 模型保持了较高的样本质量 ,对于这个模型,100个采样步骤足以为经过充分训练的模型实现接近最优的FID。

实验

CIFAR-10和无条件ImageNet 64 × 64中ddpm与其他基于似然模型的比较。NLL以bit /dim为单位报告。在ImageNet 64 × 64上,论文模型可以与最好的卷积模型竞争,但不如完全基于变压器的架构。

与GAN对比

总结

已经证明,通过一些修改,DDPM可以更快地采样,并获得更好的对数似然,而对样本质量影响很小。通过使用参数化和 学习 ,可能性得到了提高。这使得这些模型的可能性更接近于其他基于可能性的模型。这种变化还允许从这些模型中进行抽样,步骤要少得多。

DDPMs可以匹配GANs的样本质量,同时通过召回率获得更好的模式覆盖。此外,还研究了DDPM 是如何随着可用训练计算量的增加而扩展的,并发现更多的训练计算显然会导致更好的样本质量和对数似然。

这些结果的组合使得DDPM成为生成建模的一个有吸引力的选择,因为它们结合了良好的对数可能性、高质量的样本和合理的快速采样,以及一个良好的、稳定的训练目标,易于与训练计算进行扩展

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/375250.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AOF:redis宕机,如何避免数据丢失

由于redis是基于内存的数据库,一旦宕机,数据就会丢失?如何解决? 目前,Redis 的持久化主要有两大机制,即 AOF(Append Only File)日志和 RDB(Redis DataBase) 快照。 AO…

SQL零基础入门学习(十四)

上篇:SQL零基础入门学习(十三) SQL NULL 值 NULL 值代表遗漏的未知数据。 默认地,表的列可以存放 NULL 值。 如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该…

基于新一代kaldi项目的语音识别应用实例

本文是由郭理勇在第二届SH语音技术研讨会和第七届Kaldi技术交流会上对新一代kaldi项目在学术及“部署”两个方面报告的内容上的整理。如果有误,欢迎指正。 文字整理丨李泱泽 编辑丨语音小管家 喜报:新一代Kaldi团队三篇论文均被语音顶会ICASSP-2023接…

亿级高并发电商项目-- 实战篇 --万达商城项目 十三(编写购物车、优化修改商品、下架商品方法、购物车模块监听修改商品、删除商品消息)

👏作者简介:大家好,我是小童,Java开发工程师,CSDN博客博主,Java领域新星创作者 📕系列专栏:前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶 &#x1f4…

SSL证书对虚拟主机的用处有哪些?

虚拟主机是指在同一台服务器上,通过不同的域名或IP地址为多个网站提供服务的一种网络主机。而SSL证书则是一种数字证书,它用于加密网站与用户之间的通信,确保数据传输的安全性和完整性。在虚拟主机上,SSL证书有以下几个用处&#…

SQL Server2008详细安装步骤(保姆式教程)

安装包下载 链接:https://pan.baidu.com/s/1Rjx4DHJBeCW2asC_4Kzo6Q?pwdchui 提取码:chui 安装过程 1.解压后使用管理员身份打开安装程序 2.选择全新安装或向现有安装添加新功能 3.确认 4.输入产品密钥(上方网盘安装包里有&#xff0…

【路径规划】基于前向动态规划算法在地形上找到最佳路径(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【ArcGIS Pro二次开发】(10):属性表字段(field)的修改

在ArcGIS Pro中,经常会遇到用字段计算器对要素的属性表进行计算。下面以一个例子演示如何在ArcGIS Pro SDK二次开发中实现。 一、要实现的功能 如上图所示的要素图层,要实现如下功能: 当字段【市级行政区】的值为【泉州市】时,将…

用 .NET 启动你的 DJI Ryze Tello 无人机

大疆的 DJI Ryze Tello 是入门级的无人机,不仅在 STEM 教育中有非常广泛的应用,也可以作为编程入门的首选。通过 UDP 协议调用 DJI Ryze Tello SDK 可以让 DJI Ryze Tello 无人机执行起飞,降落,转向以及不同的花式动作。本文将会通…

Parasoft的自动化测试平台到底强在哪?

在如今产品迭代如此之快的大背景下,软件测试这项工作越来越被大家所重视,但是通常情况下大家都是选择在产品上线前再去做测试,这个时候就会面临很多麻烦和挑战。首先,产品已经开发好之后,体量比较大,要从哪…

BurpSuite配置抓取HTTPS数据包

简介 我们在渗透测试的过程中,经常会遇到HTTPS的网站,Burp默认是没有办法抓取HTTPS的包的,想要让Burp抓取Https的包也很好办,只需要浏览器安装相关的证书即可,接下来将配置过程做一个记录。 前置条件: 1.J…

HashMap原理(一):哈希函数的设计

哈希函数的作用与本质 HashMap用来存储存在映射关系的数据对{key, value},在内部通过构造复合数据结构来封装数据对&#xff0c;即 //伪代码&#xff0c;非源码 class Pair<K, V> {public K key;public V value; }假设用来存储数据对的哈希数表为table&#xff0c;数据…

TCP状态转换

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 TCP状态转换专栏&#xff1a;《Linux从小白到大神》《网络编程》 TCP状态转换示意图如下 针对上面的示…

项目结束先别着急庆祝,项目经理还有这些事要做

项目管理生命周期结束阶段的目的是确认项目可交付成果的完成&#xff0c;使项目发起人满意&#xff0c;并向所有参与者和利益相关者传达项目的最终处置和状态。 项目结束确保项目的所有参与者和利益相关者都清楚后续活动&#xff08;如新项目、服务过渡、SLA等&#xff09;&a…

【ChatGPT情商大考验】ChatGPT教我谈恋爱

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️&#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

graph在细粒度分类中的应用

目录基于Graph-Propagation的相关性学习AAAI2020基于graph的高阶关系发现CVPR2021基于Graph-Propagation的相关性学习AAAI2020 来源&#xff1a;Graph-Propagation Based Correlation Learning for Weakly Supervised Fine-Grained Image Classification&#xff08;这或许是第…

MATLAB R2022b 安装教程

MATLAB R2022b 安装教程MathWorks 于2022年9月发布了 MATLAB 和 Simulink 产品系列的最新版本 Matlab R2022b版本 &#xff0c;加入两个新产品&#xff1a; Medical Imaging Toolbox — 可视化、配准、分割和标注二维及三维医学图像Simscape Battery — 设计和仿真电池和储能系…

HiveSql一天一个小技巧:如何巧用分布函数percent_rank()求去掉最大最小值的平均薪水问题

0 问题描述参考链接(3条消息) HiveSql面试题12--如何分析去掉最大最小值的平均薪水&#xff08;字节跳动&#xff09;_莫叫石榴姐的博客-CSDN博客文中已经给出了三种解法&#xff0c;这里我们借助于此题&#xff0c;来研究如何用percent_rank()函数求解&#xff0c;简化解题思路…

Kafka(五)生产者向发送消息的执行流程

&#xff08;1&#xff09;生产者要往 Kafka 发送消息时&#xff0c;需要创建 ProducerRecoder,代码如下&#xff1a; ProducerRecord<String,String> record new ProducerRecoder<>("CostomerCountry","Precision Products","France&q…

新闻稿的制作流程:从确定新闻稿目的到将其分发给媒体

对于任何希望向媒体和公众传达具有新闻价值的信息的组织来说&#xff0c;新闻稿都是必不可少的工具。精心制作的新闻稿可以帮助您宣传您的业务、产品或服务&#xff0c;并可以产生有价值的媒体报道。在本文中&#xff0c;我们将指导您完成新闻稿的制作过程&#xff0c;从确定新…