ResNet变体作为目标检测、语义分割的骨干网络。modularSplit注意块,该注意块可以跨功能图组进行注意,通过叠加这些分割的注意块ResNet样式,得到了一个新的ResNet变体,称之为ResNeSt,保留了整个ResNet结构,可以直接用于下游任务,而不引入额外的计算成本。
图像分类已经是计算机视觉研究中的一项基础又常见的工作。用于图像分类的神经网络通常是为其他应用而设计的神经网络的骨干,例如目标检测、语义分割和姿态估计。最近的工作通过大规模神经结构搜索(NAS)显著提高了图像分类的准确性。
尽管这些NAS衍生模型具有最先进的性能,但它们通常没有针对通用/商用处理硬件(CPU/GPU)上的训练效率或内存使用进行优化。由于过多的内存消耗,这些模型的一些较大版本甚至无法在GPU上使用适当的每个设备批处理大小进行训练。
最近对下游应用程序的研究仍然使用ResNet或其变体作为CNN的主干。其简单和模块化的设计可以很容易适应各种任务。然而,由于ResNet模型最初是为图像分类而设计的,它们可能不适合各种下游应用,因为接收场大小有限且缺乏跨通道交互。
这意味着,提高特定计算机视觉任务的性能需要“网络手术”来修改ResNet,使其对特定任务更有效:
是否存在一个通用的主干,它具有普遍改进的特征表示,从而提高同时跨多个任务的性能?跨通道信息在下游应用中取得了成功,而最近的图像分类网络更多地关注于组或深度卷积。尽管这些模型在分类任务中具有出色的计算能力和准确性,但由于它们的隔离表示无法捕获跨通道关系,因此不能很好地将其传递给其他任务。因此,需要具有跨通道表示的网络。《ResNeSt:Split-Attention Networks》(文末有代码链接)为解决上述问题,提供了一个很好的答案:
探索了一个简单的ResNet架构修改,在单个网络块中合并特征图分散注意力。每一块thefeature-map分为几组(沿着通道尺寸)和finer-grainedsubgroups或分裂,每组的特征表示在哪里determinedvia加权组合表示的分裂(权重选择基于全局上下文信息)。产生的单元asaSplit-Attentionblock保持了简单和模块化。通过堆叠几个分散注意力的模块,创建了一个类似resnet的网络,称为dresnest (sstand代表“分散”)。我们的架构不需要比现有的resnet变种更多的计算,并且很容易被用作其他视觉任务的主干。图像分类和转移学习应用的大规模基准。使用最新主干的模型能够在图像分类、目标检测、实例分割和语义分割等多个任务上达到最优状态。提出的ResNeSt性能优于所有现有的resnetvariables,具有相同的计算效率,甚至比通过神经结构搜索生成的最先进的CNN模型在速度和精度上取得了更好的权衡发展
现代CNN架构自AlexNet以来,深卷积神经网络一直主导着图像分类。随着这一趋势,研究从工程手工制作的功能转移到工程网络架构。
NIN首先使用全局平均池层代替重连接层,采用1×1卷积层学习特征映射通道的非线性组合,这是第一种特征映射注意机制。VGG提出了一种模块化的网络设计策略,将同一类型的网络块反复叠加,Highway network 引入了highway 连接,使得信息无衰减地跨层流动,有助于网络的收敛。ResNet在前人工作成功的基础上,引入了一种身份跳跃连接,减轻了深层神经网络中梯度消失的困难,并允许网络学习更深层次的特征表示。ResNet已经成为最成功的CNN体系结构之一,并被广泛应用于各种计算机视觉应用中。
多路径和特征图注意力多路径表示在GoogleNet中显示了成功,其中每个网络块由不同的卷积核组成。ResNeXt[在theResNet瓶块中采用群卷积,将多径结构转换为统一运算。
SE-Net通过自适应调整信道特征响应引入了信道注意机制。SK Net通过两个网络分支引起了功能映射注意。受之前方法的启发,ResNest将信道方向的注意力泛化为特征映射组表示,并使用统一的CNN操作符对其进行模块化和加速。
神经结构搜索(NAS) 随着计算能力的不断提高,人们的兴趣已经开始从手工设计的体系结构转移到根据特定任务进行自适应调整的系统化架构。
最近的神经网络结构搜索算法已经自适应地产生了CNN结构,这些结构实现了最新的分类性能,例如:阿米巴网、MNASNet和EfficientNet。尽管它们在图像分类方面取得了巨大的成功,但它们之间的元网络结构是不同的,这使得下游模型难以建立。
Split-Attention Networks
现在引入分割注意块,它允许在不同的特征映射组之间进行特征映射注意。稍后,我们将描述我们的网络实例,以及如何通过标准CNN运营商加速这种架构。分割注意块是一个计算单元,由特征映射组和分割注意操作组成。如下图。
Split-Attention Block Feature-map Group(特征映射组)和在ResNeXt块中一样,特征可以分为几组,特征图组的数量由基数超参数K给出。我们将所得的特征图组称为基数组。 我们引入了一个新的基数超参数R,该基数指示基数组内的拆分数,因此要素组的总数为G = KR。 我们可以对每个单独的组应用一系列变换{F1,F2,... FG},然后对于i∈{1,2,... G},每个组的中间表示为Ui = Fi(X)。
ResNeSt Block将基数组表示形式沿通道维级联:V = Concat {V1,V2,... VK}。与标准残差块中一样,如果输入和输出特征图共享相同的形状,则使用快捷方式连接生成我们的Split-Attention块的最终输出Y:Y = V + X。对于具有跨步的块,将适当的变换τ应用于快捷连接以对齐输出形状:Y = V + T(X)。 例如,T可以是跨步卷积或带池组合卷积。实例化、加速和计算成本 以基数为主的视图(具有相同基数索引的要素图组彼此相邻)绘制此图,以方便地描述总体逻辑。 通过将布局切换到以基数为主的视图,可以使用标准的CNN层(例如组卷积,组完全连接的层和softmax操作)轻松加速此块,我们将在补充材料中详细介绍。 具有相同基数和通道数的“分割注意”块的参数数量和FLOPS与“残余块”大致相同。
与现有注意方法的关系SE-Net最初引入的squeeze-and-attention的思想是利用全局背景来预测渠道方面的关注因素。 诸如SK-Ne之类的先前模型在两个网络分支之间引入了关注点,但是它们的操作并未针对训练效率和扩展到大型神经网络进行优化。
网络和训练
平均下采样当迁移学习的下游应用是密集的预测任务(例如检测或分段)时,保留空间信息就变得至关重要。卷积层需要使用零填充策略来处理特征图边界,这在转移到其他密集的预测任务时通常不是最佳的。 而不是在过渡块(对空间分辨率进行下采样)上使用分步卷积,我们使用内核大小为3 * 3的平均池化层。
来自Resnet-D的调整 采用了两种简单而有效的ResNet修改方法:将第一个7×7卷积层替换为三个连续的3×3卷积层,它们具有与原始设计相同的接收场大小,并且具有相似的计算成本。对于跨距为2的转换块,在1×1卷积层之前的快捷连接中加入2×2平均池层。图像分类结果
与SOTA比较
迁移学习结果
目标检测
实例分割
单一级联RCNN模型使用ResNeSt-101主干实现48.3%的box mAP和41.56%的mask mAPon MS-COCO实例分割。我们的单个DeepLabV3模型再次使用了ResNeSt-101主干,在ADE20K场景解析验证集上获得了46.9%的mIoU,比之前的最佳结果高出了1%以上的mIoU。
总结
这项工作提出了具有新颖的Split-Attention块的ResNeSt体系结构,该块可以普遍改进学习的特征表示,从而提高图像分类,对象检测,实例分割和语义分割的性能。 在后面的下游任务中,通过简单地将骨干网络切换到我们的ResNeSt所产生的经验改进明显优于应用于标准骨干(例如ResNet)的特定于任务的修改。
Split-Attention块易于使用且计算效率高,因此应广泛应用于视觉任务。
代码(提供PyTorch和MXNet双版本):代码:https://github.com/zhanghang1989/ResNeSt论文:https://hangzhang.org/files/resnest.pdf