GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond论文阅读翻译
GCNet: Non-local Networks Meet Squeeze-Excitation Networks and Beyond论文阅读翻译
目录:
-
GCNet: 结合非局部网络与压缩-激活网络及更进一步的研究
-
一、摘要
- 二、引言
- 三、对非局部网络的分析
- 3.1. 对非局部模块的重新审视
- 3.2. 分析
- 统计分析
-
四、Method
-
- 简化非局部块
-
全局上下文建模框架
-
全局上下文块
-
此处着重于非局部块的简化过程。
-
此处还探讨了与压缩-激活块的关系。
- 五、个人总结
论文获取入口:点击此处访问。该博主已在中国计算机视觉学会(CVS)GitHub仓库中收集了目标检测领域的相关研究资料。内容较为全面。当前项目仍在持续更新中,并即将补充:包含IJCAI会议相关资料的版本。
一、Abstract
Non-local网络提出了一种将特定查询的全局上下文分配到每个查询位置以开创性地捕获远程依赖关系的方法。然而通过实证分析发现对于图像中的不同位置进行查询时非局部网络建模所得的全局上下文在不同位置之间差别并不大。基于这一发现研究者构建了一个独立于特定查询位置的设计方案既能保持NLNet的高度精确性又降低了计算复杂度。该研究者进一步指出所提出的简化设计与SENet具有相似的架构特点因而将其纳入了一个三阶段统一框架以解决全局上下文建模问题。在该通用框架中研究者设计了一个轻量级的整体关注模块能够高效建模整体关注信息并将其灵活应用于主干网络的所有层从而构建了一个整体关注网络其性能通常优于简化版本的NLNet与SENet
二、Introduction
旨在识别一个视觉场景的整体理解

基于这一观察结果
三、Analysis on Non-local Networks
首先作者通过可视化手段展示了NL块生成的不同查询位置的注意力图。为了统计评估这些注意力图之间的相似性程度(采用余弦距离和Jensen-Shannon散度两种指标),研究者计算得出了所有查询位置上注意力图间平均的距离值。
3.1. Revisiting the Nonlocal Block
NL块的目标在于通过聚合其他位置的信息来强化查询位置的特征。设x={xi} (i=1-Np)表示一个输入实例的特征图层中的各个位置信息集,其中Np代表特征图中的独立位置数目。变量x与z分别表示经由NL块处理后的具有相同通道数的输入特征与输出特征。NL块的功能可被形式化地描述如下:

i代表查询位置的索引变量,j则枚举所有可能的位置坐标,f(xi,xj)代表两个坐标点之间的影响关系,C(x)是一个归一化常数,Wz与Wv分别代表用于线性变换的卷积核矩阵,其中定义了wij=f(xi,xj)/C(x),它衡量了坐标点i与坐标点j之间的一种标准化关联度,wij共有四种不同的取值情况:

Embedded Gaussian:

Dot product:

Concat:

在处理过程中, 最常用的模型是嵌入式高斯分布. 在处理过程中,NL块类似于一个全局上下文模块. 它通过从所有位置计算特定查询注意力权重并加权平均的方式, 将每个查询的位置上的全局上下文特征进行聚合. 当为每个查询的位置计算注意力图时, NL块的时间复杂度与空间复杂度均为O(N²).
3.2. Analysis
通过直观观察NL块的行为模式, 作者成功生成了不同查询位置的关注图. 考虑到各实例化方法在性能上的可比性, 此处仅呈现最常用的技术方案. 嵌入式高斯法. 并且在视频序列中难以直接呈现注意力机制的变化过程, 作者仅进行了图像级别的可视化处理. 进一步观察发现, 在各个查询点上, 各关注点处所对应的注意力分布具有高度相似性. 为了从统计学角度验证这一现象, 作者还对不同查询位置间的全局上下文差异进行了详细分析.

Statistical Analysis
标记vi为位置i的特征向量,平均距离度量被定义为:

Dist(.,.)是两个向量之间的距离。余弦距离是一种使用广泛的距离度量法:

用于计算三种向量之间的余弦相似度;其中NL块的输入表示为vi=xi;融合前的输出vi=zi−xi;对应的注意力权重vi=wi;通过Jensen-Shannon散度(JSD)来衡量两个概率分布之间的统计差异:

基于Gaussian分布及其扩展形式E-Gaussian中所定义的所有注意图中的权重wi均满足归一化条件,在这种情况下我们可以通过将每个权重wi视为一个离散的概率质量函数来建模这些注意力机制的变化过程这样就能有效地比较这两个模型的空间注意力机制之间的差异程度

表1详细列出了两种距离度量在两个标准任务中的表现情况。值得注意的是,在输入空间中所计算的余弦相似度较高,并且这种现象表明可以在不同位置区分NL块的输入特征。与此相反,在输出空间中所计算的余弦相似度则非常低,并且通过观察注意力机制图(att)中的两种距离指标可以看出它们都较为微小。这证实了之前的观察结果。也就是说,尽管NL块是想要计算特定于每个查询位置的全局上下文特征……
四、Method
4.1. Simplifying the Nonlocal Block
基于观察到不同查询位置的注意力图几乎相同的情况,在此基础上

其中Wk和Wv表示线性变换矩阵。简化版本如下图所示:

为了进一步降低简化版NL块的计算量,我们将Mv移至注意力池化外:

这一简化版本如下图b所示:

不同于传统的NL块架构,在所提出的模型中第二项参数不再受查询位置i的影响;也就是说,在整个序列的不同位置之间这项参数均具有相同的值。作者通过构建一个基于各子序列特征加权求和的形式来模拟全局上下文,并将其整合到各个查询位置的特征中去完成信息提取过程。实验结果表明该方法与原始模型相比在性能指标上表现相近的同时显著降低了计算复杂度(FLOPs)
4.2. Global Context Modeling Framework
参照图示中的部分(b),该NL块可被分解为三个主要环节:首先通过全球关注机制(global attention mechanism)实现信息整合;具体而言,在第一阶段(a)中利用Wk的1\times 1卷积计算出注意力权重并经过softmax函数对其进行归一化处理;随后进行全球注意力聚合以获得整体语义信息;接着在第二阶段(b)中应用另一组Wv的卷积层对提取的特征进行进一步处理;最终在第三阶段(c)中对各位置的特征与全局上下文信息实施融合。整个流程可被抽象为一个基于全球语义建模的整体框架,并可通过如下数学表达式加以形式化描述:

其中,(a) ∑jajxj表示上下文建模模块,将所有位置的特征结合权重aj做一个加权平均得到全局上下文特征(简化NL块中的全局注意力池化),(b) δ(.)表示用来捕捉通道级依赖的特征变换(SNL中的1×1卷积),© F(.,.)表示用来聚合全局上下文特征到每一个位置的特征上的融合函数。
作者认为SE块也可以看做是他们提出的框架的一个实例。如上图©所示,其包括了(a) 一个全局平均池化用于全局上下文建模(即上式中aj = 1/Np),为SE块中的压缩操作。(b) 一个瓶颈转换模块(δ(.)为一个1×1卷积,一个relu,一个1×1卷积再加上一个sigmoid函数),© 一个用于融合的缩放函数(F(.,.)为一个元素级的相乘),SE块是轻量级的,能够应用于所有层,只增加一点计算成本。
4.3. Global Context Block
作者提出了一种基于全局上下文建模的新实例化方案称为全局上下文(GC)块该方案不仅继承了SNL块的优势还能够有效建模远程依赖关系同时保持了SE块的轻量化计算特性。
在SNL块中转换模块的参数规模最大主要由一个大小为C×C的单通道卷积操作实现当将SNL模块接入更高层时高层通道数量急剧增加这会显著影响整个模块的参数规模为了实现类似SE块般的轻量化设计作者将单通道卷积替换为一个瓶颈型转换模块成功将参数规模从C×C降至2×C×C/r其中r表示瓶颈比例而C/r则代表瓶颈层的特征维度默认情况下r被设定为16这样一来参数规模得以压缩至原来的1/8左右。
值得注意的是双层瓶颈变换虽然提升了模型性能但也带来了优化难度为此作者在瓶颈层内(激活函数之前)引入了一层归一化操作以缓解相关优化问题同时将其作为正则化手段以进一步提升模型泛化能力此外加入层归一化处理不仅有助于提高模型性能还能明显增强在COCO数据集上目标检测与实例分割任务的表现如图(d)所示展示了该改进后的网络架构

其中,请注意aj = eWkxj / ∑meWkxm代表全局注意力池化的权重参数。δ(.) = Wv2RELU(LN(Wv1(.) )) 表现了一个瓶颈转换机制。作者提出的一种GC块主要包含以下几部分:(a) 使用全局注意力机制进行上下文建模;(b) 借助瓶颈转换模块获取通道间的依赖关系;(c) 通过元素级相加实现特征融合过程。
Relationship to non-local block.
虽然NL块的学习机制独立于查询位置信息,在处理长距离依赖时展现出独特优势。然而,在计算资源消耗方面表现出明显优势的作者所提出的基于全局注意力机制的设计能够有效模仿NL块的行为模式,并在此基础上实现了更为高效的特征提取过程。值得注意的是,在这一改进方案下还进一步引入瓶颈变换技术以优化特征表示效率,并在此过程中实现了对模型复杂度的有效控制。相较于传统的NL结构而言,在模型深度可扩展性和长距离依赖捕捉能力方面均展现出显著提升效果的GC架构设计能够实现更高的训练效率与更好的泛化性能
Relationship to squeeze-excitation block.
SE和GC的主要差异在于融合模块的作用,在此过程中反映了两个模块各自设定的不同目标。SE通过重标定来调整通道的重要性,在此过程中未能充分模拟远程依赖关系。而GC属于学习型NL结构,在此过程中将全局上下文整合到所有位置以捕获远程依赖关系。此外,在bottleneck双层结构的优化问题上归一化层起到了关键作用,在此过程中归一化层能够帮助缓解瓶颈双层结构带来的优化难题,并最终实现更好的性能表现。最后需要指出的是,在GC中的全局注意力机制中,SE中的平均池化操作可以被视为其一个特例
五、个人总结
这篇文章同时也是对现有技术的一种改进。具体而言,在指出NL中每个位置的注意力机制实际上相差并不大这一前提下,并非NL仍然会对每个位置独立地进行注意力计算这一操作并无实际意义。因此作者采取了一种更为简洁的方式即只需计算一个注意力图即可满足所有位置的需求。这种设计不仅大幅降低了计算复杂度还进一步降低了模型参数数量同时减少浮点运算量(FLOPs)。在此基础上作者又在瓶颈层前引入了标准化层(Layer Normalization)以进一步优化模型性能。经过这样的设计优化实验结果表明该轻量化的GC块在性能上与传统的NL方案相比略胜一筹但在计算效率上得到了显著提升。
