论文阅读——ViTAE

ViTAE: Vision Transformer Advanced by Exploring Intrinsic Inductive Bias

ViTAE旨在将细胞神经网络中固有的IB引入视觉转换器。如图2所示,ViTAE由两种类型的细胞组成,即RC和NC。RC负责将多尺度上下文和局部信息嵌入到令牌中,NC用于进一步对令牌中的局部性和长程依赖性进行建模。以图像x∈RH×W×C为输入,使用三个RC分别将x逐步下采样4×、2×和2×。因此,RC的输出令牌的大小为[H/16,W/16,D],其中D是令牌维度(在我们的实验中为64)。然后,RC的输出标记被平坦化为RHW/256×D,与类标记连接,并通过正弦位置编码相加。接下来,令牌被馈送到以下NC中,这些NC保持令牌的长度。最后,使用来自最后一个NC的类标记上的线性分类层来获得预测概率。

ViTAE(Vision Transformers Advanced by Exploring Intrinsic Inductive Bias),通过从卷积中探索内在IB而得到改进。从技术上讲,ViTAE有几个空间金字塔缩减模块,通过使用不同膨胀率的多个卷积,对输入图像进行下采样,并将其嵌入到具有丰富多尺度上下文的令牌中。通过这种方式,它获得了固有的尺度不变性IB,并且能够学习各种尺度下对象的鲁棒特征表示。此外,在每个转换器层中,ViTAE都有一个与多头自注意模块并行的卷积块,其特征被融合并馈送到前馈网络中。因此,它具有固有的局部性IB,能够协同学习局部特征和全局依赖性

ViT在建模局部视觉结构(例如边和角)和处理卷积等各种尺度的对象时缺乏固有的归纳偏差(IB)。或者,ViT必须从大规模数据中隐含地学习这种IB。

与视觉转换器不同,卷积神经网络(CNNs)自然具有尺度不变性和局部性的内在IB,并且仍然是视觉任务中的主要骨干[26,70,62,8,96]。细胞神经网络的成功激励我们在视觉转换器中探索内在的IB。我们首先分析了细胞神经网络的上述两个IB,即局部不变性和尺度不变性。卷积计算相邻像素之间的局部相关性,擅长提取边缘和角点等局部特征。因此,细胞神经网络可以在浅层提供丰富的低级别特征[94],然后通过大量的顺序卷积将其逐渐聚合为高级别特征[32,68,71]。此外,细胞神经网络具有层次结构,可以提取不同层的多尺度特征[68,38,26]。此外,层内卷积还可以通过改变其内核大小和膨胀率来学习不同尺度的特征[25,70,8,45,96]。因此,可以通过层内或层间特征融合来获得尺度不变的特征表示。然而,细胞神经网络不太适合对长期依赖性进行建模2,这是变压器的关键优势。一个有趣的问题出现了:我们能利用细胞神经网络的良好特性来改进视觉转换器吗?最近,DeiT[76]探索了从细胞神经网络到变压器提取知识的想法,以促进培训并提高性能。然而,它需要现成的CNN模型作为教师,并消耗额外的培训成本。

与DeiT不同的是,本文通过重新设计网络结构,将固有IB明确引入到视觉变换器中。当前的视觉转换器总是获得具有单尺度上下文的标记[19,93,80,86,47,69,77],并从数据中学习适应不同尺度的对象。例如,T2T-ViT[93]通过以软分割方式精细地生成令牌来改进ViT。具体而言,它使用一系列令牌到令牌转换层来聚合单尺度的相邻上下文信息,并将图像逐步结构化为令牌。受细胞神经网络在处理尺度方差方面的成功启发,我们在转换器中探索了一种类似的设计,即具有不同感受野的层内卷积[70,91],以将多尺度上下文嵌入到令牌中。这样的设计允许标记在各种尺度上携带对象的有用特征,从而自然地具有固有的尺度不变性IB,并明确地促进变换器从数据中更有效地学习尺度不变特征。另一方面,低级局部特征是生成高级判别特征的基本要素。尽管变换器也可以从数据中学习浅层的这些特征,但它们在设计上并不擅长卷积。最近,[89,43,21]依次堆叠卷积和注意力层,并证明局部性是全局依赖性的合理补偿。然而,这种串行结构在局部建模过程中忽略了全局上下文(反之亦然)。为了避免这种困境,我们遵循“分而治之”的思想,提出并行地对局部依赖和长程依赖进行建模,然后融合特征来兼顾两者。通过这种方式,我们使转换器能够更有效地学习每个块中的局部和远程特征。从技术上讲,我们提出了一种通过探索固有电感偏置(ViTAE)先进的新型视觉转换器,它是两种基本单元的组合,即还原单元(RC)和正常单元(NC)。RC用于对输入图像进行下采样并将其嵌入到具有丰富多尺度上下文的令牌中,而NC旨在对令牌序列中的局部和全局依赖性进行联合建模。此外,这两种类型的细胞共享一个简单的基本结构,即并行注意力模块和卷积层,然后是前馈网络(FFN)。值得注意的是,RC有一个额外的金字塔缩减模块,该模块具有不同膨胀率的atrous卷积,以将多尺度上下文嵌入到令牌中。根据[93]中的设置,我们堆叠三个归约单元以将空间分辨率降低1/16,并堆叠一系列NC以从数据中学习判别特征。ViTAE在数据效率和训练效率(见图1)以及下游任务的分类精度和泛化能力方面优于具有代表性的视觉转换器。

我们的贡献有三方面。首先,我们探索了变换器中的两种固有IB,即尺度不变性和局部性,并证明了这种思想在提高变换器的特征学习能力方面的有效性。其次,我们基于两个新的归约和正常单元设计了一个新的变压器架构,命名为ViTAE,以本质上结合上述两个IB。所提出的ViTAE将多尺度上下文嵌入到令牌中,并有效地学习局部和远程特征。第三,ViTAE在分类精度、数据效率、训练效率和下游任务的泛化方面优于具有代表性的视觉转换器。ViTAE在ImageNet上分别以4.8M和23.6M的参数实现了75.3%和82.0%的第一精度。

ViTAEv2

ViTAEv2: Vision Transformer Advanced by Exploring Inductive Bias for Image Recognition and Beyond

除了分类之外,其他下游任务,包括对象检测、语义分割和姿态估计,也是通用主干网应该适应的非常重要的任务。这些下游任务通常需要从主干网中提取多层次特征,以处理不同尺度的对象。为此,我们将普通的ViTAE模型扩展到多阶段设计,即ViTAE-v2。ViTAE-v2设计的一个自然选择是通过重新组织RC和NC来重新构建模型。如图3所示,ViTAE-v2有四个阶段,其中使用四个相应的RC分别对特征进行4×、2×、2倍和2×的逐步下采样。在每个阶段,多个Ni正常电池在第i个RC之后顺序堆叠。请注意,一系列NC仅在各向同性设计的最粗略阶段使用。正常细胞(即Ni)的数量控制着模型的深度和大小。通过这样做,ViTAE-v2可以从不同阶段提取特征金字塔,其可以由专门为各种下游任务设计的解码器使用。

剩下的一个问题是,transformer中的普通注意力操作具有二次计算复杂性,因此需要大的内存占用和计算成本,尤其是对于具有大分辨率的特征图。与普通ViTAE设计中的快速分辨率降低相比,我们在多阶段设计中采用了慢速分辨率降低策略,例如,第一阶段的特征图的分辨率仅为原始图像大小的1/4,从而导致更多的计算成本,尤其是当下游任务中的图像具有高分辨率时。为了缓解这一问题,我们进一步探讨了RC和NC模块中的另一种归纳偏差,即(Liu et al,2021)中引入的局部窗口注意力。具体来说,窗口注意力将整个特征图拆分为几个不重叠的局部窗口,并在每个窗口内进行多头自注意力,即同一窗口内的每个查询令牌共享相同的键值集。由于所提出的两个单元中的并行卷积分支可以对位置信息进行编码并实现窗口间信息交换,因此可以省略(Liu et al,2021)中的相对位置编码和窗口移位机制等特殊设计。我们实证发现,在早期阶段用局部窗口注意力取代完全注意力可以在计算成本和性能之间实现良好的权衡。因此,在前两个阶段,我们只在RC和NC模块中使用局部窗口注意力。因此,我们的ViTAEv2模型可以为各种视觉任务提供卓越的性能,包括图像分类、对象检测、语义分割和姿态估计,同时保持快速的推理速度和合理的内存占用。

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

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

相关文章

AUTOSAR软件配置(3):MCAL下载安装

前言 所有的NXP软件的下载安装都是需要自己在官网去注册账号的 中文的NXP官方网址:恩智浦半导体官方网站 | NXP 半导体 注:本文指导安装教程将以S32K144平台为例展开。 下载 找到下载入口的指引 然后在左侧的导航栏找到AUTOSAR 然后选择4.2版本 在…

java-集合工具类Collections

我们在使用它的时候记得导包 常见API 我们就简单看看第一第二个方法,代码如下,其余的知道用就行

MySQL命令--使用mysqldump导出导入数据库

原文网址:MySQL命令--使用mysqldump导出导入数据库_IT利刃出鞘的博客-CSDN博客 简介 本文介绍mysql使用mysqldump命令导出导入数据库的方法。 本方法是导入导出数据库最完美的方法。其他用Navicat可视化的方法全都不完美,经常会有导入失败的问题。 导…

【Preprocessing数据预处理】之Pipeline

在机器学习中,管道(Pipeline)是一种工具,用于将数据预处理、特征选择、模型构建等一系列步骤封装成为一个整体流程。这样做的好处是可以简化代码,避免数据泄露,并使模型的训练和预测过程更加高效和可重复。…

信息系统项目管理师--沟通管理

IT 项⽬成功有关的最重要的四个因素是:主管层的⽀持、⽤户参与、有经验的项⽬经理和清晰的业务⽬标 项⽬沟通管理是确保及时、正确地产⽣、收集、分发、存储和最终处理项⽬信息所需的过程 项⽬沟通管理由两部分组成:⼀是制定策略,确保沟通对…

leetcode一天一题-第1天

为了增加自己的代码实战能力,希望通过刷leetcode的题目,不断提高自己,增加对代码的理解,同时开拓自己的思维方面。 题目名称:两数之和 题目编号:1 题目介绍: 给定一个整数数组 nums 和一个整数…

中介者模式(Mediator Pattern)

中介者模式 说明 中介者模式(Mediator Pattern)属于行为型模式,又称为调解者模式或调停者模式。用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立…

Selenium WebDriver 中用于查找网页元素的两个方法

这里提供了 Selenium WebDriver 中用于查找元素的两个方法:find_element() 和 find_elements()。 find_element(byid, value: Optional[str] None) → selenium.webdriver.remote.webelement.WebElement 这个方法用于查找满足指定定位策略(By strategy&…

【AI大模型应用开发】【LangChain系列】9. 实用技巧:大模型的流式输出在 OpenAI 和 LangChain 中的使用

大家好,我是同学小张,日常分享AI知识和实战案例欢迎 点赞 关注 👏,持续学习,持续干货输出。v: jasper_8017 一起交流💬,一起进步💪。微信公众号也可搜【同学小张】 🙏 本…

【RHCSA问答题】第十五章 访问Linux文件系统(上)

系列文章目录 第一章 红帽企业Linux入门 第二章 访问命令行 第三章 从命令行管理文件(上) 第三章 从命令行管理文件(下) 第五章 创建、查看和编辑文本文件(上) 第五章 创建、查看和编辑文本文件&#xff0…

Python使用openpyxl库或pandas库创建.xlsx格式的Excel文件,并向文件不同的sheet按行或按列写入内容

import openpyxl# 创建-一个Workbook对象 wb openpyxl.Workbook()# 创建多个工作表 sheet1 wb.active sheet1.title "s1"sheet2 wb.create_sheet("s2")# 在不同的工作表中写入数据 sheet1["A1"] Data for Sheet1 sheet1["A2"] D…

软考架构师-案例题分享(带答案)

目录 1.质量属性+架构风格2.UML建模3.数据流图4.大数据架构5.鸿蒙架构5.SOA和企业应用集成7.微服务和 SOA8. 架构评估9.数据库设计1.质量属性+架构风格 某软件公司为电子商城开发一套应用程序集成开发环境,以提高开发电子商城应用程序的质量和效率。在项目之初,公司的系统分…

「jQuery系列」jQuery 校验表单(Validate)

文章目录 一、校验表单(Validate)1. 基本用法2. 验证规则3. 国际化4. 插件扩展 二、Validate常用方法1. 基本验证2. 自定义验证规则3. 远程验证(通过 AJAX)4. 提交处理(submitHandler)5. 忽略某些元素的验证…

Edge浏览器可以多开的几种方法

新建用户数据目录: 首先,安装一个Edge浏览器或者谷歌浏览器。在电脑的D盘(或其他盘)新建一个文件夹,例如命名为“Edge”。在“Edge”文件夹下再新建两个子文件夹,分别命名为“Edge2”和“Edge3”&#xff0…

【2024年5月备考新增】《软考真题分章练习(答案解析) - 4 项目范围管理(高项)》

点击跳转无答案版 1、() includes the processes required to ensure that the project includes all the work required , and only the work required , to complete the project successfully . Managing the project scope is primarily concerned with defining and con…

数学问题难解?新研究提出MathScale方法,让AI更懂数学推理

引言:数学问题解决中的语言模型挑战 数学问题解决是一个复杂的认知过程,它要求参与者不仅要掌握数学知识,还要能够进行多步骤的逻辑推理。近年来,大语言模型(LLMs)在解决问题方面展现出了显著的能力&#…

18. 查看帖子详情

文章目录 一、建立路由二、开发GetPostDetailHandler三、编写logic四、编写dao层五、编译测试运行 一、建立路由 router/route.go v1.GET("/post/:id", controller.GetPostDetailHandler)二、开发GetPostDetailHandler controller/post.go func GetPostDetailHand…

java中集合类的使用场景和区别

无极低码 :https://wheart.cn Java Collection Interface 使用场景:Collection是所有单值集合类型的根接口,包括List、Set等。它提供了一组通用方法来添加、删除、检查元素存在性、获取集合大小等。区别:它是抽象概念,不关心元素是否有序或唯一。Java List Interface 使用…

java数据结构与算法刷题-----LeetCode90. 子集 II

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 解题思路:时间复杂度O( n 2 ∗ n n^2*n n2∗n),空间复杂度O(n) 7…

C#中的小数

一、关于类型 在C#中,可以用以下数据类型来存放小数: float: 单精度浮点数(是32位单精度浮点数类型) 优点:占用空间小,适合存储大量小数值;性能较好。缺点:精度有限,可能…