学习记录——BiFormer

BiFormer Vision Transformer with Bi-Level Routing Attention

BiFormer:具有双电平路由注意的视觉变压器

  摘要作为视觉转换器的核心组成部分,注意力是捕捉长期依赖关系的有力工具。然而,这样的能力是有代价的:当计算跨所有空间位置的成对令牌交互时,它会产生巨大的计算负担和沉重的内存占用。一系列的作品试图通过引入手工制作和内容不可知的注意力稀疏性来缓解这个问题,例如将注意力操作限制在局部窗口,轴向条纹或扩展窗口内。与这些方法相比,我们提出了一种新的动态稀疏注意,通过双层路由实现更灵活的内容感知计算分配。具体来说,对于查询,首先在粗区域级别过滤掉不相关的键值对,然后在剩余候选区域(即路由区域)的联合中应用细粒度的令牌到令牌注意。我们提供了一个简单而有效的实现所提出的双层路由注意,它利用稀疏性来节省计算和内存,同时只涉及gpu友好的密集矩阵乘法。在此基础上,提出了一种新的通用视觉变压器——BiFormer。由于BiFormer以查询自适应的方式处理一小部分相关令牌,而不会分散其他不相关的令牌,因此它具有良好的性能和较高的计算效率,特别是在密集的预测任务中。多个计算机视觉任务(如图像分类、目标检测和语义分割)的经验结果验证了我们设计的有效性。代码可从https://github.com/rayleizhu/BiFormer获得。

引言

  Transformer有许多适合于构建强大的数据驱动模型的属性。首先,它能够捕获数据中的远程依赖关系[29,42]。第二,它几乎没有诱导偏差,从而使模型更灵活地拟合大量数据[15]。最后但并非最不重要的是,它具有高并行性,这有利于大型模型的训练和推理[13,33,36,42]。因此,transformer不仅彻底改变了自然语言处理,而且在计算机视觉方面也显示出非常有希望的进展。
  在过去的两年里,计算机视觉社区见证了视觉变压器的爆炸式增长[1,14,15,29,44,46]。在这些工作中,一个热门的话题是提高核心构件,即注意力。卷积本质上是一个局部算子,与之相反,注意力的一个关键属性是全局接受场,它使视觉转换器能够捕获远程依赖[42]。然而,这样的属性是有代价的:当注意力跨所有空间位置成对地计算令牌关联时,它具有很高的计算复杂性,并导致大量内存占用。
  为了缓解这个问题,一个有希望的方向是将稀疏关注[6]引入到视觉转换中,这样每个查询只关注一小部分键值对,而不是全部。以这种方式,研究人员探索了几种手工制作的稀疏图案,例如将注意力限制在局部窗口[29]、扩展窗口[41,46]或轴向条纹[46]。另一方面,也有人试图使稀疏度适应数据[5,48]。然而,虽然它们使用不同的策略来合并或选择键/值令牌,但这些令牌是查询无关的,也就是说,它们由所有查询共享。然而,根据预训练的ViT 1[15]和DETR 2[1]的可视化,不同语义区域的查询实际上关注的键值对是完全不同的。因此,强制所有查询处理同一组令牌可能不是最优的。
  在本文中,我们寻求一种具有动态、查询感知稀疏性的注意机制。基本上,我们的目标是让每个查询都关注语义上最相关的键值对的一小部分。第一个问题是如何解决查找要参加的这些键值对。例如,如果我们像[17]中那样以每个查询的方式选择键值对,它仍然需要评估所有查询和键之间的配对亲和力,因此具有相同的香草注意复杂性。另一种可能性是基于每个查询的本地上下文来预测注意力偏移量[10,48],因此可以避免两两关联计算。然而,通过这种方式,对远程依赖关系进行建模是有问题的[48]。
在这里插入图片描述

  为了高效地定位有价值的键值对,我们提出了一种区域到区域路由方法。我们的核心思想是在粗粒度的区域级别过滤掉最不相关的键值对,而不是直接在细粒度的令牌级别。这是通过首先构造一个区域级关联图,然后对其进行修剪,使每个节点只保留top-k连接来实现的。因此,每个区域只需要关注top-k路由区域。确定了参与区域后,下一步是应用令牌到令牌的注意,这是非常重要的,因为现在假定键值对在空间上是分散的。对于这种情况,虽然稀疏矩阵乘法是适用的,但它在现代gpu中是低效的,它依赖于合并内存操作,即一次访问数十个连续字节的块[31]。相反,我们提出一个简单的通过收集键/值令牌来解决,其中只涉及硬件友好的密集矩阵乘法。我们将这种方法称为双级路由注意(BRA),因为它包含一个区域级路由步骤和一个令牌级注意步骤。
  通过使用BRA作为核心构建块,我们提出了BiFormer,这是一个通用的视觉变压器骨干,可用于许多应用,如分类,目标检测和语义分割。由于BRA使BiFormer能够以内容感知的方式为每个查询处理最相关的键/值令牌的一小部分,因此我们的模型实现了更好的计算性能权衡。例如,在4.6G FLOPs的计算下,BiFormer-T在ImageNet-1

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

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

相关文章

如何理解图卷积网络GCN

文章目录 基本概念度矩阵(degree)邻接矩阵(Adjacency) 理解GCN两层GCN网络层数设置 搭建GCN网络定义GCN层定义GCN网络 基本概念 图的一些基本知识:图,邻居,度矩阵,邻接矩阵 度矩阵…

【力扣100】22.括号生成 || 为什么搜索几乎都是用深度优先遍历?

添加链接描述 class Solution:def generateParenthesis(self, n: int) -> List[str]:# 思路是根据左右括号剩余数量进行生成# 剩余左括号小于剩余右括号时,可以加左或者加右# 剩余左括号大于剩余右括号时,舍弃def backtrack(cur,left,right,res):if …

.NET DevOps 接入指南 | 1. GitLab 安装

引言 容器、DevOps和微服务被称为驱动云原生快速发展的三架马车。而DevOps是其中非常重要的一环,DevOps 是由Developers(Dev)和Operations(Ops)两个单词简称组成,中文直译就是“开发运维一体化”。 DevOps…

Spring-AOP综述

文章迁移自语雀。 今天下雪了, 完成了spring aop的应用学习, 学到了以前很多忽略的知识点,也写完了各种试验. 今天给程程分享了很多了随州下雪的场景,写了一二三, ♡程程, i miss u 等字体,在雪地上写给程程看, 还拍摄了照片和视频给她, 上午的时候,还做了一个雪人, 哈哈哈, 她…

zlib.decompressFile报错 【Bug已解决-鸿蒙开发】

文章目录 项目场景:问题描述原因分析:解决方案:方案1方案2此Bug解决方案总结寄语项目场景: 最近也是遇到了这个问题,看到网上也有人在询问这个问题,本文总结了自己和其他人的解决经验,解决了zlib.decompressFile报错 的问题。 问题: zlib.decompressFile报错,怎么解…

Find My帽子|苹果Find My技术与帽子结合,智能防丢,全球定位

帽子是戴在头部的服饰,多数可以覆盖头的整个顶部。主要用于保护头部,部分帽子会有突出的边缘,可以遮盖阳光。帽子亦可作打扮之用,也可以用来保护发型、遮盖秃头。可不同种类,例如贝雷帽、鸭舌帽等等。戴帽子在不同的地…

Java 8 中的 Stream 轻松遍历树形结构!

可能平常会遇到一些需求,比如构建菜单,构建树形结构,数据库一般就使用父id来表示,为了降低数据库的查询压力,我们可以使用Java8中的Stream流一次性把数据查出来,然后通过流式处理,我们一起来看看…

Cypress安装与使用教程(3)—— 软测大玩家

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。…

SQL常见面试题

今天刷了一遍牛客里的必知必会题,一共50道题,大部分都比较基础,下面汇总一下易错题。 SQL81 顾客登录名 本题几个关键点: 登录名是其名称和所在城市的组合,因此需要使用substring()和concat()截取和拼接字段。得到登…

FL Studio 21最新版本for mac 21.2.2.3740中文解锁版2024最新图文安装教程

FL Studio 21最新版本for mac 21.2.0.3740中文解锁版是最新强大的音乐制作工具。它可以与所有类型的音乐一起创作出令人惊叹的音乐。它提供了一个非常简单且用户友好的集成开发环境(IDE)来工作。这个完整的音乐工作站是由比利时公司 Image-Line 开发的。…

不知道怎么使用IDEA,一篇文章带你快速上手

前言 IDEA 是由 JetBrains 公司开发的软件产品,全称为 IntelliJ IDEA,一个 Java 语言的集成开发环境。它 —— 在业界被公认为是最好的 Java 开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE 支持、Ant、JUnit、CVS 整合、代码审…

经典目标检测YOLO系列(一)复现YOLOV1(3)正样本的匹配及损失函数的实现

经典目标检测YOLO系列(一)复现YOLOV1(3)正样本的匹配及损失函数的实现 之前,我们依据《YOLO目标检测》(ISBN:9787115627094)一书,提出了新的YOLOV1架构,并解决前向推理过程中的两个问题,继续按照此书进行YOLOV1的复现。 经典目标…

5个用于构建Web应用程序的Go Web框架

探索高效Web开发的顶级Go框架 Go(或称为Golang)以其简洁性、高效性和出色的标准库而闻名。然而,有几个流行的Go Web框架和库为构建Web应用程序提供了额外的功能。以下是五个最值得注意的Go框架: 1. Gin: Gin是一个高…

Tinker 环境下数据表的用法

如果我们要自己手动创建一个模型文件,最简单的方式是通过 make:model 来创建。 php artisan make:model Article 删除模型文件 rm app/Models/Article.php 创建模型的同时顺便创建数据库迁移 php artisan make:model Article -m Eloquent 表命名约定 在该文件中&am…

SIC产业链简述

同第一代硅半导体产业链类似,SiC产业链也分为以下几个环节: 设备和材料环节,包括晶体生长炉、MOCVD、切割设备、碳粉/硅粉/SiC粉体、石墨件等耗材; SiC衬底合外延环节,包括导SiC晶体生长、衬底晶片、外延片等制造&am…

MyBatis学习一:快速入门

前言 公司要求没办法,前端也要了解一下后端知识,这里记录一下自己的学习 学习教程:黑马mybatis教程全套视频教程,2天Mybatis框架从入门到精通 文档: https://mybatis.net.cn/index.html MyBatis 快速入门&#xf…

Python内置库os和sys的常用方法汇总

更多Python学习内容:ipengtao.com Python是一门强大的编程语言,具有丰富的标准库,其中包括os和sys两个常用模块。os模块用于与操作系统交互,提供了许多文件和目录操作的方法,而sys模块用于与Python解释器进行交互&…

buildadmin实现多级关联下拉效果

文章目录 最终效果开始重新渲染组件编辑渲染完结 最终效果 开始 popupForm.vue代码 <FormItem :label"t(interior.interiorApply.interior_index_id)" type"remoteSelect"v-model"baTable.form.items!.interior_index_id" prop"interi…

GreenPlum-数据世界的绿洲

GreenPlum的介绍 Greenplum是一个基于开源PostgreSQL数据库系统的高性能、可扩展的大数据处理平台。它是由Pivotal Software&#xff08;现在是VMware的一部分&#xff09;开发并维护的。Greenplum的设计目标是处理大规模的数据集&#xff0c;提供高并发、高吞吐量的查询和分析…

云计算:OpenStack 分布式架构部署(单控制节点与多计算节点)

目录 一、实验 1.环境 2. 计算服务安装(计算节点2) 3. 网络服务安装(计算节点2) 一、实验 1.环境 (1) 主机 表1 主机 主机架构IP备注controller控制节点192.168.204.210已部署compute01计算节点1192.168.204.211 已部署compute02计算节点2192.168.204.212 &#xff08;…