Consistency Models终结扩散模型

 最近看到一篇论文,觉得特别有意思,并且在学术界引起了不小的动静,他就是一致性模型,据说图像生成效果快、质量高,并且还可以实现零样本图像编辑,即不进行一些视觉任务训练,可以实现图像超分、修复、上色等功能。

  目前代码已经开源到GitHub上面: GitHub - openai/consistency_models: Official repo for consistency models.

1.介绍

  扩散模型在图像、音频和视频生成方面取得了重大突破,但它们依赖于迭代生成过程,导致采样速度较慢,限制了其实时应用的潜力。为了克服这一限制,我们提出了一致性模型,这是一种新的生成模型家族,可以在没有对抗性训练的情况下实现高样本质量。它们在设计上支持快速的一步生成,同时仍然允许少步采样以换取样本质量的计算。它们还支持零样本数据编辑,如图像修补、着色和超分辨率,而不需要对这些任务进行明确的训练。

  我们的目标是创建生成模型,以促进高效的单步生成,而不牺牲迭代细化的重要优势。这些优点包括在必要时为样本质量权衡计算的能力,以及执行零样本数据编辑任务的能力。如图1所示,我们建立在连续时间扩散模型中的概率流(PF)常微分方程(ODE)之上,其轨迹平滑地将数据分布转换为可处理的噪声分布。我们建议学习一个模型,将任何时间步骤的任何点映射到轨迹的起点。我们的模型的一个显著特性是自一致性:同一轨迹上的点映射到相同的起始点。因此,我们把这样的模型称为一致性模型。

  

2.扩散模型

  一致性模型在很大程度上受到(连续时间)扩散模型理论的启发。扩散模型通过高斯扰动逐步将数据扰动为噪声来生成数据,然后通过连续的去噪步骤从噪声中创建样本。让

表示数据分布,扩散模型首先用随机微分方程(SDE)扩散

        

  

分别为漂移系数和扩散系数,

为标准布朗运动,我们把xt的分布表示为

,结果是

。该SDE的一个显著性质是存在一个常微分方程(ODE),Song等人称之为概率流(PF) ODE,其在t点采样的轨迹分布:

  

  

分数函数,因此扩散模型也被称为基于分数的生成模型

  通常情况下,式(1)中的SDE设计使

接近于可处理的高斯分布。为了进行采样,我们首先通过分数匹配训练一个分数模型

,然后将其代入Eq.(2),以获得PF ODE的经验估计,其形式为:

  

  我们称Eq.(3)为经验PF ODE。我们采样

来初始化经验PF ODE,用任何数值ODE求解器及时地反向求解它。

  扩散模型的瓶颈在于采样速度慢。显然,使用ODE求解器进行采样需要对评分模型

进行多次评估,这是计算成本很高的。现有的快速采样方法包括更快的数值ODE求解器和蒸馏技术。ODE求解器仍然需要超过10个评估步骤来生成有竞争力的样本。大多数蒸馏方法,依赖于在蒸馏之前从扩散模型中收集大量的样本数据集,这本身就是计算成本很高的。据我们所知,唯一不受这一缺点影响的蒸馏方法是渐进蒸馏(PD)。

3.一致性模型

  一致性模型是一种新型的生成模型,在其设计的核心支持单步生成,同时仍然允许迭代生成。一致性模型可以在蒸馏模式或隔离模式下训练。在前一种情况下,一致性模型将预先训练的扩散模型的知识提取到单步采样器中,显著提高了其他蒸馏方法的样品质量,同时允许零样本图像编辑应用。在后一种情况下,一致性模型是孤立地训练的,不依赖于预训练的扩散模型。这使得它们成为一种独立的新型生成模型。

  定义:给定一个解轨迹式(2)中的PF ODE

,我们定义一致性函数为

一致性函数具有这样的性质:它的输出对于属于相同PF ODE轨迹的任意对

都是一致的,如图2所示,一致性模型的目标,用fθ表示,是通过学习加强一致性属性来估计数据中的一致性函数f。

  

  参数化:对于任何一致性函数

称这个约束为边界条件,一个有效的一致性模型必须尊重这个边界条件。对于基于深度神经网络的一致性模型,我们讨论了两种几乎免费实现该边界条件的方法。假设我们有一个自由形式的深度神经网络,其输出与x具有相同的维数。第一种方法是简单地将一致性模型参数化为:

  

  第二种方法是使用跳越连接对一致性模型进行参数化:

  

  采样:一个训练好的一致性模型

我们可以通过对初始分布进行采样来生成样本

,然后对一致性模型进行评价

,这只涉及通过一致性模型的一次向前传递,因此在一个步骤中生成样本,重要的是,还可以通过交替去噪和噪声注入步骤来多次评估一致性模型,以提高样本质量。在算法1中总结,这种多步采样过程提供了交换计算样本质量的灵活性。它在零样本数据编辑中也有重要的应用。

  

  零样本数据编辑:一致性模型可以在零样本数据编辑中实现各种数据编辑和操作应用;他们不需要明确的训练来完成这些任务。一致性模型定义了从高斯噪声向量到数据样本的一对一映射。一致性模型可以通过遍历潜在空间轻松地在样本之间进行插值,可以对各种噪声级进行去噪。此外,算法1中的多步生成过程可以通过使用类似于扩散模型的迭代替换过程来解决零射中的某些逆问题。这使得图像编辑上下文中的许多应用成为可能,包括修复、着色、超分辨率等。

4.通过蒸馏训练一致性模型

  我们提出了基于提取预训练分数模型, 第一种训练一致性模型的方法。我们的讨论围绕式(3)中的经验PF ODE展开,它是通过将分数模型代入PF ODE得到的。在实践中,我们遵循Karras et al(2022)用公式确定边界

当N足够大时,我们可以通过运行数值ODE求解器的一个离散化步骤,从

获得

的准确估计。这个估计值,我们表示为

,定义为

  

  当使用欧拉求解器时,对应如下更新规则:

  

  为了简单起见,我们在这项工作中只考虑一步ODE求解器。将我们的框架推广到多步ODE求解器是很简单的,我们把它留作以后的工作。

  给定一个数据点,我们可以生成一对相邻数据点

通过从数据集中采样x,有效地对PF ODE轨迹进行优化,紧随其后的是采样

从SDE的转变密度

,然后根据Eq.(6),使用数值ODE求解器的一个离散步骤来计算

。然后,通过最小化一致性模型在

对上的输出差异来训练一致性模型。这促使我们遵循一致性蒸馏损失来训练一致性模型。

  

  用E[.]表示所有相关随机变量的期望。在我们的实验中,我们考虑了平方距离和l1距离

,以及习得的感知图像块相似性,发现

在所有测试中表现良好,我们通过对模型参数θ的随机梯度下降来最小化目标,同时用指数移动平均(EMA)更新θ´。也就是说,给定衰减率,我们在每个优化步骤后执行以下更新:

  

  我们把fθ´称为“目标网络”,fθ称为“在线网络”。我们发现,与简单设置θ´θ相比,Eq.(8)中的EMA更新和“stopgrad”算子可以极大地稳定训练过程,提高一致性模型的最终性能。

  

5.隔离训练一致性模型

  一致性模型可以不依赖于任何预训练的扩散模型进行训练,使一致性模型成为一个新的独立的生成模型家族。在一致性蒸馏中,我们使用预先训练好的评分模型来近似真实评分函数

。为了摆脱这种依赖,我们需要寻找其他方法来估计分数函数。事0实上,由于以下恒等式,存在

的无偏估计量:

  

  

我们可以得到蒙特卡罗估计

,这个估计实际上足以取代预先训练的扩散模型,进一步假设我们使用欧拉ODE求解器,预训练的分数模型与GT匹配

,即:

  

  一致性训练目标

,表示为

  

  

,如果

证明基于Taylor级数展开和分数函数的性质。我们将式(10)称为一致性训练(CT)损失。关键的是,loss只依赖于在线网络fθ和目标网络fθ´,而完全不依赖于扩散模型参数φ。

  

6.实验

  使用一致性蒸馏和一致性训练来学习真实图像数据集上的一致性模型,包括CIFAR-10 , ImageNet, LSUN。根据FID(越低越好),Inception Score (is, 越高越好),Precision (Prec,越高越好),以及Recall (Rec,越高越好)。

  

  影响CIFAR-10一致性蒸馏(CD)和一致性训练(CT)的各种因素。CD的最佳配置是LPIPS, Heun ODE求解器和N=18。我们对N和µ的自适应调度函数使CT在优化过程中收敛速度明显快于将其固定为常数。由于CD和CT之间的紧密联系,本文采用LPIPS进行CT实验。与CD不同,在CT中不需要使用Heun的二阶求解器,因为损失函数不依赖于任何特定的数值ODE求解器。如图3d所示,CT的收敛对N高度敏感,N越小收敛速度越快,但得到的样本越差,N越大收敛速度越慢,收敛后得到的样本越好。这与我们在第5节中的分析相匹配,并促使我们实际选择逐步增长的N和µ用于CT,以平衡收敛速度和样本质量之间的权衡。

  与扩散模型类似,一致性模型允许通过修改算法1中的多步采样过程来编辑零样本图像。我们使用一致性蒸馏在LSUN卧室数据集上训练的一致性模型演示了这种能力。在图6a中,我们展示了这样一个一致性模型可以在测试时对灰度卧室图像进行着色,即使它从未接受过着色任务的训练。在图6b中,我们展示了相同的一致性模型可以从生成高分辨率图像:

  

6.1零样本图像编辑

  采用算法4来实现图像的超分辨率。为简单起见,我们假设下采样图像是通过p*p大小的不重叠块获得的。假设全分辨率图像的形状为h*w*3。让y表示简单地向上采样到全分辨率的低分辨率图像,其中每个非重叠补丁中的像素共享相同的值。另外,设

为二进制掩码:

  

  超分辨率需要一个正交矩阵

,第一列是

该正交矩阵可通过QR分解得到。为了实现超分辨率,我们定义线性变换A:

  

  逆变换

  

  上述A和Ω的定义允许我们使用算法4进行图像超分辨率。

  

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot+vue的论坛系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

改进YOLO系列:3.添加SOCA注意力机制

添加SOCA注意力机制 1. SOCA注意力机制论文2. SOCA注意力机制原理3. SOCA注意力机制的配置3.1common.py配置3.2yolo.py配置3.3yaml文件配置1. SOCA注意力机制论文 暂未找到 2. SOCA注意力机制原理 3. SOCA注意力机制的配置 3.1common.py配置 ./models/common.p…

Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台

当今互联网发展迅速,应用程序的性能监控显得越来越重要。 DockerJmeterInfluxDBGrafana 是一种常用的性能监控平台,可以帮助开发者快速搭建一套可靠的监控体系。在本文中,我们将介绍如何使用这些工具搭建性能监控平台,以便开发人…

实现chatGPT 聊天样式

效果图 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Chat Example</title&g…

第9步---MySQL的索引和存储引擎

第9步---MySQL的索引和存储引擎 1.索引 1.1分类 索引可以快速的找出具有特定值的行。不用从头开始进行寻找了。 类别 hash和btree hash 根据字段值生生成一个hash的值 快速的进行定位到对应的行的值 可能会出现相同的值&#xff0c;找到对应的空间会出现对应的值 btree树…

CMA和CNAS是什么?两者有什么用途和区别?

CMA和CNAS是两个不同的概念&#xff0c;它们分别有着自己的用途和区别。 CMA是中国计量认证&#xff08;China Metrology Accreditation&#xff09;的缩写&#xff0c;是根据《中华人民共和国计量法》及其配套法规的规定&#xff0c;由国家质量监督检验检疫总局授权的计量认证…

HTML a标签

<a>标签定义一个超链接。它有如下主要属性&#xff1a; href&#xff1a;指定链接的地址&#xff0c;可以是一个URL、文件路径或锚点。target&#xff1a;指定链接在何处打开。其值包括&#xff1a; _blank&#xff1a;在新窗口或新标签页打开链接。_self&#xff1a;在…

Go语言基础之切片

切片 切片&#xff08;Slice&#xff09;是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。它非常灵活&#xff0c;支持自动扩容。 切片是一个引用类型&#xff0c;它的内部结构包含地址、长度和容量。切片一般用于快速地操作一块数据集合 切片的定义…

事物有哪些特性 ?MySQL 如何保证事物的四大特性 ?

目录 1.事物有哪些特性 2. MySQL 如何保证事物的四大特性 3. 事物的隔离级别 1.事物有哪些特性 1.1 何为事物 &#xff1f; 事物就是把一件事情的多个步骤&#xff0c;多个操作&#xff0c;打包成一个步骤&#xff0c;一个操作。其中任意一个步骤执行失败&#xff0c;都会进…

模拟Stevens Lewis描述的小型飞机纵向动力学的非线性动态反演控制器研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

毫米波雷达成像论文阅读笔记: IEEE TPAMI 2023 | CoIR: Compressive Implicit Radar

原始笔记链接&#xff1a;https://mp.weixin.qq.com/s?__bizMzg4MjgxMjgyMg&mid2247486680&idx1&snedf41d4f95395d7294bc958ea68d3a68&chksmcf51be21f826373790bc6d79bcea6eb2cb3d09bb1860bba0af0fd5e60c448ca006976503e460#rd ↑ \uparrow ↑点击上述链接即…

NER(命名实体识别)的介绍与使用--附源码

概述 本文将向您简要介绍命名实体识别,这是一种用于识别文本文档中存在的实体的流行方法。本文针对 NLP 领域的初学者。在本文末尾,已经实现了预训练的 NER 模型来展示实际用例。 为什么是NER? 图1 通过观察上

cad图怎么转换成pdf格式?一招教你轻松转换

将CAD文件转换成PDF格式有很多优势。首先&#xff0c;PDF格式是一种非常流行的文件格式&#xff0c;几乎所有电脑上都可以打开。这意味着即使将PDF文件发送给其他人&#xff0c;他们也可以轻松地查看文件&#xff0c;此外&#xff0c;PDF格式可以保留CAD文件的图形和布局&#…

java请求SAP系统,发起soap的xml报文,实体类转换,idea自动生成教程

1、将接口的网页地址&#xff0c;右键保存&#xff0c;然后修改文件后缀为wsdl文件 2、idea全局搜索 wsdl&#xff0c;找到自动转换javabean插件&#xff1a; 3、点击后&#xff0c;选择下载改完后缀的文件(选择)&#xff1a; 4、将无用的class文件删除掉 5、请求sap的地址为…

CSS伪类:where和:is

CSS伪类:where和:is 1 :where1.1 概述1.2 组合与叠加1.3 优先级1.4 安全性1.5 兼容性 2 :is兼容性 1 :where 1.1 概述 :where()接受选择器列表作为它的参数&#xff0c;将会选择所有能被该选择器列表中任何一条规则选中的元素。 例如&#xff0c;在以下代码中&#xff0c;a标…

Java版 招投标系统简介 招投标系统源码 java招投标系统 招投标系统功能设计tbms

​ 项目说明 随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大&#xff0c;公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境&#xff0c;最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范&#xff0c;以…

英文翻译照片怎么做?掌握这个方法轻松翻译

在现代社会中&#xff0c;英文已经成为了一种全球性的语言&#xff0c;因此&#xff0c;我们在阅读文章或者查看图片时&#xff0c;经常会遇到英文的内容。为了更好地理解这些英文内容&#xff0c;我们需要将其翻译成中文。在本文中&#xff0c;我将探讨图片中英文内容翻译的方…

SpringMVC 反射型跨站点脚本攻击

解决方案&#xff1a; 服务端校验&#xff0c;添加拦截器 配置web,xml <filter><filter-name>xssFilter </filter-name><filter-class>com.fh.filter.XssFilter </filter-class></filter> XssFilter package com.fh.filter;import com…

Spring Boot

前言 什么是Spring Boot&#xff1f;为什么要学Spring Boot&#xff1f; Spring 的诞⽣是为了简化Java 程序的开发的&#xff0c;⽽Spring Boot 的诞⽣是为了简化Spring 程序开发 的。Spring就像汽车&#xff0c;相比以前人只能其自行车走路&#xff0c;汽车可以帮助人们更快…

C#__使用Type类反射数据的基本用法

// 简单介绍 // 元数据&#xff08;metadata&#xff09;&#xff1a;与程序及其类型有关的数据。 // 反射&#xff1a;一个运行的程序查看本身元数据或其他程序集中的元数据的行为 // Assembly类&#xff1a;允许访问给定程序集的元数据&#xff0c;包含了可以加载和执行程序…