ResNet来源论⽂《DeepResidualLearningforImageRecogn。。。ResNet来源论⽂《Deep Residual Learning for Image Recognition》读后总结)
前⾔
这是⼀些对于论⽂《Deep Residual Learning for Image Recognition》的简单的读后总结,⾸先先奉上该⽂章的下载超链接:
这篇⽂章来⾃于 Microsoft Rearch,作者分别是 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层。
⽂章主要内容与贡献
该⽂章的贡献为:
1. 设计了残差学习(Residual learning)模块;
2. 使⽤了更深的⽹络结构并分析了为什么此前的⽹络在深度过深后会有坏的效果;
3. 仅使⽤了⼀个全连接层。
设计了残差学习(Residual learning)模块
由于普通的⽹络在深度过深时效果反⽽会变得糟糕(需要注意的是这并不是由于过拟合⽽造成的问题),如下图:
其中左图是训练误差,右图是测试误差。
因此在此处需要考虑⼀种新的结构来避免退化问题的发⽣,有可能由于深度过深⽽造成了某些特征的丢失,因此,该⽂章设计了残差学习
(Residual learning)模块,如下图所⽰:
其中,需要映射的函数变为了,右侧的特征以⼀种被称作快捷连接(shortcut connections)的形式越过其间的多层
权重层后与其间最后⼀个权重层的输出相加。
由图可知,ResNet不会出现退化现象。
使⽤了更深的⽹络结构并分析了为什么此前的⽹络在深度过深后会有坏的效果
H (x )=F (x )+x x
上图中,左侧的⽹络是19层的VGG-19(196亿 FLOPs),中间的是没有加残差学习模块的普通34层⽹络(36亿 FLOPs),右侧的⽹络是34层的加残差学习模块的⽹络(36亿 FLOPs)。可以发现,该⽂章的34层⽹络的计算量远⼩于VGG-19,仅为其18%。残差学习模块并不影响计算量。
如果和的维度不⼀致,则,通过另外乘⼀个相应的来匹配和的维度。
下表是不同深度的ResNet的结构表:
由上表可知,就算是152层的ResNet的计算量也仅为VGG-19的⼀半多。VGG-16的计算量是153亿FLOPs。
F (x )x y =F (x ,{ω})+i ωx s ωs F (x )x
为了⽹络能更深,该⽂章将残差学习模块进⼀步改造,如下图所⽰:
上图中,左图是原始的残差学习模块,右图是改造版的残差学习模块,即瓶颈设计。这两个模块有着相似的时间复杂度。⽹络各层的标准差如下所⽰:
由上可知,不同ResNet的标准差皆较⼩,且深度越深,标准差越⼩。
仅使⽤了⼀个全连接层
为了减少计算量,ResNet仅使⽤了⼀个全连接层,⽽VGG使⽤了两个全连接层。
最后的全连接层前使⽤的是平均池化。
数值结果