当前位置: 首页 > news >正文

论文阅读—— BiFormer(cvpr2023)

论文:https://arxiv.org/abs/2303.08810

github:GitHub - rayleizhu/BiFormer: [CVPR 2023] Official code release of our paper "BiFormer: Vision Transformer with Bi-Level Routing Attention"

一、介绍

1、要解决的问题:transformers可以捕捉长期依赖,但是它具有很高的计算复杂性,并占用大量内存。

2、之前研究者解决这个问题的做法,一般都是稀疏注意力:

1)基于手动设计的稀疏模式:在局部窗口或空洞窗口的限制注意力

2)使得稀疏性可以自适应于数据

上面这些方法使用不同的策略融合或者选择和查询无关的键值token,这些token对所有查询共享。但是根据VIT和DETR的可视化结果,不同语义区域的查询对应不同的键值对。

3、所以作者的方法是动态的、查询相关的query-aware,找到最有相关性的键值对。

本文的想法:主要想法是先在区域级别粗略的过滤掉和查询不相关的键值对,这样留下一小部分topk选好的区域routed regions,然后在这些区域上使用细粒度token到token的细粒度注意力机制。

二、方法:

1、Bi-Level Routing Attention

1)输入图片HxWxC,分成SxS个区域,reshape到,然后求出Q,K,V

2)求相关区域

每个区域的,求区域之间的相似性矩阵,文中称为通过矩阵相乘得到的region-to-region affinity graph:,衡量了两个区域之间的语义相关性大小。然后选出topk个区域,I的第i行是最相关的k个区域的索引。

3)Token-to-token attention

为了能在GPU并行计算,先把K和V聚集在一起,然后再计算注意力:

4)分析得到的提出的BRA(Bi-Level Routing Attention)复杂度,而一般的注意力复杂度为

2、BiFormer

BRA作为基础模块,采用四层金字塔结构。

patch merging module用来减少空间分辨率同时增加通道数。

http://www.lryc.cn/news/219191.html

相关文章:

  • 理解 fopen的 rwa r+w+a+ 参数含义
  • 【强化学习】17 ——DDPG(Deep Deterministic Policy Gradient)
  • 驱动开发11-2 编写SPI驱动程序-点亮数码管
  • Java使用pdfbox进行pdf和图片之间的转换
  • 机器学习中的关键组件
  • 【JVM】JDBC案例打破双亲委派机制
  • 每天五分钟计算机视觉:池化层的反向传播
  • Docker的安装、基础命令与项目部署
  • Nodejs和npm的使用方法和教程
  • 机器学习---支持向量机的初步理解
  • 【unity实战】Unity实现2D人物双击疾跑
  • Spring面试题:(二)基于xml方式的Spring配置
  • XR Interaction ToolKit
  • spring-boot中实现分片上传文件
  • 【ICN综述】信息中心网络隐私安全
  • 基于STC12C5A60S2系列1T 8051单片机EEPROM应用
  • 手撕排序之直接选择排序
  • 洛谷 P1359 租用游艇
  • springboot中没有主清单属性解决办法
  • C/C++ static关键字详解(最全解析,static是什么,static如何使用,static的常考面试题)
  • windwos10搭建我的世界服务器,并通过内网穿透实现联机游戏Minecraft
  • 【实战Flask API项目指南】之七 用JWT进行用户认证与授权
  • 鸿蒙LiteOs读源码教程+向LiteOS中添加一个简单的基于线程运行时的短作业优先调度策略
  • axios的使用与封装详细教程
  • C++二叉搜索树
  • elasticsearch索引按日期拆分
  • 纯python实现大漠图色功能
  • debounce and throtlle
  • 四、数据库系统
  • Linux中的高级IO