ResNet模型——Deep Residual Learning for Image Recognition

目录

  • motivation
  • solution
  • Architectures
  • Summary

motivation

通过总结前人的经验,我们常会得出这样的结论:通过堆叠神经网络层数(增加深度)可以非常有效地增强表征,提升特征学习效果。

但是此时有几个问题需要考虑:

  1. 学习更好的网络是否像堆叠更多层一样容易?梯度消失/爆炸问题从一开始就阻碍了收敛。然而,这个问题在很大程度上已经通过归一化初始化和中间归一化层来解决,这使得具有数十层的网络能够开始收敛通过具有反向传播的随机梯度下降法。
  2. 更深层的网络收敛是收敛了,却出现了效果上的退化。这种退化并不是由过度拟合引起的(因为56-layer网络(红线)的training error(左图)也比20-layer网络(黄线)要高),而且在适当深度的模型上增加更多的层会导致更高的训练误差。

提升深度之后的表现是这样的:
ResNet模型——Deep Residual Learning for Image Recognition_第1张图片

solution

ResNet模型——Deep Residual Learning for Image Recognition_第2张图片
与其直接拟合H(x)即desired underlying mapping,不如让网络尝试拟合一个F(x)即residual mapping,其中:
F ( x ) = H ( x ) − x F(x) =H(x)-x F(x)=H(x)x
H(x)则可以由F(x)+x拟合得到。作者认为这样可能更易于优化,假设优化残差映射F(x)是比优化原映射H(x)要容易的,将残差映射到0要比通过一堆非线性层来拟合单位映射要容易得多。

文中采用的连接方式叫做“shortcut connection”,弧线就是所谓的”shortcut connection“,也是文中提到identity mapping。如上图所示就是一个残差块(Residual Block),多个block即构成ResNet。

文中提到了两种block,这是为什么呢?
ResNet模型——Deep Residual Learning for Image Recognition_第3张图片
左边是basic block版本,右边是bottleneck block版本。bottleneck即右图,用于先降维再升维,主要出于降低计算复杂度的现实考虑。basic block用于50层以下的ResNet,50层及以上的ResNet用bottleneck block,具体结构如下:
ResNet模型——Deep Residual Learning for Image Recognition_第4张图片

Architectures

ResNet模型——Deep Residual Learning for Image Recognition_第5张图片
受VGGNet(左边)启发,设计了34层的plain network(中间),以及其对应的residual network版本(右边)。为什么ResNet中的shortcut connection既有实线连接又有虚线连接呢?这里就涉及到一个问题:如果F(x)和x的channel个数不同怎么办,因为F(x)和x是按照channel维度相加的,channel不同怎么相加呢?针对channel个数是否相同,要分成两种情况考虑,如上图所示:

  • 实线的的Connection部分(”第一个粉色矩形和第三个粉色矩形“)都是执行3x3x64的卷积,他们的channel个数一致,所以采用计算方式: y = F ( x ) + x y=F(x)+x y=F(x)+x
  • 虚线的的Connection部分(”第一个绿色矩形和第三个绿色矩形“)分别是3x3x64和3x3x128的卷积操作,他们的channel个数不同(64和128),所以采用计算方式: y = F ( x ) + W x y=F(x)+Wx y=F(x)+Wx(其中W是卷积操作,用来调整x的channel维度的)

Summary

  1. ResNet的动机在于解决“退化”问题,残差块的设计让学习恒等映射变得容易,网络的“实际深度”是在训练过程中决定的,即ResNet具有某种深度自适应的能力。
  2. ResNet结构非常容易修改和扩展,通过调整block内的channel数量以及堆叠的block数量,就可以很容易地调整网络的宽度和深度,来得到不同表达能力的网络,而不用过多地担心网络的“退化”问题,只要训练数据足够,逐步加深网络,就可以获得更好的性能表现。
  3. ResNet在不增加任何参数的情况下,仅使用shortcuts and zero-padding for matching dimensions结构,就实现了:解决了degradation problem,更高的准确率,更快的收敛速度。

创新点

  • 与plain net相比,ResNet多了很多“旁路”,即shortcut路径,其首尾圈出的layers构成一个Residual Block;
  • ResNet中,所有的Residual Block都没有pooling层,降采样是通过conv的stride实现的;
  • 分别在conv3_1、conv4_1和conv5_1 Residual Block,降采样1倍,同时feature map数量增加1倍,如图中虚线划定的block;
  • 通过Average Pooling得到最终的特征,而不是通过全连接层;
  • 每个卷积层之后都紧接着BatchNorm layer(为了简化,图中并没有标出)

你可能感兴趣的:(paper,深度学习,神经网络,机器学习)