ACmix 论文精读,并解析其模型结构

此文章根据论文内容和本人的见解撰写而成,希望对你有所帮助。

如有疑问,欢迎评论区一起探讨。

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)位置嵌入


一、摘要

卷积和自注意力是两种强大的表示学习技术,通常被认为是两种不同的对等方法。在本文中,我们证明了它们之间存在着很强的内在联系,即这两种范式的计算量实际上是以相同的运算完成的。具体来说:

  • 首先,证明了一个传统的卷积核大小为k × k,可以分解为k^2个单独的1 × 1卷积,
  • 然后,对卷积进行移位和求和操作( 文章中详细讲述了升级后的移位和求和 ),
  • 自注意力方面,我们将查询、键和值在自注意力模块中的投影解释为多个1 × 1卷积,
  • 最后,计算注意力权重和值的聚合。

因此,两个模块的第一阶段都包含类似的操作。更重要的是,与第二阶段相比,第一阶段贡献了一个主要的计算复杂性( 通道尺寸的平方 )。这种观察自然导致了这两种看似截然不同的范式的完美结合,即一种混合模型,它同时具有自注意力和卷积的优点( 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)

二、结论

在本文中,我们探讨了两个强大的技术,卷积和自注意力之间的密切关系。通过分解这两个模块的操作,我们表明它们在投影输入特征图时具有相同的计算开销。在此基础上,我们又向前迈进了一步,提出了一种混合算子,通过共享相同的繁重操作来集成自注意力和卷积模块。在图像分类和目标检测基准上的广泛结果证明了所提算子的有效性和高效性。 

三、ACmix & Conv & Self-Attention

图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的混合模型,并以最小的计算开销巧妙地集成了自注意力和卷积。具体来说,

  • 首先用1 × 1卷积对输入特征图进行投影,得到一组丰富的中间特征。
  • 然后,按照不同的范式(即分别以自注意力和卷积的方式)重用和聚合中间特征。

通过这种方式,ACmix享受了这两个模块的好处,并且有效地避免了进行两次昂贵的投影操作。

5. 综上所述,我们的贡献有两方面:

  • ( 1 )揭示了自注意力和卷积之间的深层联系,为理解两个模块之间的联系提供了新的视角,为设计新的学习范式( paradigms )提供了启示。
  • ( 2 )提出了一种自注意力和卷积模块的优雅集成,它同时享受了两个世界的好处。经验证据表明,该混合模型始终优于其纯卷积或自注意力模型。

四、 重新审视卷积和自注意力

卷积和自注意力以其目前的形式已经广为人知。为了更好地捕获这两个模块之间的关系,我们通过将它们的操作分解为不同的阶段,从一个新的角度重新审视它们。

(1)卷积(计算过程)

 图2 ( a ) pipeline of traditional convolution

卷积是现代ConvNets最重要的部分之一。我们首先回顾一下标准的卷积操作,并从一个不同的角度对其进行重新建模。插图如图2 ( a )所示。为了简单起见,我们假设卷积步幅为1。

考虑一个核为 的标准卷积,其中 k 为核尺寸,分别为输入和输出通道尺寸。给定张量输入和输出特征图,其中H,W分别表示高度和宽度,记 分别为 和 对应的像素 (i, j) 特征张量。然后,可以将标准卷积表示为:(输出的特征张量 = 权重 × 输入的特征张量)

其中,表示关于核位置 ( p , q) 的索引的核权重

为了方便起见,我们可以重写方程。公式( 1 )作为来自不同内核位置的特征映射的总和:

为了进一步简化公式,我们将 Shift 操作定义为:

其中 Δ x,Δ y 分别对应水平和垂直位移。然后,等式( 3 )可以改写为:

因此,标准卷积可以概括为两个阶段:

  • 第一阶段,将输入的特征图沿某个位置的核权重进行线性投影,即( p , q)。这与标准的1 × 1卷积相同。
  • 第二阶段,投影后的特征图根据核位置进行平移,最后聚合在一起。可以很容易地观察到,大部分的计算开销是在1 × 1卷积中进行的,而接下来的移位和聚合是轻量级的。 

(2)自注意力模块(计算过程)

  图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》中广泛采用的自注意力模块,注意力权重计算如下:

式中:d 特征维数

此外,多头自注意力可以分解为两个阶段,并重新表述为:

与传统卷积类似,自注意力模块的pipeline也可以分为两个阶段:

  • 阶段 I 中首先进行1 × 1卷积,将输入特征投影为查询、键和值
  • 阶段 II 包括注意力权重的计算( calculation of the attention weights )和值矩阵( value matrices )的聚合( aggregation ),这涉及到收集局部特征。与阶段 I 相比,相应的计算成本也被证明是很小的,遵循与卷积相同的模式。 

五、模型解析

(1)卷积和自注意力之间的关系

前面讲述自注意力和卷积模块的分解,从不同角度揭示了更深层次的关系。首先,这两个阶段发挥着非常相似的作用。阶段 I 是一个特征学习模块,两种方法通过执行1 × 1卷积将特征投影到更深的空间来共享相同的操作。另一方面,阶段 II 对应着特征聚合的过程,尽管他们的学习范式存在差异。

从计算的角度来看,在卷积和自注意力模块的第一阶段进行的1 × 1卷积需要理论FLOP和关于通道大小 C 的参数的二次复杂度。相比之下,在阶段 II,两个模块都是轻量级的或几乎没有计算。

总之,上述分析表明:

  1. 卷积和自注意力在通过1 × 1卷积投影输入特征图时实际上共享相同的操作,这也是两个模块的计算开销。
  2. 第二阶段的聚合操作虽然对捕获语义特征至关重要,但其操作是轻量级的,不会获得额外的学习参数。

(2)卷积和自注意力的整合

图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 对移位操作的实际改进。

  • 图3 ( a )张量移位的简单实现。
  • 图3 ( b )使用精心设计的分组卷积核( group convolution kernels )快速实现。
  • 图3 ( c )使用可学习核和多个卷积组的进一步适应。 

作为一种补救措施,我们使用带有固定核的深度卷积代替低效的张量偏移,如图3 ( b )所示。以为例,移位特性计算如下:

我们进行了并行实验,并在图5 ( 见下文 )中显示了从SAN - ACmix和Swin - ACmix模型的不同层学习到的参数α、β。式中:c 表示输入特征的每个通道。

另一方面,如果我们将卷积核(内核大小 k = 3)表示为:

相应的输出可以表示为:

因此,在针对特定偏移方向精心设计核权重的情况下,卷积输出等价于简单的张量偏移( 公式(14) )。为了进一步合并来自不同方向的特征的总和,我们将所有输入特征和卷积核分别连接起来,并将移位操作表示为单组卷积,如图3 ( c I )所示。这种修改使得我们的模块具有更高的计算效率。

在此基础上,我们额外引入了几种适配,以增强模块的灵活性。如图3 ( c II ),我们释放卷积核作为可学习的权重,以偏移核作为初始化。这样在保持原有移位运算能力的同时提高了模型的容量。我们还使用多组卷积核来匹配卷积和自注意力路径的输出通道维度,如图3 ( c III )所示。。

(4)泛化到其他注意模式

随着自注意力机制的发展,许多研究集中于探索注意力算子的变化,以进一步提升模型性能。文献《Exploring self-attention for image recognition》提出的Patchwise Attention将局部区域内所有特征的信息作为注意力权重来代替原有的softmax操作。Swin-Transformer 采用的窗口注意力机制使同一个局部窗口内的 token 保持相同的感受野,以节省计算成本并实现快速推理。另一方面,ViT和DeiT考虑在单层内保留长程依赖的全局注意力。这些修改被证明是有效的非特定模型体系结构。

在这种情况下,值得注意的是,我们提出的 ACmix 是独立于自注意力配方的,并且可以很容易地采用上述变体。具体来说,注意力权重可以概括为:

式中:

  • [·] 表示特征拼接( feature concatenation )
  • 表示两个具有中间非线性激活的线性投影层
  • 为每个 query token 的专用感受野
  • 表示整个特征映射

然后,将计算得到的注意力权重应用于公式( 12 )且符合一般形式。

(5)Acmix的计算成本

为了充分理解卷积和自注意力模块的计算瓶颈,我们分析了每个阶段的浮点运算( FLOP )和参数数量,并在表1 中进行了总结。结果表明,卷积第一阶段的理论FLOP和参数关于通道大小C具有二次复杂度,而第二阶段的计算成本与C成线性关系,并且不需要额外的训练参数。

对于自注意力模型,也发现了类似的趋势,其中所有的训练参数都保留在阶段I 。对于理论FLOPs,我们考虑了一个ResNet-like模型中的正常情况,其中 k_{a}=7 and C = 64,128,256,512,不同的层深度。可以清楚地看到,当时,Stage I 的操作量更大,且随着信道规模的增大,这种差异更加明显。

为了进一步验证我们分析的有效性,我们还在表1 中总结了ResNet50模型中卷积和自注意力模块的实际计算成本。我们实际上加总了所有3 × 3卷积(或自注意力)模块的成本,以从模型角度反映趋势。结果表明,99 %的卷积计算和83 %的自注意力都是在阶段I 进行的,这与我们的理论分析是一致的。 

表1 两个阶段中不同模块的FLOP和参数

  1. C:输入输出通道.
  2. h,w:特征图的长和宽.
  3. kc:卷积核大小.
  4. ka:自注意力核大小.
  5. N:自注意力头。
  6. 红色数字对应于ACmix引入的附加FLOPs / Params。
  7. 括号内的百分比为整个模块的分数。

为了更好地进行比较,我们在表1 中总结了ACmix的FLOP和参数。第一阶段的计算成本和训练参数与自注意力相同,并且比传统的卷积(例如, 3 × 3 conv)更轻。在阶段 II,ACmix通过Sec.4 . 3中描述的轻量级全连接层和分组卷积引入了额外的计算开销,其计算复杂度与通道大小C成线性关系,与阶段 I 相比计算开销较小。

六、图像分类和目标检测方面的实验(本人只研究这两方面)

在本节中,我们在ImageNet分类、语义分割和目标检测任务上对ACmix进行了实证验证,并与最先进的模型进行了比较。有关详细的数据集和训练配置,请参见附录。

(1)ImageNet分类

我们在4个基线模型上实际实现了ACmix,包括ResNet、SAN、PVT和Swin - Transformer。

我们还将我们的模型与竞争基线进行比较,例如SASA、LR - Net、AA - ResNet、BoTNet、T2T - ViT、Con - ViT、CVT、ConT 和 Conformer。

图4 在ImageNet分类任务上比较FLOPS和参数与准确率的关系(1)

  • ( a )中的方法采用传统注意力的ResNet - 50,
  • ( b )中的方法采用分块注意力的SAN,
  • ( c )中的方法采用全局注意力的PVT,
  • ( d )中的方法采用窗口注意力的Swin - Transformer。 

图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下获得了更高的精度。

(2)下游任务之一:目标检测

我们还在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对象检测

(3)推理速度和消融研究

表5 COCO上的实用推理速度。

FPS是在输入图像大小为( 3、576、576)的单幅Ascend 910上进行的测试

 表6 两种路径结合方法的消融研究

最终输出被计算为

表7 基于Swin - Transformer - T

FPS的移位模块实现的消融研究在最大batch_size的单个RTX 2080Ti GPU上测试。 

通过用组卷积代替张量移位,推理速度大大提高。此外,使用可学习的卷积核精心设计的初始化增强了模型的灵活性,并有助于最终的性能。

(4)α and β

图5 SAN - ACmix和Swin - ACmix不同层的。同一图中的线对应于平行实验。最终输出被计算为

值得一提的是,ACmix引入了两个可学习的标量 α,β 来合并两条路径的输出( 公式14 )。这导致了我们模块的一个副产品,其中 α 和 β 实际上反映了模型在不同深度上对卷积或自注意力的偏向。我们进行了并行实验,并在图5 中显示了从SAN - ACmix和Swin - ACmix模型的不同层学习到的参数α、β

  • 左图和中图分别表示自注意力路径和卷积路径的比率变化趋势。不同实验中的速率变化相对较小,尤其是当层数较深时。这一观察显示了对不同设计模式的深度模型的稳定偏好。
  • 更明显的趋势显示在右图中,其中两个路径之间的比例被明确地显示出来。

我们可以看到,在Transformer模型的早期阶段,卷积可以作为很好的特征提取器。在网络的中间阶段,模型倾向于利用两条路径的混合,并且对卷积的偏向性越来越强。在最后一个阶段,自我注意表现出优于卷积。这也与以前的工作中的设计模式一致,在最后阶段大多采用自注意力来代替原来的3 × 3卷积,并且在早期阶段的卷积被证明对 vision transformers 更有效。

(4)位置嵌入

位置编码在自注意力模块中被广泛采用,而在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博客icon-default.png?t=M666https://blog.csdn.net/qq_54185421/article/details/125571690

  • 9
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Flying Bulldog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值