利用扩散模型的反馈优化图片理解模型

news2025/1/11 2:52:26

利用扩散模型的反馈优化图片理解模型

自从 DDPM 以来,扩散模型已经成为了绝对主流的图片生成模型。最近,有研究者开始探索如何将扩散模型的生成能力用于提升判别模型的能力。主要有三种用法:生成模型反演用作判别模型、生成模型用于数据增强、生成模型直接用作特征提取器。

本文介绍几篇利用扩散模型的梯度反馈来优化图片理解模型(判别模型)的方法。这些方法应该划归到上述的第一类用法:基于反演(Inversion-based)的方法。给定图片 x x x 和条件生成模型 p ϕ ( x ∣ c ) p_\phi(x|\mathbf{c}) pϕ(xc),通过最大化生成模型的似然,来反演得到条件嵌入 c \mathbf{c} c

将判别模型的输出作为文生图模型的条件输入,利用文生图模型的梯度反馈来更新判别模型,从而改善判别模型的表征质量。有点 GAN 反着用的感觉。GAN 是判别模型倒逼生成模型生成更加真实的样本,而 DIffTTA 是生成模型倒逼判别模型生成质量更高的表征。

Diffusion TTA

Diffusion TTA 是将判别模型(图片理解模型)的输出,经过某种变换,作为文生图模型的文本条件,然后对原图加噪声,和文本条件一起送入到文生图模型中,计算损失,更新判别模型的参数。

作者讨论了三种判别模型以及对应的转换为文本条件的方式。

  1. 图片分类模型:分类模型接受一个图片输入,并输出 L L L 个类别的概率分布 y ∈ [ 0 , 1 ] L , y T 1 L = 1 y\in[0,1]^L,y^T\mathbf{1}_L=1 y[0,1]L,yT1L=1。对于分类模型,构造出的文本条件为为各个类别的文本嵌入 l j ∈ R d , j ∈ [ 1 , L ] l_j\in\mathbb{R}^d,j\in[1,L] ljRd,j[1,L] 按照输出概率分布的加权和 c = ∑ j = 1 L y j ⋅ l j \mathbf{c}=\sum_{j=1}^Ly_j\cdot l_j c=j=1Lyjlj
  2. 语义分割模型:语义分割模型相当于是对输入图片的每个像素都进行分类,输出为 y = { y u ∈ [ 0 , 1 ] L , y u T 1 L = 1 } y=\{y^u\in[0,1]^L,{y^u}^T\mathbf{1}_L=1\} y={yu[0,1]L,yuT1L=1} 其中 u ∈ x u\in x ux 是图像中的各个像素位置。对于各分割模型,构造出的文本条件为 c = { ∑ j = 1 L y k u ⋅ l j , u ∈ x } \mathbf{c}=\{\sum_{j=1}^Ly_k^u\cdot l_j,u\in x\} c={j=1Lykulj,ux}
  3. 深度预测模型:深度预测模型的输出是与图像相等大小的深度图 y ∈ R + w × h y\in{\mathbb{R}^{+}}^{w\times h} yR+w×h,构造的文本条件就是其本身 c = y \mathbf{c}=y c=y

由于各种判别模型构造出的文本条件 c \mathbf{c} c 都关于其权重 θ \theta θ 是可微的,我们就可以根据扩散模型的损失来更新参数 θ \theta θ
L ( θ , ϕ ) = E t , ϵ ∣ ∣ ϵ ϕ ( α ˉ t x + 1 − α ˉ ϵ , t , c ) − ϵ ∣ ∣ 2 2 L(\theta,\phi)=\mathbb{E}_{t,\epsilon}||\epsilon_\phi(\sqrt{\bar\alpha}_tx+\sqrt{1-\bar\alpha}\epsilon,t,\mathbf{c})-\epsilon||_2^2 L(θ,ϕ)=Et,ϵ∣∣ϵϕ(αˉ tx+1αˉ ϵ,t,c)ϵ22

在这里插入图片描述

Diffusion TTA 具体的执行过程如算法 1 所示。

  1. 给定输入图片 x x x,判别模型参数 θ \theta θ,扩散生成模型参数 ϕ \phi ϕ,adaption 步数 N N N,批尺寸 B B B 和学习率 η \eta η
  2. 在每一步中:
  3. 首先将图片输入到判别模型,得到输出 y = f θ ( x ) y=f_\theta(x) y=fθ(x)
  4. 使用上述设计的转换方法,将判别模型的输出转换为扩散模型的条件输入 c = transform ( y ) \mathbf{c}=\text{transform}(y) c=transform(y)
  5. 采样时间步 { t i } i = 1 B \{t_i\}_{i=1}^B {ti}i=1B 并计算对应的噪声 { ϵ i } i = 1 B \{\epsilon_i\}_{i=1}^B {ϵi}i=1B
  6. 按照上式计算损失 L ( θ , ϕ ) L(\theta,\phi) L(θ,ϕ)
  7. 更新判别模型的参数 θ ← θ − η ∇ θ L ( θ , ϕ ) \theta\leftarrow \theta-\eta\nabla_\theta L(\theta,\phi) θθηθL(θ,ϕ)
  8. (可选)更新生成模型的参数 ϕ ← ϕ − η ∇ ϕ L ( θ , ϕ ) \phi\leftarrow \phi-\eta\nabla_\phi L(\theta,\phi) ϕϕηϕL(θ,ϕ)
  9. 在迭代完成后:
  10. 得到最终的判别模型参数 θ \theta θ,计算输出 y = f θ ( x ) y=f_\theta(x) y=fθ(x)

在这里插入图片描述

在 Diffusion TTA 的项目主页上,有一个动图来演示这个迭代的过程。可以看到,随着迭代的进行,扩散模型的损失不断下降,生成图片与原图也越来也接近,这一切都是因为判别模型权重在更新,其输出,也就是输入到生成模型的条件,越来越准确。这样,就倒逼判别模型的准确率不断上升。

在这里插入图片描述

DIVA

DIVA 是近些天智源研究院提出的一中使用扩散模型反馈来增强 CLIP 能力的方法。众所周知,由于训练目标和训练数据的原因,CLIP 存在一些固有的缺陷,其仅聚焦于图像的高层语义,而对图像细节特征感知较差。有研究(参考)指出,CLIP 很难识别出两张图片的细微差别,而这些差别在人类来看是显而易见的。在实际中,我们也经常发现,CLIP 在朝向、颜色、数量和结构等方面,经常出现错误。

DIVA 其大致思路与 Diffusion TTA 差不多,也是利用扩散模型的梯度反馈来更新判别模型(在 DIVA 这里,就是指 CLIP)。具体来说,DIVA 方法的整体结构如下图所示。主要有两部分组成:待优化的 CLIP 模型和预训练的扩散模型(用于提供梯度反馈)。首先分别用 CLIP 的图像和文本编码器对输入图片和空文本进行编码,然后经过一种转换方法,得到条件输入到扩散模型中,进行去噪生图,并根据扩散模型的损失来更新 CLIP 模型。

在这里插入图片描述

这里的关键就是从视觉、文本表示,到扩散模型条件的转换方法的设计。DIVA 的作者认为,CLIP 本身仅关注图片高层语义,很大一部分原因是因为只使用了一个 ViT CLS token 来作为整张图片的表征。因此,作者这里提出了 Visual Dense Recap Scheme,将各个图像块 patch token 也添加到合成扩散模型条件的过程中,提升模型对局部区域特征的表达,从而使得模型可以根据扩散模型的反馈来改善输出的表征。

下面的图表展示了使用 DIVA 改进的 CLIP 在细粒度理解 benchmark 上的定性/定量性能提升。可以看到,对于不同的 CLIP 版本,DIVA 平均有着 3-6 个点的提升,还是非常显著的。在定性展示中,CLIP 原来一些简单视觉错误也都得到了修正。

在这里插入图片描述

另外一个比较重要的消融实验是关于将 CLIP embedding 转换为扩散模型条件的方式,实验结果如下图所示。首先可以看到,无论使用什么样的条件构造方式,DIVA 对 CLIP 的细粒度理解能力都有着普遍的提升。其中 3、4 两行是仅使用文本 embedding 作为条件,这就类似于 Diffusion TTA 的做法了。下方三行则是 DIVA 结合视觉、文本嵌入,并使用 Visual Dense Recap Scheme 构造的条件,其中 G 表示 ViT 中全局的 CLS token,L 表示局部 patch token。可以看到,当使用全局 CLS token 和部分(而非全部)patch token 来构造条件嵌入时,提升最为显著,达到 6.6 个点。这说明 Visual Dense Recap Scheme 中视觉局部 patch token 的密度既不能太低也不能太高。密度太低会导致任务过于困难,无法充分利用扩散模型反馈来改善输出的表征,密度太高则导致任务过于简单,机会不需要学习,扩散模型就能重构出图像。

在这里插入图片描述

总结

将判别模型的输出作为文生图模型的条件输入,利用文生图模型的梯度反馈来更新判别模型,从而改善判别模型的表征质量。有点 GAN 反着用的感觉。GAN 是判别模型倒逼生成模型生成更加真实的样本,而 DIffTTA 是生成模型倒逼判别模型生成质量更高的表征。但是文生图模型的语义理解能力也是来自 CLIP 的呀,为什么反过来还能提升 CLIP 的表征质量呢?感觉 DIVA 还是靠密集条件的策略?不知道哪里有更多理论分析。

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

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

相关文章

案例分享—国外优秀UI设计作品

国外 UI设计作品之所以出色,首先在于它们对用户体验的极致追求。设计师们深入了解用户需求,通过细腻的界面布局、直观的交互逻辑和丰富的视觉元素,打造出让用户爱不释手的作品。同时,他们勇于创新,不断尝试新的设计理念…

说说你们出来打工转了几个行业?

先说说我吧,大学毕业出来就从事智能交通刷卡方面,后来又从事多年的自动化控制,接着又做智能停车系统,接着又做医疗,美容仪器,仪器仪表,开关电源……做的有点杂,你们呢?一…

旧版本的Oracle OCM证书怎么升级到最新版本?

一、先来说一下OCM认证,全称是:Oracle Certified Master - Oracle认证大师,是Oracle数据管理员的最高级别的认证。 有了OCM证书,可以证明你的专业能力,是 Oracle 数据库管理方面具备高级和全面技能的权威认证。在竞争…

好用的抠图小技巧

在ps里的抠图方法 方法一:直接在菜单栏里选择主体,选中主体后会出现蚂蚁线,这个时候可能选区还不够完整,需要借助快速选择工具细化选取,选好之后按ctrlj复制选区就抠好啦 方法二:用快速选择工具直接选取人…

jdk环境、tomcat环境

回顾复习 安装nodejs,和jdk一样的软件运行环境 yum -y list installed|grep epel #是否安装epel yum -y install nodejs node -v #查看版本号 下载对应的nodejs软件npm yum -y install npm npm -v #查 npm set config ....淘宝镜像 安装vue/cli…

PatchCore:工业异常检测中的全面召回

PatchCore:工业异常检测中的全面召回 前言相关介绍PatchCore的工作原理:优点:缺点: 实验环境项目地址LinuxWindows 项目结构具体用法准备数据进行训练进行测试 常见问题ModuleNotFoundError: No module named patchcore解决方法 O…

【项目实战】—— 高并发内存池

文章目录 什么是高并发内存池?项目介绍一、项目背景二、项目目标三、核心组件四、关键技术五、应用场景六、项目优势 什么是高并发内存池? 高并发内存池是一种专门设计用于高并发环境下的内存管理机制。它的原型是Google的一个开源项目tcmalloc&#xff…

数字化转型中的安全挑战:源代码加密与文档加密的重要性

深信达SDC防泄密系统在源代码加密和文档加密领域的表现能力非常出色。根据搜索结果,SDC沙盒防泄密系统是专门针对敏感数据防泄密的保护系统,尤其适用于研发型企业的数据保护。系统通过实现对数据的代码级保护,不影响工作效率和正常使用&#…

实现Obsidian PC端和手机端(安卓)同步

步骤 1:在PC端设置Obsidian 安装Obsidian和Git:确保你的PC上已经安装了Obsidian和Git。你可以从Obsidian官网和Git官网下载并安装。 克隆GitHub代码库:在PC上打开命令行(例如Windows的命令提示符或Mac/Linux的终端)&a…

4.4、文件管理

文件结构 计算机系统中采用的索引文件结构如下图所示: 系统中有13个索引节点,0-9为直接索引,即每个索引节点存放的是内容,假设每个物理盘大小为4KB,共可存4KB * 1040KB数据; 10号索引节点为一级间接索引节点,大小为4KB,存放的并非直接数据,而是链接到直接物理盘块的地址,假设每…

利用 PhysicsConstraint 实现开门效果

先到 Sketchfab 中下载一个门的 3D Model,Popular 3D models - Sketchfab 下载完毕后解压导入到 UE5 中,注意这里需要导入 Static Mesh; 然后将贴图配置到材质 Door Material 中; 处理完毕后,配置使用 Modeling Tools …

【区块链+绿色低碳】山东邹平:区块链生态环境监管平台 | FISCO BCOS应用案例

山东省滨州市生态环境局邹平分局通过实地考察和调研发现,执法大队在执法工作中存在各排污企业设备系统无 法互通、终端采集数据固证难且可信度低、环境执法电子证据采集规则与司法采信标准不统一等痛点。而区块链 的分布式记账、不易篡改性和智能合约自动执行机制&a…

【无标题】vue2鼠标悬停(hover)时切换图片

在Vue 2中,要实现鼠标悬停(hover)时切换图片的功能,你不能直接在模板的:src绑定中处理这个逻辑,因为Vue的模板不支持条件渲染的复杂逻辑(如基于鼠标状态的动态图片切换)。但是,你可以…

图新说产品入门指南(让汇报变得轻松)

1.图新说是什么? 图新说是一个容器:可以加载融合各种无人机航测成果(影像、地形倾斜模型)、基础地理信息数据(卫星影像、道路标注、水系、地质图、等高线、地形晕渲、人口等专题地图)、业务数据&#xff0…

计算机基础(Windows 10+Office 2016)教程 —— 第6章 电子表格软件Excel 2016(上)

电子表格软件Excel 2016 6.1 Excel 2016入门6.1.1 Excel 2016 简介6.1.2 Excel 2016 的操作界面组成6.1.3 Excel 2016 的视图方式6.1.4 Excel 2016 的工作簿及其操作6.1.5 Excel 2016 的工作表及其操作6.1.5 Excel 2016 的工作表及其操作6.1.6 Excel 2016 的单元格及其操作 6.2…

在欧拉系统中安装数据库

在欧拉系统中的安装 (禁止超级用户root登录) yum install mariadb-server -y #下载命令 systemctl enable --now mariadb #设置为开机自启,并立即启动该服务 mysql_secure_installation #安全设置,初始化 修…

VS code-解决连接远端云服务器时什么都没有变化

问题描述: 在有一次使用VS code连接远端云服务器的时候,输入用户名和公网ip连接远端云服务器的时候,一直没有任何响应,一直跳转,插件扩展的界面。 解决办法: 找到我们的config配置文件,然后在文…

全球汽车线控制动系统市场规模预测:未来六年CAGR为17.3%

引言: 随着汽车行业的持续发展和对安全性能需求的增加,汽车线控制动系统作为提升车辆安全性和操控性的关键组件,正逐渐受到市场的广泛关注。本文旨在通过深度分析汽车线控制动系统行业的各个维度,揭示行业发展趋势和潜在机会。 【…

MyBatis开发:使用注解

在应⽤分层学习时, 我们了解到web应⽤程序⼀般分为三层,即:Controller、Service、Dao .之前的案例中,请求流程如下: 浏览器发起请求, 先请求Controller, Controller接收到请求之后, 调⽤Service进⾏业务逻辑处理, Service再调⽤Dao, 但是Dao层…

记录使用FlinkSql进行实时工作流开发

使用FlinkSql进行实时工作流开发 引言Flink SQL实战常用的Connector1. MySQL-CDC 连接器配置2. Kafka 连接器配置3. JDBC 连接器配置4. RabbitMQ 连接器配置5. REST Lookup 连接器配置6. HDFS 连接器配置 FlinkSql数据类型1. 基本数据类型2. 字符串数据类型3. 日期和时间数据类…