[论文翻译]Wide Residual Networks 宽残差网络




Wide Residual Networks

author

Sergey Zagoruyko:sergey.zagoruyko@enpc.fr
Nikos Komodakis:nikos.komodakis@enpc.fr
(Université Paris-Est, École des Ponts
ParisTech
Paris, France)

摘要

深度残差网络被证明能够扩展到数千层,并且仍然具有改进的性能。然而,每一个百分之一的提高精度的成本几乎是层数的两倍,所以训练非常深的残差网络有一个特征重用的问题,。针对这些问题,本文对 ResNet 块的结构进行了详细的实验研究,在此基础上提出了一种新的体系结构,了残差网络的深度,增加了残差网络的宽度。我们称这种网络结构为宽残差网络(WRNs),并指出这种网络结构效果远远优于常用的那些更深的网络(它们相对窄一些)。例如,我们证明,即使是一个简单的 16 层深宽残差网络,其精度和效率都优于所有以前的深度残差网络,包括千层深度网络。它在 CIFAR、SVHN、COCO 上取得了最优效果 State-of-the-art,并对 ImageNet 结果进行了重大改进。我们的代码和模型可在 https://github.com/szagoruyko/wide-residual-networks 上找到

1. 引言

在过去的几年里,卷积神经网络的层数逐渐增加,从 AlexNet[16]、VGG[26]、Inception[30]到残差[11]网络,这与许多图像识别任务的改进相对应。近年来,一些研究发现了深层网络的优越性[3,22]。然而,深层神经网络的训练有几个困难,包括梯度的爆炸/消失和退化。人们提出了各种技术来训练更深层的神经网络,例如设计良好的初始化策略[1,12]、更好的优化器[29]、跳过连接[19,23]、知识转移[4,24]和分层训练[25]。
最新的残差网络[11]在 ImageNet 和 COCO 2015 竞赛中取得了巨大成功,并在多个基准测试中实现了最新水平,包括 ImageNet 和 CIFAR 上的对象分类、PASCAL VOC 和 MS COCO 上的目标检测和分割。与初始体系结构相比,它们表现出更好的泛化能力,这意味着这些特征可以在迁移学习中得到更有效的利用。此外,后续工作表明,残差链接加速了深度网络的收敛[31]。最近的后续工作探索了残差网络中激活的顺序,提出了残差块中的 identity 映射[13],并改进了深层网络的训练。通过使用 highway networks[28],可以成功地训练非常深的网络[28],这是在残差网络之前提出的一种体系结构。残差网和公路网的本质区别在于,后者的残差路段是门控的,这些门的权值是学习的。
因此,到目前为止,残差网络的研究主要集中在 ResNet 块内部的激活顺序和残差网络的深度上。在这项工作中,我们试图进行一项超越上述观点的实验研究。通过这样做,我们的目标是探索一组更丰富的 ResNet 块网络架构,并彻底检查除了激活顺序之外的其他几个不同方面是如何影响性能的。正如我们在下面解释的那样,这种对体系结构的探索导致了关于残差网络的新的有趣的发现,具有非常重要的实际意义。

Width vs depth in residual networks. 残差网络中的宽度与深度对比

在机器学习中,浅网络与深网络的问题已经讨论了很长时间[2,18],并指出链路复杂性理论文献表明,浅层链路比深层链路需要指数级更多的元件。残余网络的作者试图使其尽可能薄,以增加其深度和参数较少,甚至引入了“瓶颈”块,使 ResNet 块更薄。
然而,我们注意到,具有身份映射的残差块允许训练非常深的网络,同时也是残差网络的一个弱点。当梯度流经网络,没有什么可以强迫它通过残差块权重,并且它可以避免在训练过程中学习任何东西,所以可能只有少数块学习有用的表示,或者许多块共享很少的信息,对最终目标的贡献很小。在这个问题中,28 被表述为“减少重用”。[14]的作者试图通过在训练过程中随机地禁用残差块的思想来解决这个问题。这种方法可以看作是一种特殊的丢失情况[27],其中每个残差块都有一个单位标量权重,在这个权重上应用了 dropout。这种方法的有效性证明了上述假设。
基于上述观察结果,我们的工作建立在[13]的基础上,试图回答深度残差网络应该有多宽的问题,并解决训练问题。在这种情况下,我们表明,与增加深度相比,ResNet 块的扩展(如果处理得当)提供了一种更有效的方法来改善残差网络的性能。特别是,我们提出了比[13]有显著改进的更广泛的深层残差网络,层数减少了 50 倍,速度提高了 2 倍以上。我们称其为广域残差网络。例如,我们的宽 16 层深网络具有与 1000 层薄深网络相同的精度和相当数量的参数,训练速度快了几倍。因此,这类实验似乎表明深部残差网络的主要效果在残差块体中,深度的影响是补充的。我们注意到,我们可以训练出更好的宽残差网络,其参数是原来的两倍(甚至更多),如果在传统网络采用增加深度来进一步提高性能,在这种情况下需要添加到数千层。

image.png

Figure 1:Various residual blocks used in the paper. Batch normalization and ReLU precede each convolution (omitted for clarity)

图 1. 论文中使用的各种残余块。批量归一化和 ReLU 在每个卷积之前(为清楚起见,省略)

Use of dropout in ResNet blocks.在 ResNet 块中使用 dropout。

Dropout 在[27]中首先被引入,后来被[16,26]等许多成功的架构所采用,它主要应用于具有大量参数的网络顶层,以防止特征的协同适应和过度拟合。然后,它主要被批量标准化[15]所取代,这是一种通过将神经网络激活归一化为具有特定分布来减少内部协变量偏移的技术。它也是一个正则化器,作者实验表明,批量归一化的网络比有丢失的网络具有更好的精度。在我们的例子中,由于残差块的扩大导致参数个数的增加,我们研究了 dropout 对正则化训练和防止过度拟合的影响。以前,在[13]中研究了残差网络中的丢失,在块的标识部分插入了 dropout,作者展示了这种情况的负面影响。相反,我们认为在卷积层之间应该插入 dropout。在宽残差网络上的实验结果表明,这导致了一致的增益,甚至产生了新的最新结果(例如,具有丢失的 16 层深宽残差网络在 SVHN 上的误差为 1.64%)。

总之,这项工作的贡献如下:

我们提出了一个详细的实验研究残余网络结构,彻底检查了几个重要方面的 ResNet 块结构。
我们为 ResNet 块提出了一种新的扩展架构,允许残差网络具有显著提高的性能。
我们提出了一种新的方法来利用深度残差网络中的 dropout 现象,以便对其进行适当的正则化,防止训练过程中的过度拟合。
最后,我们展示了我们提出的 ResNet 架构在多个数据集上取得了最新的结果,显著提高了残差网络的精度和速度。

2. 宽度残差网络

具有标识映射的残差块可以用以下公式表示:

image.png

其中$x_{l+1}$ 和$x_l$ 是网络中第 l单元的输入和输出, $\mathcal{F}$ 是残差函数 $\mathcal{W}_l$ 是块的参数。残差网络由按顺序叠加的残差块组成。

在[ He et al. (2016) He,Zhang,Ren,and Sun ]中残差网络由两种类型的块组成:
基本块 basic- 具有两个连续的 3×3 卷积,具有批处理标准化和 ReLU 前卷积:conv3×3-conv3×3 图 1(a)
瓶颈块 bottleneck- 一个 3×3 卷积被降维和扩展 1×1 卷积层包围:conv1×1-conv3×3-conv1×1 图 1(b)

与[13]中的原始架构[11]相比,残差块中批处理规范化、激活和卷积的顺序从 conv BN ReLU 更改为 BN-ReLU-conv。由于后者的训练速度更快,效果更好,因此我们不考虑原始版本。此外,所谓的“瓶颈”块最初用于降低块的计算成本,以增加层的数量。由于我们想研究加宽的影响以及“瓶颈”被用来使网络变薄,我们不考虑它,而是关注“基本”残余结构。
基本上有三种简单的方法来增加残差块的表示能力:

  • 为每个块添加更多的卷积层
  • 通过添加更多的特征平面来加宽卷积层
  • 增加卷积层中的滤波器尺寸
  • 由于小型滤波器在包括[26,31]在内的多个工程中被证明是非常有效的,我们不考虑使用大于 3×3 的滤波器。我们还引入两个因子,加深因子 l 和加宽因子 k,其中 l 是块中卷积的数量,k 乘以卷积层中的特征数,因此基线«basic»块对应于 l=2,k=1。图 1(a)和 1(c)分别显示了«basic»和«basic wide»块的示意示例。
    我们的残差网络的一般结构如表 1 所示:它由一个初始卷积层 conv1 组成,接着是 3 组残差块 conv2、conv3 和 conv4(每个大小为 N),然后是平均池和最终分类层。在我们的所有实验中,conv1 的大小是固定的,而引入的加宽因子 k 缩放了三组 conv2-4 中残差块的宽度(例如,原始的“basic”架构相当于 k=1)。我们想研究残差块的表现力的影响,为此,我们对«basic»架构进行了几次修改并进行了测试,这些修改将在下面的小节中详细介绍。

image.png

表 1. 宽残差网络的结构。网络宽度由系数 k 决定。原始体系结构[13]相当于 k=1。卷积组显示在括号中,其中 N 是组中的块数,由 conv3 和 conv4 组中的第一层执行下采样。最后的分类层被省略为间隙。在所示的特定示例中,网络使用类型为 B(3,3)的 ResNet 块

2.1 残差块中卷积的类型

设 B(M)表示残差块结构,其中 M 是块中卷积层的核大小的列表。例如,B(3,1)表示具有 3×3 和 1×1 卷积层的残差块(我们总是假设空间核是正方形的)。请注意,由于我们没有考虑前面解释的«瓶颈»块,特征平面的数量在整个块中始终保持不变。我们想回答的问题是«basic»残差架构的 3×3 卷积层各有多重要,以及它们是否可以被计算成本较低的 1×1 层甚至 1×1 和 3×3 卷积层的组合(例如 B(1,3)或 B(1,3))所取代。这可以增加或减少块的表示力。因此,我们对以下组合进行了实验(注意最后一个组合,即 B(3,1,1)与网络[20]体系结构中的有效网络相似):

  1. B(3,3)- 原始«basic»块
  2. B(3,1,3)- 额外 1×1 层
  3. B(1,3,1)- 具有相同维数的下降卷积,«拉直»瓶颈
  4. B(1,3)- 网络处处有交替的 1×1-3×3 卷积
  5. B(3,1)- 网络处处有交替的 3×3-1×1 卷积
  6. B(3,1,1)- NIN 中的网络

2.2 每个残差块的卷积层数

我们还对块加深因子 l 进行了实验,看看它是如何影响性能的。必须在参数数目相同的网络之间进行比较,因此在这种情况下,我们需要构建具有不同的 l 和 d (其中 d 表示块的总数)的网络,同时确保网络复杂度大致保持不变。这意味着,例如,d 应该随着 l 的增加而减少。

2.3 残差块宽度

除上述修改外,我们还对块体的加宽因子 k 进行了实验。当参数个数随 l(深化因子)和 d(ResNet 块数)线性增加时,参数个数和计算复杂度在 k 中是二次方的,由于 GPU 在大型张量上的并行计算效率更高,因此我们对最佳 d/k 比感兴趣。
更广泛的残差网络的一个论据是,与[13]相比,残差网络之前的几乎所有架构,包括最成功的初始[30]和 VGG[26]都要宽得多。例如,残差网络 WRN-22-8 和 WRN-16-10(关于这个符号的解释见下一段)在宽度、深度和参数数量上与 VGG 架构非常相似。
我们进一步将 k=1 的原始残差网络称为“薄”网络,将 k>1 的网络称为“宽”网络。在本文的其余部分中,我们使用以下符号:WRN-n-k 表示具有卷积层总数 n 和加宽因子 k 的残差网络(例如,具有 40 层且 k=2 倍于原始层的网络将被表示为 WRN-40-2)。此外,如果适用,我们附加块类型,例如 WRN-40-2-B(3,3)。

2.4 残差块中的 Dropout

随着参数的增加,我们想研究正则化的方法。残差网络已经有了批量标准化,提供了一个正则化的效果,但是它需要大量的数据扩充,这是我们想要避免的,而且这并不总是可能的。如图 1(d)所示,在 ReLU 之后,我们在卷积之间的每个残差块中添加一个 dropout 层,以扰动下一个残差块中的批标准化并防止其过度拟合。在非常深的残差网络中,这应该有助于处理减少的特征重用问题,在不同的残差块中强制学习。

3. 实验结果

在实验中,我们选择了著名的 CIFAR-10、CIFAR-100、SVHN 和 ImageNet 图像分类数据集。CIFAR-10 和 CIFAR-100 数据集[17]由从 10 个和 100 个等级中提取的 32×32 个彩色图像组成,这些图像分为 50000 个训练图像和 10000 个测试图像。对于数据增强,我们做水平翻转,并从每边 4 个像素填充的图像中随机裁剪,用原始图像的反射填充缺失的像素。我们没有使用[9]中提出的重数据扩充。SVHN 是谷歌街景房屋编号图片的一个数据集,包含大约 60 万个数字图像,来自一个明显更困难的现实世界问题。在 SVHN 上的实验中,我们不做任何图像预处理,除了将图像除以 255 以提供[0,1]范围内的图像作为输入。除了 ImageNet 之外,我们所有的实验都是基于[13]架构的预激活残差块,我们使用它作为基线模型。对于 ImageNet,我们发现在少于 100 层的网络中使用预激活不会产生任何显著的差异,因此我们决定在本例中使用原始的 ResNet 架构。除非另有说明,对于 CIFAR,我们遵循[8]的图像预处理和 ZCA 白化。然而,对于一些 CIFAR 实验,我们使用简单的 mean/std 标准化,这样我们就可以直接与[13]和其他使用这种预处理的 ResNet 相关工作进行比较。
在下文中,我们描述了我们对不同 ResNet 块结构的发现,并分析了我们提出的宽残差网络的性能。我们注意到,对于所有实验,效果都与如下两者相关:“块中卷积的类型”和“每个块包含的卷积数”,为了加快训练速度,我们使用 k=2 和与[13]相比减少的深度。
image.png

Table 2: Test error (%, median over 5 runs) on CIFAR-10 of residual networks with k=2 and different block types. Time column measures one training epoch.Table 3: Test error (%, median over 5 runs) on CIFAR-10 of WRN-40-2 (2.2M) with various l.

表 2. k=2 和不同块类型的残差网络在 CIFAR-10 上的测试误差(%,5 次运行的中值)。时间列测量一个训练 epoch

块中卷积的类型

我们首先比较了使用不同块类型 B 的结果(在 CIFAR-10 上):我们将 WRN-40-2 用于块 B(1,3,1)、B(3,1)、B(1,3)和 B(3,1,1),因为这些块只有一个 3×3 卷积。为了保持参数数目的可比性,我们训练了其他具有较少层数的网络:WRN-28-2-B(3,3)和 WRN-22-2-B(3,1,3)。我们在表 2 中提供了测试结果,包括平均 5 次测试的准确度和每个训练阶段的时间。B(3,3)块的精度与 B(3,1,3)非常接近,参数少,层数少。B(3,1,3)比其他方法快一点。
基于上述结果,具有可比较数量参数的块得到的结果或多或少是相同的。由于这个事实,我们将注意力限制在仅具有 3×3 卷积的 WRNs 上,以便与其他方法保持一致。

每个块的卷积数

接下来,我们继续进行与改变加深因子 l(表示每个块的卷积层数)有关的实验。我们在表 3 中给出了指示性结果,在这个例子中,我们使用 3×3 卷积的 WRN-40-2,训练了几个具有不同加深因子 l∈[1,2,3,4],相同数量参数(2.2×106)和相同卷积层数的网络。
可以注意到,B(3,3)的性能最好,而 B(3,3,3)和 B(3,3,3,3)的性能最差。我们推测这可能是由于在最后两种情况下,由于残差连接数的减少,优化难度增加。此外,B(3)的情况更糟。结论是 B(3,3)在每个块的卷积数方面是最优的。因此,在剩下的实验中,我们只考虑具有 B(3,3)型块的宽残差网络。

l CIFAR-10
1 6.69
2 5.43
3 5.65
4 5.93

Table 3: Test error (%, median over 5 runs) on CIFAR-10 of WRN-40-2 (2.2M) with various
表 3. WRN-40-2(2.2M)CIFAR-10 在不同 l 下的试验误差(%,5 次试验的中值)

残差块的宽度

当我们试图增加加宽参数 k 时,我们必须减少总层数。为了找到一个最佳的比率,我们用 k 从 2 到 12,深度从 16 到 40 进行了实验。结果见表 4。可以看出,当宽度增加 1 到 12 倍时,所有具有 40、22 和 16 层的网络都能看到一致的增益。另一方面,当保持相同的固定加宽系数 k=8 或 k=10 并将深度从 16 变为 28 时,会有一致的改善,但是当我们进一步将深度增加到 40 时,精度会降低(例如,WRN-40-8 的精度会降低到 WRN-22-8)。
我们在表 5 中显示了其他结果,在表 5 中,我们比较了细残差网络和宽残差网络。可以观察到,wide WRN-40-4 比 thin ResNet-1001 更好,因为它在 CIFAR-10 和 CIFAR-100 上都获得了更好的精度。然而,有趣的是,这些网络具有可比较数量的参数,8.9×106 和 10.2×106,这表明在这个水平上,深度与宽度相比没有增加正则化效应。正如我们在基准点上进一步显示的那样,WRN-40-4 的训练速度是原来的 8 倍,因此很明显原始的薄残差网络的深宽比远远不是最优的。
此外,wide WRN-28-10 在 CIFAR-10 上的性能优于 thin ResNet-1001 0.92%(在训练期间具有相同的小批量大小),而在 CIFAR-100 上,wide WRN-28-10 比 thin ResNet-1001 高出 3.46%,层数少 36 倍(见表 5)。我们注意到,ResNet-1001 的结果为 4.64%,批次大小为 64,而我们在所有实验中使用的批次大小为 128(即,表 5 中报告的所有其他结果的批次大小为 128)。这些网络的训练曲线如图 2 所示。

depth k # params CIFAR-10 CIFAR-100
40 1 0.6M 6.85 30.89
40 2 2.2M 5.33 26.04
40 4 8.9M 4.97 22.89
40 8 35.7M 4.66 -
28 10 36.5M 4.17 20.50
28 12 52.5M 4.33 20.43
22 8 17.2M 4.38 21.22
22 10 26.8M 4.44 20.75
16 8 11.0M 4.81 22.07
16 10 17.1M 4.56 21.59

Table 4: Test error (%) of various wide networks on CIFAR-10 and CIFAR-100 (ZCA preprocessing).

表 4. CIFAR-10 和 CIFAR-100 上各种宽网的测试误差(%)(ZCA 预处理)

尽管之前有观点认为深度会产生正则化效果,而宽度会导致网络过度拟合,但我们成功地用比 ResNet-1001 多几倍的参数训练网络。例如,wide WRN-28-10(表 5)和 wide WRN-40-10(表 9)的参数分别是 ResNet-1001 的 3.6 倍和 5 倍,而且两者的表现都明显优于 ResNet-1001。

image.png

Table 5: Test error of different methods on CIFAR-10 and CIFAR-100 with moderate data augmentation (flip/translation) and mean/std normalzation. We don’t use dropout for these results. In the second column k is a widening factor. Results for [[He et al.(2016)He, Zhang, Ren, and Sun] are shown with minibatch size 128 (as ours), and 64 in parenthesis. Our results were obtained by computing median over 5 runs.

表 5. 不同方法对 CIFAR-10 和 CIFAR-100 进行中等数据增强(翻转/平移)和平均值/标准差归一化的测试误差。这些结果我们不用 dropout。在第二列中,k 是一个加宽因子。[13]的结果显示为 minibatch size 128(与我们一样),括号内是 minibatch size=64 的结果。我们的结果是通过计算 5 次以上的中位数得到的

总的来说,我们观察到 CIFAR 平均值/std 预处理能够以更好的精度训练更广泛和更深入的网络,使用 WRN-40-10 和 56×106 参数在 CIFAR-100 上实现了 18.3%(表 9),比 ResNet-1001 提高了 4.4%,并在该数据集上建立了一个新的最新结果。

总结一下:

拓宽范围不断提高不同深度残余网络的性能;
增加深度和宽度有助于直到参数的数量变得太多,需要更强的正则化;
在残差网络中,由于具有相同数量参数的宽网络可以学习相同或更好的表示,因此在残差网络中似乎没有从非常高的深度产生正则化效应。此外,宽网络可以使用比瘦网络大 2 倍或更多倍的参数来成功学习,这就需要将瘦网络的深度翻一番,这使得训练它们的成本不可行。

image.png

图 2. CIFAR-10 和 CIFAR-100 上薄和宽残差网络的训练曲线。实线表示测试误差(右侧 y 轴),虚线表示训练损失(y 轴在左侧)

残差块中的 Dropout

我们训练网络,在所有数据集的卷积之间插入一个残差块。我们使用交叉验证来确定退出概率值,CIFAR 为 0.3,SVHN 为 0.4。而且,与没有 dropout 的基线网络相比,我们不必增加训练时段的数量。
与 WRN-28-10 相比,丢失使 CIFAR-10 和 CIFAR-100 上的测试误差分别降低了 0.11% 和 0.4%(超过 5 次运行和平均/std 预处理的中值),并且与其他 RESNET 相比也有改进(表 6)。据我们所知,这是 CIFAR-100 的第一个接近 20% 误差的结果,甚至优于大数据量扩充的方法。在 CIFAR-10 上,WRN-16-4 的精度只有轻微的下降,我们推测这是由于相对较少的参数。
我们注意到在第一次学习率下降后,当损失和验证误差突然上升并在高值上振荡,直到下一次学习率下降时,残差网络训练会产生干扰效应。我们发现它是由重量衰减引起的,但是降低它会导致精度的显著下降。有趣的是,在大多数情况下,dropout 部分地消除了这种影响,见图 2、3。
dropout 对 SVHN 的影响更为明显。这可能是因为我们没有进行任何数据扩充和批量标准化过度拟合,所以 dropout 增加了正则化效果。这方面的证据可以在图 3 中的训练曲线上找到,其中没有脱落的损失下降到非常低的值。结果见表 6。我们观察到在薄网络和宽网络上使用 dropout 的显著改进。在随机深度下,Thin 50 层深度网络甚至优于 Thin 152 层深层网络[14]。此外,我们还对 WRN-16-8 进行了 SVHN Dropout 训练(表 9),在 SVHN 上达到了 1.54%,这是我们所知的最好的公开结果。没有 Dropout 率为 1.81%。
总的来说,尽管有人主张结合批量规范化,但 dropout 显示出它是一种有效的薄网络和宽网络正则化技术。它可以用来进一步改善加宽的结果,同时也可以作为它的补充。

depth k dropout CIFAR-10 CIFAR-100 SVHN
16 4 5.02 24.03 1.85
16 4 5.24 23.91 1.64
28 10 4.00 19.25 -
28 10 3.89 18.85 -
52 1 6.43 29.89 2.08
52 1 6.28 29.78 1.70

Table 6: Effect of dropout in residual block. (mean/std preprocessing, CIFAR numbers are based on median of 5 runs)

表 6. 残余块中脱落的影响(平均值/标准预处理,CIFAR 数字基于 5 次运行的中值)

image.png

图 3. SVHN 的训练曲线。左边:窄而宽的网络,右边:dropout 的影响。实线表示测试误差(右侧 y 轴),虚线表示训练损失(y 轴在左侧)

ImageNet 和 COCO 实验

对于 ImageNet,我们首先使用非瓶颈 ResNet-18 和 ResNet-34 进行实验,尝试将它们的宽度从 1.0 逐渐增加到 3.0。结果见表 7。增加宽度会逐渐提高两个网络的精度,并且具有可比较数量参数的网络可以获得相似的结果,尽管深度不同。尽管这些网络有大量的参数,但是瓶颈网络却比它们好,这可能是因为瓶颈结构更适合于 ImageNet 分类任务,或者是因为这个更复杂的任务需要更深层的网络。为了验证这一点,我们采用 ResNet-50,并试图通过增加内部 3×3 层的宽度使其变宽。随着加宽系数为 2.0,WRN-50-2-瓶颈的性能优于 ResNet-152,其层数减少了 3 倍,而且速度明显更快。WRN-50-2-瓶颈只比性能最好的预激活 ResNet-200 稍微差一点,几乎快 2 倍,尽管参数稍多(表 8)。一般来说,我们发现,与 CIFAR 不同,ImageNet 网络在相同深度需要更大的宽度才能达到相同的精度。然而,很明显,由于计算上的原因,没有必要使用超过 50 层的残差网络。
我们没有试图训练更大的瓶颈网络,因为这需要 8-GPU 机器。

image.png

Table 7: ILSVRC-2012 validation error (single crop) of non-bottleneck ResNets for various widening factors. Networks with a comparable number of parameters achieve similar accuracy, despite having 2 times less layers.

表 7. ILSVRC-2012 各种加宽因子的非瓶颈再网验证误差(单作物)。具有可比数量的参数的网络可以获得相似的精度,尽管其层数减少了 2 倍

Model top-1 err, % top-5 err, % #params time/batch 16
ResNet-50 24.01 7.02 25.6M 49
ResNet-101 22.44 6.21 44.5M 82
ResNet-152 22.16 6.16 60.2M 115
WRN-50-2-bottleneck 21.9 6.03 68.9M 93
pre-ResNet-200 21.66 5.79 64.7M 154

Table 8: ILSVRC-2012 validation error (single crop) of bottleneck ResNets. Faster WRN-50-2-bottleneck outperforms ResNet-152 having 3 times less layers, and stands close to pre-ResNet-200.

表 8. ILSVRC-2012 瓶颈再网络验证误差(单作物)。更快的 WRN-50-2-瓶颈比 ResNet-152 少 3 倍层,并且接近 ResNet-200 之前的水平

我们还使用 WRN-34-2 参与了 COCO 2016 目标检测挑战赛,使用了 MultiPathNet[32]和 LocNet[7]的组合。尽管只有 34 层,但该模型实现了最先进的单模型性能,甚至优于基于 ResNet-152 和 Inception-v4 的模型。
最后,在表 9 中,我们总结了各种常用数据集的最佳 WRN 结果。

Dataset model dropout test perf.
CIFAR-10 WRN-40-10 3.8%
CIFAR-100 WRN-40-10 18.3%
SVHN WRN-16-8 1.54%
ImageNet (single crop) WRN-50-2-bottleneck 21.9% top-1, 5.79% top-5
COCO test-std WRN-34-2 35.2 mAP

Table 9: Best WRN performance over various datasets, single run results. COCO model is based on WRN-34-2 (wider basicblock), uses VGG-16-based AttractioNet proposals, and has a LocNet-style localization part. To our knowledge, these are the best published results for CIFAR-10, CIFAR-100, SVHN, and COCO (using non-ensemble models).

表 9. 各种数据集的最佳 WRN 性能,单次运行结果。COCO 模型基于 WRN-34-2(更广泛的 basicblock),使用基于 VGG-16 的吸引集方案,并具有 LocNet 风格的本地化部分。据我们所知,这些是 CIFAR-10、CIFAR-100、SVHN 和 COCO(使用非集成模型)的最佳结果

计算效率

具有小核数的细残差网络和深残差网络由于其序列结构而与 GPU 计算的本质背道而驰。增加宽度有助于以更优化的方式有效地平衡计算,因此,正如我们的基准测试所显示的那样,宽网络的效率是瘦网络的数倍。我们使用 cudnv5 和 Titan X 来测量多个网络的前向和后向更新时间(minibatch size 32),结果如图 4 所示。我们显示,我们最好的 CIFAR 宽 WRN-28-10 比 thin ResNet-1001 快 1.6 倍。此外,wide WRN-40-4 的精度与 ResNet-1001 大致相同,它的速度是 ResNet-1001 的 8 倍。

image.png

Figure 4: Time of forward+backward update per minibatch of size 32 for wide and thin networks(x-axis denotes network depth and widening factor). Numbers beside bars indicate test error on CIFAR-10, on top - time (ms). Test time is a proportional fraction of these benchmarks. Note, for instance, that wide WRN-40-4 is 8 times faster than thin ResNet-1001 while having approximately the same accuracy.

图 4. 对于宽网络和瘦网络(x 轴表示网络深度和加宽系数),每批大小为 32 的小批量向前 + 向后更新的时间。条旁的数字表示 CIFAR-10 上的测试错误,时间(毫秒)。测试时间是这些基准的一部分。请注意,例如,宽 WRN-40-4 比瘦 ResNet-1001 快 8 倍,同时具有大致相同的精度

实现细节

在我们所有的实验中,我们使用了具有 Nesterov 动量和交叉熵损失的 SGD。初始学习率设置为 0.1,权重衰减为 0.0005,阻尼为 0,动量为 0.9,minibatch size 设置为 128。在 CIFAR 上,学习率在 60、120 和 160 个时期下降了 0.2,我们总共训练了 200 个时期。在 SVHN 上,初始学习率设为 0.01,我们在 80 和 120 个周期将其降低 0.1,总共训练 160 个周期。我们的实现基于 Torch[6]。我们使用[21]来减少所有网络的内存占用。我们使用的 ImageNet 实验 fb.resnet.torch 实施[10]。我们的代码和模型可在 https://github.com/szagoruyko/wide-residual-networks

4. 结论

我们研究了残差网络的宽度,以及在残差结构中使用 dropout。基于这项研究,我们提出了一个宽残差网络体系结构,它提供了几种常用基准数据集(包括 CIFAR-10、CIFAR-100、SVHN 和 COCO)的最新结果,并对 ImageNet 进行了重大改进。我们证明了只有 16 层的广域网络在 CIFAR 上的性能明显优于 1000 层的深层网络,而在 ImageNet 上,50 层网络的性能也优于 152 层网络,从而表明残差网络的主要功能是在残差块中,而不是在如前所述的极端深度。此外,宽残差网络的训练速度要快好几倍。我们认为这些有趣的发现将有助于深层神经网络研究的进一步进展。

5. 致谢

我们感谢初创公司 VisionLabs 和 Eugenio culuciello 让我们访问他们的集群,没有他们 ImageNet 实验就不可能了。我们也感谢亚当·勒勒和萨姆·格罗斯的有益讨论。欧盟项目 FP7-ICT-611145 ROBOSPECT 支持的工作。

参考文献