Residual Network Research: Wide Residual Networks

WRNs:Wide Residual Networks

Abstract

深度残差网络能够让我们将神经网络的层数增加到几千层仍然能够获得性能的提升。但是,准确率每提升一个百分点网络的层数几乎要增加一倍,因此训练非常深的残差网络存在降低特征重用的问题,这使得这些网络训练的很慢。为了解决这个问题,作者在这篇文章中做了很多对比实验来研究ResNet block的结构,然后提出了一种新的结构,在这种结构下作者减少了网络的深度但是增加了网络的宽度。作者将这种结构称为wide residual networks (WRNs),而且作者展示了这种结构要比通常的窄的但是深度很深的结构要好很多。

1 Introduction

Width vs depth in residual networks
作者提出了层数很深的ResNet的一个问题:

As gradient flows through the network there is nothing to force it to go through residual block weights and it can avoid learning anything during training, so it is possible that there is either only a few blocks that learn useful representations, or many blocks share very little information with small contribution to the final goal. This problem was formulated as diminishing feature reuse in [28]

意思是说随着梯度在网络中的传递,并没有措施来强制其通过Residual block weights,这样就可能导致在训练时学不到或者学到的很少,因此很有可能在网络中只有少数的几个block能够学习到有用的表示,其他很多blocks只是共享了很少的信息,对最终的结构贡献很少,这个问题被称为diminishing feature reuse。

基于上述的问题,作者就在这片文章中研究了怎么来设计wide residual networks以及来解决一些训练中的问题。

Use of dropout in ResNet blocks
之前有文章表明将 dropout 添加到 residual networks 中的 identity part 会有副作用。但是作者确认为应该添加到卷积层之间,实验表明这样会取得更好的效果。

2 Wide residual networks

Identity mappings in deep residual networks 这篇文章中提出了两种 residual blocks:

  • basic (Figure 1.a)
  • bottleneck (Figure 1.b)
    在这里插入图片描述
    由于bottleneck block是为了减少计算量,这篇文章是为了研究深度的影响,所以不考虑bottleneck形式的block。

Deep residual learning for image recognitionIdentity mappings in deep residual networks 这两篇文章提出了不同结构(BN、ReLU、Conv的顺序不同)的 residual block。从 conv-BN-ReLU 到 BN-ReLU-conv,由于后面这种训练更快,效果更好,所以在实验中不考虑前面那种结构了。
在这里插入图片描述
wide residual networks 的结构如上图,原始的ResNet中k=1.

有三种简单的方式来增强ResNet的性能:

  • 在每个block中添加更多的卷积层
  • 通过添加feature maps的数量来增加网络的宽度
  • 使用更大的filter

由于有文章表明较小的卷积核在一些任务上有更好的想过,所以实验不会使用比 3x3 更大的卷积核了。
2.1 Type of convolutions in residual block
B ( M ) B(M) 表示residual block 的结构,其中 M M 表示卷积核大小的一个list,例如 B ( 3 , 1 ) B(3,1) 表示拥有一个3x3卷积和1x1卷积的 residual block。作者设计了一下几种结构的 residual block:
在这里插入图片描述
2.2 Number of convolution layers per residual block
作者也通过实验验证了residual block中卷积层的数目的影响(保证参数数目差不多的条件下)。
2.3 Width of residual block
residual block宽度对效果的影响,即上面那个结构图中的k>1时。当k>1时称为 wide residual networks (WRNs). 文章中用 WRN-n-k 来表示卷积层数为n,widen factor 为 k 的 WRNs。
2.4 Dropout in residual blocks
作者也验证了加入 dropout 后的影响,结构见 Figure 1.d.

Experimental results

Type of convolution in a block
在这里插入图片描述
从 Table 2 可以看出B(3,3)效果最好,而 B(3,1) 和 B(3,1,3) 的效果与 B(3,3) 很接近。

Number of convolution layers per residual block
Table 3 展示了residual block 中卷积层数目的影响。可以看出两层卷积时效果最好,因此在后面的实验中作者都采用了B(3,3)形式的 residual block。

Width of residual blocks
在这里插入图片描述
在增加k的同时要减少网络的深度,作者为了找到最合适的比例将k从2增到12,深度从16到40,结果见下表。由Table 4可以看出深度为40、22、16的网络随着k的增大效果也在变好。另一方面,如果固定k=8或k=10,深度从16到28,效果也在变好,但是当继续增加到40层的时候效果却下降了(WRN-40-8的准确率比WRN-22-8要低)。

在这里插入图片描述
作者在Table 5中展示了窄的网络和宽网络的对比。从表中我们可以看出宽的WRN-40-4要比窄的ResNet-1001要好,因为在CIFAR-10和CIFAR-100两个数据集上WRN-40-4的准确率都更高,而且它们有着相似的参数数量,表明与这种宽度相比深度并没有增加正则化的效应。作者在基准测试中进一步显示,WRN-40-8的训练速度比ResNet-1001快八倍,所以作者认为原来residual network的深度和宽度的比例远不是最优的。

尽管之前有争论说深度能过提供正则化的效果而宽度则会导致过拟合,但是作者却成功训练了参数数量是ResNet-1001几倍的网络,而且效果要更好。
在这里插入图片描述
上面的图是thin和wide的residual networks在在训练和测试时错误率的变化曲线。
根据上面的实验,作者得出一下几点结论:

  • 宽度的增加提高了性能
  • 增加深度和宽度都有好处,直到参数太大,regularization不够
  • 相同参数时,宽度比深度好训练
    Dropout in residual blocks
    在这里插入图片描述
    从上表可以看出dropout减少了各种WRN的错误率,但是在WRN-16-4在CIFAR-10数据集上准确率却有一点下降,可能是因为WRN-16-4的参数数量相对较少。

dropout能够增加正则化的效果,这个可以在Figure 3中看出来。在训练集上没有使用dropout时损失可以降的很低。但是在测试时添加了dropout的效果却更好。
在这里插入图片描述
ImageNet and COCO experiment
这部分就不详细说了,大家可以自己去看论文。
Computation efficiency
在这里插入图片描述
增加宽度可能会增加参数数量,但是对GPU来说他很擅长做并行的计算。从上面的图可以看出效果最好的WRN-28-10训练的速度比ResNet-1001快1.6倍。对于准确率差不多的WRN-40-4和ResNet-1001,WRN-40-4快8倍。

发布了11 篇原创文章 · 获赞 7 · 访问量 8928

猜你喜欢

转载自blog.csdn.net/zh20166666/article/details/84028560