张航、李沐等人提出ResNet最强改进版:性能提高3%,参数不增

性能显著提升,参数量却没有明显增加。最新的 Split-Attention Networks 继承了 ResNet 简洁通用的特性。

2015 年,ResNet 横空出世,一举斩获 CVPR 2016 最佳论文奖,而且在 Imagenet 比赛的三个任务以及 COCO 比赛的检测和分割任务上都获得了第一名。四年过去,这一论文的被引量已超 40000 次,也陆续出现了很多变体。最近,来自亚马逊、加州大学戴维斯分校的张航、李沐、Alexander Smola 等研究者进一步改进了 ResNet,性能显著提升,但参数量并没有显著增加,超越了之前的 ResNeXt、SENet 等模型。


该研究的一作,亚马逊应用科学家张航表示:「分类网络通常作为下游应用的核心,但是最近很多分类问题的工作没有保持之前 ResNet 那样的模块化的设计,导致目标检测等主流应用的研究还在使用 ResNet。所以我们设计了新的 ResNet 变体 ResNeSt,可以直接应用到已有的主流模型中,显著提高 Mask R-CNN,Cascade R-CNN 等模型的结果(~3%)。」


  • 论文地址:https://hangzhang.org/files/resnest.pdf

  • 项目地址:https://github.com/zhanghang1989/ResNeSt


尽管图像分类模型不断进化,但目标检测语义分割等多数下游任务仍在使用 ResNet 变体作为其骨干网络,因为后者拥有简单而模块化的结构。

在这份论文中,研究者提出了一种模块化 Split-Attention 块,可以将注意力分散到若干特征图组中。按照 ResNet 的风格堆叠这些 Split-Attention 块,研究者得到了一个 ResNet 的新变体,称为 ResNeSt。它保留了整体的 ResNet 结构,可直接用于下游任务,但没有增加额外的计算量。

研究者致力于对 ResNet 进行简单的架构修改。具体地说,每个块都将特征图分为几组(根据通道维数)和更细粒度的子组或 splits,其中,每个组的特征表示是通过它的 splits 表示的加权组合确定的(根据全局上下文信息选择权重)。研究者将得到的结果单元称为 Split-Attention 块,它简单且模块化。

实验表明,ResNeSt 优于其他拥有相似模型复杂度的网络。ResNeSt-50 在 ImageNet 上实现了 81.13% 的 top 1 准确率,比此前最好的 ResNet 变体高 1% 以上。这一提升对于目标检测实例分割语义分割等下游任务来说很有意义。此外,将 ResNet-50 的骨干网络替换为 ResNeSt-50,MS-COCO 上 FasterRCNN 的 mAP 从 39.25% 提升至 42.33%,ADE20K 上 DeeplabV3 的 mIoU 从 42.1% 提升至 45.1%。

表 1:如左图所示,在速度与准确率的平衡方面,ResNeSt 达到了 SOTA 水平;右上图为 ResNeSt 在 ImageNet 上的 Top-1 准确率;右下图为迁移学习结果:MS-COCO 上的目标检测 mAP 以及 ADE20K 上的语义分割 mIoU。

Split-Attention 网络

Split-Attention 块

Split-Attention 块是一个由特征图组和 split attention 运算组成的计算单元,下图展示了 Split-Attention 块的整体思路:


特征图组(Feature-map Group)

与 ResNeXt 块一样,输入的特征图可以根据通道维数被分为几组,特征图组的数量由一个基数超参数 K 给出,得到的特征图组被称为基数组(cardinal group)。研究者引入了一个新的底数超参数 R,该参数规定了基数组的 split 数量。

然后将块输入 X 根据通道维数 X = {X1, X2, ...XG} 分为 G = KR 个组。在每个单独的组中应用不同的变换 {F_1, F_2, ...F_G},则每个组的中间表征为 Ui = Fi(Xi), i ∈ {1, 2, ...G}。

基数组中的 Split Attention 

根据 [30,38],每个基数组的组合表征可以通过跨多个 split 的元素求和融合来获得。第 k 个基数组的表征为:,k ∈ 1, 2, ...K。带有嵌入 channel-wise 统计数据的全局上下文信息可以通过全局池化来获得。第 c 个分量的计算公式为:


基数组表征 V^k ∈ R^{H×W×C/K} 的加权融合通过使用 channel-wise 软注意力来聚合。其中,每个特征图通道都是在若干 split 上使用一个加权组合获得的。第 c 个通道的计算公式如下:


ResNeSt 块

随后,将基数组表征根据通道维数进行级联:V = Concat{V^1 , V^2 , ...V^K}。和标准残差块中一样,如果输入和输出特征图共享相同的形状,则使用快捷连接生成 Split-Attention 块的最终输出 Y,Y = V +X。对于步幅较大的块,将适当的变换 T 应用于快捷连接以对齐输出形状:Y = V + T(X)。T 可以是跨步卷积或带有池化的组合卷积。

图 1 右为 Split-Attention 块的实例,组变换 F_i 是 1×1 卷积,然后是 3×3 卷积,注意力权重函数 G 使用两个带有 ReLU 激活函数的全连接层进行参数化。

与现有注意力方法的关系

squeeze-and-attention(原论文叫 excitation)是 SE-Net 论文中首先引入的,核心想法是应用全局上下文预测 channel-wise 的注意力因素。若 radix=1,Split-Attention 块可将 squeeze-and-attention 操作应用于每个基数组,而 SE-Net 则在整个块的顶部运行,与多个组无关。此前 SK-Net 等模型引入了两个网络分支之间的特征注意力,但这些操作没有针对训练效率及扩展到大规模神经网络进行优化。新的方法扩展了之前的特征图注意力相关研究,但其实现在计算上仍然是高效的。

图 1 展示了 ResNeSt 块与 SE-Net 和 SK-Net 块的整体对比。


Split-Attention 的细节可参考图 2。


实验

第一个实验研究了 ResNeSt 在 ImageNet 2012 数据集上的图像分类性能,结果如表 3 所示。ResNeSt50 达到了 81.13% 的 top-1 准确度。

表 3:ImageNet 上的图像分类结果。

表 5 和表 6 显示了 ResNeSt 在目标检测实例分割任务中的表现。

表 5:在 MS-COCO 验证集上的目标检测性能结果。

目标检测任务中,与使用标准 ResNet 的基线相比,ResNeSt 骨干网络能够将模型在 Faster-RCNN 和 CascadeRCNN 上的 mAP(平均精度均值)提高大约 3%。

表 6:在 MS-COCO 验证集上的实例分割结果。

如表 6 所示,ResNeSt 骨干网络具有更好的性能,对于 Mask-RCNN,ResNeSt50 的性能优于基线,在 box/mask 任务中的性能分别提高了 2.85%/2.09%。而 ResNeSt101 的提高更多,为 4.03%/3.14%。对于 Cascade-Mask-RCNN,切换到 ResNeSt50 或 ResNeSt101 所产生的性能提升分别为 3.13%/2.36% 或 3.51%/3.04%。

下表 7 展示了 ResNeSt 在 ADE20K、Citscapes 语义分割任务上的表现。

表 7:在 ADE20K(左)、Citscapes(右)语义分割任务中的性能。

与之前的结果类似,使用 ResNeSt-50 骨干网络的 DeepLabv3 模型已经优于使用更深层 ResNet-101 骨干网络的 DeepLabv3 模型。具有 ResNeSt-101 骨干网络的 DeepLabV3 模型达到了 82.07% 的 pixAcc 和 46.91% 的 mIoU,据了解,这是为 ADE20K 提出的最佳单一模型。

入门参数亚马逊ResNet李沐
相关数据
亚马逊机构

亚马逊(英语:Amazon.com Inc.,NASDAQ:AMZN)是一家总部位于美国西雅图的跨国电子商务企业,业务起始于线上书店,不久之后商品走向多元化。目前是全球最大的互联网线上零售商之一,也是美国《财富》杂志2016年评选的全球最大500家公司的排行榜中的第44名。

https://www.amazon.com/
相关技术
李沐人物

李沐,2008年毕业于上海交通大学计算机系,大学期间,曾在微软亚洲研究院担任实习生。2017年博士毕业后,李沐加入亚马逊任AI主任科学家。

池化技术

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

验证集技术

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

分类问题技术

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

语义分割技术

语义分割,简单来说就是给定一张图片,对图片中的每一个像素点进行分类。图像语义分割是AI领域中一个重要的分支,是机器视觉技术中关于图像理解的重要一环。

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

堆叠技术

堆叠泛化是一种用于最小化一个或多个泛化器的泛化误差率的方法。它通过推导泛化器相对于所提供的学习集的偏差来发挥其作用。这个推导的过程包括:在第二层中将第一层的原始泛化器对部分学习集的猜测进行泛化,以及尝试对学习集的剩余部分进行猜测,并且输出正确的结果。当与多个泛化器一起使用时,堆叠泛化可以被看作是一个交叉验证的复杂版本,利用比交叉验证更为复杂的策略来组合各个泛化器。当与单个泛化器一起使用时,堆叠泛化是一种用于估计(然后纠正)泛化器的错误的方法,该泛化器已经在特定学习集上进行了训练并被询问了特定问题。

实例分割技术

实例分割是检测和描绘出现在图像中的每个不同目标物体的任务。

目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

迁移学习技术

迁移学习 是属于机器学习的一种研究领域。它专注于存储已有问题的解决模型,并将其利用在其他不同但相关问题上。比如说,用来辨识汽车的知识(或者是模型)也可以被用来提升识别卡车的能力。计算机领域的迁移学习和心理学常常提到的学习迁移在概念上有一定关系,但是两个领域在学术上的关系非常有限。

推荐文章
暂无评论
暂无评论~