CVPR2017 | ResNeXt | 深度神经网络的聚合残差变换


在这里插入图片描述


论文链接

GitHub链接

本文 “Aggregated Residual Transformations for Deep Neural Networks” 提出了一种简单且高度模块化的图像分类网络架构ResNeXt。它重复具有相同拓扑结构的构建块来聚合一组变换,引入 “基数” 概念,通过实验证明在保持计算复杂度和模型大小的情况下,增加基数能提高分类准确率,且比加深或加宽网络更有效。在 ImageNet-1K、ImageNet-5K、CIFAR 和 COCO 等数据集上的实验表明,ResNeXt性能优于 ResNet 等模型,其代码和模型已开源。


摘要-Abstract

We present a simple, highly modularized network architecture for image classification. Our network is constructed by repeating a building block that aggregates a set of transformations with the same topology. Our simple design results in a homogeneous, multi-branch architecture that has only a few hyper-parameters to set. This strategy exposes a new dimension, which we call “cardinality” (the size of the set of transformations), as an essential factor in addition to the dimensions of depth and width. On the ImageNet-1K dataset, we empirically show that even under the restricted condition of maintaining complexity, increasing cardinality is able to improve classification accuracy. Moreover, increasing cardinality is more effective than going deeper or wider when we increase the capacity. Our models, named ResNeXt, are the foundations of our entry to the ILSVRC 2016 classification task in which we secured 2nd place. We further investigate ResNeXt on an ImageNet-5K set and the COCO detection set, also showing better results than its ResNet counterpart.

我们提出了一种简单且高度模块化的图像分类网络架构。我们的网络通过重复一个构建模块来构建,该模块聚合了一组具有相同拓扑结构的变换。我们的简单设计产生了一种均匀的多分支架构,只需设置少量超参数。这种策略揭示了一个新的维度,我们称之为 “基数”(变换集的大小),它是除了深度和宽度维度之外的一个关键因素。在ImageNet-1K数据集上,我们通过实验证明,即使在保持复杂度的受限条件下,增加基数也能够提高分类准确率。此外,在增加模型容量时,增加基数比增加深度或宽度更有效。我们的模型名为ResNeXt,它是我们参加2016年ILSVRC分类任务的基础,在该任务中我们获得了第二名。我们进一步在ImageNet-5K数据集和COCO检测数据集上对ResNeXt进行了研究,结果也表明它比对应的ResNet模型表现更好。


引言-Introduction

该部分主要介绍了视觉识别研究的发展趋势,指出当前研究重点已从“特征工程”转向“网络工程”,并对比了传统手工设计特征与神经网络学习特征的差异。在此背景下,设计网络架构面临诸多挑战,文中分析了VGG-nets、ResNets和Inception模型等现有架构的特点。

  • 视觉识别研究趋势:视觉识别研究正从依赖手工设计特征的“特征工程”向利用神经网络从大规模数据中学习特征的“网络工程”转变。神经网络学习的特征在训练时减少了人工干预,且可迁移到多种识别任务,但这使得设计更好的网络架构成为新挑战。
  • 现有网络架构分析
    • VGG-nets和ResNets:VGG-nets通过堆叠相同形状的构建块来构建深度网络,该策略被ResNets继承。这种简单规则减少了超参数的自由选择,突出了深度在神经网络中的重要性,同时降低了超参数过度适应特定数据集的风险,其在多种视觉和非视觉任务中证明了自身的鲁棒性。
    • Inception模型:Inception模型采用split-transform-merge策略,精心设计的拓扑结构能以较低理论复杂度实现较高准确率。然而,其实现过程复杂,滤波器数量和大小需针对每个变换定制,模块也需逐阶段定制,难以适应新的数据集和任务。
  • 本文提出的架构:本文提出一种简单架构,借鉴VGG/ResNets重复层的策略,以简单、可扩展的方式利用split-transform-merge策略。该架构中的模块对一组低维嵌入执行相同拓扑结构的变换,并通过求和聚合输出。这种设计引入了“基数”这一新维度,实验表明增加基数在保持计算复杂度和模型大小的情况下能有效提高分类准确率,且比加深或加宽网络更能提升模型性能。基于此架构的ResNeXt模型在多个数据集上表现出色,在ILSVRC 2016分类任务中获得第二名。

在这里插入图片描述
图1。左图:ResNet的一个模块。右图:基数为32的ResNeXt模块,二者复杂度大致相同。层的表示形式为(输入通道数,滤波器大小,输出通道数)。


相关工作-Related Work

该部分主要介绍了与ResNeXt相关的研究工作,包括多分支卷积网络、分组卷积、压缩卷积网络和集成学习,具体内容如下:

  1. 多分支卷积网络:Inception模型是成功的多分支架构,各分支经精心定制;ResNets可看作双分支网络,其中一个分支为恒等映射;深度神经决策森林则是具有学习分裂函数的树状多分支网络。
  2. 分组卷积:分组卷积的使用可追溯到AlexNet,最初目的是将模型分布在两个GPU上。目前主流库如Caffe、Torch等支持分组卷积,主要是为了与AlexNet兼容。但很少有证据表明利用分组卷积能提高模型精度。分组卷积的特殊情况是通道卷积,它是可分离卷积的一部分。
  3. 压缩卷积网络:在空间和/或通道层面进行分解是常用的减少深度卷积网络冗余、加速和压缩网络的技术。如Ioannou等人提出的“root”-patterned网络通过分组卷积实现分支以减少计算量。这些方法在精度和复杂度、模型大小之间取得了较好的平衡。而本文方法并非压缩网络,而是一种在经验上表现出更强表示能力的架构。
  4. 集成学习:平均一组独立训练的网络是提高精度的有效方法,在识别竞赛中广泛应用。Veit等人将单个ResNet解释为较浅网络的集成,这源于ResNet的加法行为。本文方法虽然也利用加法聚合一组变换,但与集成学习不同,本文中要聚合的成员是联合训练而非独立训练的,因此不能简单将其视为集成学习。

方法-Method

该部分主要介绍了ResNeXt的设计方法,通过引入新维度“基数”,构建高度模块化网络,在保持复杂度情况下提升模型性能,具体内容如下:

  1. 模板设计:遵循VGG/ResNets的模块化设计思路,网络由堆叠的残差块构成。制定两条规则:产生相同大小空间映射的块,其超参数(宽度和滤波器大小)相同;当空间映射下采样2倍时,块的宽度翻倍。依据这两条规则,仅需设计一个模板模块,就能确定网络中所有模块的结构,从而大幅缩小设计空间,聚焦关键设计因素。
    在这里插入图片描述
    表1。(左)ResNet-50。(右)使用32×4d模板的ResNeXt-50(采用图3©中的重构形式)。括号内是残差块的结构,括号外是每个阶段堆叠的块数。“C=32”表示32组分组卷积。这两个模型的参数数量和浮点运算次数(FLOPs)相近。
  2. 重新审视简单神经元:人工神经网络中简单神经元的内积操作(加权和),本质是一种聚合变换,可分解为分裂、变换和聚合三个步骤。输入向量被分裂为低维嵌入,低维表示经缩放变换,最后所有嵌入的变换结果通过求和聚合。
    在这里插入图片描述
    图2. 执行内积运算的简单神经元。
  3. 聚合变换:提出用更通用的函数替代简单神经元的基本变换,将聚合变换表示为 F ( x ) = ∑ i = 1 C T i ( x ) \mathcal{F}(x)=\sum_{i=1}^{C} \mathcal{T}_{i}(x) F(x)=i=1CTi(x),其中 C C C 为“基数”,控制复杂变换的数量。本文中所有 T i \mathcal{T}_{i} Ti 具有相同拓扑结构,采用瓶颈形架构,其第一个 1 × 1 1×1 1×1 层负责生成低维嵌入。这种聚合变换作为残差函数,即 y = x + ∑ i = 1 C T i ( x ) y = x + \sum_{i=1}^{C} \mathcal{T}_{i}(x) y=x+i=1CTi(x)。从结构上看,该模块与Inception-ResNet模块有相似之处,但ResNeXt所有路径拓扑结构相同;同时,借助分组卷积可对其进行更简洁的表示,不过这种重新表述在块深度 ≥ 3 ≥3 3 时才有意义,深度为2时会形成简单的宽密集模块。
    在这里插入图片描述
    图3. ResNeXt的等效构建块。(a):聚合残差变换,与图1右图相同。(b):与(a)等效的模块,通过早期拼接实现。(c):与(a)、(b)等效的模块,通过分组卷积实现。加粗文本中的符号突出了重新表述的变化。层表示为(输入通道数,滤波器大小,输出通道数)。
    在这里插入图片描述
    图4。(左图):深度为2的聚合变换。(右图):一个等效模块,只是更宽了些。
  4. 模型容量:为研究不同基数 C C C 对模型的影响,在保持模型复杂度和参数数量的前提下,选择调整瓶颈宽度(如 4 − d 4-d 4d)。因为这种调整不会改变块的深度、输入/输出宽度等其他超参数,有助于单独研究基数的影响。通过实验发现,在保持复杂度的情况下,增加基数能够提升模型的准确率。

实现细节-Implementation details

该部分主要介绍了ResNeXt在实验中的实现细节,涵盖数据处理、训练设置和模型实现方式等方面,具体如下:

  1. 数据处理:在ImageNet数据集上,输入图像是从经过缩放的图像中随机裁剪出的224×224大小的图像,缩放和裁剪过程采用了文献[38]中的增强策略,并由文献[11]中的代码实现。这种数据增强方式可以增加数据的多样性,提高模型的泛化能力。
  2. 训练设置
    • 优化器及参数:使用随机梯度下降(SGD)作为优化器,在8个GPU上进行训练,每个GPU的小批量大小为32,总小批量大小为256。设置权重衰减为0.0001,动量为0.9,这些参数有助于在训练过程中调整模型的权重,防止过拟合,加速收敛。
    • 学习率调整:初始学习率设为0.1,将学习率分三次除以10进行调整。这种学习率调整策略可以在训练初期快速更新模型参数,随着训练的进行,逐渐减小学习率,使模型更加稳定地收敛到最优解。
    • 权重初始化:采用文献[13]中的权重初始化方法,合适的权重初始化能够为模型训练提供一个良好的起点,有助于提高训练效率和模型性能。
    • 评估方式:在所有消融比较实验中,从短边为256的图像中裁剪出224×224的中心区域进行评估,通过这种固定的评估方式可以更准确地比较不同模型的性能。
  3. 模型实现
    • 模型形式选择:模型采用图3©的形式实现,因为在严格等效的三种形式(图3(a)、(b)、©)中,图3©形式更为简洁且速度更快。在实际应用中,简洁快速的实现形式可以提高训练和推理的效率。
    • 归一化与激活函数:在图3©的卷积操作之后立即进行批量归一化(BN),除了模块输出在与快捷连接相加后进行ReLU激活外,其他在每个BN之后都进行ReLU激活,这种操作顺序符合常见的神经网络架构设计,有助于加速模型训练并提高性能。

实验-Experiments

该部分通过在多个数据集上进行实验,验证了ResNeXt模型的性能,具体内容如下:

  1. ImageNet - 1K实验
    • 基数与宽度权衡:在保持复杂度的情况下,对比不同基数和瓶颈宽度组合。结果显示,增加基数可降低错误率,如32×4d的ResNeXt - 50验证错误率为22.2%,比ResNet - 50基线低1.7%,且训练错误率也更低,表明性能提升源于更强的表示能力而非正则化。同时发现,当瓶颈宽度过小时,继续以降低宽度为代价增加基数,准确率提升效果会饱和。
      在这里插入图片描述
      表2. 基数与宽度之间的关系(针对conv2的模板),在残差块上大致保持复杂度不变。conv2模板的参数数量约为7万个。浮点运算次数约为2.2亿次(对于conv2,参数数量×56×56) 。
      在这里插入图片描述
      表3. ImageNet-1K上的消融实验。(顶部):复杂度保持不变(约41亿次浮点运算)的ResNet50;(底部):复杂度保持不变(约78亿次浮点运算)的ResNet-101。错误率是在224×224像素的单裁剪图像上评估的。
      在这里插入图片描述
      图5. ImageNet-1K上的训练曲线。(左):复杂度保持不变(约41亿次浮点运算,约2500万个参数)的ResNet/ResNeXt-50;(右):复杂度保持不变(约78亿次浮点运算,约4400万个参数)的ResNet/ResNeXt-101。
    • 增加基数与加深、加宽对比:以ResNet - 101为基准,对比增加复杂度的不同方式。增加深度到200层(ResNet - 200)或加宽瓶颈宽度,错误率下降幅度较小;而增加基数效果更显著,如2×64d的ResNeXt - 101 top - 1错误率降低1.3%,64×4d的ResNeXt - 101降至20.4% ,且32×4d的ResNeXt - 101在复杂度仅为ResNet - 200约50%的情况下,性能更优。
      在这里插入图片描述
      表4. 在ImageNet-1K数据集上,当浮点运算次数(FLOPs)增加到ResNet-101的2倍时的对比结果。错误率是在224×224像素的单裁剪图像上评估的。突出显示的因素是增加复杂度的因素。
    • 残差连接影响:去除ResNeXt-50和ResNet-50的快捷连接后,错误率均大幅上升,表明残差连接有助于优化,且聚合变换具有更强的表示能力,在有无残差连接时均表现更优。
    • 性能对比:使用Torch内置分组卷积实现ResNeXt,虽训练速度比ResNet - 101基线稍慢,但仍在合理范围内。与其他先进模型对比,ResNeXt-101(64×4d)在ImageNet - 1K验证集单裁剪测试中表现出色,top - 5错误率为4.4%,且架构设计更简单,超参数更少。在ILSVRC 2016分类任务中,ResNeXt取得第二名,多尺度密集测试下单模型top - 1/top - 5错误率与Inception - ResNet - v2相当,集成结果与竞赛冠军接近。
      在这里插入图片描述
      表5. ImageNet-1K验证集上的前沿模型(单裁剪测试)。ResNet/ResNeXt的测试尺寸为224×224和320×320,而Inception模型的测试尺寸为299×299。
  2. ImageNet-5K实验:在包含5000个类别的更大ImageNet子集上评估模型。该数据集由ImageNet-1K类别和额外4000个类别组成,图像数量约为1K集的5倍。由于没有官方划分,在原ImageNet-1K验证集上以5K-way或1K-way分类任务进行评估。结果显示,ResNeXt-50比ResNet-50的5K-way top-1错误率降低3.2%,ResNeXt-101比ResNet-101降低2.3% ,且在1K-way错误上也有类似差距,证明了ResNeXt更强的表示能力。此外,在5K集上训练的模型,在相同1K-way分类任务评估中,与在1K集上训练的模型性能相当,且未增加训练时间和微调。
    在这里插入图片描述
    图6. ImageNet - 5K实验。模型在5K数据集上进行训练,并在原始的1K验证集上进行评估,将其绘制为一个1K路分类任务的结果。ResNeXt及其对应的ResNet模型具有相似的复杂度。
    在这里插入图片描述
    表6. ImageNet - 5K数据集上的错误率(%)。模型在ImageNet - 5K数据集上训练,并在ImageNet - 1K验证集上测试,测试时将其视为一个5K路分类任务或1K路分类任务。ResNeXt及其对应的ResNet模型具有相似的复杂度。错误率是在224×224像素的单裁剪图像上评估的。
  3. CIFAR实验:在CIFAR-10和CIFAR-100数据集上进行实验,采用特定的网络架构并替换基本残差块。对比增加基数和增加瓶颈宽度来提高复杂度的效果,发现增加基数更有效。与Wide ResNet相比,相似模型大小的ResNeXt-29(8×64d)在CIFAR-10上测试错误率为3.65%,表现更优;更大的模型ResNeXt-29(16×64d)在CIFAR-10上测试错误率为3.58%,在CIFAR-100上为17.31%,达到了当前最优结果。
    在这里插入图片描述
    图7. CIFAR-10数据集上的测试误差与模型大小对比。结果是经过10次运行计算得出的,并带有标准误差条。标签展示了模板的设置。
    在这里插入图片描述
    表7. CIFAR数据集上的测试误差(%)和模型大小。我们的结果是10次运行的平均值。
  4. COCO目标检测实验:在COCO目标检测数据集上评估ResNeXt的泛化能力。使用基本的Faster R - CNN框架,将ResNet/ResNeXt嵌入其中,在80k训练集加35k验证子集上训练,在5k验证子集(minival)上评估COCO风格的平均精度(AP)和AP@IoU = 0.5指标。结果显示,ResNeXt - 50在不增加复杂度的情况下,AP@0.5提高2.1%,AP提高1.0%;ResNeXt - 101也有一定提升。此外,ResNeXt已被应用于Mask R - CNN中,并在COCO实例分割和目标检测任务中取得了优异成果。
    在这里插入图片描述
    表8. COCO最小验证集上的目标检测结果。ResNeXt及其对应的ResNet模型具有相似的复杂度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

四口鲸鱼爱吃盐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值