论文阅读—— 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用来减少空间分辨率同时增加通道数。

相关推荐
郝学胜-神的一滴2 小时前
深度学习必学:PyTorch 神经网络参数初始化全攻略(原理 + 代码 + 选择指南)
人工智能·pytorch·python·深度学习·神经网络·机器学习
jr-create(•̀⌄•́)2 小时前
从零开始:手动实现神经网络识别手写数字(完整代码讲解)
人工智能·深度学习·神经网络
数智工坊3 小时前
Transformer 全套逻辑:公式推导 + 原理解剖 + 逐行精读 - 划时代封神之作!
人工智能·深度学习·transformer
xingyuzhisuan6 小时前
租用GPU服务器进行深度学习课程教学的实验环境搭建
运维·人工智能·深度学习·gpu算力
yu85939586 小时前
神经网络遗传算法函数极值寻优(非线性函数极值)
人工智能·深度学习·神经网络
乔江seven6 小时前
【李沐 | 动手学深度学习】12 使用块的网络VGG
人工智能·深度学习·卷积神经网络·vgg网络
jr-create(•̀⌄•́)8 小时前
正则化和优化算法区别
pytorch·深度学习·神经网络·算法
kishu_iOS&AI9 小时前
深度学习 —— 神经网络(1)
人工智能·深度学习·神经网络
纤纡.12 小时前
轻松实现多语言文字识别与实时检测:PaddleOCR 实战指南
人工智能·深度学习·opencv·paddlepaddle
【建模先锋】12 小时前
精品数据分享 | 锂电池数据集(10)基于阻抗的锂离子电池在不均衡使用情况下的性能预测
人工智能·python·深度学习·锂电池·锂电池寿命预测·锂电池数据集·剩余寿命预测