attention - 5 - GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond - 1 - 论文学习
GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond
Abstract
Non-Local Network(NLNet)通过将特定于查询的全局上下文聚合到每个查询位置,为捕获长期依赖关系提供了一种先进的方法。然而,通过严格的实证分析,我们发现non-local网络建模的全局上下文对于图像中的不同查询位置几乎是相同的。在本文中,我们利用这一发现创建了一个基于query-independent公式的简化网络,它保持了NLNet的准确性,但大大减少了计算量。我们进一步观察到,这种简化设计与Squeeze-Excitation网络(SENet)具有相似的结构。因此,我们将它们统一到一个用于全局上下文建模的three-step的通用框架中。在通用框架中,我们设计了一个更好的实例化结构,称为全局上下文(global context, GC)块,它是轻量级的,可以有效地对全局上下文建模。轻量级特性允许我们将其应用于backbone网中的多个层,以构建一个全局上下文网络(GCNet),它通常在各种识别任务的主要基准上优于简化的NLNet和SENet。代码可见https://github.com/xvjiarui/GCNet。
1. Introduction
捕获long-range依赖,旨在提取对视觉场景的全局理解,已被证明有利于广泛的识别任务,如图像/视频分类,目标检测和分割[31,12,38,14]。在卷积神经网络中,由于卷积层在局部邻域内构建像素关系,因此其long-range依赖关系主要通过深度叠加卷积层来建模。然而,直接重复卷积层的计算效率低,而且很难优化[31]。这将导致对long-range依赖进行无效的建模,部分原因是在远距离位置之间传递信息存在困难。
为了解决这一问题,提出了non-local网络[31],使用一层自注意力机制[28]来建模long-range依赖关系。对于每个查询位置,non-local网络首先计算查询位置与所有位置的成对关系,形成注意map,然后将所有位置的特征与注意map定义的权值相加。聚合的特性最终被添加到每个查询位置的特征中以形成输出。
non-local网络中特定于查询的注意力权值通常意味着对应位置对查询位置的重要性。虽然可视化特定查询的重要性权重有助于深入理解,但原始论文中很大程度上缺少这样的分析。我们填补了这一遗憾,如图1所示,但令人惊讶的是,不同查询位置的注意力map几乎是相同的,这表明只学习了与查询无关的依赖关系。表1中的统计分析进一步验证了这一观察结果,即不同查询位置的注意力map之间的距离非常小。
基于这一观察,我们通过显式地为所有查询位置使用与查询无关的注意力图来简化non-local块。然后我们使用这个注意力map将相同的聚合特征添加所有查询位置的特征上,以形成输出。这种简化块的计算成本明显小于原来的non-local块,但在几个重要的视觉识别任务中几乎没有发现精度下降。此外,我们发现这个简化块与流行的Squeeze-Excitation (SE)网络[14]具有相似的结构。二者都是通过从所有位置聚集的相同的特征来强化原有的特征,但在聚集策略、transformation和强化function上的选择却使二者区别开来。通过对这些function的抽象,我们得到了一个统一了简化的NL块和SE块的一个three-step通用框架:(a)一个将所有位置的特征聚合在一起形成全局上下文特征的上下文建模模块(context modeling module);(b)特性转换模块(feature transform module),以捕获channel-wise的相互依赖关系;(c)融合模块(fusion module),将全局上下文特征融合到所有位置的特征中。
简化的NL块和SE块是这个通用框架的两个实例化结构,但是对这三个步骤有不同的实现。通过对每一步的比较研究,我们发现简化的non-local块和SE块都是次优的,每个块都有一部分比另一个块效果好。通过在每一步结合最优实现,我们得到了通用框架的新实例化,称为全局上下文(global context,GC)块。新块在上下文建模context modeling(使用全局注意力池化)和融合fusion(使用addition)步骤上与简化的NL块共享相同的实现,同时与SE块共享相同的transform步骤(使用两层bottleneck)。在多个视觉识别任务中,GC块的性能优于简化的non-local块和SE块。
与SE块一样,我们提出的GC块也是轻量级的,允许被应用于ResNet体系结构中的所有residual块,而原始的non-local块通常在一层或几层之后应用,因为它的计算量很大。经GC块增强后的网络称为全局上下文网络(global context network, GCNet)。在COCO对象检测/分割方面,GCNet在APbbox上比NLNet和SENet分别高出1.9%和1.7%,在APmask上分别高出1.5%和1.5%,在FLOPs上仅相对提高0.07%。此外,GCNet在三个常见的视觉识别任务中产生了显著的性能收益:在COCO上的对象检测/分割中,比以ResNet-50为backbone,使用了FPN的Mask R-CNN[9]在APbbox上提高了2.7%,在APmask上提高了2.4%;在ImageNet上的图像分类比ResNet-50[10]的top-1准确度提高了0.8%;和在Kinetics中的动作识别上比ResNet-50 Slow-only基线[6]的top-1准确度提高了1.1%, 且只增加了不到0.26%的计算成本。
2. Related Work
Deep architectures. 卷积网络最近在大规模视觉识别任务中取得了极大的成功,已经进行了很多尝试去改善原来的体系结构,以实现更好的准确性[18, 26, 27, 10, 37, 15, 34, 14, 43, 13, 40, 11, 4, 42, 19, 2, 24, 31, 35, 6]。网络设计的一个重要方向是改进基础组件的功能公式,提高深度网络的能力。ResNeXt[34]和Xception[3]采用组卷积增加基数。Deformable ConvNets[4,42]设计可变形卷积,增强几何建模能力。Squeeze-Excitation网络[14]采用channel-wise的缩放来显式地建模信道依赖关系。
我们的全局上下文网络是一个新的backbone架构,使用新的GC块实现更有效的全局上下文建模,在广泛的视觉任务上提供优越的性能,如对象检测、实例分割、图像分类和动作识别。
Long-range dependency modeling. 最近的long-range依赖建模方法可以分为两类。一是采用自注意力机制对关系进行建模。第二种方法是对与查询无关的全局上下文建模。
自注意力机制最近已成功应用于各种任务中,如机器翻译[7,8,28]、graph embedding[29]、generative modeling[39]、视觉识别[30,12,31,36]。[28]是第一次尝试应用自注意力机制来模拟机器翻译中的long-range依赖关系。[12]扩展了自注意力机制,在对象检测中对对象之间的关系进行建模。NLNet[31]采用自注意力机制对像素级成对关系进行建模。CCNet[16]通过堆叠两个criss-cross块来加速NLNet,并将其应用于语义分割。然而,NLNet实际上对每个查询位置学习与查询无关的注意力map,其浪费了计算成本来建模像素级成对关系。
为了对全局上下文特征建模,SENet[14]、GENet[13]和PSANet[41]对不同的通道进行缩放,以重新校准通道对全局上下文的依赖关系。CBAM[32]通过缩放来重新校准不同空间位置和通道的重要性。然而,所有这些方法都采用了重新缩放的方法进行特征融合,这对于全局上下文建模是不够有效的。
本文提出的GCNet可以如NLNet[31](heavy-weight,难以集成到多层)一样通过addition fusion去有效地建模全局上下文,也有着如SENet[14](采用缩放,对全局上下文建模不够有效)一样的轻量级属性。因此,通过更有效的全局上下文建模,GCNet可以在各种识别任务的主要基准上获得比NLNet和SENet更好的性能。
3. Analysis on Non-local Networks
在本节中,我们首先回顾一下non-local块[31]的设计。为了直观地理解,我们将广泛使用的non-local块实例化所生成的跨不同查询位置的注意力map可视化。为了统计分析其行为,我们平均了所有查询位置的注意力maps之间的距离(余弦距离和Jensen-Shannon散度)。
3.1. Revisiting the Non-local Block
基本的non-local块[31]旨在通过合并其他位置的信息来加强查询位置的特征。用表示一个输入实例(即一张图或一个视频)的特征map,其中Np是特征map中位置的数量(即对于图像来说,Np=H*W,对于视频来说,Np=H*W*T)。x和z分别表示non-local的输入和输出,有着相同的维度。non-local块可以表示为:
其中i表示查询为止的索引,j表示所有可能的位置,表示位置i和j之间的关系,使用了一个归一化因子。Wz和Wv表示线性transform矩阵(即1x1卷积)。为了简化,用表示归一化后位置i和j之间的成对关系。
为了满足实际应用中的多种需求,non-local块的四种带有不同的实例化实现被设计出来,命名为Gaussian、 Embedded Gaussian、Dot product和Concat:(a)Gaussian表示中的为Gaussian函数,定义为; (b)Embedded Gaussian是Gaussian的一个简单扩展,计算嵌入空间中的相似度,定义为;(c)Dot product中,中的被定义为dot-product相似度,定义为;(d)Concat被定义为。最广泛的应用实例是Embedded Gaussian,如图3(a)所示
non-local块可以看作是一个全局上下文建模块,它将特定查询的全局上下文特征(通过一个特定查询的注意力map,对所有位置进行加权平均)聚合到每个查询位置。由于对每个查询位置计算注意力map,non-local块的时间和空间复杂度都是位置个数Np的二次幂。
3.2. Analysis
Visualization 为了直观地理解non-block块的行为,我们首先可视化不同查询位置的注意力map。由于不同的实例化实现了相当的性能[31],这里我们只可视化了最广泛使用的版本,Embedded Gaussian,它的公式与[28]中提出的block相同。由于视频中的注意力map难以可视化和理解,我们只对以图像为输入的目标检测/分割任务进行可视化显示。根据non-local网络对目标检测[31]的标准设置,我们在使用了FPN和Res50的Mask R-CNN上进行实验,只在res4的最后一个residual块之前添加一个non-local块。
在图2中,我们从COCO数据集中随机选择了6幅图像,并为每幅图像可视化三个不同的查询位置(红点)及其特定于查询的注意力map(热点图)。我们惊讶地发现,对于不同的提问位置,他们的注意力map几乎是相同的。为了从统计上验证这一观察结果,我们分析了不同查询位置的全局上下文之间的距离。
Statistical Analysis 用表示位置i的特征向量。平均距离的测量被定义为,其中dist(.,.)表示两个向量之间的距离。
cosine distance 是一个广泛使用的距离测量指标,定义为。在这里我们计算三类向量的cosine距离,non-local块输入(vi=xi,表1中的'input')、non-local块在fusion前的输出(vi=zi-xi,表1中的'output')和查询为止的注意力maps(vi=,表1中的'att')。 Jensen-Shannon divergence (JSD)被用来计算两个概率分布之间的统计距离,定义为。每个注意力map的总和为1(在Gaussian和E-Gaussian中),我们将当作一个离散的概率分布。因此,我们计算Gaussian和E-Gaussian中注意力maps(vi=)之间的JSD。
两个标准任务上的两个距离测量的结果如表1所示。首先,在‘input’列中余弦距离的较大值表明,non-local块的输入特征可以在不同的位置上进行区分。但是“output”中的余弦距离值非常小,这说明non-local块建模的全局上下文特征对于不同的查询位置几乎是相同的。注意力maps(“att”)上的距离测量值对于所有实例来说都非常小,这再次验证了可视化的观察结果。换句话说,虽然non-local块的目的是计算每个查询位置的全局上下文,但训练后的全局上下文实际上是与查询位置无关的。因此,不需要为每个查询位置计算特定查询的全局上下文,这允许我们简化non-local块。
4. Method
4.1. Simplifying the Non-local Block
由于不同的实例化在COCO和Kinetics上都能获得相当的性能,如表1所示,在这里我们采用最广泛使用的版本,Embedded Gaussian,作为基本的non-local块。在观察到不同查询位置的注意力map几乎相同的基础上,我们通过计算一个全局(查询无关)注意力map来简化non-local块,并在所有查询位置共享该全局注意力map。在[12]中,有Wz和没有Wz的变体的性能相当,我们在简化版本中省略了Wz。我们简化的non-local块定义为:
其中Wk和Wv为线性变换矩阵。这个简化的non-local块如图3(b)所示。
为了进一步降低简化块的计算成本,我们应用分配律将Wv移出attention pooling,如:
该简化的non-local块版本在图4(b)中阐述:
1x1的卷积Wv的FLOPs从减少到
有别于传统的non-local块,等式3的第二项与查询位置i无关,这意味着这一项是所有查询位置i共享的。我们因此直接构建全局上下文作为所有为止特征的加权平均,并合并(add)全局上下文特征到每个查询位置的特征上。在实验中,我们直接用我们简化的non-local(SNL)块替换non-local(NL)块,并在三个任务上评估精度和计算成本,分别是COCO上的目标检测、ImageNet上的分类以及动作识别,如表2(a), 4(a)和5所示。正如我们所预料的那样,SNL块可以获得与NL块相当的性能,且具有明显更低的FLOPs。
4.2. Global Context Modeling Framework
如图4(b)所示,将简化后的non-local块抽象为三个过程:(a)一个global attention pooling,采用1x1卷积Wk和softmax函数获得注意力权值,再进行attention pooling,获得全局上下文特征;(b)通过1x1卷积Wv进行特征变换;(c)特征聚合,即利用加法将全局上下文特征聚合到每个位置的特征上。
我们将此抽象视为全局上下文建模框架,如图4(a)所示,并定义为:
其中(a)表示context modeling模块,使用权重通过加权平均将所有位置的特征组合起来去得到global context features(即简化后的NL(SNL)块的global attention pooling);(b)表示特征转换去捕获channel-wise依赖(即SNL块中的1x1卷积);(c)F(.,.)表示fusion函数,用于将global context features合并到每个位置的特征中(即SNL块中的broadcast element-wise addition)
有趣的是,在[14]中提出的squeeze-excitation(SE)块也是我们提出的框架的一个实例。如图4(c)所示,它包括:(a)用于全局上下文建模的全局平均池化(在等式4中设置),在SE块中称为squeeze操作;(b)一个bottleneck transform模块(等式4中的为一个卷积层、一个ReLU、一个卷积层和sigmoid函数),去计算每个channel的重要性,在SE block中命名为excitation操作;(c)一个用于fusion的缩放函数(等式4中的F(.,.)为element-wise乘法),去重新校准channel-wise特征。和non-local块不同,SE块是轻量级的,能够用于所有的层,且仅增加少量的计算开销。
4.3. Global Context Block
在这里,我们提出了一个全局上下文建模框架的新实例,命名为全局上下文(global context,GC)块,它具有简化的non-local(SNL)块和squeeze-excitation(SE)块的优点,前者具有long-range依赖上的有效建模,后者具有轻量级计算。
在简化后的non-local块中,如图4(b)所示,transform模块拥有最多的参数,包括一个有C·C个参数的1x1卷积。当我们将这个SNL块添加到更高的层,例如res5时,这个1x1卷积的参数数为C·C=2048·2048,主导了该块的参数数量。为了获得SE块的轻量化特性,将这个1x1卷积替换为bottleneck transform模块,大大减少了参数的数量,从C·C减少到2·C·C/r,其中r为bottleneck比率,C/r为bottleneck的隐藏表征维数。当默认的缩减比设置为r=16时,transform模块的参数数可以减少到原始SNL块的1/8。更多关于不同bottleneck比率r值的结果见表2(e)。
由于双层bottleneck transform增加了优化的难度,我们在bottleneck transform(ReLU之前)内增加了layer normalization,以简化优化,同时作为一种正则化,有利于泛化。如表2(d)所示,layer normalization可以显著增强COCO上的对象检测和实例分割。
全局上下文(GC)块的详细架构如图4(d)所示,表述为
其中是global attention pooling的权重,表示bottleneck transform。
具体来说,我们的GC块包括:(a)用于上下文建模的全局注意力池;(b)瓶颈转换以捕获通道依赖;和(c)广播元素为特征融合。
由于GC块是轻量级的,因此可以在多个层中应用它,从而更好地捕获long-range依赖关系,而计算成本只会稍微增加一点。以ImageNet分类的ResNet-50为例,GC-ResNet-50表示将GC block添加到ResNet-50中的所有层(c3+c4+c5),bottleneck比率为16。GC-ResNet-50增加了ResNet-50的计算量,从3.86 GFLOPs到3.87 GFLOPs,对应0.26%的相对增长。此外,GC-ResNet-50在ResNet-50所需的25.56M参数之外,引入了额外约 2.52M的参数,对应的增加了约9.86%。
全局上下文有利于广泛的视觉识别任务,并且GC块的灵活性允许它被插入到用于各种计算机视觉问题的网络架构中。在本文中,我们将我们的GC块应用于三个通用视觉任务-图像识别,目标检测/分割和动作识别-并观察到在这三个方面的显著改进。
Relationship to non-local block. 由于non-local块实际上学习的是与查询无关的全局上下文,因此我们的全局上下文块的全局注意力池化构建了与NL块相同的全局上下文,但计算成本显著降低。由于GC块采用了bottleneck transform来减少全局上下文特征中的冗余,从而进一步减少了参数和FLOPs的数量。GC块的FLOPs和参数数量明显低于NL块,这使得我们的GC块可以应用于多个层,而只需略微增加计算量,同时更好地捕捉long-range依赖关系并帮助网络训练。
Relationship to squeeze-excitation block. SE块和我们的GC块之间的主要区别是fusion模块,它反映了两个块的不同目标。SE块采用重缩放来重新校准通道的重要性,但不能充分地模拟long-range依赖性。我们的GC块遵循NL块,使用加法将全局上下文聚合到所有位置,来捕获long-range依赖。第二个区别是bottleneck transform中的layer normalization。由于我们的GC块采用了加法进行融合,layer normalization可以简化两层架构的优化以实现bottleneck transform,从而获得更好的性能。第三,SE块中的全局平均池化是GC块中的全局注意力池化的一种特殊情况。表2(f)和表4(b)的结果显示了我们的GCNet相对于SENet的优越性。
5. Experiments
为了评价所提出的方法,我们在三个基本任务上进行了实验,分别是COCO[21]上的目标检测/分割、ImageNet[5]上的图像分类和Kinetics[17]上的动作识别。实验结果表明,所提出的GCNet总体上优于non-local网络(具有较低的FLOPs)和squeeze-excitation网络(具有相当的FLOPs)。
5.1. Object Detection/Segmentation on COCO
我们在COCO 2017[21]上研究了我们的目标检测和实例分割模型,其训练集由118k张图像,验证集由5k张图像,测试开发集由20k张图像组成。我们遵循[9]的标准设置,分别通过在不同boxes和mask IoUs上的标准平均average-precision分数来评价对象检测和实例分割。
Setup. 我们的实验是用PyTorch[23]实现的。除非另有说明,我们的比率r=16的GC块应用于ResNet/ResNeXt的c3, c4, c5阶段。
Training. 我们使用带FPN的Mask R-CNN[9]的标准配置,以ResNet/ResNeXt作为backbone架构。输入图像被调整大小,使其短边为800个像素[20]。我们在8个GPU上训练,每个GPU 2张图像(mini batch大小为16)。在ImageNet分类[5]上对所有模型的backbone进行预训练,然后结合检测头和分割头,对除c1和c2外的所有层进行联合微调。不同于[9]的RPN阶段训练,我们的实现采用了[25]的端到端的训练,效果更好。与传统的微调设置[9]不同,我们使用Synchronized BatchNorm来代替frozen BatchNorm。使用权重衰减为0.0001,momentum为0.9的同步SGD,对所有模型进行12个epoch的训练,大致对应于Mask R-CNN基准[22]中的1x schedule。学习率初始化为0.02,并在第9和第11个epoch以10的倍数衰减。超参数的选择也遵循了最新发布的Mask R-CNN基准[22]。
5.1.1 Ablation Study
消融研究在COCO 2017验证集上完成。bounding box和分割masks的标准COCO指标包括AP、AP50、AP75均被报告。
Block design. 在[31]之后,我们插入1个non-local块(NL), 1个简化的non-local块(SNL),或者1个全局上下文块(GC),就在c4的最后一个残差块之前。从表2(a)可以看出,SNL和GC在参数和计算量较少的情况下都能达到与NL相当的性能,这说明在原始的non-local设计中,计算和参数存在冗余。此外,在所有残差块中添加GC块可以获得更高的性能(在APbbox上提高了1.1%,在APmask上提高了0.9%),并略微增加了FLOPs和参数。
Positions. NL块在残差块之后插入(afterAdd),而SE块在残差块(after1x1)中的最后一个1x1 conv之后集成。在表2(b)中,我们研究了使用GC块的两种情况,它们产生了类似的结果。因此,我们采用after1x1作为默认值。
Stages. 表2(c)显示了在不同阶段集成GC块的结果。所有阶段都可以从GC块中的上下文建模中受益(在APbbox和APmask上提高了0.7%-1.7%)。插入到c4和c5都比插入到c3获得了更好的性能,这表明更好的语义特征可以从全局上下文建模中获得更多好处。随着FLOPs的略微增加,将GC块插入到所有层(c3+c4+c5)会比只插入到单个层获得更高的性能。
Bottleneck design. bottleneck transform中每个组件的影响如表2(d)所示。w/o ratio表示用1个1x1 conv作为变换的简化NLNet,与基线相比参数更多。尽管r16和r16+ReLU的参数比w/o比变量少得多,但发现两层比单层更难优化,导致性能更差。因此,LayerNorm (LN)被用来简化优化,导致性能类似于w/oratio,但参数少得多。
Bottleneck ratio. bottleneck设计的目的是减少参数的冗余,并在性能和参数之间进行权衡。在表2(e)中,我们改变了bottleneck的比例r。随着参数和FLOPs数量的增加,比率r下降(从32下降到4),性能持续提高(在APbbox上为0.8%↑,在APmask上为0.5%↑),这表明我们的bottleneck在性能和参数之间取得了很好的平衡。值得注意的是,即使是r=32的比率,网络的性能仍然远远超过基线。
Pooling and fusion. 表2(f)列出了pooling和fusion的不同选择。首先,在fusion阶段,addition比scaling更有效。令人惊讶的是,attention pooling的结果只比普通的average pooling效果好一点点。这表明全局上下文如何聚合到查询位置(融合模块的选择)比所有位置的特征如何组合到一起(上下文建模模块的选择)更重要。值得注意的是,我们的GCNet (att+add)的性能明显优于SENet,因为它使用attention pooling来进行上下文建模,并用加法来进行特征聚合能有效地建模long-range依赖关系。
5.1.2 Experiments on Stronger Backbones
我们在更强的backbone上评估我们的GCNet,用ResNet-101和ResNeXt-101[34]替换ResNet-50,在多层(c3+c4+c5)中增加可变形卷积[4,42],并采用级联策略[1]。我们的GC块整合在所有层(c3+c4+c5),battleneck比为4和16的结果被报告。表3(a)给出了验证集的详细结果。值得注意的是,采用更强的主干后,与基线相比,GCNet的增益仍然是显著的,这表明我们使用全局上下文建模的GC块,是对当前模型容量的补充。对于最强大的backbone,在ResNeXt-101中使用了可变形卷积和级联RCNN,我们的GC块在APbbox上仍然可以提高0.8%,在APmask上提高0.5%。为了进一步评估我们提出的方法,我们还报告了test-dev集的结果,如表3(b)所示。在test-dev中,通过添加GC块,强大的基线的效果也得到了很大的提高,这与验证集上的结果是一致的。这些结果证明了我们提出的方法的鲁棒性。
5.2. Image Classification on ImageNet
ImageNet[5]是一个用于图像分类的基准数据集,包含来自1000个类的128万张训练图像和50K验证图像。我们遵循[10]中的标准设置,在训练集上训练深度网络,并在验证集上报告single-crop top-1和top-5错误。我们的预处理和增强策略遵循[33]和[14]中提出的基线。为了加快实验速度,所有报告的结果都经过两个阶段的训练。我们首先在8个GPU(每个GPU 64张图像(有效批处理大小为512))上训练120个epochs的标准ResNet-50,并进行5个epochs的线性warmup。第二,我们将新设计的模块插入到第一阶段训练的模型中,并以0.02的初始学习率对另40个epochs进行微调。基线也遵循这个两阶段训练,但是在第二阶段不添加新的块。cosine学习率衰减用于训练和微调。
Block Design. 与COCO的块设计一样,表4(a)报告了不同块的结果。GC块的性能略好于NL块和SNL块,参数少,计算量少,表明了我们设计的通用性和通用性。通过在所有残差块(c3+c4+c5)中插入GC块,性能进一步提高(top-1精度比基线提高0.82%),并具有边际计算开销(FLOPs的相对增加0.26%)。
Pooling and fusion. 研究了不同池化和融合方法在图像分类中的作用。对比表4(b)和表2(f)可以看出,attention pooling在图像分类中的作用更大,这可能是[14]缺失的成分之一。此外,带有加法的attention pooling(GCNet)在几乎相同的参数和FLOPs情况下,比带有scale的普通average pooling(SENet)的最高准确率高出0.44%。
5.3. Action Recognition on Kinetics
对于人类动作识别,我们采用了广泛使用的Kinetics[17]数据集,该数据集有大约240k的训练视频和20k的验证视频,涵盖400个人类动作类别。所有模型在训练集上训练,在验证集上测试。在[31]之后,我们报告top-1和top-5识别准确度。我们在[6]中采用slow-only基线,这是迄今为止最好的single模型,可以利用来自ImageNet预训练模型的inflated权重[2]。这个inflated 3D策略[31]比从头开始训练的收敛更快。所有实验设置都明确遵循[6];以8帧(8×8)作为输入训练slow-only基线,并采用multi(30)-clip验证。
消融研究结果见表5。在Kinetics实验中,GC块的比率设置为4。首先,将NL块替换为简化的NL块和GC块时,性能是相当的 (top-1准确度为0.19%↓和0.11%↓,top-5准确度为0.15%↑和0.14%↑)。与COCO和ImageNet一样,添加更多的GC块可以进一步改善结果,比NL块有更少的计算量。
6. Conclusion
long-range依赖建模的先驱工作non-local网络旨在对特定查询位置的全局上下文建模,但仅建模了与查询无关的上下文。在此基础上,我们对non-local网络进行了简化,并将这个简化版本抽象为一个全局上下文建模框架。然后我们提出了这个框架的一个新的实例化——GC块,它是轻量级的,可以有效地建模long-range依赖。我们的GCNet是通过将GC块应用到多个层来构建的,其在各种识别任务的主要基准上优于简化的NLNet和SENet。