位置: IT常识 - 正文

CVPR‘2023 即插即用系列! | BiFormer: 通过双向路由注意力构建高效金字塔网络架构(即插即用系统)

编辑:rootadmin
CVPR‘2023 即插即用系列! | BiFormer: 通过双向路由注意力构建高效金字塔网络架构

推荐整理分享CVPR‘2023 即插即用系列! | BiFormer: 通过双向路由注意力构建高效金字塔网络架构(即插即用系统),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:即插即用功能在哪里打开,什么是即插即用设备 有什么特点,什么是即插即用设备,如何安装,什么是即插即用?它要达到什么目标,什么是即插即用?它要达到什么目标,什么叫即插即用?,即插即用功能在哪里打开,即插即用功能在哪里打开,内容如对您有帮助,希望把文章链接给更多的朋友!

Title: BiFormer: Vision Transformer with Bi-Level Routing Attention Paper: https://arxiv.org/pdf/2303.08810.pdf Code: https://github.com/rayleizhu/BiFormer

导读

众所周知,Transformer相比于CNNs的一大核心优势便是借助自注意力机制的优势捕捉长距离上下文依赖。正所谓物极必反,在原始的 Transformer 架构设计中,这种结构虽然在一定程度上带来了性能上的提升,但却会引起两个老生常态的问题:

内存占用大计算代价高

因此,有许多研究也在致力于做一些这方面的优化工作,包括但不仅限于将注意力操作限制在:

inside local windows, e.g., Swin transformer and Crossformer;axial stripes, e.g., Cswin transformer;dilated windows, e.g., Maxvit and Crossformer;

让我们先简单的看下上图:其中图(a)是原始的注意力实现,其直接在全局范围内操作,导致高计算复杂性和大量内存占用;而对于图(b)-(d),这些方法通过引入具有不同手工模式的稀疏注意力来减轻复杂性,例如局部窗口、轴向条纹和扩张窗口等;而图(e)则是基于可变形注意力通过不规则网格来实现图像自适应稀疏性;

总的来说,作者认为以上这些方法大都是通过将 手工制作‾\underline{手工制作}手工制作​ 和 与内容无关‾\underline{与内容无关}与内容无关​ 的稀疏性引入到注意力机制来试图缓解这个问题。因此,本文通过双层路由(bi-level routing)提出了一种新颖的动态稀疏注意力(dynamic sparse attention ),以实现更灵活的计算分配和内容感知,使其具备动态的查询感知稀疏性,如图(f)所示。

此外,基于该基础模块,本文构建了一个名为BiFormer的新型通用视觉网络架构。由于 BiFormer 以查询自适应的方式关注一小部分相关标记,而不会分散其他不相关标记的注意力,因此它具有良好的性能和高计算效率。最后,通过在图像分类、目标检测和语义分割等多项计算机视觉任务的实证结果充分验证了所提方法的有效性。

方法Bi-Level Routing Attention

为了缓解多头自注意力(Multi-Head Self-Attention, MHSA)的可扩展性问题,先前的一些方法提出了不同的稀疏注意力机制,其中每个查询只关注少量的键值对,而非全部。然而,这些方法有两个共性问题:

要么使用手工制作的静态模式(无法自适应);要么在所有查询中共享键值对的采样子集(无法做到互不干扰);

为此,作者探索了一种动态的、查询感知的稀疏注意力机制,其关键思想是在粗糙区域级别过滤掉大部分不相关的键值对,以便只保留一小部分路由区域(这不就把冗余的信息干掉了吗老铁们)。其次,作者在这些路由区域的联合中应用细粒度的token-to-token注意力。

整个算法的伪代码流程如下所示:

可以看到,整个模块主要包含三个组件,即:

Region partition and input projectionRegion-to-region routing with directed graphToken-to-token attentionCVPR‘2023 即插即用系列! | BiFormer: 通过双向路由注意力构建高效金字塔网络架构(即插即用系统)

简单梳理下。假设我们输入一张特征图,通过线性映射获得QKV;其次,我们通过领接矩阵构建有向图找到不同键值对对应的参与关系,可以理解为每个给定区域应该参与的区域;最后,有了区域到区域路由索引矩阵 ,我们便可以应用细粒度的token-to-token注意力了。

具体的实现还是有些复杂,可以参考代码慢慢理解,笔者这里看的也是云里雾里的。

上面是 BRA 模块的示意图。从图中可以看出,该方法是通过收集前 k 个相关窗口中的键值对,并利用稀疏性操作直接跳过最不相关区域的计算来节省参数量和计算量。值得一提的是,以上操作涉及 GPU 友好的密集矩阵乘法,利于服务器端做推理加速。

BiFormer

基于BRA模块,本文构建了一种新颖的通用视觉转换器BiFormer。如上图所示,其遵循大多数的vision transformer架构设计,也是采用四级金字塔结构,即下采样32倍。

具体来说,BiFormer在第一阶段使用重叠块嵌入,在第二到第四阶段使用块合并模块来降低输入空间分辨率,同时增加通道数,然后是采用连续的BiFormer块做特征变换。需要注意的是,在每个块的开始均是使用 3×33\times33×3 的深度卷积来隐式编码相对位置信息。随后依次应用BRA模块和扩展率为 eee 的 2 层 多层感知机(Multi-Layer Perceptron, MLP)模块,分别用于交叉位置关系建模和每个位置嵌入。

上表展示了不同模型变体的网络宽度和深度。其中FLOP是基于 224×224224 \times 224224×224 输入计算的。

实验

所有模型都在分辨率为 224×224224 \times 224224×224 的图像上进行训练和评估。其中星号表示该模型是使用标记标签进行训练的。据笔者所知,这是在没有额外训练数据或训练技巧所能取得的最佳结果。此外,使用基于标记的蒸馏技术,BiFormer-S的准确率可以进一步提高到 84.3%84.3\%84.3%!

可以看到,本文方法貌似对小目标检测效果比较好。这可能是因为BRA模块是基于稀疏采样而不是下采样,一来可以保留细粒度的细节信息,二来同样可以达到节省计算量的目的。

为了进一步了解双层路由注意力的工作原理,作者将路由区域和注意力响应进行可视化。从图中我们可以清楚地观察到语义相关区域已被成功定位。例如,在第一个场景中的街景所示,如果查询位置在建筑物或树上,则对应的路由区域覆盖相同或相似的实体。而在第二个室内场景中,当我们将查询位置放在鼠标上时,路由区域包含主机、键盘和显示器的一部分,即使这些区域彼此不相邻。这意味着双层路由注意力可以捕获远距离对上下文依赖。

总结

本文提出了一种双层路由注意力模块,以动态、查询感知的方式实现计算的有效分配。其中,BRA模块的核心思想是在粗区域级别过滤掉最不相关的键值对。它是通过首先构建和修剪区域级有向图,然后在路由区域的联合中应用细粒度的token-to-token注意力来实现的。值得一提的是,该模块的计算复杂度可压缩至 O((HW)43)O((HW)^{\frac{4}{3}})O((HW)34​)!最后,基于该模块本文构建了一个金字塔结构的视觉Transformer——BiFormer,它在四种流行的视觉任务、图像分类、目标检测、实例分割和语义分割方面均表现出卓越的性能。

写在最后

如果您也对人工智能和计算机视觉全栈领域感兴趣,强烈推荐您关注有料、有趣、有爱的公众号『CVHub』,每日为大家带来精品原创、多领域、有深度的前沿科技论文解读及工业成熟解决方案!

同时欢迎添加小编微信: cv_huber,备注CSDN,加入官方学术|技术|招聘交流群,一起探讨更多有趣的话题!

本文链接地址:https://www.jiuchutong.com/zhishi/296135.html 转载请保留说明!

上一篇:Python 高性能 web 框架 - FastApi 全面指南(Python 高性能 pdf)

下一篇:PyTorch+PyG实现图神经网络经典模型目录(pytorch example)

  • 红米note11pro重量多少(红米note11pro重量多少克)

    红米note11pro重量多少(红米note11pro重量多少克)

  • 屏幕镜像怎么在转圈(屏幕镜像怎么在电脑上用)

    屏幕镜像怎么在转圈(屏幕镜像怎么在电脑上用)

  • kindle不用的时候需要关闭屏幕吗(kindle不用的时候怎么放)

    kindle不用的时候需要关闭屏幕吗(kindle不用的时候怎么放)

  • 抖音开通小店需要多少粉丝(抖音开通小店需要)

    抖音开通小店需要多少粉丝(抖音开通小店需要)

  • 绘图仪是输出设备吗(绘图仪是输入输出设备吗)

    绘图仪是输出设备吗(绘图仪是输入输出设备吗)

  • 小米手机防水吗(苹果14手机防水吗)

    小米手机防水吗(苹果14手机防水吗)

  • 2017ipad可以用pencil吗(2017ipad可以用鼠标吗)

    2017ipad可以用pencil吗(2017ipad可以用鼠标吗)

  • 10G还是10GB大(10gb和1g哪个多)

    10G还是10GB大(10gb和1g哪个多)

  • 苹果7p能升级到13.4.1吗(苹果7p能升级到13吗)

    苹果7p能升级到13.4.1吗(苹果7p能升级到13吗)

  • x30什么时候上市(x70什么时候出的)

    x30什么时候上市(x70什么时候出的)

  • 显卡风扇转显示器无信号(显卡风扇转显示器没反应)

    显卡风扇转显示器无信号(显卡风扇转显示器没反应)

  • 为什么电脑微信打字会覆盖前面的字(为什么电脑微信视频对方听不到声音)

    为什么电脑微信打字会覆盖前面的字(为什么电脑微信视频对方听不到声音)

  • 高通骁龙765g性能(高通骁龙骁龙765g)

    高通骁龙765g性能(高通骁龙骁龙765g)

  • iphonexr听语音黑屏后不会亮(苹果xr手机听语音就黑屏然后还不亮)

    iphonexr听语音黑屏后不会亮(苹果xr手机听语音就黑屏然后还不亮)

  • blp661电池是什么型号(blp661电池是什么型号手机)

    blp661电池是什么型号(blp661电池是什么型号手机)

  • 微信看不到表情怎么回事(微信看不到表情下面的图案)

    微信看不到表情怎么回事(微信看不到表情下面的图案)

  • 电脑怎么一键回到桌面(电脑怎么一键回到顶部)

    电脑怎么一键回到桌面(电脑怎么一键回到顶部)

  • 电子计算器一般由什么构成(电子计算器一般用几年)

    电子计算器一般由什么构成(电子计算器一般用几年)

  • 百词斩怎么自建词库(百词斩自建列表背诵)

    百词斩怎么自建词库(百词斩自建列表背诵)

  • 手机怎样把几张照片合成一张照片(手机怎样把几张图片做成一个文档)

    手机怎样把几张照片合成一张照片(手机怎样把几张图片做成一个文档)

  • 华为mate20x5G支持NFC吗

    华为mate20x5G支持NFC吗

  • word中的上标怎么弄(word的上标怎么打)

    word中的上标怎么弄(word的上标怎么打)

  • 为富不仁的意思是什么(达则为富不仁的意思)

    为富不仁的意思是什么(达则为富不仁的意思)

  • 苹果手机阴影墨水在哪(苹果手机阴影墨迹怎么调)

    苹果手机阴影墨水在哪(苹果手机阴影墨迹怎么调)

  • 天水公交车怎么扫码(西安到天水大巴车时刻表)

    天水公交车怎么扫码(西安到天水大巴车时刻表)

  • 携程为什么转不了人工(携程现在为什么用不了)

    携程为什么转不了人工(携程现在为什么用不了)

  • 微信微粒贷怎么改还款日期(微信微粒贷怎么没有,怎样才能开通)

    微信微粒贷怎么改还款日期(微信微粒贷怎么没有,怎样才能开通)

  • 基础数据类型之集合(基础的数据类型)

    基础数据类型之集合(基础的数据类型)

  • python shutil模块如何操作文件(python的utils模块)

    python shutil模块如何操作文件(python的utils模块)

  • 费用的进项税额可以抵扣吗
  • 视同销售计税价格如何确定?
  • 资产交换的涉税处理
  • 管理费用与税金及附加哪个会影响利润
  • 进口海关是指
  • 养殖合作社属于什么行业
  • 电子税务局自然人怎么切换到企业
  • 5元印花税怎么申报
  • 个税反推税前工资速算
  • 行政单位盘盈固定资产应按什么入账
  • 债务重组偿债顺序
  • 对赌协议赢了怎么样
  • 人民币结算意味着什么
  • 借款合同法律规定的表述
  • 部门独立核算管理制度
  • 银行回单手续费怎么找到对应金额
  • 境外所得纳税
  • 离职补偿金要交个税的例子
  • 研发费用需要发什么科目
  • 计提工资和实际发放工资
  • 借应收账款贷应收账款是什么意思
  • 预收培训费怎么确认增值税
  • 个税经营所得申报怎么更正
  • 房产税具体税种包括哪些
  • 怎么升级win11正版
  • 线上网速测试
  • php 反射 性能
  • 支付宝花呗服务升级有什么用
  • rtlrack.exe - rtlrack是什么进程 有什么用
  • 不合格原材料
  • 盈余公积转增资本会计科目
  • 员工报销电话费缴纳个税
  • 图像分割 unet
  • 前端跨域的方法
  • 转让土地需要办什么手续
  • 今日清明节的下一句是什么
  • php实现和工作原理
  • 圣米歇尔山法语介
  • 基于核心素养下的大单元教学设计
  • 雪花算法时钟回拨
  • 现代服务包括哪些税目
  • 高德地图的2种导航方式
  • 应交税费是借增还是贷增?
  • 爱上源码,重学Spring IoC深入
  • 第二季度企业所得税会减第一季度吗
  • 公司总人数和上社保人数
  • sqlserver2008数据库定时备份
  • 收到员工交来现金怎么入账
  • sqlyog配置
  • 生产过程中报废怎么核算成本
  • 生产成本如何做核算
  • 残疾人就业保障金征收使用管理办法
  • 食品生产企业成本怎么核算
  • 会计处理是会计分录吗
  • 固定资产折旧年限的最新规定2023
  • 会计科目设置的相关注意事项
  • sql语句分号
  • 如何将苹果手机复制
  • 宏基aspire s3适用固态硬盘
  • bios报警声
  • win7怎么禁止系统自动更新
  • win8.1电脑设置在哪里
  • win8怎么调亮度调节
  • Linux系统用命令进行盘数据往外读不可
  • win7系统玩红色警戒怎么全屏设置
  • 用VMware安装阿里linux
  • cocosdx让AppDelegate支持全局更新机制
  • shell 函数 return
  • 数独算法代码c语言
  • opengl入门视频教程
  • ie6怎么设置兼容性
  • eclipse开发安卓app实例
  • js中不同的height, top的区别对比
  • 物理引擎百科
  • react和nodejs
  • unity ugui教程
  • 差额征收怎么填报表
  • 进项税额转出影响所得税吗
  • 出口退税备案表享受增值税优惠政策
  • 代理记账公司里的公司文件盒书写样式图片
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设