这篇文章提出了一种名为**双注意力网络(-Nets)**的新型深度学习架构,旨在解决传统卷积神经网络(CNN)在捕捉长距离依赖关系时的低效问题。主要内容总结如下:
-
问题背景:
-
传统CNN通过堆叠卷积层来扩大感受野,但这种方式效率低下,导致模型过深、计算成本高,且难以捕捉长距离依赖关系。
-
-
核心贡献:
-
提出了双注意力块(
-block),通过两步注意力机制来捕捉和分配全局特征:
-
特征聚集:通过二阶注意力池化从整个时空空间中聚集关键特征。
-
特征分配:根据每个位置的局部特征需求,自适应地分配全局特征。
-
-
该块可以轻松插入现有CNN中,显著提升模型性能,同时保持较低的计算和内存开销。
-
-
优势:
-
相比现有的注意力机制(如SENet、Non-local Networks),双注意力机制能够更高效地捕捉复杂的长距离依赖关系,且计算成本更低。
-
-
实验验证:
-
在图像识别任务(ImageNet-1k)上,配备双注意力块的ResNet-50在参数减少40%的情况下,性能优于更大的ResNet-152。
-
在视频动作识别任务(Kinetics、UCF-101)上,双注意力网络在计算效率显著提高的同时,达到了最先进的性能。
-
-
未来工作:
-
计划将双注意力机制集成到紧凑网络架构中,以开发更小、适合移动设备的模型。
-
这篇文章通过引入双注意力机制,提出了一种高效捕捉全局特征的方法,显著提升了图像和视频识别任务的性能,同时降低了计算成本。这里是自己的论文阅读记录,感兴趣的话可以参考一下,如果需要阅读原文的话可以看这里,如下所示:
摘要
学习捕捉长距离关系对于图像/视频识别至关重要。现有的CNN模型通常依赖于增加深度来建模这种关系,这非常低效。在这项工作中,我们提出了“双注意力块”,这是一种新颖的组件,能够从输入图像/视频的整个时空空间中聚合和传播信息丰富的全局特征,使后续的卷积层能够高效地访问整个空间的特征。该组件设计为两步双注意力机制,第一步通过二阶注意力池化将整个空间的特征聚集到一个紧凑的集合中,第二步通过另一个注意力机制自适应地选择和分配特征到每个位置。所提出的双注意力块易于采用,并且可以方便地插入现有的深度神经网络中。我们在图像和视频识别任务上进行了广泛的消融研究和实验,以评估其性能。在图像识别任务中,配备了我们双注意力块的ResNet-50在ImageNet-1k数据集上优于更大的ResNet-152架构,参数数量减少了40%以上,计算量也更少。在动作识别任务中,我们提出的模型在Kinetics和UCF-101数据集上达到了最先进的结果,且效率显著高于最近的工作。
1 引言
深度卷积神经网络(CNN)在过去几年中成功应用于图像和视频理解。许多新的网络拓扑结构被开发出来,以缓解优化困难[9, 10]并增加学习能力[26, 5],这显著提高了图像[8, 2]和视频[23]的识别性能。
然而,CNN本质上受限于其卷积操作符,这些操作符专注于捕捉局部特征和关系,例如从7×7区域中提取特征,而在建模长距离依赖关系时效率低下。尽管堆叠多个卷积操作符可以扩大感受野,但这也会带来一些实际问题。首先,堆叠多个操作符会使模型变得不必要地深和大,导致更高的计算和内存成本以及增加的过拟合风险。其次,远离特定位置的特征必须通过一系列层才能影响该位置,无论是前向传播还是反向传播,这增加了训练期间的优化难度。第三,远处位置可见的特征实际上是来自几层之后的“延迟”特征,导致推理效率低下。尽管最近的一些工作[11, 25]可以部分缓解上述问题,但它们要么不够灵活[11],要么计算成本高[25]。
在这项工作中,我们旨在通过引入一个新的网络组件来克服这些限制,该组件使卷积层能够立即从其相邻层感知整个时空空间2。核心思想是首先从整个空间中聚集关键特征到一个紧凑的集合中,然后自适应地分配这些特征到每个位置,使得后续的卷积层即使没有大的感受野也能感知整个空间的特征。我们为此开发了一个通用函数,并通过高效的双注意力机制实现。第一个二阶注意力池化操作选择性地从整个空间聚集关键特征,而第二个操作采用另一个注意力机制来自适应地分配一个子集的关键特征,这些特征有助于补充每个时空位置以完成高级任务。我们将所提出的双注意力块表示为-块,其生成的网络为
-Net。
脚注2:这里的“空间”指的是输入帧的整个特征图以及视频序列的完整时空特征。
双注意力块与最近的一些工作相关,包括Squeeze-and-Excitation Networks [11]、协方差池化[14]、Non-local Neural Networks [25]和Transformer架构[24]。然而,与这些现有工作相比,它具有几个独特的优势:它的第一个注意力操作隐式计算了池化特征的二阶统计量,可以捕捉SENet[11]中使用的全局平均池化无法捕捉的复杂外观和运动相关性。它的第二个注意力操作自适应地从一个紧凑的集合中分配特征,这比[25, 24]中详尽地将所有位置的特征与每个特定位置相关联更高效。在图像和视频识别任务上的大量实验清楚地验证了我们提出的方法的上述优势。
我们总结我们的贡献如下:
-
我们提出了一个通用公式,通过通用的聚集和分配函数来捕捉长距离特征依赖关系。
-
我们提出了双注意力块,用于聚集和分配长距离特征,这是一种高效的架构,能够捕捉二阶特征统计量并进行自适应特征分配。该块能够以低计算和内存开销建模长距离依赖关系,同时显著提升图像/视频识别性能。
-
我们通过广泛的消融研究调查了我们提出的
-Net的效果,并通过与最先进方法的比较证明了其在多个公共基准数据集上的优越性能,包括ImageNet-1k、Kinetics和UCF-101。
论文的其余部分组织如下。我们首先在第2节中介绍我们的方法,并讨论其与最近工作的关系。然后我们在第3节中评估并报告结果,并在第4节中总结论文。
2 方法
卷积操作符设计用于关注局部邻域,因此无法“感知”整个空间和/或时间空间,例如整个输入帧或跨多个帧的一个位置。因此,CNN模型通常采用多个卷积层(或循环单元[6, 17])以捕捉输入的全局方面。同时,自注意力和相关操作符如二阶池化最近被证明在广泛的任务中表现良好[24, 14, 15]。在本节中,我们提出了一个能够聚集和分配全局特征到输入的每个时空位置的组件,帮助后续卷积层立即感知整个空间并捕捉复杂关系。我们首先通过提供一个通用公式正式描述这个期望的组件,然后介绍我们的双注意力块,这是该组件的一个高效实例。最后,我们讨论我们的方法与其他最近相关方法的关系。
聚集和分配信息的想法受到Squeeze-and-Excitation Network(SENet)[11]的启发。然而,公式(1)以更一般的形式呈现了这一点,从而带来了一些有趣的见解和优化。在[11]中,全局平均池化用于聚集过程,而生成的单一全局特征被分配到所有位置,忽略了不同位置的不同需求。看到这些缺点,我们引入了这个通用公式,并提出了双注意力块,其中全局信息首先通过二阶注意力池化(而不是一阶平均池化)聚集,然后根据当前局部特征vi的需求自适应地分配聚集的全局特征。通过这种方式,可以通过一个紧凑的特征集合捕捉更复杂的全局关系,并且每个位置可以接收其定制的全局信息,这些信息补充了现有的局部特征,有助于学习更复杂的关系。所提出的组件如图1(a)所示。下面,我们首先详细描述其架构,然后讨论一些实例及其与其他最近相关方法的联系。
第一个注意力步骤:特征聚集
第二个注意力步骤:特征分配
在从整个空间聚集特征之后,下一步是将这些特征分配到输入的每个位置,使得后续卷积层即使使用小的卷积核也能感知全局信息。
双注意力块
我们将上述两个注意力步骤结合起来,形成我们提出的双注意力块,其在深度神经网络中的计算图如图2所示。为了形式化双注意力操作,我们将公式(4)和公式(5)代入公式(1),得到
有两种不同的方式来实现公式(6)的计算图。一种是使用公式(6)中给出的左关联,计算图如图2所示。另一种是进行右关联,如下所示:
讨论
图2:所提出的双注意力块的计算图。所有卷积核大小为1×1×1。我们将这个双注意力块插入现有的卷积神经网络中,例如残差网络[9],以形成-Net。
3 实验
在本节中,我们首先在Kinetics[12]视频识别数据集上进行广泛的消融研究,以评估所提出的-Net,并将其与最先进的NL-Net[25]进行比较。然后,我们在图像识别和视频识别任务上使用更深和更宽的神经网络进行更多实验,并与最先进的方法进行比较。
实现细节
骨干CNN
我们在所有实验中使用残差网络[10]作为骨干CNN。表1显示了用于视频识别任务的骨干CNN的架构细节,其中我们在所有消融研究中使用ResNet-26,并将ResNet-29作为基线方法之一。计算成本通过FLOPs(即浮点乘法加法)衡量,模型复杂度通过#Params(即训练参数总数)衡量。ResNet-50比ResNet-26深和宽近2倍,因此仅在最后几个实验中与最先进方法进行比较时使用。对于图像识别任务,我们使用相同的ResNet-50,但没有时间维度用于输入/输出数据和卷积核。
训练和测试设置
我们使用MXNet[3]进行图像分类任务的实验,使用PyTorch[18]进行视频分类任务的实验。对于图像分类,我们报告标准的单模型单224×224中心裁剪验证准确率,遵循[9, 10]。对于视频数据集的实验,我们报告单剪辑准确率和视频准确率。所有实验均在分布式K80 GPU集群上进行,网络通过同步SGD进行优化。代码和训练模型将很快在GitHub上发布。
消融研究
单块
表2显示了仅在骨干网络中添加一个额外块时的结果。该块放置在某个阶段的第二个残差单元之后。从最后三行可以看出,我们提出的-块与基线ResNet-26和更深的ResNet-29相比,性能持续提升。值得注意的是,额外的成本非常小。我们还发现,将A2A2-块放置在顶层比放置在底层带来的性能提升更显著。这可能是因为顶层提供了更语义抽象的表示,适合提取全局视觉原语。相比之下,Nonlocal Network[25]显示出较少的准确性提升和更多的计算成本。由于Nonlocal Network的计算成本在底层阶段呈二次增长,当块放置在Conv2时,我们甚至无法完成训练。
多块
表3显示了在骨干网络中添加多个块时的性能提升。从结果可以看出,我们提出的-Net在添加更多块时单调提高准确性,并且与竞争对手相比,计算成本更低。我们还发现,将块添加到不同阶段比将所有块添加到同一阶段可以带来更显著的准确性提升。
图像识别实验
视频识别实验结果
在本小节中,我们评估了所提出的方法在学习视频表示方面的表现。我们考虑了静态图像特征已预训练但运动特征通过在大规模Kinetics[1]数据集上训练模型从头学习的场景,以及将训练良好的运动特征迁移到小规模UCF-101[20]数据集的场景。
在Kinetics上从头学习运动
我们使用在ImageNet上预训练的ResNet-50,并添加5个随机初始化的-块来构建3D卷积网络。相应的骨干如表1所示。网络以8帧(采样步幅:8)作为输入,并使用64个GPU训练32k次迭代,总批量大小为512。初始学习率设置为0.04,并在训练准确率饱和时逐步减少。最终结果如表5所示。与最先进的I3D[1]和R(2+1)D[23]相比,我们提出的模型即使在采样帧数较少的情况下也显示出更高的准确性,这再次证实了所提出的双注意力机制的优越性。
将学习到的特征迁移到UCF-101
UCF-101包含约13,320个视频,分为101个动作类别,并具有三个训练/测试分割。UCF-101的训练集比Kinetics数据集小几倍,我们使用它来评估我们模型在Kinetics上预训练的特征的通用性和鲁棒性。网络以0.01的基础学习率训练,该学习率减少三次,每次减少0.1倍,使用8个GPU,批量大小为104个剪辑,并在单尺度上以224×224输入分辨率进行测试。表6显示了我们提出的模型的结果以及与最先进方法的比较。与上述结果一致,-Net以显著较低的计算成本实现了领先的性能。这表明,
-Net学习到的特征是鲁棒的,并且可以以非常低的成本有效地迁移到新数据集,与现有方法相比。
4 结论
在这项工作中,我们提出了一种用于深度CNN的双注意力机制,以克服局部卷积操作的局限性。所提出的双注意力方法有效地捕捉全局信息,并以两步注意力的方式将其分配到每个位置。我们很好地形式化了所提出的方法,并将其实例化为一个轻量级块,可以轻松插入现有CNN中,计算开销很小。在多个基准数据集(包括ImageNet-1k、Kinetics和UCF-101)上的广泛消融研究和实验证实了所提出的-Net在2D图像识别任务和3D视频识别任务上的有效性。在未来,我们希望探索将双注意力集成到最近的紧凑网络架构[19, 16, 4]中,以利用所提出方法的表达能力,开发更小、适合移动设备的模型。