1、ResNeSt简介
虽然图像分类模型最近继续向前发展,但大多数应用,如目标检测和语义分割仍然使用ResNet变种作为骨干网络,因为它们的简单和模块化的结构。该论文提出了一个模块化的分散注意力模块(Split-Attention block),通过将这些分散注意力模块的堆叠得到了一个新的分散注意力模块,称之为ResNeSt。网络保留了整个ResNet结构,以直接用于下游任务,同时不引入额外的计算成本。
当下很多的应用研究仍然处于使用ResNet或其变体之一作为骨干CNN。其简单和模块化的设计可以很容易地适应各种任务。然而,由于ResNet模型最初是为图像分类而设计的,由于感受野大小有限且缺乏跨通道交互,可能不适用于所有的垂直领域应用。这意味着要提高计算机视觉任务的性能,就需要“Network Surgery——网络手术”来修改ResNet,使其对特定任务更有效。
例如,一些方法添加一个金字塔模块,或引入远程连接,或使用跨通道特征图注意力等等。虽然这些方法确实提高了某些任务的迁移学习性能,但它们提出了一个问题:能否创建一个通用的主干,它具有普遍改进的特性表示,从而提高同时跨多个任务的性能?跨通道信息在下游应用中已证明是成功的,而最近的图像分类网络更多地关注Group卷积或Depth-wise卷积。尽管这些模型在分类任务中具有优越的计算能力和精度权衡,但它们不能很好地转移到其他任务,因为它们的孤立表示无法捕获跨通道之间的关系。因此,使用跨通道表示的网络是一个值得探索的方向。
2、ResNeSt主要内容和工作
2.1、主要贡献
第一个贡献:对ResNet的一个简单的架构进行了修改,将特征图的注意力分散到单个网络块中。
更具体地说,将每一块将特征映射划分为几组(沿着通道尺寸)和细粒度子组或分裂,在每组的特征表示决定通过加权组合表示的分裂(权重选择基于全局上下文信息)。将产生的单元称为Split-Attention模块,它保持简单和模块化。通过堆叠几个分散注意力的模块便可以创建一个类似ResNet的网络,称为ResNeSt (代表Split”)。我们的架构不需要比现有的ResNet变种更多的计算,并且很容易被用作其他视觉任务的主干。
第二个贡献:图像分类和迁移学习应用的大规模基准。
使用ResNeSt主干的模型能够在多个任务上实现最先进的性能,即:图像分类、目标检测、实例分割和语义分割。提出的ResNeSt优于所有现有ResNet变异和有相同的计算效率,甚至达到准确率权衡法则比最先进的CNN模型产生通过神经网络架构搜索(Cascade-RCNN模式使用ResNeSt-101骨干达到48.3% box mAP;在MS-COCO实例分割有41.56% mAP。单个DeepLabV3模型再次使用了ResNeSt-101主干,在ADE20K场景解析验证集上达到46.9%的mloU,比之前的最佳结果高出超过1%的mloU)。
2.2、相关工作
2.2.1、Modern CNN Architectures
AlexNet:深度卷积神经网络一直是图像分类的主流。随着这一趋势,研究已经从手工特征转向网络架构提取。NIN首先使用全局平均池化层来代替参数量很大的全连接层,然后采用1×1卷积层来学习Feature-map通道的非线性组合,这是第一种Feature-map注意机制。
VGGNet:提出了模块化的网络设计策略,将同一类型的网络块反复叠加,简化了下游应用网络设计和迁移学习的工作流程。
Highway network:引入了公路连接,使信息在几层之间流动而不衰减,有利于网络的收敛。
Res-Net:在先人工作成功的基础上,引入了身份跳跃连接,减轻了深度神经网络中梯度消失的困难,允许网络学习更深层的特征表示。Res-Net已经成为最成功的CNN架构之一,被广泛应用于各种计算机视觉应用中。
2.2.2、Multi-path and Feature-map Attention
在GoogleNet中,多通道表示已经取得了成功,其中每个网络块由不同的卷积内核组成。ResNeXt在ResNet的Bottle-block块中采用Group convolution,将多路径结构转化为统一操作。SE-Net通过自适应地重新校准通道特征响应,引入了通道注意机制。SK-Net带来了跨两个网络分支的功能图关注。受之前方法的启发,我们的网络将基于通道的注意力泛化为特征映射组表示,通过统一的CNN操作符可以实现模块化和加速。
图1:ResNeSt块与SE-Net和SK-Net的比较
Split注意单元的详细视图如图2所示。为简单起见,我们在基数-主视图中显示ResNeSt块(具有相同基数组索引的Feature-map组彼此相邻)。在实际实现中使用了Radix-major,它可以通过Group Convolution和标准CNN层进行模块化和加速
2.2.3、Neural Architecture Search
随着计算能力的提高,人们的兴趣已经开始从手工设计的体系结构转移到系统搜索的体系结构,这些体系结构根据特定的任务进行了自适应的调整。最近的神经架构搜索算法已经自适应地产生了CNN架构,这些架构实现了最先进的分类性能,例如:Amoeba-Net、MNAS-Net和Efficient-Net。尽管上述模型在图像分类方面取得了巨大的成功,但是元网络结构彼此之间是不同的,这使得下游的模型很难建立在它们之上。相反,ResNeSt模型保留了ResNet元结构,它可以直接应用于许多现有的下游模型。同时还可以扩大神经结构搜索的搜索空间,并有可能提高整体性能。
2.3、Split-Attention Networks
2.3.1、Split-Attention Block
注意分块是一个计算单元,由特征图组和注意分块操作组成。
1、Feature-map Group
在ResNeXt块中,特征可以被分成几个组,特征映射组的数量由基数超参数k给出。将生成的特征映射组称为基数组。ResNeSt引入一个新的基数超参数R,它表示基数组内的分划数,所以特征组的总数是G = KR。也可以申请一系列的转换{F1、F2、...、FG}到每个组,然后每组的中间表示Ui = Fi (X),其中i∈{1,2,...,G}。
2、Split Attention in Cardinal Groups
图3:基数组内的分散注意
为了便于在图中显示,在图中使用c = C /K
可以通过跨多个分段的元素求和来进行融合获得每个基数组的组合表示。第k个基组的表示是:
其中:
通过在空间维度sk∈RC/K上使用全局平均池,可以收集具有嵌入基于通道的全局上下文信息。其中第c个分量计算为:
基数组表示Vk∈RH×W ×C/K的加权融合使用按通道分类的软注意进行聚合,其中每个特征图通道使用基于分段的加权组合生成。其中第c个通道的计算方式如下:
式中,a_k^i (c)表示分配权重(soft),由:
映射G_i^c根据全局上下文表示sk来确定第c个通道每个分路的权重。
2.3.2、ResNeSt Block
沿着通道维将基数组表示连接起来:V = Concat{V1、V2、 ... 、VK}。在标准的残差块中,如果输入和输出功能图具有相同的形状,那么我们的分块注意块的最终输出Y是通过一个快捷连接产生的:Y = V + X。对于带大步的块,对快捷连接应用适当的转换T,以对齐输出形状:Y = V + T (X)。例如,T可以是带状卷积,也可以是带池的联合卷积。
2.3.3、实例化、加速和计算成本
图1(右)显示了Split Attention的一个实例,其中Group Transformation Fi是一个1x1个卷积,然后是一个3x3个卷积,注意权重函数g是使用ReLU激活的两个完全连接的层参数化的。在基数主视图中绘制该图(具有相同基数索引的Feature-map组彼此相邻),以便轻松地描述总体逻辑。通过将布局切换到Radix-Major视图,这个Block可以很容易地使用标准CNN层(如Group Convolution、Group Fully Connected Layer和Softmax Operation)加速,Split Attention块的参数数量和跳转次数与具有相同基数和通道数量的残差块大致相同。
2.3.4、与现有注意方法的关系
在SE-Net中首次引入的“挤压-注意”概念(在原文中称为“激发”)是利用一个全局上下文来预测通道上的注意因素。当基数为1时,Split Attention Block对每个基数组应用一个“挤压-注意”操作,而SE-Net在整个块的顶部操作,而不管多个组。以前的SK-Net模型在两个网络分支之间引入了特征注意,但是在训练效率和扩展到大型神经网络方面,它们的操作并没有得到优化。我们的方法概括了之前在基本组设置中关于特征图注意力的工作,并且它的实现保持计算效率。图1显示了与SE-Net和SK-Net块的总体比较。