文章起源 | 恒源云社区
原文地址 | VSA
原文作者 | 咚咚
搭档们,好久不见了啊。
最近平台各种性能上线,切实抽不出工夫搬运大佬们的文章,不是小编消极怠工哦~
这不,略微有点工夫空下来,小编就立刻去社区精心筛选了一篇文章分享给你们啦。
走过路过,不要错过呀!废话不多说,注释走起♀️
摘要
- 引入主题: 窗口自注意力曾经在视觉Transformer中失去了宽泛的摸索,以均衡性能、计算复杂度和内存占用。
- 现存问题: 目前的模型采纳事后定义的固定大小窗口设计,限度了它们建模长期依赖关系和适应不同大小对象的能力。
- 解决办法: 提出了可变尺寸窗口留神(VSA)来从数据中学习自适应窗口配置。具体来说,基于每个默认窗口中的token,VSA 应用了一个窗口回归模块来预测指标窗口的大小和地位。通过对每个留神头独立采纳 VSA,能够建设长期依赖关系模型,从不同窗口捕捉丰盛的上下文,促成窗口之间的信息替换。
- 试验后果: VSA 是一个易于实现的模块,它能够用较小的批改和能够疏忽的额定计算成本来代替最先进的代表性模型中的窗口注意力,同时大幅度地进步它们的性能,例如,在ImagNet 分类工作中,分类性能绝对Swin-T进步了1.1% ,应用较大的图像训练和测试时,性能增益减少更大。另外,在指标检测宰割、实例宰割和语义宰割工作中,解决不同大小的对象时,VSA 比一般窗口注意力更有劣势。
算法
模型整体框架如上图(a)所示,是基于swin模型进行批改的,最次要的翻新点是应用VSA(VWA) Transfomer blocks代替swin中的窗口自注意力block。
VSA Transformer模块如上图(c)所示,与传统的窗口自注意力模块不同,其中应用了VSA(VWA)(上图(b)所示)和CPE模块。接下来进行别离介绍。
VSA模块
上图(b)所示,能够简要看出,VSA module批改了每个窗口的大小和地位,进步模型对久远依赖的建模以及不同大小指标对象的检测。具体操作步骤如下:
- 给定VSA模块的输出特色\( X \),首先将其平分成大小一样的不重叠窗口\( X_w \),这与传统办法一样
- 对每个窗口进行线性操作失去对应的查问\( Q_w \),\( Q_w = Linear(X_w) \)
为了取得每个窗口的长宽两个方向上的缩放和地位偏置,须要进行如下操作:
1). 对\( X_w \)应用核大小和步长与窗口大小一样的均匀池化操作,并附加LeakyRelu激活层
2). 进一步应用1 ×1的卷积层,输入\( S_w \)和\( O_w \),大小均为\( R^{2×N} \),其中2示意长宽两个方向,N示意head个数
- 取得了缩放和偏置,那就要提取特色了,首先基于输出特色\( X \)进行线性操作获取特色图\( K \)和\( V \)
- 而后,VSA模块依据缩放和偏置在\( K$和\( V \)上进行特征提取,失去\( K_{k, v}, V_{k, v} \in R^{M×N×C^{\prime}} \)
- 最初将\( K_{k, v}, V_{k, v}, Q_w \)输出到多头自注意力模块MHSA中
CPE模块
因为窗口变形会导致地位信息的变动,使得Q和K V的地位信息呈现偏差,论文应用了条件地位编码CPE(来自CPVT论文)来解决这个问题
试验
ImageNet分类工作
MS COCO指标检测和实例宰割工作
Cityscapes语义宰割工作
融化试验
可视化