深度学习(生成式模型)—— Consistency Models

文章目录

  • 前言
  • 预备知识:SDE与ODE
  • Method
  • 实验结果

前言

Diffusion model需要多次推断才能生成最终的图像,这将耗费大量的计算资源。前几篇博客我们已经介绍了加速Diffusion model生成图像速率的DDIM和Stable Diffusion,本节将介绍最近大火的Consistency Models(代表模型:Dalle-3),其允许Diffusion model仅经过一次推断就生成最终的图像,同时也允许少量多次推断来生成最终的图像。

预备知识:SDE与ODE

yang song博士在《Score-Based Generative Modeling Through Stochastic Differential Equations》一文中提出可以使用SDE(随机微分方程)来刻画Diffusion model的前向过程,并且用SDE统一了Score-based Model (NCSN)和DDPM的前向过程反向过程。此外,SDE对应了多个前向过程,即从一张图到某个噪声点的加噪方式有多种,但其中存在一个ODE(常微分方程)形式的前向过程,即不存在随机变量的确定性的前向过程。

具体可查看前一篇博客score-based generative modeling through stochastic differential equations

Method

在这里插入图片描述
Consistency Models的核心可总结为上图,在一条ODE轨迹上(可以简单理解为从一个图像到某个噪声点,每一个步骤加的噪声都是特定的,比如第一步加的噪声为0.1,第二步加的噪声为0.2,一旦图像确定了,则对应的噪声点也会被确定),训练一个模型 f θ ( x t , t ) f_\theta(x_t,t) fθ(xt,t),其满足对于任意的 t 、 t ′ t、t' tt,模型的输出都一致,即
f θ ( x t , t ) = f θ ( x t ′ , t ′ ) (1.0) f_\theta(x_t,t)=f_\theta(x_{t'},{t'})\tag{1.0} fθ(xt,t)=fθ(xt,t)(1.0)

模型 f θ ( x t , t ) f_\theta(x_t,t) fθ(xt,t)即为Consistency Models,这里有个关键点,即训练Consistency Models时,必须是在ODE轨迹上。如果是在SDE轨迹,如下图所示,则有一个x对应多个y的情况出现,从同一个点出发,第一次迭代对应的轨迹是黑线,第二次迭代对应的轨迹是红线,模型将很难收敛。

在这里插入图片描述

为了实现式1.0,则只需要采样ODE轨迹上的两个点 x t x_t xt x t ′ x_{t'} xt,在套用一个L2 或L1 loss即可。
我们可以使用一系列的ODE solver(即在反向过程中不会引入随机性噪声的Diffusion model,例如DDIM)来帮助我们确定ODE轨迹上的两个点。

注意到式1.0也是自监督学习的优化目标,因此也会有收敛到奔溃解的情况,比如模型所有参数都为0,因此作者选用了自监督学习中的MoCo解决此类问题。

上述思路总结出的训练策略为Consistency Distillation,一个训练范式如下图
在这里插入图片描述
如下图,作者也给出了上述算法一些理论上的性质,个人觉得不是本算法的核心,故不总结
在这里插入图片描述

此外,作者也提出了Consistency Training的训练策略,即通过往一张图像里持续添加一个固定的噪声来获得一个ODE轨迹

在这里插入图片描述

实验结果

CD表示训练策略为Consistency Distillation,CT表示训练策略为Consistency Training,整体表现上CD优于CT,Dalle3也是使用CD训练的。NFE表示反向过程迭代次数

在这里插入图片描述

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

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

相关文章

HarmonyOS 鸿蒙应用开发(九、还是蓝海,如何贡献第三方库)

快来共享第三方库吧,不但可以通过分享自己的成果,可以获得来自全球开发者的技术反馈和建议,提升自身技术能力,还有助于提高个人或团队在开源社区中的知名度和影响力。在流量时代和粉丝经济时代,获得曝光度和流量密码。…

Maven工程的配置及使用

一、Maven章节 Maven 是 Apache 软件基金会组织维护的一款专门为 Java 项目提供构建和依赖管理支持的工具 1.1、maven的作用 1)依赖管理: 方便快捷的管理项目依赖的资源包(jar包)避免版本冲突 2)统一项目结构&…

初识C语言·编译与链接

1 翻译环境和运行环境 C语言标准ANSI C 实现C语言代码的时候 一般需要经过两种环境,一是翻译环境,二是运行环境,计算机能识别的是二进制的指令,人写完代码后通过翻译环境,使代码变成计算机能读懂的可执行的机器指令&a…

go-redis hash slot 之旅

搭建redis 集群 创建一个网桥 docker network create -d bridge --subnet192.168.148.0/24 --gateway192.168.148.1 -o parenteno1 redis-net通过docker 文件创建redis 集群, 这里注意要不要使用redis 7以上的版本,不然会出问题 version: "3&quo…

ArcGIS学习(三)数据可视化

ArcGIS学习(三)数据可视化 1.矢量数据可视化 需要提前说明的是,在ArcGIS中,所有的可视化选项设置都是在“图层属性”对话框里面的“符号系统”中实现的。 对于矢量数据的可视化,主要有四种可视化方式: 按“要素”可视化按“类别”可视化按“数量”可视化按“图表”可视…

最近宣布的NIST后量子密码学标准的3个关键要点

当今世界依赖于许多保护措施,即使您没有注意到这一点。从手机和智能技术到网站,从支付交易到城市基础设施,人们经常与之互动的一切,都通过保护和检查技术来保护。量子计算机能够快速轻松地打破这些保护措施,这是政府和…

django+flask网上购物商城系统的设计与实现python-vue

全球经济在快速的发展,中国更是进步飞速,这使得国内的互联网技术进入了发展的高峰时期,这让中外资本不断转向互联网这个大市场[3]。在这个信息高度发达的现在,利用网络进行信息管理改革已经成为了人们追捧的一种趋势。“网上购物系…

01-Datahub是什么?

Datahub是LinkedIn开源的基于现代数据栈的元数据管理平台,原来叫做WhereHows 。经过一段时间的发展datahub于2020年2月在Github开源。 官网地址为:A Metadata Platform for the Modern Data Stack | DataHub 源码地址为:GitHub - datahub-p…

stable-diffusion | v1-5-pruned.ckpt和v1-5-pruned-emaonly.ckpt的区别

https://github.com/runwayml/stable-diffusion?tabreadme-ov-file#reference-sampling-script 对于 1.5 模型,其中可能包括四部分:标准模型、文本编码器、VAE模型、EMA模型。 标准模型:生成图片的核心模块,潜空间中的前向扩散和…

STM32F407移植OpenHarmony笔记9

继上一篇笔记,已经完成liteos内核的基本功能适配。 今天尝试启动OHOS和XTS兼容性测试。 如何启动OHOS? OHOS系统初始化接口是OHOS_SystemInit(void),在内核初始化完成后,就能调用。 extern void OHOS_SystemInit(void); OHOS_Sys…

sqli-labs-master靶场训练笔记(21-38|精英级)

2024.1.30 level-21 (cookie 注入数据加密) 从页面上就可以看出这次的数据被 baes64 加密了 中国有句古话:师夷长技以制夷 ,用base64加密后的数据即可爆出数据 加密前: admin and updatexml(1,concat(~,(select database()),~),1) and …

javaEE - 21( 15000字 Tomcat 和 HTTP 协议入门 -2)

一: HTTP 响应 1.1 认识 “状态码” (status code) 状态码表示访问一个页面的结果. (是访问成功, 还是失败, 还是其他的一些情况…),以下为常见的状态码. 1.1.1 200 OK 这是一个最常见的状态码, 表示访问成功. 抓包抓到的大部分结果都是 200 HTTP/…