ResNet来源论文《Deep Residual Learning for Image Recognition》读后总结)
前言
这是一些对于论文《Deep Residual Learning for Image Recognition》的简单的读后总结,首先先奉上该文章的下载超链接:ResNet
这篇文章来自于 Microsoft Research,作者分别是 Kaiming He、Xiangyu Zhang、Shaoqing Ren 和 Jian Sun。2015年10月10日发表于arXiv。其是著名的ResNet的来源文章,ResNet是世界上首个具有好的效果的大于100层的深度神经网络。其于ILSVRC和COCO 2015比赛中多次获得第一名:ImageNet检测、ImageNet定位、COCO检测和COCO分割。
该文章探索了更深的网络,18、34、50、101、152层,甚至是1202层。
文章主要内容与贡献
该文章的贡献为:
- 设计了残差学习(Residual learning)模块;
- 使用了更深的网络结构并分析了为什么此前的网络在深度过深后会有坏的效果;
- 仅使用了一个全连接层。
设计了残差学习(Residual learning)模块
由于普通的网络在深度过深时效果反而会变得糟糕(需要注意的是这并不是由于过拟合而造成的问题),如下图:
其中左图是训练误差,右图是测试误差。
因此在此处需要考虑一种新的结构来避免退化问题的发生,有可能由于深度过深而造成了某些特征的丢失,因此,该文章设计了残差学习(Residual learning)模块,如下图所示:
其中,需要映射的函数变为了
,右侧的特征
以一种被称作快捷连接(shortcut connections)的形式越过其间的多层权重层后与其间最后一个权重层的输出相加。
由图可知,ResNet不会出现退化现象。
使用了更深的网络结构并分析了为什么此前的网络在深度过深后会有坏的效果
上图中,左侧的网络是19层的VGG-19(196亿 FLOPs),中间的是没有加残差学习模块的普通34层网络(36亿 FLOPs),右侧的网络是34层的加残差学习模块的网络(36亿 FLOPs)。可以发现,该文章的34层网络的计算量远小于VGG-19,仅为其18%。残差学习模块并不影响计算量。
如果 和 的维度不一致,则 ,通过另外乘一个相应的 来匹配 和 的维度。
下表是不同深度的ResNet的结构表:
由上表可知,就算是152层的ResNet的计算量也仅为VGG-19的一半多。VGG-16的计算量是153亿FLOPs。
为了网络能更深,该文章将残差学习模块进一步改造,如下图所示:
上图中,左图是原始的残差学习模块,右图是改造版的残差学习模块,即瓶颈设计。这两个模块有着相似的时间复杂度。
网络各层的标准差如下所示:
由上可知,不同ResNet的标准差皆较小,且深度越深,标准差越小。
仅使用了一个全连接层
为了减少计算量,ResNet仅使用了一个全连接层,而VGG使用了两个全连接层。
最后的全连接层前使用的是平均池化。
数值结果
下图是在ImageNet上10-修剪测试的结果:
下图是在ImageNet验证集上单模型的结果:
下图是在ImageNet上集成模型的结果:
下图是在CIFAR-10上的数值结果: