FCViT:从注意力到卷积,对空间建模进一步思考
-
论文标题:A Close Look at Spatial Modeling: From Attention to Convolution
论文地址:https://arxiv.org/pdf/2212.12552.pdf
代码地址:https://github.com/ma-xu/FCViT
摘要
- 背景介绍: 由于有洞察力的架构设计和注意力机制,Vision Transformers最近在许多视觉任务中表现出了巨大的前景。
- 现存问题: 通过重温 Transformer中的自注意,作者观察到了两个有趣的问题。首先,Vision Transformer在深层呈现一种查询query无关的行为,其中注意图在全局范围内表现出几乎一致的上下文,而与查询patches的位置无关(也是head无关的)。其次,注意图本质上是稀疏的,只有很少的标记主导了注意权重;引入ConvNet的知识将在很大程度上平滑注意力,提高性能。
- 解决方法: 在上述观察的基础上,作者将自注意公式推广到直接抽象一个与问题无关的全局语境,并进一步将该全局语境整合到卷积中。该模型完全由卷积层组成,继承了注意机制和卷积机制的优点,包括动态特性、权值分配、短程和长程特征建模等。
- 实验结果: 在少于14M参数的情况下,FCViT-S12在ImageNet-1K上的性能比相关工作REST-Lite高3.7%。当将FCViT扩展到更大的版本时,仍然使用更少的参数,比以前最先进的ConvNeXt表现更好。基于FCViT的模型也显示出向下游任务的良好可转移性,如对象检测、实例分割和语义分割。
算法
通过回顾自注意力和卷积,我们首先在一个统一的操作中架起了自注意力和卷积的桥梁。仔细观察ViTS中的注意力图也证明了将卷积和注意结合起来的必要性。 受此启发,提出了一种简单但有效的类似transformer的架构来验证该发现。图3直观地显示了FCViT的一个构建块。
自注意力:
在形式上,给定输入特征映射X∈Rd×n,其中d是嵌入维度,n表示patches数量,自注意力机制自适应地聚集每个patch的全局信息
卷积:
不同的是,卷积公式可以写为
观察:
- 注意图始终显示出与查询无关(甚至与heads无关)的行为。从视觉上看,对于每个测试模型和图像,关注图w(qi,kj)似乎几乎相同,而与查询patchqi无关。这与自注意力的设计哲学背道而驰,即每个patch都应该显示出不同的注意力图。
- 注意力权重(参见Vit-B、ViTL和Deit-B)相对稀疏,表明只有几个patches主导注意力。通过引入卷积,注意力权重(参见Deit-B提取)得到了很大程度的平滑,性能也得到了显著提高(Deit-B提取的83.4%,而在ImageNet-1K验证集上的Deit-B top-1准确率为81.8%)
受到上述观察的启发,重新审视了自注意机制,并将其与卷积联系起来。给定等式1,首先按照观察1所暗示的那样移除查询patch。由此产生的简化注意力可以写成
此外,如观察2所示,鼓励将注意机制和卷积合并为一个统一的提法。一个简单的实现,桥接等式3和等式2:
从概念上讲,等式4将全局上下文引入到每个块中,并利用卷积来聚集局部信息。基于Eq.4、有效地将全局信息引入到局部块中,避免了两个单独操作的组合。同时,通过使用等式3中实现的全局上下文,显著降低了自注意力的计算复杂度。 此外,方程4可以很容易地通过卷积层实现,使得模型简洁而有效。接下来,基于上述分析实例化FCViT
FCViT遵循MetaFormer的框架,它采用层次化的体系结构,分4个阶段逐步减小空间尺寸。
在给定一幅输入图像的情况下,首先利用重叠块嵌入的方法对图像进行线性映射。在每个阶段,利用一系列各向同性的FCViT块来提取特征。FCViT块包括Token-mixer和channel-mixer两个独立的模块(以及残余连接和层归一化),如图3所示。最后,使用分类器生成分类logits。通过改变FCViT块数和通道数量,通过FCViT-Tiny、FCViT-B12和FCViT-B24等实例化FCViT。
接下来,将描述FCViT的详细设计。
Token-mixer中增强全局上下文
根据公式4、我们的Token-mixer根据一下公式实现:
其中,conv1是point-wise卷积,convk是核大小为k的深度卷积。为方便起见,用conv来表示这两个卷积的组合。在等式5中重复两次这个操作以达到最佳模型尺寸和精度的折衷。具体地说,为了简单起见,通过平均池化而不是Softmax来使全局上下文正则化。
动态全局上下文。直接将全局上下文gc∈Rd与输入特征X∈Rd×w×h融合可能导致有限的改进,因为对于X中的每个patch相等地广播gc。换言之,等式5可以重写为
等式7显式地证明了直接融合gc和xi等同于在卷积之外融合gc。因此,期待一种基于输入X的融合全局上下文和偏置的动态融合方案。
通过提高token-global相似性来绕过这个问题。为了清楚起见,我们将
。相似度分数S∈Rw×h由
给出,它计算每个patch Xi和全局平均池化
之间的关系。通过以下方式重新衡量相似度并更新gc:
其中α和β是可学习的标量;μS和σS是S的平均值和标准差;
=1e−5表示数值稳定性。 我们使用S‘和gc’分别表示归一化的S和更新后的gc。通过这样做,每个patch根据相似度动态地整合全局上下文。
实验
在ImageNet-1K、MS COCO和ADE20K数据集上验证了FCViT。
ImageNet-1K
目标检测和实例分割
消融实验
核大小
全局上下文