全新Backbone | 模拟CNN创造更具效率的Self-Attention

技术

picture.image

picture.image

在本文中提出了一种新的注意力机制,称为 交叉注意力交叉注意力通过交替应用图像 Patch内部的注意力而不是整个图像来捕获局部信息,并在单通道特征图分割出来的图像 Patch之间应用注意来捕获全局信息。变压器的计算量都不如标准的自注意,而不是像 ViT那样通过整个图像来捕获全局信息。picture.image通过内部 PatchPatch间的交替应用,实现了 交叉注意力,以较低的计算成本保持了性能,并为其他视觉任务建立了 Cross Attention Transformer(CAT)的层次网络。本文的基础模型在ImageNet-1K上取得了最先进的水平,并提高了在COCO和ADE20K上的其他方法的性能。

1

CAT

1.1 CAT概览

该方法旨在将 Patch内的注意力和 Patch间的注意力结合起来,通过叠加基本块构建分层网络,可以简单地应用于其他视觉任务。如图2(a)所示,首先,将输入图像简化为,(实验中P=4),并参照 ViTPatch处理模式,增加到的通道数。然后,利用多个 CAT层进行不同尺度下的特征提取。

picture.image 图2

第1阶段 :将 Patch数为, Patch的shape为进行 Patch Embedding,然后输入到几个 Cross-Attention Blocks,然后得到第1个阶段输出的特征图的shape为;

第2阶段 :将第1个阶段输出的特征图输入到 Patch Projection 进行下采样,将 2×2×Cpixel block2×C变为 1×1×4C,然后通过线性投影层投影到 1×1×2C,让特征图的尺度减半通道加倍,然后输入到几个 Cross-Attention Blocks,然后得到第2个阶段输出的特征图的shape为;

第3阶段 :将第2个阶段输出的特征图输入到 Patch Projection 进行下采样,然后输入到几个 Cross-Attention Blocks,然后得到第3个阶段输出的特征图的shape为;

第4阶段 :将第3个阶段输出的特征图输入到 Patch Projection 进行下采样,然后输入到几个 Cross-Attention Blocks,然后得到第4个阶段输出的特征图的shape为;

经过4个阶段后可以得到、、、,4种不同尺度和维度的特征图。与典型的基于 CNN的网络一样,可以为其他下游视觉任务提供不同尺度的特征图。

1.2 Inner-Patch Self-Attention Block

在计算机视觉中,每个像素都需要一个特定的通道来表示其不同的语义特征。与NLP中的单词 Token类似,理想的方法是将特征映射的每个像素作为 Token(例如,ViT,DeiT),但是计算成本太大了。如式1所示,计算复杂度随输入图像的分辨率呈指数级增长。

例如,在传统的 RCNN系列的方法中,输入的短边至少为800像素,而 YOLO系列也需要超过500像素的图像。大多数语义分割方法也需要512像素边长的图像。在训练前阶段,计算成本至少是224个像素的5倍。

picture.image

受CNN局部特征提取特征的启发,作者将 CNN中的卷积局部性方法引入到 Transformer中,对每个 Patch进行每像素的自注意力,称为内 Inner-Patch Self-Attention(IPSA),如图3(a)所示,把一个 Patch视为一个注意力范围,而不是整个图像。同时, Transformer可以根据输入生成不同的注意力图,与固定参数下的 CNN相比具有显著优势,与卷积法中的动态参数相似,在 Conditional Convolutions中被证明是有益的。 TNT也揭示了像素之间的注意力也是至关重要的。而本文的注意力方法显著减少了计算,同时考虑了 Patch中像素之间的关系。计算公式如下:

picture.image

其中,N是 IPSA中的 Patch size。与标准 Transformer中的 MSA相比,计算复杂性从与H ×W二次相关变为与H ×W线性相关。

假设 H,W=56 C=96 N=7 那么,根据 MSA计算 FLOPs MSA ≈ 2.0G,如果使用 IPSA FLOPs IPSA ≈ 0.15G,这要少得多。

picture.image 图3(a)

1.3 Cross-Patch Self-Attention Block

添加像素之间的注意力机制只能保证捕捉到一个 Patch内像素之间的相互关系,但整个图像的信息交换也是相当重要的。在基于 CNN的网络中,堆叠卷积核通常会扩展感受野。为了获得更大的感受野,提出了 Dilated/Atrous Convolution,并在实践中获得了不错的效果。

Transformer天生便能够捕获全局信息,但像 ViTDeit这样的工作最终并不是最好的分辨率。

因为每个单通道特征图都具有全局空间信息,因此作者提出了 Cross-Patch Self-Attention,将每个通道特征图分离,将每个通道划分为的 Patch,并利用 Self-Attention在整个特征图中获取全局信息。这类似于在 XceptionMobileNet中使用的 深度可分离卷积Cross-Patch Self-Attention的计算方法可以计算如下:

picture.image

其中N为 CPSA中的 Patch size,H、W分别表示特征图的高度和宽度。计算成本小于 ViT和其他基于全局关注的方法。同时,如图2(b)所示,结合 MobileNet设计,叠加 IPSA BlockCPSA Block,提取和整合一个特征块中像素之间和一个特征图中 Patch之间的特征。与 Swin中手动设计的 Shift Window相比,不仅难以实现,而且难以捕获全局信息,本文提出的窗口是合理的,更容易理解。 FLOPs CPSA约为0.1G,远小于 MSA的2.0G。

picture.image 图2(b)

在初始 Transformer论文中提出了 Multi-head Self-Attention机制。在NLP中,每个 Head可以注意到单词之间不同的语义信息。在计算机视觉中,每个 Head可以注意到图像 Patch之间不同的语义信息,这与基于 CNN的网络中的通道相似。

CPSA中将 Head的数量设置为 Patch size,使一个 Head的尺寸等于 Patch size,这对性能无用处。

Position encoding

IPSA中采用 相对位置编码,而对于在完整的单通道特征图上进行 Self-AttentionCPSA,在嵌入在 Patch嵌入层中的特征中添加 绝对位置编码,可以形成如下:

picture.image

ab.pos表示 绝对位置编码Patch.Emb绝对位置编码CPSA中有助于提高性能。

1.4 Cross Attention based Transformer

如图2(b)所示, Cross Attention Block由2个 Inner-Patch Self-Attention Block和1个 Cross-Patch Self-Attention Block组成, CAT层由多个 CAB组成,网络的每个阶段由不同数量的 CAB层和1个 Patch Embedding层组成,如图2(a)所示, CABPipeline如下:

picture.image

其中,是具有 LN的一个Block(例如,IPSA,MLP)的输出。表1详细说明了CAT不同变体的模型配置。

picture.image 表1

2

实验

3.1 消融实验

1、Patch Embedding function

picture.image

作者比较了卷积和切片方法:

前者进行kernel-size为4,stride为4卷积来将图像的分辨率降低为原图的1/4,后者切片输入从H×W×H×C到H/S×W/S×SC。表5中的结果表明,这两种方法具有相同的性能。为了更好地与其他工作对比,作者选择了卷积方法作为默认配置。

2、Multi-head and shifted window

picture.image

如表5所示。为了研究Swin中的shifted window,作者也进行了实验。结果表明,shifted操作在CAT架构中表现并不好。

3.2 SOTA对比

1、图像分类

picture.image

2、目标检测

picture.image

3、语义分割

picture.image

3

参考

[1].CAT: Cross Attention in Vision Transformer

4

推荐阅读

Sparse R-CNN升级版 | Dynamic Sparse R-CNN使用ResNet50也能达到47.2AP

NAS-ViT | 超低FLOPs与Params实现50FPS的CPU推理,精度却超越ResNet50!!!

CVPR2022 Oral | CosFace、ArcFace的大统一升级,AdaFace解决低质量图像人脸识

长按扫描下方二维码添加小助手并加入交流群, 群里博士大佬云集, 每日讨论话题有目标检测、语义分 割、 超分辨率、模型部署、数学基础知识、算法面试题分享的等等内容,当然也少不了搬砖人的扯犊子

长按扫描下方二维码添加小助手。

可以一起讨论遇到的问题

picture.image

声明:转载请说明出处

扫描下方二维码关注【 集智书童 】公众号,获取更多实践项目源码和论文解读,非常期待你我的相遇,让我们以梦为马,砥砺前行!

picture.image

picture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
大规模高性能计算集群优化实践
随着机器学习的发展,数据量和训练模型都有越来越大的趋势,这对基础设施有了更高的要求,包括硬件、网络架构等。本次分享主要介绍火山引擎支撑大规模高性能计算集群的架构和优化实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论