在深度学习领域,构建更强大的神经网络通常有两条路径: 让网络更深更宽

VGG 架构展示了深度的影响力,它通过堆叠大量简单、重复的层取得了显著效果。ResNet 引入了残差连接,使得训练极深的神经网络成为可能,而不会陷入可怕的梯度消失问题。与此同时,谷歌的 Inception 系列则开辟了另一条通往宽度的道路,它创建了多分支模块,每个模块都有精心设计的并行路径和专用卷积核。

但如果还有另一种方式呢?
如果我们不只扩展深度或宽度,而是去探索神经网络设计中的一个新的第三维度呢?

这就是加州大学圣地亚哥分校和 Facebook 人工智能研究院的研究人员在论文《用于深度神经网络的聚合残差变换》中提出的核心思想,他们引入了 ResNeXt 架构。ResNeXt 建立在 Inception 的“分割–变换–合并”概念之上,但将其与 ResNet 的简洁性和可扩展性相结合,并引入了一个名为基数 (cardinality) 的新维度。

研究的惊人发现是什么?增加基数——即一个块内并行变换的数量——在提升准确率方面,可能比单纯地增加深度或宽度更有效

在本文中,我们将深入探讨基数的含义、ResNeXt 的工作原理,以及为什么它代表了我们在扩展神经网络思路上的一次转变。


背景: 从特征工程到网络工程

计算机视觉模型的演变史,就是一个从手工“特征工程” (如 SIFT、HOG) 到自动化“网络工程”的转变过程,在后者中,特征是直接从数据中学习的。

VGG 与 ResNet —— 简洁性与深度的结合

VGG 网络倡导通过堆叠重复的卷积块 (通常是 3×3 卷积) 来构建具有统一且易于配置设计的深层网络架构。

ResNet 在此基础上更进一步,引入了残差 (shortcut) 连接,让信息和梯度能更容易地在网络中流动。这使得训练拥有数百层的极深模型成为可能。
一个标准的 ResNet 瓶颈块使用 1×1 卷积先减少通道数,然后再恢复通道数,从而使计算成本高昂的 3×3 卷积在降维后的表示上进行操作。

Inception —— 分割、变换、合并

相比之下,Inception 模块探索的是宽度
一个 Inception 块会:

  1. 分割 (Splits) 输入,通过 1×1 卷积将其拆分成几个维度较低的特征图。
  2. 变换 (Transforms) 每个分支,使用不同尺寸的卷积核 (3×35×5 等) 。
  3. 合并 (Merges) 各分支的输出,通过拼接 (concatenation) 的方式。

这种设计以相对较低的计算成本提升了模型的表征能力。
但它的代价是: 每个分支都是人工精心设计的,具有定制的卷积核尺寸和数量,这增加了复杂性,并且在不进行手动调整的情况下,限制了其在新任务上的可移植性。


问题是: 我们能否将 ResNet/VGG 的简洁性与 Inception 的分割–变换–合并设计的强大功能结合起来?


ResNeXt 的思想: 基数 (Cardinality)

ResNeXt 的创新始于重新审视神经网络中最基本的单元: 神经元。

一个简单的神经元对其输入执行加权求和:

\[ \sum_{i=1}^{D} w_i x_i \]

一个简单的神经元执行内积操作,可以看作是将输入分割、变换 (缩放) 并聚合。

图 2. 一个简单神经元的操作可以看作: 将每个输入 \(x_i\) 分割,通过乘以权重 \(w_i\) 进行变换,并通过求和来聚合结果。

从这个角度看,神经元的工作包括:

  1. 分割 (Splitting): 将输入向量 \( \mathbf{x} \) 分解成更小的分量。
  2. 变换 (Transforming): 应用一个函数 (简单情况下为缩放) 。
  3. 聚合 (Aggregating): 将变换后的结果求和。

聚合变换

ResNeXt 对这一概念进行了泛化:
如果每次变换不再是简单的缩放,而是让每个变换 \( \mathcal{T}_i \) 本身就是一个小型神经网络,会怎样呢?聚合多个这样的变换可以得到:

\[ \mathcal{F}(\mathbf{x}) = \sum_{i=1}^C \mathcal{T}_i(\mathbf{x}) \]

其中:

  • \( C \) = 基数 (cardinality) = 并行变换的数量
  • 每个变换 \( \mathcal{T}_i \) 具有相同的架构 (拓扑结构)

在实践中,每个 \( \mathcal{T}_i \) 都是一个瓶颈残差块:
1×1 卷积 → 3×3 卷积 → 1×1 卷积,就像在 ResNet 中一样。

聚合变换则成为残差函数:

\[ \mathbf{y} = \mathbf{x} + \sum_{i=1}^C \mathcal{T}_i(\mathbf{x}) \]

图 1. 标准 ResNet 瓶颈块 (左) 与基数为 32 的 ResNeXt 块 (右) ,二者计算复杂度相近。

图 1. 左: ResNet 瓶颈块 (C=1,宽度=64) 。右: ResNeXt 块 (C=32,每条路径宽度=4) 。在探索更高基数的同时,保持了相当的总计算量。


ResNeXt 模块的三种等价视图

ResNeXt 最优雅的特性之一是,一个模块可以用三种等价形式来表示:

ResNeXt 模块的三种等价形式: (a) 分割–变换–求和,(b) 早期拼接,(c) 分组卷积。

图 3. 同一聚合变换的等价实现。

  1. 分割–变换–求和 (Fig. 3a): 概念最简单——将输入分成 \(C\) 条路径,分别变换,然后求和输出。
  2. 早期拼接 (Fig. 3b): 类似 Inception-ResNet——先拼接各路径的输出,再通过一个 1×1 卷积合并。
  3. 分组卷积 (Fig. 3c): 效率最高——使用一个包含多个组的卷积层,每个组独立处理一部分输入通道。在 ResNeXt 中,3×3 卷积是基数为 \(C\) 的分组卷积。

分组卷积最早在 AlexNet 中作为硬件限制下的权宜之计出现,而在这里演变成简洁的架构工具。其妙处在于: 整个网络可以通过堆叠相同的基于分组卷积的模块来构建,并遵循 ResNet 的下采样规则。


控制复杂度

为了公平衡量基数的影响,研究人员在各对比实验中保持计算复杂度和参数数量大致相同。

一个 ResNeXt 瓶颈块的参数数量为:

\[ \text{Params} \approx C \cdot (256 \cdot d + 3\cdot 3 \cdot d \cdot d + d \cdot 256) \]
  • \(C\) = 基数
  • \(d\) = 瓶颈宽度 (每条路径的通道数)

通过反向调整 \(C\) 和 \(d\),他们保持了 FLOPs/参数量恒定。
例如: ResNet 瓶颈块 (C=1, d=64) ≈ ResNeXt 瓶颈块 (C=32, d=4)。

基数与瓶颈宽度的权衡,以保持模块复杂度相近。

表 2. 随着基数 \(C\) 增加,宽度 \(d\) 相应减小,以维持恒定复杂度。


实验: 基数 vs. 宽度/深度

在恒定复杂度下的基数比较

在相同 FLOPs 下,增加基数可以降低 top-1 错误率:

ImageNet-1K 上相同复杂度下的 ResNet 与 ResNeXt 对比,基数增加可改善 Top-1 错误率。

表 3. 更高的基数在不增加计算量的情况下带来持续的准确率提升。

50 层 (左) 与 101 层 (右) 模型的训练曲线。同等复杂度下,ResNeXt (橙) 优于 ResNet (蓝) 。

图 5. ResNeXt 在训练误差和验证误差上均更低,表明其表征学习能力更强,而不仅是正则化效果。

例如:

  • ResNet-50 (1×64d): 23.9% 错误率
  • ResNeXt-50 (32×4d): 22.2% 错误率

将计算预算加倍

在拥有约 ResNet-101 两倍 FLOPs 时,最优使用方式是?

  1. 加深网络 (ResNet-200)
  2. 加宽网络 (增加 ResNet-101 的瓶颈宽度)
  3. 增加基数 (如 ResNeXt-101 64×4d)

将 ResNet-101 的复杂度加倍: 增加基数的收益最大。

表 4. 相较于深度或宽度,基数带来了最大的错误率下降。

结果:

  • 深度提升 (ResNet-200): 约 0.3% 改进
  • 宽度提升: 约 0.7% 改进
  • 基数提升 (ResNeXt-101 64×4d):** 1.6% 改进**

在其他任务上的泛化能力

ResNeXt 的优势延伸至多种数据集:

  • ImageNet-5K: 在更大数据集上,ResNeXt 的准确率优势更明显。
  • CIFAR-10:
    在 CIFAR-10 上,增加基数 (橙) 在降低错误率的参数效率上优于增加宽度 (蓝) 。

图 7. 从每个参数的效率来看,基数相比宽度能更高效地提升准确率。

  • COCO 目标检测: 在相同复杂度下,使用 ResNeXt 作为骨干网络可提升 Faster R-CNN 的检测性能。

达到业界领先水平的结果

通过使用 \(320\times320\) 的输入,ResNeXt 在 ImageNet-1K 上取得了 4.4% 的单裁剪 (single-crop) top-5 错误率,超过了 ResNet、Inception-v3/v4 以及 Inception-ResNet-v2,并且架构更加简洁。

ResNeXt 在 ImageNet-1K 上以 4.4% 的单裁剪 top-5 错误率达到新的业界领先水平。

表 5. ResNeXt 与其他先进架构在 ImageNet-1K 上的对比。


结论与启示

ResNeXt 的研究引入了基数,作为继深度和宽度之后的第三个架构维度:

  1. 提升准确率的新杠杆: 基数——模块中并行变换的数量,相比扩展深度或宽度更高效地解锁准确率提升。
  2. 高效性: 在增强表征能力的同时保持简洁性。分组卷积使实现变得简单且易扩展。
  3. 通用性: 优势可迁移到不同数据集和任务,从图像分类到目标检测。

ResNeXt 的配方很直接: 在已验证有效的架构 (如 ResNet) 中,将瓶颈块替换为具有更高基数的分组卷积块。这一简单的改动即可带来显著准确率提升,而无需复杂的手工设计模块。

这一思想此后影响了诸多先进架构,巩固了 ResNeXt 在神经网络设计史上的里程碑地位。