CVPR2023:BiFormer阅读笔记

本文介绍了CVPR2023文章提出的BiFormer模型。自注意力机制有内存占用大、计算代价高的缺点,此前优化研究存在问题。作者提出双层路由注意力机制(BRA),先在粗粒度区域过滤不相关键值对,再计算token - to - token注意力。还介绍了BiFormer结构,通过缩放网络参数实例化不同大小模型。

前言

BiFormer是CVPR2023的一篇文章,文中提出自注意力机制作为Transformer的核心模块,可以帮助网络捕捉长距离上下文依赖,但是这种结构也有两个缺点:

  1. 内存占用大
  2. 计算代价高

有许多研究针对上述缺点进行优化:

  1. 将注意力操作局限在局部窗口内,如图(b)。例如:Swin transformer
  2. 将注意力操作局限在横向条纹内,如图(c)。
  3. 将注意力操作局限在空洞窗口内,如图(d)。

在这里插入图片描述

然后上述研究有两个共性的问题:

  1. 使用手工制作的静态模式(无法自适应)
  2. 所有Query共享相同的K / V对(无法做到互不干扰)

与上述研究不同,作者提出了一种新的动态稀疏注意力机制,通过双层路由来实现更灵活的算力分配,让每个Query处理语义上最相关的K-V对的一小部分。在此基础上,提出的BiFormer具有良好的性能和较高的计算效率。如图(f)。

计算复杂度由原来的 o ( ( H W ) 2 ) o((HW)^2) o((HW)2)降到了 o ( ( H W ) 4 3 ) o((HW)^{\frac{4}{3}}) o((HW)34)

1. 模型的特点

为了让每个Query处理语义上最相关的K-V对,首先面临的问题就是如何找到这些需要关注的K-V对

一种方法是逐一为每个Query选择K-V对,那么就需要计算所有Query和所有Key之间的相关性,复杂性和原来的自注意力机制就相同了。

另一种方法是基于每个Query的局部上下文来预测注意力偏移量,如图(e),这虽然降低了计算复杂性,但会影响长距离依赖关系的建模。

为了解决这个问题,作者提出双层路由注意力机制(Bi-level Routing Attention, BRA)。核心思想是先在粗粒度区域级别过滤掉最不相关的键-值对,然后再去计算剩下的区域中的token-to-token注意力。

首先构造一个区域级关联图,然后对其进行修剪,使每个节点只保留前k个连接。因此每个区域只需要关注前k个路由区域。确定了参与区域后,下一步是应用token-to-token的注意,这是非常重要的,因为现在假定键值对在空间上是分散的。

2. 双层路由注意力机制(BRA)

在这里插入图片描述

输入一张图片, X ∈ R H × W × C X \in \mathbb R^{H \times W \times C} XRH×W×C,首先将其划分为 S × S S \times S S×S个不同的区域,其中每个区域包含 H W S 2 \frac{HW}{S^2} S2HW个特征向量。即将 X X X变为 X r ∈ R S 2 × H W S 2 × C X^r \in \mathbb R^{S^2 \times \frac{HW}{S^2} \times C} XrRS2×S

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值