论文阅读——Deep Residual Learning for Image Recognition

目录

前言

Abstract

1. Introduction

2、Related Work

3、Deep Residual Learning

3.1、残差学习

3.2、快捷恒等映射

3.3、网络结构

3.4、实现

4、Experiments

4.1、ImageNet分类

4.2、CIFAR-10和分析

4.3、PASCAL和MS COCO上的目标检测


前言

之前有一段时间看了挺多深度学习方面的论文,但是由于时间方面的问题一直没来得及进行总结。最近一段时间突发奇想把自己看论文时的学习笔记给记录一下,由于之前没写过博文,所以排版可能会有点emmm...一言难尽。专业方面的知识,如果有理解不到位的地方欢迎各位大佬指教。

Abstract

文章的主要工作:

  1. 文章提出了一个残差学习框架来减轻更深度网络的训练难度。
  2. 文章提出的残留网络更容易优化,其深度比VGG网络深,但复杂度却更低。
  3. 文章提出的残留网络可以通过不断增加网络深度来提高识别精度。

1. Introduction

这一部分作者主要提到了近些年来,随着卷积网络深度的增加,网络训练所遇到的一些问题以及解决方法,并抛出残差学习框架一概念。

1、卷积网络深度增加所遇到的主要问题及解决方式:

  • 梯度消失——进行初始标准化和在网络中添加标准化层。
  • 网络的深度增加但是训练精度却出现退化(大网络的精度反而不如小网络好)——引入本文中提出的残差网络。
论文阅读——Deep Residual Learning for Image Recognition
从左边的图可以看出在没有使用残差网络时,更深层网络的错误率反而要比浅层网络高

2、引入深度残差学习框架来解决训练时的精度退化问题

  1. 假设网络期望得到的映射为论文阅读——Deep Residual Learning for Image Recognition(即希望使用网络拟合得到的函数)。
  2. 但我们让堆叠的非线性层去拟合另一个映射论文阅读——Deep Residual Learning for Image Recognition
  3. 此时网络最终期望得到的映射论文阅读——Deep Residual Learning for Image Recognition就可以改写成 论文阅读——Deep Residual Learning for Image Recognition
  4. 上面公式中的论文阅读——Deep Residual Learning for Image Recognition可以通过引入一个快捷连接来实现,具体如下图所示。
论文阅读——Deep Residual Learning for Image Recognition
快捷连接从输入直接引出,跳过多个卷积层并最终和通过卷积层那个分支得到的结果相加

3、网络在引入深度残差学习框架后的效果

  • 残差结构对解决精度退化问题有普适效果,在CIFAR-10、ImageNet等数据集上的实验结论都一致。
  • 极深的残差网络易于优化,当深度增加时,对应的“简单”网络(没有设置残差结构其他配置完全一致的网络)表现出更高的训练误差。
  • 深度残差网络可以通过深度的增加提高准确性。

2、Related Work

这一部分作者介绍了一些和论文中所研究项目有关的其他科研进展(虽然我也不知道具体有啥关系,文章中也没说,害)。

  • 残差表示方法:1.VLAD:一种通过关于字典的残差向量进行编码的表示形式。2.Fisher矢量:VLAD的概率版本。
  • 解偏微分方程的方法:1.Multigrid方法:将系统重构为在多个尺度上的子问题,其中每个子问题负责较粗尺度和较细尺度的残差解。2.层次化基础预处理:其依赖于表示两个尺度之间残差向量的变量。
  • 快捷连接:1.普通快捷连接(就如上面所讲到的那样)。2.门控制快捷连接:可以看作快捷连接由一个门所控制,当门打开时就是普通快捷连接,当门关闭时就是没有残差结构的卷积网络。

3、Deep Residual Learning

3.1、残差学习

1、残差网络构建的原理(其实在introduction的时候我提到过):

  1. 假设论文阅读——Deep Residual Learning for Image Recognition是我们期望得到的拟合函数,论文阅读——Deep Residual Learning for Image Recognition为网络第一层的输入。
  2. 我们让多个非线性层近似残差函数论文阅读——Deep Residual Learning for Image Recognition而不是论文阅读——Deep Residual Learning for Image Recognition
  3. 最后通过添加一条快捷连接论文阅读——Deep Residual Learning for Image Recognition,来达到拟合函数论文阅读——Deep Residual Learning for Image Recognition的目的,即论文阅读——Deep Residual Learning for Image Recognition

2、残差网络更加容易学习的原因:

  • 恒等映射(即直接使用多个卷积层对论文阅读——Deep Residual Learning for Image Recognition进行拟合)不太可能得到最优解。
  • 如果恒等映射为最优解,求解器可以简单地将多个非线性层的权重置零使其得到恒等映射。
论文阅读——Deep Residual Learning for Image Recognition
学习的残差函数总体上有更小的响应,表明恒等映射提供了合理的预处理

3.2、快捷恒等映射

  • 文中将残差结构块的数学表达式定义为:论文阅读——Deep Residual Learning for Image Recognition
  • 由于论文阅读——Deep Residual Learning for Image Recognition论文阅读——Deep Residual Learning for Image Recognition的维度必须是相等的,当论文阅读——Deep Residual Learning for Image Recognition修改了数据维度时数学表达式定义为论文阅读——Deep Residual Learning for Image Recognition
  • 残差结构块中的快捷连接没有引入额外的参数,也不需要额外进行计算。

3.3、网络结构

在这一部分中,作者设置三个不同的网络以便后续实验中使用这三个网络进行对照。其中有两个为无残差结构网络,另一个为残差网络。

1、简单网络的设计思路:

  • 对于输出相同尺寸特征图的卷积层,卷积核的数量应该保持一致。
  • 如果特征图尺寸减半,则卷积核的数量应该翻倍(也就是随着网络的深入,特征图尺寸不断减小但通道数不断增加)。

2、残差网络的设计思路:

  • 残差网络是基于上述的简单网络,在其中插入快捷连接构成的。
  • 当输入和输出通道数相等时直接插入快捷连接。
  • 当输入和输出通道数不等时有两种方法:A.快捷连接仍然使用恒等映射,额外填充零输入以增加维度。B.使用投影快捷连接论文阅读——Deep Residual Learning for Image Recognition用于匹配维度。
论文阅读——Deep Residual Learning for Image Recognition
左边是VGG-19网络,中间是34层简单网络,右边是以简单网络为基础添加残差结构的残差网络

3.4、实现

这个部分主要是将网络训练时一些参数的设置。

  • 尺度增强:1.调整图像大小,其较短的边在[256,480]之间进行随机采样。2.使用224×224裁剪从图像或其水平翻转中随机采样,并逐像素减去均值。
  • 在每个卷积层之后和**函数之前,采用批量归一化(BN)
  • 学习速度从0.1开始,当误差稳定时学习率除以10,总迭代数为论文阅读——Deep Residual Learning for Image Recognition
  • 网络权重衰减为0.0001,动量为0.9。

4、Experiments

4.1、ImageNet分类

这一部分主要是在ImageNet 2012分类数据集对普通模型和残差模型进行性能评估,评估标准为top-1和top-5错误率。

1、普通网络

  • 几个普通网络的具体结构参数如下表所示。
论文阅读——Deep Residual Learning for Image Recognition
不同层数的普通网络结构
  • 34层的普通网络比更浅的18层普通网的验证误差更高,如下表所示。

论文阅读——Deep Residual Learning for Image Recognition

  • 在34层的普通网络训练时出现了精度退化的问题,但是由于网络中使用了BN层,精度退化不太可能是由梯度消失引起的。
论文阅读——Deep Residual Learning for Image Recognition
图中细线是训练误差,粗线是验证误差。很明显,34层网络的错误率要比18层网络的高。

2、残差网络

  • 很明显可以看出34层残差网络的错误率要比普通网络的低,如下表所示。

论文阅读——Deep Residual Learning for Image Recognition

  • 对于18层的普通网络,虽然添加残差结构后的错误率降低不明显,但是其收敛速度提升了。
论文阅读——Deep Residual Learning for Image Recognition
残差网络的错误率,图中细线是训练误差,粗线是验证误差。

 3、恒等映射vs投影快捷连接

在这一部分中作者使用了3种不同的投影快捷连接​​​​​​​进行性能验证:

  • A:零填充快捷方式,用于在下采样时增加维数。
  • B:投影快捷连接​​​​​​​,用于在下采样时增加维数,其他都使用恒等映射。
  • C:将所有快捷连接变为投影快捷连接。

论文阅读——Deep Residual Learning for Image Recognition

结论:

  1. A、B、C三个选项都比普通的选项性能要好得多,但A、B、C之间性能差距不大。
  2. C选项会明显增大参数数目和计算量因此不采用。

4、更深的瓶颈结构

为了尽可能增加网络深度的同时降低运算量,文章提出了一种瓶颈结构的设计。在这种结构中,第一层为1×1的卷积负责减少输出通道数(图中输入为256通道,输出为64通道),第二层为3×3的卷积,第三层为1×1的卷积负责将输出通道数恢复到输入的水平(256维)。作者用这种瓶颈结构替换普通残差结构弄出了表1中的50、101和152层网络,其表现如表4所示。

论文阅读——Deep Residual Learning for Image Recognition
左边为普通残差网络,右边为带瓶颈结构的残差网络

5、与最先进模型的对比

论文阅读——Deep Residual Learning for Image Recognition

4.2、CIFAR-10和分析

1、网络设置

  • 残差网络和普通网络使用了图3中中间和右边的结构,网络根据输出特征图的大小设置卷积层结构,如下表所示总共有6n+2层。

论文阅读——Deep Residual Learning for Image Recognition

  • 残差网络的所有快捷连接都使用恒等映射

2、训练设置

  • 使用0.0001的权重衰减和动量为0.9。
  • 模型在两个GPU上以128个小批量进行训练。
  • 学习率从0.1开始,在迭代为32k和48k时分别除以10,并且迭代为64k时终止训练。

3、结果

  • CIFAR-10测试集上的分类误差如下表所示。
论文阅读——Deep Residual Learning for Image Recognition
CIFAR-10测试集上的分类误差
  • 普通网络和残差网络随着训练迭代数的增加,分类错误率的表现情况。
论文阅读——Deep Residual Learning for Image Recognition
左边为普通网络,右边为其对应的残差网络
  • 超过1000层的残差网络的表现:很明显超过1000层的残差网络收敛效果仍然是非常不错的,但是其错误率仍高于110层的残差网络,作者推测主要的原因是数据集太小了,出现了过拟合的情况。

论文阅读——Deep Residual Learning for Image Recognition

4.3、PASCAL和MS COCO上的目标检测

  • PASCAL数据集上的检测效果。

论文阅读——Deep Residual Learning for Image Recognition

  • MS COCO数据集上的检测效果。

论文阅读——Deep Residual Learning for Image Recognition