1. 简介

2. 笔记

2.1 网络深度的重要性

已经有一些论文证明,神经网络的深度(层数),能够在一定程度上提升模型的性能。

2.2 梯度的消失/爆炸(vanishing/exposing)问题:

通过规则化初始值和中间层规则化(Batch Normalization)来解决。由此,我们可以训练很深的网络。

2.3 退化问题

虽然上面的问题解决了,新的问题出现了:训练数据集准确率(train accuracy)的degradation。值得注意的是,这种退化不是由overfitting造成的,因为overfitting的话,训练集的表现应该更好。解决方案:残差

2.4 残差(residual)结构

为了解决上述问题,我们提出残差(residual)结构。该结构的核心是添加恒等映射(identity mapping)。
【论文笔记-ResNet】Deep Residual Learning for Image Recognition
假设我们要学习的映射为H(x),通过residual结构(shortcut connection),我们使 H(x)=F(x)+x。此时,网络需要学习的是映射F(x)。我们假设这种学习会更加简单。为什么?如果我们要学习的就是恒等映射,前者需要用堆叠的非线性网络层学习 H(x)=x,后者只需把F(x)置零。后者会相对容易些。或者当我们要学习的映射接近于恒等映射时,若x不为0,学习干扰项F(x)会比直接学习恒等映射更容易。(从实验结果看,学习好的resnet有着比较小的**值和参数,这说明我们学习的映射接近于identity mapping。)
另外,这种shortcut connection可以很容易地和原来一样用SGD学习,并且几乎不增加计算复杂度和参数数量。如上图所示,在每个shortcut connection之间会添加2-3个卷积层,除了最后一层卷积层,其他卷积层后都跟着BN,RELU。最后一层是在与X连接(element-wise addition)之后再使用BN,RELU。包含两层卷积的shortcut可以表示成:

F(x)=W2σ(BN(W1TX))
在这里,σ为RELU函数。

2.4.1 shortcut连接方式

shortcut连接是element-wise addition,这要求X和F(X)必须是相同size的。所以,当X和F(X)是不等size的时候,我们进行三种方式的处理:

  • A方式:使用0填充
  • B方式:对X进行projection变换:y=F(X,{Wi})+WsX,这里的Ws通过1x1的卷积实现。1x1
  • C方式:所有的X都用shortcut

【论文笔记-ResNet】Deep Residual Learning for Image Recognition
上图展示了部分vgg深层plain结构深层redisual结构的区别。
如下图实验结果证明:
1)residual结构很好地解决了训练集准确率的degradation问题
2)34层的residual结构比34层的plain结构效果更好
3)18层的residual结构比18层的plain结构更快收敛
【论文笔记-ResNet】Deep Residual Learning for Image Recognition

其他参考链接:
- 残差网络ResNet笔记

相关文章: