此文章根据论文内容和本人的见解撰写而成,希望对你有所帮助。
如有疑问,欢迎评论区一起探讨。
On the Integration of Self-Attention and Convolution
关于自注意力与卷积的整合
目录
一、摘要
二、结论
三、ACmix & Conv & Self-Attention
四、 重新审视卷积和自注意力
(1)卷积(计算过程)
(2)自注意力模块(计算过程)
五、模型解析
(1)卷积和自注意力之间的关系
(2)卷积和自注意力的整合
(3)改进的移位和求和
(4)泛化到其他注意模式
(5)Acmix的计算成本
六、图像分类和目标检测方面的实验(本人只研究这两方面)
(1)ImageNet分类
(2)下游任务之一:目标检测
(3)推理速度和消融研究
(4)α and β
(4)位置嵌入
卷积和自注意力是两种强大的表示学习技术,通常被认为是两种不同的对等方法。在本文中,我们证明了它们之间存在着很强的内在联系,即这两种范式的计算量实际上是以相同的运算完成的。具体来说:
因此,两个模块的第一阶段都包含类似的操作。更重要的是,与第二阶段相比,第一阶段贡献了一个主要的计算复杂性( 通道尺寸的平方 )。这种观察自然导致了这两种看似截然不同的范式的完美结合,即一种混合模型,它同时具有自注意力和卷积的优点( ACmix ),同时与纯卷积或自注意力模型相比具有最小的计算开销。大量实验表明,我们的模型在图像识别和下游任务上取得了比竞争基线一致的改进结果。
论文链接:[2111.14556] On the Integration of Self-Attention and Convolution (arxiv.org)
代码链接:GitHub - LeapLabTHU/ACmix: Official repository of ACmix (CVPR2022)
预训练模型:models: Models of MindSpore (gitee.com)
在本文中,我们探讨了两个强大的技术,卷积和自注意力之间的密切关系。通过分解这两个模块的操作,我们表明它们在投影输入特征图时具有相同的计算开销。在此基础上,我们又向前迈进了一步,提出了一种混合算子,通过共享相同的繁重操作来集成自注意力和卷积模块。在图像分类和目标检测基准上的广泛结果证明了所提算子的有效性和高效性。
图1 ACmix示意图
如图1 所示,在共享相同的计算开销( 1 × 1卷积 )的意义上,并结合剩余的轻量级聚合操作,我们探索了卷积和自注意力之间更密切的关系。我们展示了特征通道中每个块的计算复杂度。
1. 逐渐崛起的自注意力:近年来,卷积和自注意力在计算机视觉领域得到了广泛的发展。卷积神经网络( CNNs )被广泛应用于图像识别、语义分割和目标检测,并在各种基准上取得了最先进的性能。另一方面,自注意力首次被引入到自然语言处理中,并在图像生成和超分辨率等领域表现出巨大的潜力。最近,随着ViT的出现,基于注意力的模块在许多视觉任务上取得了与CNN相当甚至更好的性能。
2. 卷积与自注意力的比较:尽管这两种方法都取得了巨大的成功,但卷积和自注意力模块通常遵循不同的设计范式。传统的卷积根据卷积滤波器权重在局部感受野上使用聚合函数,这些权重在整个特征图中共享。固有特性为图像处理带来了关键的归纳偏差。相比之下,自注意力模块采用基于输入特征上下文的加权平均操作,其中注意力权重通过相关像素对之间的相似度函数动态计算。灵活性使注意力模块能够自适应地关注不同区域,并捕获更多的信息特征。
3. 卷积与自注意力的初步结合:考虑到卷积和自注意力的不同和互补特性,存在通过集成这些模块从两种范式中获益的潜在可能性。之前的工作已经从几个不同的角度探索了自注意力和卷积的结合。早期的研究,如SENet [ 23 ],CBAM [ 47 ],表明自注意力机制可以作为卷积模块的增强。最近,自注意力模块被提出作为单独的块来替代CNN模型中的传统卷积,如SAN [ 54 ]、Bo TNet [ 41 ]。另一类研究集中在将自注意力和卷积结合在单个模块上,如AA - ResNet [ 3 ]、Container [ 17 ]等,而该架构在为每个模块设计独立的路径上受到限制。因此,现有的方法仍然将自注意力和卷积视为不同的部分,它们之间的潜在关系还没有得到充分的利用。
4. SO,我们的机会来了:在本文中,我们试图挖掘自注意力和卷积之间更紧密的联系。通过分解这两个模块的操作,我们表明它们严重依赖于相同的1 × 1卷积操作。基于这一观察,我们开发了一个名为ACmix的混合模型,并以最小的计算开销巧妙地集成了自注意力和卷积。具体来说,
通过这种方式,ACmix享受了这两个模块的好处,并且有效地避免了进行两次昂贵的投影操作。
5. 综上所述,我们的贡献有两方面:
卷积和自注意力以其目前的形式已经广为人知。为了更好地捕获这两个模块之间的关系,我们通过将它们的操作分解为不同的阶段,从一个新的角度重新审视它们。
图2 ( a ) pipeline of traditional convolution
卷积是现代ConvNets最重要的部分之一。我们首先回顾一下标准的卷积操作,并从一个不同的角度对其进行重新建模。插图如图2 ( a )所示。为了简单起见,我们假设卷积步幅为1。
考虑一个核为 的标准卷积,其中 k 为核尺寸,分别为输入和输出通道尺寸。给定张量为输入和输出特征图,其中H,W分别表示高度和宽度,记 分别为 F 和 G 对应的像素 (i, j) 的特征张量。然后,可以将标准卷积表示为:(输出的特征张量 = 权重 × 输入的特征张量)
为了方便起见,我们可以重写方程。公式( 1 )作为来自不同内核位置的特征映射的总和:
其中 Δ x,Δ y 分别对应水平和垂直位移。然后,等式( 3 )可以改写为:
因此,标准卷积可以概括为两个阶段:
图2 ( b ) pipeline of self-attention modules
注意力机制在视觉任务中也得到了广泛的应用。与传统的卷积相比,注意力允许模型在更大的上下文中关注重要的区域。我们展示了图2 ( b )中的插图。
考虑一个具有 N 个头的标准自注意力模块。令表示输入和输出特征。令表示像素 ( i , j) 对应的张量。然后,注意力模块的输
计算为:[ 输出特征 = 多个注意力头的串联( 注意力权重 × Value ) ]
其中 || 是 N 个注意力头的输出的串联( concatenation ),分别是查询、键和值的投影矩阵。表示以 ( i , j ) 为中心的像素空间范围为 k 的局部区域,是对应于内特征的注意力权重。分配给Value的注意力权重的大小取决于query和key的匹配相似度。
对于《Local relation networks for image recognition》《Stand-alone self-attention in vision models》中广泛采用的自注意力模块,注意力权重计算如下:
此外,多头自注意力可以分解为两个阶段,并重新表述为:
与传统卷积类似,自注意力模块的pipeline也可以分为两个阶段:
前面讲述自注意力和卷积模块的分解,从不同角度揭示了更深层次的关系。首先,这两个阶段发挥着非常相似的作用。阶段 I 是一个特征学习模块,两种方法通过执行1 × 1卷积将特征投影到更深的空间来共享相同的操作。另一方面,阶段 II 对应着特征聚合的过程,尽管他们的学习范式存在差异。
从计算的角度来看,在卷积和自注意力模块的第一阶段进行的1 × 1卷积需要理论FLOP和关于通道大小 C 的参数的二次复杂度。相比之下,在阶段 II,两个模块都是轻量级的或几乎没有计算。
总之,上述分析表明:
图2 ( c ) ACmix。第一阶段,对输入特征图进行3个1 × 1卷积投影。第二阶段,中间特征分别使用以下两种范式。来自两个路径的特性被添加到一起并作为最终输出。每个操作块的计算复杂度在上角标出。
上述观察自然会导致卷积和自注意力的优雅整合。由于两个模块共享相同的1 × 1卷积操作,因此我们只执行一次投影,并分别为不同的聚合操作重用这些中间特征图。我们提出的混合模型ACmix的示意图如图2 ( c )所示。
具体来说,ACmix也包括两个阶段。Stage I 阶段:输入特征被3个1 × 1卷积投影,并分别被重塑为N块。这样,我们得到了一个包含3 × N个特征图的丰富的中间特征集。
Stage II 阶段:
对于自注意力路径,我们将中间特征聚集成 N 组,每组包含3个特征图,每个特征来自1 × 1卷积。对应的3个特征图分别作为查询、键和值,遵循传统的多头自注意力模型( 公式(12) )。
对于内核大小为 k 的卷积路径,我们采用一个轻量级的全连接层( 3N×(k^2)N )并生成 k^2 个特征图,共有 N 组。因此,通过对生成的特征进行平移和聚合( 公式(7)(8) ),我们以卷积的方式处理输入特征,并像传统的方法一样从局部感受野中收集信息。
最后,两条路径的输出相加,强度由两个可学习的标量控制:
传统的移位和求和:
卷积路径中的中间特征遵循传统卷积模块中的移位和求和操作。尽管它们在理论上是轻量级的,但向各个方向移动张量实际上破坏了数据局部性,很难实现向量化实现。这可能会极大地损害我们模块在推断时刻的实际效率。
改进的移位和求和:
图3 对移位操作的实际改进。
作为一种补救措施,我们使用带有固定核的深度卷积代替低效的张量偏移,如图3 ( b )所示。以为例,移位特性计算如下:
我们进行了并行实验,并在图5 ( 见下文 )中显示了从SAN - ACmix和Swin - ACmix模型的不同层学习到的参数α、β。式中:c 表示输入特征的每个通道。
另一方面,如果我们将卷积核(内核大小 k = 3)表示为:
相应的输出可以表示为:
因此,在针对特定偏移方向精心设计核权重的情况下,卷积输出等价于简单的张量偏移( 公式(14) )。为了进一步合并来自不同方向的特征的总和,我们将所有输入特征和卷积核分别连接起来,并将移位操作表示为单组卷积,如图3 ( c I )所示。这种修改使得我们的模块具有更高的计算效率。
在此基础上,我们额外引入了几种适配,以增强模块的灵活性。如图3 ( c II ),我们释放卷积核作为可学习的权重,以偏移核作为初始化。这样在保持原有移位运算能力的同时提高了模型的容量。我们还使用多组卷积核来匹配卷积和自注意力路径的输出通道维度,如图3 ( c III )所示。。
随着自注意力机制的发展,许多研究集中于探索注意力算子的变化,以进一步提升模型性能。文献《Exploring self-attention for image recognition》提出的Patchwise Attention将局部区域内所有特征的信息作为注意力权重来代替原有的softmax操作。Swin-Transformer 采用的窗口注意力机制使同一个局部窗口内的 token 保持相同的感受野,以节省计算成本并实现快速推理。另一方面,ViT和DeiT考虑在单层内保留长程依赖的全局注意力。这些修改被证明是有效的非特定模型体系结构。
在这种情况下,值得注意的是,我们提出的 ACmix 是独立于自注意力配方的,并且可以很容易地采用上述变体。具体来说,注意力权重可以概括为:
式中:
然后,将计算得到的注意力权重应用于公式( 12 )且符合一般形式。
为了充分理解卷积和自注意力模块的计算瓶颈,我们分析了每个阶段的浮点运算( FLOP )和参数数量,并在表1 中进行了总结。结果表明,卷积第一阶段的理论FLOP和参数关于通道大小C具有二次复杂度,而第二阶段的计算成本与C成线性关系,并且不需要额外的训练参数。
对于自注意力模型,也发现了类似的趋势,其中所有的训练参数都保留在阶段I 。对于理论FLOPs,我们考虑了一个ResNet-like模型中的正常情况,其中 and C = 64,128,256,512,不同的层深度。可以清楚地看到,当时,Stage I 的操作量更大,且随着信道规模的增大,这种差异更加明显。
为了进一步验证我们分析的有效性,我们还在表1 中总结了ResNet50模型中卷积和自注意力模块的实际计算成本。我们实际上加总了所有3 × 3卷积(或自注意力)模块的成本,以从模型角度反映趋势。结果表明,99 %的卷积计算和83 %的自注意力都是在阶段I 进行的,这与我们的理论分析是一致的。
表1 两个阶段中不同模块的FLOP和参数
为了更好地进行比较,我们在表1 中总结了ACmix的FLOP和参数。第一阶段的计算成本和训练参数与自注意力相同,并且比传统的卷积(例如, 3 × 3 conv)更轻。在阶段 II,ACmix通过Sec.4 . 3中描述的轻量级全连接层和分组卷积引入了额外的计算开销,其计算复杂度与通道大小C成线性关系,与阶段 I 相比计算开销较小。
在本节中,我们在ImageNet分类、语义分割和目标检测任务上对ACmix进行了实证验证,并与最先进的模型进行了比较。有关详细的数据集和训练配置,请参见附录。
我们在4个基线模型上实际实现了ACmix,包括ResNet、SAN、PVT和Swin - Transformer。
我们还将我们的模型与竞争基线进行比较,例如SASA、LR - Net、AA - ResNet、BoTNet、T2T - ViT、Con - ViT、CVT、ConT 和 Conformer。
图4 在ImageNet分类任务上比较FLOPS和参数与准确率的关系(1)
图4 在ImageNet分类任务上比较FLOPS和参数与准确率的关系(2)
分类结果如图4 所示。对于ResNet - ACmix模型,我们的模型优于具有可比较FLOPs或参数的所有基线。例如,ResNet-ACmix 26 以80 %的FLOPs取得了与SASA - resnet 50模型相同的top - 1准确率。在相似的FLOPs下,我们的模型比SASA算法提高了0.35 % - 0.8 %。相对于其他基线的优越性更大。对于SAN - ACmix、PVT - ACmix和Swin - ACmix,我们的模型实现了一致的改进。作为展示,San-Acmix 15 的输出表现以80 %的速度超越SAN 19。PVT - ACmix - T表现出与PVT - Large相当的性能,只有40 %的FLOPs。Swin - ACmix - S比Swin - B在60 %的FLOP下获得了更高的精度。
我们还在COCO基准《Microsoft COCO: Common objects in context》上进行了实验。表3 和表4 分别展示了基于ResNet的模型和基于Transformer的模型在不同检测头下的结果,包括RetinaNet《Focal loss for dense object detection》、Mask R-CNN《Mask r-cnn》和Cascade Mask R-CNN《Cascade r-cnn:Delv-ing into high quality object detection》.我们可以观察到,ACmix在具有类似参数或FLOP的情况下始终优于基线。这进一步验证了ACmix在传输到下游任务时的有效性。
表3 基于ResNet模型的COCO对象检测
表4 基于Transformer模型的COCO对象检测
表5 COCO上的实用推理速度。
FPS是在输入图像大小为( 3、576、576)的单幅Ascend 910上进行的测试
表6 两种路径结合方法的消融研究
最终输出被计算为
表7 基于Swin - Transformer - T
FPS的移位模块实现的消融研究在最大batch_size的单个RTX 2080Ti GPU上测试。
通过用组卷积代替张量移位,推理速度大大提高。此外,使用可学习的卷积核和精心设计的初始化增强了模型的灵活性,并有助于最终的性能。
图5 SAN - ACmix和Swin - ACmix不同层的。同一图中的线对应于平行实验。最终输出被计算为。
值得一提的是,ACmix引入了两个可学习的标量 α,β 来合并两条路径的输出( 公式14 )。这导致了我们模块的一个副产品,其中 α 和 β 实际上反映了模型在不同深度上对卷积或自注意力的偏向。我们进行了并行实验,并在图5 中显示了从SAN - ACmix和Swin - ACmix模型的不同层学习到的参数α、β。
我们可以看到,在Transformer模型的早期阶段,卷积可以作为很好的特征提取器。在网络的中间阶段,模型倾向于利用两条路径的混合,并且对卷积的偏向性越来越强。在最后一个阶段,自我注意表现出优于卷积。这也与以前的工作中的设计模式一致,在最后阶段大多采用自注意力来代替原来的3 × 3卷积,并且在早期阶段的卷积被证明对 vision transformers 更有效。
位置编码在自注意力模块中被广泛采用,而在SAN和PVT模型中没有使用。因此,我们遵循这一设定,在ResNet - ACmix模型和Swin - ACmix模型中只采用位置编码。具体来说,在计算注意力权重时采用了流行的相对位置编码《Advances in Neural Information Processing Systems, volume 32》:
补充:NIPS(NeurIPS),全称神经信息处理系统大会(Conference and Workshop on Neural Information Processing Systems),是一个关于机器学习和计算神经科学的国际会议。该会议固定在每年的12月举行,由NIPS基金会主办。NIPS是机器学习领域的顶级会议 。在中国计算机学会的国际学术会议排名中,NIPS为人工智能领域的A类会议。
其中q,k,B分别表示查询、键和相对位置编码。在主论文的表1 中,我们没有将位置编码包含在计算复杂度的分析中,因为文献《Explor-ing self-attention for image recognition》中提出的块注意力证明了自注意力模块的有效性,而没有采用它。尽管如此,位置编码的计算成本也与通道维度C成线性关系,而通道维度C相对于特征投影操作来说也是很小的。因此,考虑位置编码并不影响我们的主语句。
>>> 计算机视觉论文精读论文大纲( 更新中 ),链接直达:
计算机视觉论文精度大纲_Flying Bulldog的博客-CSDN博客https://blog.csdn.net/qq_54185421/article/details/125571690