1简介
近年来,卷积和Self-Attention在计算机视觉领域得到了长足的发展。卷积神经网络广泛应用于图像识别、语义分割和目标检测,并在各种基准上实现了最先进的性能。最近,随着Vision Transformer的出现,基于Self-Attention的模块在许多视觉任务上取得了与CNN对应模块相当甚至更好的表现。
尽管这两种方法都取得了巨大的成功,但卷积和Self-Attention模块通常遵循不同的设计范式。传统卷积根据卷积的权值在局部感受野上利用一个聚合函数,这些权值在整个特征图中共享。固有的特征为图像处理带来了至关重要的归纳偏差。
相比之下,Self-Attention模块采用基于输入特征上下文的加权平均操作,通过相关像素对之间的相似函数动态计算注意力权重。这种灵活性使注意力模块能够适应地关注不同的区域,并捕捉更多的特征。
考虑到卷积和Self-Attention的不同和互补性质,通过集成这些模块,存在从两种范式中受益的潜在可能性。先前的工作从几个不同的角度探讨了Self-Attention和卷积的结合。
早期的研究,如SENet、CBAM,表明Self-Attention可以作为卷积模块的增强。最近,Self-Attention被提出作为独立的块来替代CNN模型中的传统卷积,如SAN、BoTNet。
另一种研究侧重于将Self-Attention和卷积结合在单个Block中,如 AA-ResNet、Container,而该体系结构限于为每个模块设计独立的路径。因此,现有的方法仍然将Self-Attention和卷积作为不同的部分,并没有充分利用它们之间的内在关系。
在这篇论文中,作者试图揭示Self-Attention和卷积之间更为密切的关系。通过分解这两个模块的操作表明它们在很大程度上依赖于相同的卷积操作。作者基于这一观察结果开发了一个混合模型,名为ACmix,并以最小的计算开销优雅地集成了Self-Attention和卷积。
具体地说:
- 首先,通过使用卷积对输入特征进行映射,获得丰富的中间特征集;
- 然后,按照不同的模式(分别以Self-Attention方式和卷积方式)重用和聚合中间特征。
通过这种方式,ACmix既享受了两个模块的优点,又有效地避免了两次昂贵的投影操作。
主要贡献:
- 揭示了Self-Attention和卷积之间强大的潜在关系,为理解两个模块之间的联系提供了新的视角,并为设计新的学习范式提供了灵感;
- 介绍了Self-Attention和卷积模块的一个优雅集成,它享受这两者的优点。经验证据表明,混合模型始终优于其纯卷积或Self-Attention对应模型。
2相关工作
卷积神经网络使用卷积核提取局部特征,已经成为各种视觉任务中最强大和最常规的技术。同时,Self-Attention在BERT和GPT3等广泛的语言任务中也表现出普遍的表现。理论分析表明,当具有足够大的容量时,Self-Attention可以表示任意卷积层的函数类。因此,最近有一项研究探讨了将Self-Attention引入视觉任务的可能性。
主流方法有两种:
- 一种是将Self-Attention作为网络中的构建块;
- 另一种是将Self-Attention与卷积作为互补部分。
2.1 Self-Attention only
一些研究表明,Self-Attention可以成为完全替代卷积操作。最近,Vision Transformer表明,只要有足够的数据,就可以将图像视为由256个token组成的序列,并利用Transformer模型来实现图像识别中的竞争性结果。此外,在检测、分割、点云识别等视觉任务中采用了Transformer范式。
2.2 用注意力提升卷积
先前提出的多种图像注意力机制表明,它可以克服卷积网络局部性的局限性。因此,许多研究者探索使用注意力模块或利用更多的关系信息来增强卷积网络功能的可能性。
- Squeeze-andExcitation(SE)和Gather-Excite(GE) Reweight每个通道的特征图。
- BAM和CBAM Reweight 通道和空间位置,以更好地细化特征映射。
- AA-ResNet通过连接来自另一个独立的Self-Attention的注意力map,增强了某些卷积层。
- BoTNet用Self-Attention代替卷积。
一些工作旨在通过从更大范围的像素聚集信息,设计一个更灵活的特征提取器。Hu等人提出了一种局部关系方法,根据局部像素的组成关系自适应地确定聚集权值。Wang等人提出了Non-Local网络,通过引入全局像素之间相似性的Non-Local块来增加感受野。
2.3 用卷积提升注意力
随着Vision Transformer的问世,许多基于Transformer的变种已经被提出,并在计算机视觉任务上取得了显著的改进。其中已有的研究主要集中在对Transformer 模型进行卷积运算以引入额外的归纳偏差。
- CvT在Token过程中采用卷积,并利用卷积来降低Self-Attention的计算复杂度。
- ViT with convolutional stem提出在早期增加卷积以实现更稳定的训练。
- CSwin Transformer采用了基于卷积的位置编码技术,并对下游任务进行了改进。
- Conformer结合Transformer与一个独立的CNN模型集成这两个功能。
3旧知识回顾
3.1 卷积操作
卷积是现代ConvNets最重要的组成部分之一。首先回顾标准卷积运算,并从不同的角度重新表述它。如图2(a)所示。为简单起见,假设卷积的步长为1。
考虑一个的标准卷积,其中k为kernel size,、是输入和输出通道的大小。
已知输入张量和输出张量,其中H、W表示高度和宽度,让、作为像素分别对应于F和G。则标准卷积可表示为:
表示kernel position(p,q)的kernel weights。
为方便起见,可以将式(1)改写为来自不同kernel position的feature map的总和:
为了进一步简化公式,定义了Shift操作,
as
∆x、∆y为水平位移和垂直位移。则式(3)可改写为:
因此,标准卷积可以概括为2个stages:
图2(a)
- 第一阶段:将输入的feature map从某一位置线性投影,这与标准的1×1卷积相同。
- 第二阶段:将投影的feature map根据kernel position进行移位,最终聚合到一起。可以很容易地观察到,大多数计算代价是在1×1卷积中执行的,而接下来的位移和聚合是轻量级的。
3.2 Self-Attention操作
注意力机制也被广泛应用于视觉任务中。与传统卷积相比,注意力允许模型在更大的范围内聚焦于重要区域。如图2(b)所示。
考虑一个有N个Head的标准Self-Attention模块。令输入张量和输出张量和,其中H、W表示高度和宽度,让、作为像素分别对应于F和G。然后,注意力模块的输出计算为:
是N个注意力头输出的拼接,,,是query,key和value的投影矩阵。表示像素的局部区域,空间范围k以为中心,是对应于内特征的注意力权重。
对于广泛采用的自注意力模块,注意力权重的计算方法为:
其中d为的特征维数。
此外,多头自注意力可以分解为两个阶段,并重新表述为:
图2(b)
- 第一阶段:使用1×1卷积将输入特征投影为query、key和value;
- 第二阶段:包括注意力权重的计算和value矩阵的聚合,即聚集局部特征。与第一阶段相比,相应的计算代价较小,与卷积的模式相同。
3.3 Computational Cost
为了充分了解卷积模块和自注意力模块的计算瓶颈,作者分析了每个阶段的浮点运算(FLOPs)和参数数量,总结如表1所示。
结果表明:
- 对于卷积模块:卷积阶段一的理论FLOPs和参数相对于通道大小C具有二次复杂度,而阶段二的计算代价为线性C,不需要额外的训练参数。
- 对于自注意力模块:发现了类似卷积的趋势,所有的训练参数都保留在阶段一。对于理论的FLOPs,考虑了一个正常的情况在一个类似ResNet的模型中,= 7和C=64,128,256,512不同的层深度。结果表明,第一阶段消耗的操作量为,并且这种差异随着通道大小的增长而更加明显。
为了进一步验证分析的有效性,作者还总结了在ResNet50模型中卷积和自注意力模块的实际计算成本。实际上,将所有3×3卷积模块的成本加起来,以从模型的角度反映这种趋势。计算结果表明,99%的卷积计算和83%的自注意力在第一阶段,与理论分析相一致。