【论文阅读】Deep Residual Learning for Image Recognition 【ResNet】

          

一、论文来自于凯明大哥的团队,这也是近几年来大多数计算机视觉任务,网络baseline的基础

二、核心思想

      1、如何个去构建更深层的网络,因为之前的一些工作证明了,网络层次的加深有助于提高模型的性能。但是随着层级的加深,让网络的训练变得更加困难。主要表现在“梯度消失”、“退化问题”。

       *针对梯度消失问题:主要会阻碍网络的收敛,这个问题的解决办法,主要是通过“normalized initialization” 以及“intermediate normalization layer” 的应用,让几十层的网络能够得以训练。

       *本文主要针对的是“degeneration” 问题,这个问题主要表现为:随着网络层数的上升,accuracy 反而收到了饱和,反而开始退化。这个并不是由于“overfitting”导致的;对于一个已经比较合适的模型去增加更多的层,反而会增加训练的error,这个观点作者在本文有数据证明,同时“Convolutional neural networks at constrained time cost”以及“Highway networks”这两篇文章对这个都有一定说明。

三、思想内容升华

      从刚才的“退化问题”,可以展开思考:如果存在一个比较深的模型,他的一部分参数来自于“一个已经比较好的model”,剩下的那些层只作为“identity mapping”,这样的化,理论上training error不会上升(至少不会比 那个浅层的模型多)。

    但是实验表明:目前的solver并不能够让模型找到这样的一个解决方案,也就是没办法让一些层通过学习,自己感知到前面那些层已经够深了,自己只需要作为“恒等映射”就行了。作者也提到,也有可能是(or unable to do so in feasible time)。

    我们总不能,每次对于一个不同的任务,都去通过先训练一个小模型,然后慢慢加层训练,去找到一个合适的深度!!!这样就太麻烦了!!!我们需要的是一个比较深,但是自己能够避免“degeneration”!!!的模型,这样模型能够自适应到不同的任务中去,不需要人为的去做过多的探索!

四、解决方案

                                        

      残差网络模块!

      1、如何理解上图,这个模型,简单的看法“浅层特征 融合 高级特征”。其实这样理解就太过浅显了。

      **通过“退化问题”,我们知道,网络要学习的是一个“underlying mapping”,这个mapping不能是直接的一堆 conv-bn-relu,这种方式解决的。我们把 underlying mapping 记为“H(x)”,那么网络模块部分就可以表现为F(x)=H(x)-x,那么这个整个 residual block的功能函数就是“F(x)+x”。

       通过这种方式,组合了“nonlinear mapping” 和“identity mapping”,去寻找最优 mapping,如果 直接“identity mapping”就可以让模型达到最优,那么F(x)直接表现为全0就行,让这个residual mapping 去学习到全0 比让这个residual mapping学习出一个“identity mapping ”要简单很多。

     通过这个方式,让网络层数可以不断加深,但是训练难度并不会大大增加,同时“identity mapping” 不会带来额外的参数!同时不会影响,整个求导过程!

     而且这是个通用的方法,不光是对于视觉任务,也可以对应于别的任务!

    2、残差模块还有另一种版本

                                                   

      这个公示的意思是,在identity mapping这一支,应用上了卷积,这个模块主要是用在“输出channel 数 与 输入channel数不同”的时候,用conv 1*1,当然是planB;planA是可以直接padding zero channel且不会增加额外的参数。下图中的虚线就是代表了这个操作,实线代表了第一种残差模块!

                                                          

    3、作者在设计网络的时候,遵循着两条简单的准则:i、如果feature map的size不下降,那么channel数量不变 ii、如果feature map的size 被降了一半,那么channel就会增加一倍。下采样用的是conv的stride=2。以及最后接的global average pooling layer 。

五、思想来源

   1、Residual Representations

       VLAD和Fisher Vector

   2、Shortcut Connections.

      在MLPs中就有着应用了。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章