ResNet

ResNet

标签: Paper CNN


Abstract

通过残差网络的引入,极大的增加了CNN的深度,达到了前所未有的152层,在ILSVRC 2015中获得分类、检测第一名

Introduction

更深的网络层次可以帮助模型获得较好性能,但是也带来一些问题:

  • 梯度消失/爆炸
    原因:前面层上的梯度是来自于后面层上梯度的乘乘积。当存在过多的层次时,就出现了内在本质上的不稳定场景,如梯度消失和梯度爆炸。
    Simgmoid容易引发梯度消失,W过大引发梯度爆炸
  • degradation的出现
    随着网络加深,train erro反而增加,而不是出现overfitting
    理论上新加入的层如果做identity映射,网络的性能就不会下降,然而实验表明即使是这样的映射也很难被学习
    degradation
  • 受此启发,本文提出我们可以帮助网络添加一个shortcut,让网络学习除去identification之外的东西,实验表明最优参数接近于identity,所以由于接近0的参数是比较容易学习的,减轻了网络的学习负担
    shortcut

Architecture

  • 公式
    building block
    只有在维数不匹配时才需要额外的参数Ws(作用在x上),其他情况不会增加参数量
    不仅适用于全连接层,也适用于卷积层

  • baseline
    inspired by VGG
    每次feature map减半时,channel加倍

  • projection
    当维数不匹配时,可以选择填充0或引入参数,但维数不变时不引入参数(为了减少运算量和存储开销)

  • bottleneck Architecture
    bottleneck
    当网络非常深时,使用上图右半部分的残差块,两个11conv filter用于先把channel降低,在通过33后再拔高channel,这样可以降低计算负担,使之与左边残差块计算量相当

作者还探索了>1000层的网络,但是效果不及100+网络