以下文章来源于集智书童 ,作者ChaucerG
机器学习知识点总结、深度学习知识点总结以及相关垂直领域的跟进,比如CV,NLP等方面的知识。
Paper链接: https://arxiv.org/abs/2111.14556
近年来,卷积和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既享受了两个模块的优点,又有效地避免了两次昂贵的投影操作。
主要贡献:
1. 揭示了Self-Attention和卷积之间强大的潜在关系,为理解两个模块之间的联系提供了新的视角,并为设计新的学习范式提供了灵感;
2. 介绍了Self-Attention和卷积模块的一个优雅集成,它享受这两者的优点。经验证据表明,混合模型始终优于其纯卷积或Self-Attention对应模型。
二、相关工作
卷积神经网络使用卷积核提取局部特征,已经成为各种视觉任务中最强大和最常规的技术。同时,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模型集成这两个功能。
表示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卷积中执行的,而接下来的位移和聚合是轻量级的。
注意力机制也被广泛应用于视觉任务中。与传统卷积相比,注意力允许模型在更大的范围内聚焦于重要区域。如图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%的自注意力在第一阶段,与理论分析相一致。
四、本文方法
4.1 将自注意力与卷积联系起来
4.2 自注意力与卷积的整合
具体来说,ACmix依旧包括两个阶段:
1. 在第一阶段:通过3个1×1卷积对输入特征进行投影,然后reshape为N个Pieces。因此,获得了包含3×N特征映射的一组丰富的中间特征。
因此,对于特定的位移方向,经过精心设计的kernel weight,卷积输出相当于简单张量位移。为了进一步合并来自不同方向的特征的总和,作者将所有的输入特征和卷积核分别串联起来,将移位运算表示为单群卷积,如图3 (c.I)所示。这一修改使模块具有更高的计算效率。
在此基础上还引入了一些适应性来增强模块的灵活性。所示在图3 (c.II)中,释放卷积核作为可学习权值,以移位核作为初始化。这提高了模型的容量,同时保持了原有的移位操作能力。还使用多组卷积核来匹配卷积的输出通道维数和自注意力路径,如图3 (c.III)所示。
随着自注意力机制的发展,许多研究都集中在探索注意力的变化,以进一步提升模型性能。有学者提出的Patchwise attention将来自局部区域所有特征的信息合并为注意力权重,取代原来的softmax操作。swin-transformer采用的窗口注意力方法在同一局部窗口中保持token的感受字段相同,以节省计算成本,实现快速推理速度。另一方面,ViT和DeiT考虑将长期依赖关系保持在单个层中的全局注意力。在特定的模型体系结构下,这些修改被证明是有效的。
在这种情况下,值得注意的是,提出的ACmix是独立于自注意力公式的,并且可以很容易地应用到上述的变体。具体来说,注意力权重可以概括为:
分类结果如上图表所示。对于ResNet-ACmix模型优于所有具有可比较的浮点数或参数的Baseline。
例如,ResNet-ACmix 26实现了与SASA-ResNet 50相同的top-1精度,但执行次数为80%。在类似的FLOPs案例中,本文的模型比SASA的表现好0.35%-0.8%,而相对于其他Baseline的优势甚至更大。
对于SANACmix、PVT-ACmix和Swin-ACmix,本文的模型实现了持续的提升。SAN- acmix 15以80%的FLOPs超过SAN 19。PVT-ACmix-T显示出与PVT-Large相当的性能,只有40%的FLOPs。Swin-ACmix-S以60% FLOPs实现了比Swin-B更高的精度。
作者在ADE20K数据集中评估了模型的有效性,并在Semantic-FPN 和UperNet两种分割方法上显示结果。在ImageNet-1K上预训练Backbone。事实证明
ACmix在所有设置下都实现了提升。
同样值得注意的是,ACmix引入了两个可学习标量 、 来合并来自两个路径的输出。这导致了模块的一个副产品,其中 和 实际上反映了模型在不同深度上对卷积或自注意力的偏向。
这里进行了平行实验,图5显示了SAN-ACmix模型和Swin-ACmix 模型中不同层学到的参数 、 。左图和中间图分别显示了自注意力和卷积路径速率的变化趋势。在不同的实验中,速率的变化相对较小,特别是当层更深时。
这个观察结果表明,对于不同的设计模式,深度模型具有稳定的偏好。在右边的图中显示了一个更明显的趋势,其中两个路径之间的比率被明确地表示出来。可以看到:
· 在Transformer模型的早期阶段,卷积可以作为很好的特征提取器。
· 在网络的中间阶段,模型倾向于利用两种路径的混合,对卷积的偏向越来越大。
· 在最后阶段,自注意力表现出比卷积更大的优势。这也与之前作品的设计模式一致,即在最后阶段多采用自注意力来代替原来的3x3卷积,早期的卷积被证明对vision transformer更有效。
通过分析 和 的变化发现在深度模型的不同阶段对卷积和自注意力有不同的偏向。
参考文献
[1].On the Integration of Self-Attention and Convolution
本文来自:公众号【集智书童】
作者:ChaucerG
Illustrastion by By Thierry Fousse from icons8
扫码观看!
本周上新!
关于我“门”
▼
点击右上角,把文章分享到朋友圈
点击“阅读原文”按钮,查看社区原文
⤵一键送你进入TechBeat快乐星球