news 2026/4/23 1:59:35

【BiFormer】BiFormer: Vision Transformer with Bi-Level Routing Attention 译读笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【BiFormer】BiFormer: Vision Transformer with Bi-Level Routing Attention 译读笔记

BiFormer: Vision Transformer with Bi-Level Routing Attention

摘要

作为视觉变换器的核心构建模块,注意力机制是一种强大的工具,用于捕获长距离依赖关系。然而,这种强大的功能是有代价的:它会导致巨大的计算负担和沉重的内存占用,因为需要在所有空间位置之间进行成对token交互计算。一系列工作试图通过引入手工制作和 content-agnostic 的稀疏性来缓解这个问题,例如将注意力操作限制在局部窗口、轴向条纹或扩张窗口内。与这些方法不同,本文提出了一种通过双层路由的新型动态稀疏注意力机制,以实现更灵活的内容感知计算分配。具体来说,对于查询,首先在粗粒度区域级别过滤掉无关的键值对,然后在剩余候选区域(即 routed regions)的并集中应用细粒度的 token-to-token 注意力。本文提供了一种简单而有效的双层路由注意力实现方法,该方法利用稀疏性来节省计算和内存,同时仅涉及 GPU 友好的密集矩阵乘法。基于所提出的双层路由注意力机制,一种新的通用视觉transformer,命名为BiFormer,随即提出。由于BiFormer以query adaptive的方式关注相关token的小子集,而不会受到其他无关token的干扰,因此它既具有良好的性能,又具有很高的计算效率,特别是在密集预测任务中。在图像分类、目标检测和语义分割等多个计算机视觉任务上的实验结果验证了本文设计的有效性。代码可在https://github.com/rayleizhu/BiFormer获取。

1 引言

Transformer具有许多适合构建强大的数据驱动模型的特性。首先,它能够捕捉数据中的长距离依赖关系[29_SwinTransformer, 42_Transformer]。其次,它几乎无归纳偏差,因此使模型更加灵活,能够拟合大量数据[15_Vit]。最后但同样重要的是,它具有高度并行性,这有利于大型模型的训练和推理[42_Transformer, 13_BERT, 33_GPT1, 36_DALL·E]。因此,Transformer不仅革新了自然语言处理,还在计算机视觉领域展现了非常promising的进展。

过去两年,计算机视觉领域见证了视觉transformer的爆炸式增长[29_SwinTransformer, 14_CSWinTransformer, 44_PVT, 15_Vit, 1_DETR, 46_CrossFormer]。在这些工作中,一个热门话题是改进核心构建模块,即attention机制。与本质上是一种局部操作的卷积不同,注意力的一个关键特性是全局感受野,这使视觉 Transformer 能够捕获长距离依赖关系[42_Transformer]。然而,这种特性是有代价的:由于注意力机制计算所有空间位置之间的 pairwise token affinity,它具有很高的计算复杂度,并导致巨大的内存占用。

为缓解这一问题,一个有前景的方向是将稀疏注意力[6_Sparse_Transformer]引入视觉 Transformer 中,使得每个查询仅关注一小部分键值对,而不是全部。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 15:48:06

知识图谱的智能跃迁:大模型环境下的架构革命

本文提出上下文图谱概念,通过四元组或n元组结构融入时效性、来源和决策逻辑等元数据,解决传统知识图谱的局限性。结合CGR3(检索-排名-推理)范式,利用大语言模型提升知识图谱补全和问答任务性能。实验显示,在…

作者头像 李华
网站建设 2026/4/21 1:07:27

HarmonyOS 页面路由与导航开发

网罗开发(小红书、快手、视频号同名)大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等方…

作者头像 李华
网站建设 2026/4/19 0:56:29

Java中的代码块

在Java中,代码块是用一对花括号{}包裹起来的一段代码,根据其位置和用途不同,Java中主要有以下4中类型的代码块1.普通代码块1.定义:写在方法内部{ }的代码,用于限定变量作用域或逻辑分组2.特点:只能在方法、…

作者头像 李华
网站建设 2026/4/18 19:55:14

一番赏盲盒小程序前端功能:层级乐趣与便捷服务的双向赋能

一番赏盲盒小程序以层级化奖项体系为核心特色,凭借细腻的前端功能设计,精准还原线下抽赏的递进式惊喜,同时嫁接线上操作的高效便捷。在弱化营销属性的基础上,串联起赏系浏览、抽赏互动、权益兑现及收藏管理的全流程,以…

作者头像 李华
网站建设 2026/4/18 10:39:47

LINE收不到验证码?可能原因和解决方法

在LINE的使用过程中,有时在验证环节会碰到接收不到手机验证码的情况。可以参考本文排查原因、解决验证问题。一、LINE收不到验证码的可能原因1.虚拟号码如果使用的是非实名的、安全性不高的低质虚拟号码,可能会被平台阻止。2.号码被封如果之前在账号使用…

作者头像 李华