[论文翻译]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支持的工作。

参考文献