Latent Diffusion Models 论文解读

news2025/1/20 15:54:30

在这里插入图片描述
论文下载地址:https://arxiv.org/pdf/2112.10752.pdf

0 摘要

通过将图像形成过程分解为去噪自编码器的连续应用,扩散模型(DM)在图像数据及其他方面取得了最先进的合成结果。此外,它们的表述允许一种指导机制来控制图像生成过程,而无需重新训练。然而,由于这些模型通常直接在像素空间中操作,因此优化功能强大的扩散模型通常会消耗数百个GPU天,并且由于顺序评估而导致推理成本高昂。

  • 为了使DM训练在有限的计算资源上同时保持其质量和灵活性,本文将它们应用于强大的预训练自编码器的潜在空间
  • 通过在模型架构中引入交叉注意层,本文将扩散模型转变为强大而灵活的生成器,用于一般条件输入(如文本或边界框),并以卷积方式实现高分辨率合成。
  • 我们的潜在扩散模型(LDM)在图像绘制和类别条件图像合成方面取得了新的最先进的分数,并在各种任务上表现出极具竞争力的性能,包括文本到图像合成、无条件图像生成和超分辨率,同时与基于像素的DMs相比,显著降低了计算需求。

1 引言

本文做出了以下贡献:

  • 我们在多个任务(无条件图像合成、图像绘制、随机超分辨率)和数据集上实现了具有竞争力的性能,同时显著降低了计算成本。与基于像素的扩散方法相比,我们还显著降低了推理成本。
  • 设计了一种基于交叉注意的通用条件反射机制,实现了多模态训练。我们用它来训练类条件、文本到图像和布局到图像模型。
  • 本文在 https://github.com/CompVis/latent-diffusion 上发布了预训练的潜在扩散和自动编码模型。 除了训练 DM 之外,它还可以重复用于各种任务。

2 方法

2.1 感知图像压缩

感知压缩模型基于之前的工作,由一个通过感知损失和基于补丁的对抗目标相结合训练的自动编码器组成。这确保了通过强制局部真实性将重建限制在图像流形内,并避免仅依赖像素空间损失(例如 L2 或 L1 目标)而引入的模糊。

更准确地说,给定 RGB 空间中的图像 x,编码器 E 将 x 编码为潜在表示 z = E(x),解码器 D 根据潜在图像重建图像,重要的是,编码器按因子 f = H/h = W/w 对图像进行下采样,本文研究了不同的下采样因子 f = 2 m f = 2^m f=2m,其中 m 为正整数。

2.2 潜在的扩散模型

扩散模型是概率模型,旨在通过逐渐对正态分布变量进行去噪来学习数据分布p(x),这对应于学习长度为T的固定马尔可夫链的逆过程。对于图像合成,最成功的模型 依赖于 p(x) 变分下界的重新加权变体,它反映了去噪分数匹配。

这些模型可以解释为去噪自动编码器 θ(xt; t) 的等权序列; t = 1~T,它们被训练来预测其输入xt 的去噪变体,其中 xt 是输入 x 的噪声版本。相应的目标可以简化为:
在这里插入图片描述
通过我们训练有素的由 E 和 D 组成的感知压缩模型,我们现在可以访问一个高效、低维的潜在空间,其中高频、不可察觉的细节被抽象出来。与高维像素空间相比,该空间更适合基于似然的生成模型,因为它们现在可以 (i)专注于数据的重要语义位,以及(ii)在较低维度进行训练,计算量大更高效的空间。

由于使用了编码器E,因此损失函数中的第t步的加噪图不再用xt表示,而用zt表示,即潜在空间的第t步的加噪图。于是LDM的训练目标函数可表示为:
在这里插入图片描述

2.3 条件机制

为了引入条件机制,作者设计了编码器Tθ对输入条件y进行编码;同时在原来的UNet网络中引入了多头注意力机制,使其能更好的学习相互之间的联系。
在这里插入图片描述

在这里插入图片描述
基于条件机制,引入了条件输入y,因此目标损失函数进一步改进为:
在这里插入图片描述

3 实验

本节分析具有不同下采样系数 f = 1;2;4;8;16;32 (缩写为LDM-f,其中LDM-1对应于基于像素的DM)。为了获得可比较的测试场,我们将本节中所有实验的计算资源固定到单个NVIDIA A100上,并以相同数量的步骤和相同数量的参数训练所有模型。
在这里插入图片描述
在这里插入图片描述

4 总结

本文提出了潜在扩散模型,这是一种简单有效的方法,可以显着提高去噪扩散模型的训练和采样效率,而不会降低其质量。基于这一点和本文的交叉注意力调节机制,与最先进的方法相比,本文的实验可以在没有特定任务架构的广泛条件图像合成任务中展示出良好的结果。

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

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

相关文章

HP 喷墨一体机 - “检查墨盒“指示灯闪烁,怎么办?

适用机型: HP PSC 1118、1218 、1318、1350、1406/1408、1508 故障现象: “检查墨盒”指示灯闪烁,“份数”显示的是英文字母“E”,代表 Error(错误)的意思。(无复印份数显示 ) “检…

想升级macOS Big Sur,但是MacBook内存空间不够该怎么办?

随着使用时间的增长,我们会发现Mac电脑的存储空间越来越少,这时候我们就需要对Mac电脑进行清理,以释放更多的存储空间。那么,Mac空间不足怎么解决呢? 1.清理垃圾文件 Mac空间不足怎么解决?首先要做的就是清…

利用fitnesse实现api接口自动化测试

上午在园子里乱逛,看了不少小伙伴们分享的接口测试方面的知识,仔细想想,我做接口测试也有几个年头了,大家所叙述到的一些经验或多或少,我也曾遇到过,突然意识到知识的点滴积累是多么的重要,我记…

SRTP交叉编译与移植

1 SRTP源码下载 源码下载在github采用的库为libsrtp2.5.0: weget https://github.com/cisco/libsrtp/archive/refs/tags/v2.5.0.tar.gz2 SRTP交叉编译 新增交叉编译脚本,这里需要支持openssl。 ./configure --hostarm-linux-androideabi --prefix$(pwd)/object …

基于python的GUI设计

GUI设计是编程应用的一个重要载体,是软件开发实现的重要步骤,需要重要掌握,不管是C、JAVA、python、matlab等编程语言,都需要GUI界面设计来实验软件开发的前期工作,同时也方便按钮操作。 在设计GUI的过程中&#xff0…

ZRTP协议与原理

1 ZRTP简介 ZRTP,全名Z Real-time Transport Protocol,是一种网络协议,旨在为实时通信提供安全性。与其它安全协议(如TLS和IPsec)不同,ZRTP专门为实时通信设计,包括音频和视频通话。它是由Phil…

竞赛 深度学习 opencv python 公式识别(图像识别 机器视觉)

文章目录 0 前言1 课题说明2 效果展示3 具体实现4 关键代码实现5 算法综合效果6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的数学公式识别算法实现 该项目较为新颖,适合作为竞赛课题方向,学…

支付环境安全漏洞介绍

1、平台支付逻辑全流程分析 2、平台支付漏洞如何利用?买东西还送钱? 3、BURP抓包分析修改支付金额,伪造交易状态? 4、修改购物车参数实现底价购买商品 5、SRC、CTF、HW项目月入10W副业之路 6、如何构建最适合自己的网安学习路线 1…

netcore Polly.Core

一、安装包 <PackageReference Include"Polly.Core" Version"8.0.0" /> 二、编写重试 ResiliencePipeline pipeline new ResiliencePipelineBuilder().AddRetry(new RetryStrategyOptions{MaxRetryAttempts 2,Delay TimeSpan.FromSeconds(3),O…

竞赛 机器视觉目标检测 - opencv 深度学习

文章目录 0 前言2 目标检测概念3 目标分类、定位、检测示例4 传统目标检测5 两类目标检测算法5.1 相关研究5.1.1 选择性搜索5.1.2 OverFeat 5.2 基于区域提名的方法5.2.1 R-CNN5.2.2 SPP-net5.2.3 Fast R-CNN 5.3 端到端的方法YOLOSSD 6 人体检测结果7 最后 0 前言 &#x1f5…

Flink的处理函数——processFunction

目录 一、处理函数概述 二、Process函数分类——8个 &#xff08;1&#xff09;ProcessFunction &#xff08;2&#xff09;KeyedProcessFunction &#xff08;3&#xff09;ProcessWindowFunction &#xff08;4&#xff09;ProcessAllWindowFunction &#xff…

CSDN Markdown

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

数据中台实战(05)-如何统一管理纷繁杂乱的数据指标?

各种类型的元数据有什么用&#xff1f;跟数据中台啥关系&#xff1f; 元数据在指标管理、模型设计、数据质量和成本治理四个领域都发挥作用&#xff0c;这些领域构成数据中台OneData 数据体系。今天逐一了解元数据在上述领域的应用 1 指标管理 指标&#xff0c;一种特定类型…

【Java项目推荐之黑马头条】你的发布文章业务是怎么实现的?

前言 在学习Java的路上还是遇到了很多不错的好项目的&#xff0c;今天分享给大家&#xff0c;希望能对大家面试有所帮助&#xff01; 后续会继续推荐其他好的项目&#xff0c;这次推荐的是B站开源的视频黑马头条项目&#xff0c;来吧学会它一起去虐面试官&#xff01;&#x…

MySQL:增量备份和恢复(5)

介绍 增量备份的特点 MySQL数据库二进制日志对备份的意义 增量备份的优点是没有重复数据&#xff0c;备份量不大&#xff0c;时间短。缺点也很明显&#xff0c;需要上次完全备份及完全备份之后所有的增量备份才能恢复&#xff0c;反推恢复&#xff0c;操作较为繁琐。 Mysql没有…

buildroot添加package包

本文通过一个简单的例子介绍如何在 RK3568的buildroot/package 目录下添加一个自己的 package&#xff08;软件包&#xff09; 一、开发源码工程 首先进入/app 目录下&#xff0c;在该目录下创建一个名为“mypackage”的文件夹&#xff0c;如下所示&#xff1a;   在 mypac…

LVGL_基础控件进度条bar

LVGL_基础控件进度条bar 1、创建进度条控件 // 创建一个 bar 组件(对象)&#xff0c;他的父对象是活动屏幕对象lv_obj_t *bar lv_bar_create(lv_scr_act()); LV_LOG_USER("lv_bar_get_value(bar) %d", lv_bar_get_value(bar));/* 设置位置 */ lv_obj_center(bar);…

Linux 安装字体

1.进入/usr/share/fonts路径&#xff0c;为了方便区分新安装的字体&#xff0c;最好单独创建文件夹 2.把需要安装的字体解压到自己创建的文件夹里面&#xff0c;这里要安装Hack 字体 3.输入以下三条命令如下图所示 ####三条命令要在字体路径下执行 sudo mkfontscale sudo mkfo…

【产品设计】如何开展你的B端产品需求调研

对于B端产品来说&#xff0c;需求调研是经常做而且很重要的一件事&#xff0c;只有对需求足够了解&#xff0c;才能设计出大众所喜欢的、市场所需要的好的产品。那么&#xff0c;应该如何开始你的需求调研呢&#xff1f;需求调研的执行过程又是怎样的&#xff1f;如何对结果进行…

快排(三种单趟排序法,递归非递归算法)

快排发明者:霍尔 (Sir Charles Antony Richard Hoare) 是一位英国计算机科学家。 计算机领域的爵士——托尼霍尔(Tony Hoare)(1934年1月11日出生),英文全称Sir Charles Antony Richard Hoare,常被称为Tony Hoare或者C. A. R. Hoare,1959年博士毕业于