双视觉Transformer(Dual Vision Transformer)

news2024/11/17 8:22:22

摘要

已经提出了几种策略来减轻具有高分辨率输入的自注意机制的计算:比如将图像补丁上的全局自注意过程分解成区域和局部特征提取过程,每个过程都招致较小的计算复杂度。尽管效率良好,这些方法很少探索所有补丁之间的整体交互,因此难以完全捕获全局语义。
在本文中,我们提出了一种新的Transformer架构,优雅地利用全局语义的自我注意力学习,即DualVision变压器(Dual-ViT)。
新的体系结构引入了关键语义路径,可以更有效地将令牌向量压缩为全局语义,并降低了复杂度。
然后,这种压缩的全局语义在通过另一个构建的像素路径学习更精细的局部像素级细节时用作有用的先验信息。
语义路径和像素路径被集成在一起并被联合训练,通过两个路径并行传播增强的自我注意信息。
Dual-ViT从此能够利用全局语义来提高自我注意力学习,而不会影响许多计算复杂性。

1、介绍

自我注意过程形成了这种复杂性问题的主要负担,特别是对于高分辨率输入,因为每个令牌的每个表示都是通过关注所有令牌来更新的。
许多人考虑将自注意力与下采样相结合,以有效地取代所有图像块上的原始标准全局注意力。
这种方式自然地实现了区域语义信息的探索,这进一步促进了局部更精细特征的学习/提取。
例如,PVT [12]、[13]提出了线性空间减少注意力(SRA),其利用下采样操作(例如,平均池化或跨步卷积),如图所示。1(a).Twins [14](Fig.图1(B))在SRA之前添加附加的局部分组的自注意层,以经由区域内交互进一步增强表示。RegionViT [15](Fig. 1(c))通过区域和局部自我注意分解原始注意。然而,由于上述方法严重依赖于将特征图下采样到区域中,因此不可避免地忽略了描绘全局语义信息的所有补丁之间的整体交互。
在这里插入图片描述
Fig. 1.(a)金字塔视觉Transformer块(PVT),(b)结合局部分组的自我注意力和空间减少注意力的双胞胎块,(c)RegionViT中的区域到局部注意力块,以及(d)我们提出的Dual-ViT中的Dual块的图示。DS:下采样操作; MSA:多头自我关注; FFN:前馈层; LSA:本地分组的自我关注。为了简单起见,省略了层归一化和残差连接。

在这些不同的组合策略中,很少有人试图研究全局语义和更精细的像素级特征之间的依赖关系,以进行自我注意力学习。
在本文中,我们考虑将训练分解为全局语义和更精细的功能注意通过建议的DualViT。动机是提取全局语义信息(即,参数语义查询),其可以用作丰富的先验信息以帮助在新的双路径设计中更精细的局部特征提取。
我们独特的分解和集成的全局语义和局部特征允许有效减少所涉及的令牌数量在多头注意,从而节省计算复杂度相比,标准的全局自注意。
特别是,如图所示。图1(d)中,Dual-ViT由两条特殊的通路组成,分别称为“语义通路”和“像素通路”。通过构造的“像素路径”的局部像素级特征提取是由“语义路径”的压缩的全局先验的强依赖性强加的。由于梯度通过语义路径和像素路径,因此Dual-ViT训练过程可以有效地补偿全局特征压缩的信息损失,同时降低更精细的局部特征提取的难度。前者和后者的程序可以在并行显着促进自我注意学习,而不会牺牲太多的计算成本,由于较小的注意力大小和两个途径之间的依赖关系。
贡献:
1)我们提出了一种新的Transformer架构称为双视觉变压器(双ViT)。顾名思义,Dual-ViT网络包括两条路径和一条像素路径,这两条路径分别用于提取输入的语义特征的全局视图,另一条像素路径则侧重于更精细的局部特征的学习。
2)Dual-ViT考虑了全局语义和两条路径沿着的局部特征之间的依赖性,目标是通过减少令牌大小和更小的关注度来简化训练。
3)与VOLO-D4相比,Dual-ViT在ImageNet上实现了85.7%的top-1准确率,仅具有41.1%的FLOP和37.8%的参数[16]。在对象检测和实例分割方面,Dual-ViT还在mAP方面将PVT [13]提高了1.4%以上,在COCO上提高了0.8%,参数减少了47.3%/42.3%。

2、相关工作

我们的Dual-ViT也是一种多尺度ViT骨干网。与现有的多尺度ViT严重依赖于局部窗口内的局部自注意或下采样操作相比,Dual-ViT将自注意的建模分解为两条路径中的全局语义和更精细特征的学习。进一步将语义标记和输入特征相结合,并行传播增强的自我注意信息。这种独特的分解和集成设计不仅有效地减少了自我注意学习中的令牌数量,而且还强加了两个路径之间的交互,导致更好的准确性和延迟权衡。

3、方法

本节首先简要回顾现有ViT中采用的传统多头自注意块,并分析它们如何按比例缩小自注意计算成本。接下来,我们提出了一种新的原则性Transformer结构,即双视觉变压器(Dual-ViT)。我们的出发点是升级典型的Transformer结构与特定的双路径设计,并触发全局语义和局部特征之间的依赖性,以增强自我注意力学习。
具体地,Dual-ViT由四个阶段组成,其中每个阶段中的特征图的分辨率逐渐缩小,如[4]所示。在具有高分辨率输入的前两个阶段中,Dual-ViT采用由两条路径组成的新Dual模块:(i)通过在像素级细化输入特征来捕获细粒度信息的像素路径,以及(ii)在全局级抽象高级语义令牌的语义路径。语义路径稍微更深(具有更多操作),但包含更少的从像素抽象的语义标记,并且像素路径将这些全局语义视为在学习更精细的像素级细节之前。这样的设计方便地编码更精细的信息对整体语义的依赖性,同时在高分辨率输入上保持有利的计算成本。这两个路径的输出被合并在一起,并在最后两个阶段进一步馈送到多头自我注意。
A.传统Transformer
传统的Transformer架构(例如,[2],[35])通常依赖于多头自我注意,捕捉输入之间的长程依赖性。
将注意力范围限制在局部窗口中,因此可以仅实现相对于输入分辨率的线性计算复杂度,然而,有限的局部窗口的感受野不利地阻碍了建模的全局依赖性。
进步[13]、[33]、[36]通过使用下采样操作(例如,[13]中的平均池化或[33]、[36]中的池化内核),以降低计算成本,但是这些基于池的操作不可避免地会导致信息丢失,并且所有补丁之间的整体语义信息没有得到充分利用。
B.双重块

在这里插入图片描述
为了缓解上述问题,我们设计了针对高分辨率输入定制的原则性自注意块(即,在前两个阶段),即双块。这种新设计很好地引入了一种额外的途径,可以通过全局语义信息来促进自我注意学习。图2(B)详细描绘了双块的架构。具体而言,双块包含两个通路:像素路径和语义路径。语义路径将输入特征图总结为语义标记。之后,像素路径以键/值的形式将这些语义令牌作为丰富的先验,并执行多头注意以通过交叉注意来细化输入特征图。在复杂度方面,由于语义路径包含的令牌比像素路径中的令牌少得多,因此计算成本降低到O(nmd +m2 ~ d),其中m是语义令牌的数量。
形式上,给定第l个对偶块的输入特征xl,我们用附加的参数语义查询zl ∈ Rm×d来扩充。语义路径首先经由自注意对语义查询进行上下文编码,然后通过经由交叉注意利用精炼语义查询与输入特征xl之间的交互来提取语义令牌,随后是前馈层。此操作执行如下:
在这里插入图片描述
语义令牌zl+ l被馈送到像素路径中并且充当高级语义的先验信息。同时,我们将语义标记作为增强的语义查询,并将它们馈送到下一个Dual块的语义路径中。
像素路径起到与传统Transformer块类似的作用,除了它额外地采用从语义路径导出的语义标记,如之前通过交叉注意来细化输入特征。更具体地,像素路径将语义令牌zl+1视为键/值,并且如下执行交叉注意:
在这里插入图片描述
考虑到梯度通过两种路径反向传播,双块算法能够同时补偿全局特征压缩的信息损失,并通过语义-像素交互降低全局先验局部特征提取的难度。
C.合并块
在这里插入图片描述
回想一下,前两个阶段中的双块利用了两个路径之间的相互作用,同时由于高分辨率输入的巨大复杂性,使得像素路径内的局部令牌之间的内部相互作用未被利用。为了缓解这个问题,我们提出了一个简单而有效的设计的自我关注块(即合并块),在最后两个阶段(低分辨率输入)的串联语义和本地令牌执行自我关注,从而使跨本地令牌的内部交互。图2(c)描绘了合并块的架构。具体来说,我们直接合并来自两个路径的输出令牌,并将它们馈送到多头自我注意层。由于来自两个路径的令牌传达不同信息的事实,在合并块中针对每个路径采用两个单独的前馈层:
在这里插入图片描述
其中[||]表示张量级联,FFNx和FFNz是两个不同的前馈层。最后,我们在两个路径的输出令牌上采用全局平均池化来产生最终的分类令牌。
D.双视觉Transformer
在这里插入图片描述
我们提出的双块和合并块本质上是统一的自我注意块。因此,通过堆叠这些块来构建多尺度ViT骨架是可行的。遵循现有多尺度ViT的基本配置[4],[12],完整的Dual-ViT包含四个阶段。前两个阶段由Dual块堆栈组成,而最后两个阶段由合并块组成。根据CNN体系结构的设计原理,在每一阶段开始采用一个补丁嵌入层来增加信道维数,同时降低空间分辨率。在这项工作中,我们提出了不同型号尺寸的Dual-ViT的三种变体,即,Dual-ViT-S(小号)、Dual-ViT-B(底座尺寸)和Dual-ViT-L(大号)。注意,Dual ViT-S/B/L与Swin-T/S/B共享相似的模型大小和计算复杂度[4]。表I详细描述了Dual-ViT的所有三个变体的架构,其中HDi、Ci和Ex/Ez是从阶段i中的像素/语义路径导出的令牌的头部数量、通道维度和前馈层的扩展比率。
E.我们的Dual-ViT和以前的Vision Transformers之间的差异
在本节中,我们将详细讨论我们的Dual-ViT与先前相关ViT主干之间的差异。
RegionViT [15]设计了区域到本地的注意力,它涉及两种令牌:具有较大补丁大小的区域令牌和具有较小补丁大小的本地令牌。RegionViT首先在所有区域令牌上执行区域自注意以学习全局信息。然后,局部自注意在局部窗口内在每个单个区域令牌及其相关联的局部令牌之间交换信息。我们的Dual-ViT在两个方面与这项工作不同:首先,Dual块中的语义标记不像RegionViT中那样被限制为大小相等的均匀块,因此在编码语义方面更灵活;其次,全局语义令牌作为整体之前,以补偿像素路径中的信息损失,而区域ViT的区域令牌仅与其相关联的本地令牌在本地窗口内交互。
Twins [14]由两种类型的注意力操作组成:局部和子采样的自我注意力。具体来说,Twins将输入令牌分成几组,并在每个局部子窗口内对每组执行局部自注意。为了实现不同子窗口之间的交互,Twins通过将特征图下采样为区域令牌来利用子采样的自注意力,区域令牌充当下采样的键和值,如[13]中所示。Dual-ViT和Twins之间的区别在于,我们的语义标记是从整个特征图中整体总结的,而Twins则从局部子窗口中独立产生每个区域标记。
CrossViT [37]包含两种具有不同补丁大小的令牌,它们被馈送到两个独立分支中的两个Transformer编码器中。最后,CrossViT将每个分支的CLS令牌与另一个分支的输出补丁令牌集成。相比之下,我们的Dual-ViT触发来自每个Dual块内的像素和语义路径的令牌之间的交互,而不是像CrossViT中那样用单独的Transformer编码器编码每个分支。此外,Dual-ViT在整个过程中在多个全局级语义令牌和更精细的像素级特征之间交换信息,而CrossViT仅与单个压缩的CLS令牌交互最终输出特征,这可能缺乏详细的语义。
非深度网络[38]和并行ViT [39]分别设计了具有多个并行分支的CNN/ViT主干。Non-deepNetworks中的每个分支都被馈送来自主要CNN分支的不同尺度的特征图。在并行ViT的每个块中,每个分支用与典型Transformer块中相同的输入触发(即,大小相等的均匀片)。相反,我们的Dual-ViT中的语义路径的输入,即,语义标记不被约束为相同大小的统一特征图/块。语义标记从整个特征图中整体地总结,从而在编码语义方面更加灵活。此外,与非深度网络和并行ViT中每个分支的独立特征编码不同,我们提出的Dual-ViT在整个架构中频繁地在像素和语义路径之间交换自我注意信息。

四、实验

我们通过多个视觉任务的各种经验证据验证了我们的Dual-ViT的优点,例如,图像识别、对象检测、实例分割和语义分割。特别是,我们首先使用最常见的图像识别基准(ImageNet [40])从头开始训练提出的Dual-ViT。接下来,预训练的Dual-ViT在COCO [41]和ADE 20 K [42]上进行微调,用于对象检测,实例分割和语义分割的下游任务,旨在评估预训练的Dual-ViT的泛化能力。
在这里插入图片描述

五、总结

在这项工作中,我们提出了DualVision Transformer(Dual-ViT),一个新的多尺度ViT骨干,它新颖地在两个交互路径中建模自我注意力学习:用于学习更精细像素级细节的像素路径和从输入提取整体全局语义信息的语义路径。从语义路径学习到的语义标记进一步充当高级语义先验,以便于像素路径中更精细的局部特征提取。以这种方式,增强的自我注意力信息沿着两个路径并行传播,追求更好的准确性-延迟权衡。各种视觉任务的广泛的实证结果表明,双ViT对国家的最先进的ViT的优越性。

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

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

相关文章

C++ : 仿照Vector 手动实现自己的 MyVectory

1. 源代码 #include <iostream>using namespace std;template <typename T> class myVector { private:T* data;int size;int capacity; public:// 构造函数myVector() : data(nullptr), size(0), capacity(0) {}//拷贝构造函数myVector(const myVector& othe…

【LeetCode每日一题】——面试题10.11.峰与谷

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 排序 二【题目难度】 中等 三【题目编号】 面试题10.11.峰与谷 四【题目描述】 在一个整数…

Vue学习笔记总结

目录 1、Vue核心 1.1什么是vue? 1.2什么是mvvm? ​编辑 1.3插值表达式{{}} 2.Vue中的常用指令 2.1内容渲染指令 2.2条件渲染指令 2.3事件绑定指令 2.4属性绑定指令 2.5列表渲染指令 2.5.1小案例-小黑的书架 2.6v-for中的key 2.7双向绑定指令 3.指令修饰符 3.1什…

前端JavaScript修饰器:简化代码,增强功能

​ &#x1f3ac; 岸边的风&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! ​ 目录 引言 1. 修饰器简介 2. 修饰器语法 3. 类修饰器 应用场景 示例代码 4. 方法修饰器 应用场景 示例代码 5. 属性…

如何隐藏Selenium特征实现自动化网页采集

Selenium是一个流行的自动化网页测试工具&#xff0c;可以通过模拟用户在Chrome浏览器中的操作来完成网站的测试。然而&#xff0c;有些网站会检测浏览器是否由Selenium驱动&#xff0c;如果是&#xff0c;就会返回错误的结果或拒绝访问。为了避免这种情况&#xff0c;我们需要…

文件夹怎么保护?文件夹保护的方法有哪些?

文件夹是存储文件的功&#xff0c; 而保护文件夹可以有效地避免数据泄露&#xff0c;那么文件夹该怎么保护呢&#xff1f;下面我们就来了解一下吧。 文件夹保护3000 保护文件夹的方法除了加密之外&#xff0c;还有隐藏和伪装&#xff0c;而这些都可以通过文件夹保护3000来实现…

嵌入式学习笔记(33)S5PV210的第二阶段处理过程

&#xff08;1&#xff09;第一个过程&#xff0c;怎么找到具体是哪个中断&#xff1a;S5PV210中因为支持的中断源很多&#xff0c;所以直接设计了4个中断寄存器&#xff0c;每个32位&#xff0c;每位对应一个中断源。&#xff08;理论上210最多可以支持128个中断源&#xff0c…

打造生产级Llama大模型服务

对于任何想要尝试人工智能或本地LLM&#xff0c;又不想因为意外的云账单或 API 费用而感到震惊的人&#xff0c;我可以告诉你我自己的旅程是如何的&#xff0c;以及如何开始使用廉价的消费级硬件执行Llama2 推理 。 这个项目一直在以非常活跃的速度发展&#xff0c;这使得它非…

视频号挂公众号链接最新方法教程,非常给力,使用的朋友不亦乐乎

接着看看视频号挂链接发展的来龙去脉 要点一&#xff1a;早在前两年&#xff0c;视频号链接直接显示在视频上方&#xff0c;可直接点击&#xff0c;哇塞&#xff0c;做视频号的福音&#xff0c;怎么能这么给力呢&#xff0c;引流不是特别方便吗&#xff0c;好景不长&#xff0c…

目前广州股票开户交易佣金费率最低是多少?怎么申请低佣金账户?

股票开户是指投资者在证券公司或券商处申请开立证券账户&#xff0c;并获得购买和交易股票的资格。一般需要提供身份证明、个人信息、资产证明等材料&#xff0c;并签署相关协议和风险提示书。开户后&#xff0c;投资者可以通过证券账户进行股票买卖等交易活动。 目前广州股票…

Vue奶茶冷饮店在线点单系统管理系统 微信小程序

奶茶店管理系统采用了java语言&#xff0c;开发了功能完备、使用简单的前端应用程序&#xff0c;并建立、维护了一个数据完整、安全、稳定性强的后台数据库系统。 系统使用java语言和Mysql数据库作为设计工具&#xff0c;可简单易行地学习操作。用户角色之间的相结合开发一套奶…

微服务全栈:深入核心组件与开发技巧

文章目录 1.服务注册与发现1.1. 客户端注册 (ZooKeeper)1.2. 第三方注册 (独立的服务Registrar)1.3. 客户端发现1.4. 服务端发现1.5. Consul1.6. Eureka1.7. SmartStack1.8. Etcd 2. API 网关2.1. 请求转发2.2. 响应合并2.3. 协议转换2.4. 数据转换2.5. 安全认证 3. 配置中心3.…

A股风格因子看板 (2023.09 第04期)

该因子看板跟踪A股风格因子&#xff0c;该因子主要解释沪深两市的市场收益、刻画市场风格趋势的系列风格因子&#xff0c;用以分析市场风格切换、组合风格暴露等。 今日为该因子跟踪第04期&#xff0c;指数组合数据截止日2023-08-31&#xff0c;要点如下 近1年A股风格因子检验统…

点亮你的证件照!自制背景颜色修改脚本揭秘!

文章目录 &#x1f31d;前言&#x1f31a;重要的工具 - removebg&#x1f311;removebg介绍&#x1f312;拿到API KEY &#x1f31a;脚本的使用教程&#x1f4da;资源 专栏Python零基础入门篇&#x1f525;Python网络蜘蛛&#x1f525;Python数据分析Django基础入门宝典&#x…

【UnityShaderLab实现“Billboard“始终面向相机_播放序列图的效果_案例分享(内附源码)】

"Billboard"始终面向相机 Shader "billboard" {Properties{_MainTex ("Main Tex", 2D) = "white" {}_Color (

GUN、MIT、Apache、BSD、MPL各种开源协议介绍和区别

文章目录 目前主流的开源协议GNU通用公共许可证&#xff08;GNU General Public License&#xff0c;GPL&#xff09;MIT许可证Apache许可证BSD许可证MPL Mozilla公共许可证&#xff08;Mozilla Public License&#xff0c;MPL&#xff09; 各种主流开源协议的区别GNU通用公共许…

IP地址的表示方式与分类

一、IP地址简介 IP地址是互联网的协议地址&#xff0c;为互联网的每一个网络和每一台主机分配一个逻辑地址。IP协议是为了计算机互相连接进行通信而设计的协议。 二、IP地址的表示方式 IP地址是一个32位的二进制数&#xff0c;通常被分割为4个“8位二进制数”(也就相当于四个…

数学建模| 快速入门(以华为杯2019F题为例)

数学建模快速入门&#xff08;华为杯2019F题为例&#xff09; 参考论文华为杯2019F题第一问为例读题——筛选出有用的信息问题分析——搞清楚目标和要求建立模型——将实际问题转化为数学问题判断题目类型模型假设数据处理航迹规划模型建立 模型求解——实际求解的细节结果分析…

JAVA黑马程序员day12--集合进阶(下部--双列集合)

Map HashMap 练习一 需提前定义学生类&#xff0c;并重写HashMap方法&#xff08;不然无法覆盖&#xff09; public class MapDemo4 {public static void main(String[] args) {//1.创建HashMap对象HashMap<Student,String> hmnew HashMap<>();//2、创建3个学生对…

SAP从放弃到入门系列之MRP中BOM的选择逻辑

翻译大佬的文章&#xff1a; 原文地址如下&#xff1a; 一、概述 BOM选择逻辑比较复杂&#xff0c;涉及到物料主数据的多个自定义和字段&#xff0c;所以我在这里总结一下。 首先&#xff0c;材料的 BOM 可能存在于下面的业务场景中。 1. 多个用途&#xff1a;例如生产BOM、…