ResNet 是何凯明团队的作品,对应的论文 《Deep Residual Learning for Image Recognition》是 2016 CVPR 最佳论文。ResNet 的 Res 也是 Residual 的缩写,它的用意在于基于残差学习,让神经网络能够越来越深,准确率越来越高。
我们都知道,自 2012 年 AlexNet 在 ILSVRC 一战成名后,卷积神经网络便一发不可收拾,后续的各类竞赛中各种神经网络都大发异彩,除了更高的准确率之外,它们普遍的特征就是,网络的层级越来越深了。
这里会产生一个问题,那就是神经网络真的越深越好吗?
但至少有证据表明,情况不是这样的,如果神经网络越来越深,这个神经网络可能会出现退化的现象。这里说的退化是指网络层级加深后,训练的准确率却可能出现饱和的现象。
上面的图片指示的是在 CIFAR-10 这个小型的数据集上,56 层的神经网络的表现比不过 20 层的神经网络。也就是前面说的层数越深,网络却反而退化了。
如何构建更深层的网络?
前面提到的,当网络层次更深时,反而会出现退化的现象,那么有没有办法避免呢?
有一个解决方案是:
在一个的常规的比较浅的模型上添加新的层,而新的层是基于 identity mapping 的。
通俗来讲,就是比较两个模型,一个是浅层的常规的,另外一个是基于浅层模型添加更多层的深度模型,现在的目标是深度模型的性能要好过浅层模型。
那么如何做呢?
作者引入了 deep residual learning framework,也就是基于残差的深度学习框架,实际上是需要对常规的神经网络的改造。
我们都知道,目前流行的神经网络都可以看成是卷积层的堆叠,可以用栈来表示.
输入数据经过每个卷积层都会发生变化,产生新的 featuremap ,我们可以说数据在输入与输出间发生了映射,也就是 mapping。神经网络中的权重参数一个作用就是去拟合这种输入与输出之间的 mapping。
ResNet 准备从这一块动手,假设现在有一个栈的卷积层比如说 2 个卷积层堆叠,将当前这个栈的输入与后面的栈的输入之间的 mapping 称为 underlying mapping,现在的工作是企图替换它引入一种新的 mapping 关系,ResNet 称之为 residual mapping 去替换常规的 mapping 关系。
意思是与其让卷积栈直接拟合 underlying mapping,不如让它去拟合 residual mapping。而 residual mapping 和 underlying mapping 其实是有关联的。
将 underlyingmapping 标记为
将经过堆叠的非线性层产生的 mapping 标记为
所以,最原始的 mapping 就被强制转换成
然后,作者假设对 residual mapping 的优化要比常规的 underlying mapping 要简单和容易
而
在实际的编码过程中,可以被一种叫做快捷连接的结构件来实现。
快捷连接通常会跳过 1 个或者多个层,在 ResNet 中快捷连接直接运用了 identity mapping,意思就是将一个卷积栈的输入直接与这个卷积栈的输出相加。
这样有什么好处呢?
- 并没有增加新的参数
- 整个网络也仍然可以由 SGD 进行训练。
- 容易被通用的神经网络框架实现。
而 ResNet 依靠成绩说话,它是 ILSVRC 2015 年图像分类冠军。而且 ResNet 的泛化变现也很卓越,在 ImageNet 目标检测、ImageNet 目标定位、COCO 目标检测、COCO 图像分割等竞赛中都取得了当年(2015)的冠军。
并且,ResNet 是当年 ImageNet 参赛模型中层级最深的模型,达到了 152层。
这些证据证明了 ResNet 加深网络后,性能比其他的模型更突出。
Deep Residual Learning
Residual Learning 的理论依据
我们可以将焦点放在 上。
理论上有一种假设,多层卷积的参数可以近似地估计很复杂的函数表达公式的值,那么多层卷积也肯定可以近似地估计 这种残差公式。
所以与其让卷积栈去近似的估计 ,还不如让它去近似地估计 ,这样就可以将关注点放在如何学习 上面