论文:Deep residual learning for image recognition

He, Kaiming, et al. "Deep residual learning for image recognition." Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.
Over 20000 citations (2019).

解决的问题:使深度网络更容易训练

To ease the training of networks that are substantially deeper than those used previously.

1. OVERVIEW

首先,堆叠更多层,确实让特征提取更加有效

Deep networks naturally integrate low/mid/highlevel features [49] and classifiers in an end-to-end multilayer fashion, and the “levels” of features can be enriched by the number of stacked layers (depth).

但网络太深的主要困难,在于梯度消失或爆炸

An obstacle to answering this question was the notorious problem of vanishing/exploding gradients [14, 1, 8], which hamper convergence from the beginning.

前人的加速方法主要是标准化层和正则初始化

This problem, however, has been largely addressed by normalized initialization [23, 8, 36, 12] and intermediate normalization layers [16], which enable networks with tens of layers to start converging for stochastic gradient descent (SGD) with backpropagation [22].

具体为什么标准化层可以加快训练,参考这篇博客及其相关论文。

当网络更深时,一个新的问题出现了。我们称之为 Degradation

如图,在准确率基本饱和时,深层网络的训练误差比浅层网络还高。
实验证明,随着网络加深,这种退化越来越剧烈

这是因为过拟合吗?
如果是过拟合,那么训练误差不应该随网络加深而上升(过拟合时训练误差应该很低)。

我们继续研究这个问题。

2. DEGRADATION

我们先训练好一个 shallower architecture ,其能输出理想的结果。
然后,我们复制该 shallower architecture ,再加上一层或多层网络,得到一个 deeper model ,如图:

我们再训练 deeper model 。
理想情况下, added layers 只需要简单地实现 identity mapping 功能,就可以让训练误差不下降,甚至还有可能上升。

然而实验证实,deeper model 要么耗时过长,要么效果不如预期
这是深度网络退化问题的一个实验说明

3. SOLUTION(DEEP RESIDUAL LEARNING)

为了解决退化问题,我们引入了 deep residual learning 。其根本思想是:

Instead of hoping each few stacked layers directly fit a desired underlying mapping, we explicitly let these layers fit a residual mapping.

比如,假设原映射是 \(\mathscr H(\mathrm x)\) ,那么我们希望非线性层真正学习的映射就是:
\[
\mathscr F(\mathrm x) := \mathscr H(\mathrm x) - \mathscr x
\]

回到上一节的例子。
我们希望附加层能学到恒等映射,由于该层是非线性层,训练起来依然非常困难
但是,如果我们学习的是残差映射,即全零的残差,显然容易多了

思想类似于 SVM ,但是你怎么想不到!!!

4. IMPLEMENTATION(SHORTCUT CONNECTIONS)

思想有了,具体怎么实现呢?
忍不住了:何大神太牛逼了!!!!

回到刚刚的例子。假设:

  1. added layers 的目标映射是 \(\mathscr H\) ;
  2. 原 shallower architecture 的输出,是 \(\mathscr H\) 的输入 \(\mathrm x\) 。

为了迫使前面的非线性层学习残差,我们假设网络输出就是残差的情况。
此时,我们应该在计算损失之前,让网络的输出 \(\mathscr H(\mathrm x)\) 与原始输入 \(\mathrm x\) 求和。
因此网络如下:

如此连接是可导的,因此可以应用反向传播算法。

当然,为什么学“全0”更简单,没有详细的理论分析,而需要大量的实验证明。

右图实验结果表明,左图的退化问题得到了有效解决。

Paper | Residual learning的更多相关文章

  1. Paper | Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising

    目录 故事背景 网络结构 BN和残差学习 拓展到其他任务 发表在2017 TIP. 摘要 Discriminative model learning for image denoising has b ...

  2. [论文阅读] Deep Residual Learning for Image Recognition(ResNet)

    ResNet网络,本文获得2016 CVPR best paper,获得了ILSVRC2015的分类任务第一名. 本篇文章解决了深度神经网络中产生的退化问题(degradation problem). ...

  3. 论文笔记——Deep Residual Learning for Image Recognition

    论文地址:Deep Residual Learning for Image Recognition ResNet--MSRA何凯明团队的Residual Networks,在2015年ImageNet ...

  4. Deep Residual Learning for Image Recognition论文笔记

    Abstract We present a residual learning framework to ease the training of networks that are substant ...

  5. 深度学习方法(五):卷积神经网络CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,Deep Residual Learning

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 关于卷积神经网络CNN,网络和文献中 ...

  6. Deep Residual Learning for Image Recognition

    Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun           Microsoft Research {kahe, v-xiangz, v-sh ...

  7. 【文献阅读】Deep Residual Learning for Image Recognition--CVPR--2016

    最近准备用Resnet来解决问题,于是重读Resnet的paper <Deep Residual Learning for Image Recognition>, 这是何恺明在2016-C ...

  8. Deep Residual Learning

    最近在做一个分类的任务,输入为3通道车型图片,输出要求将这些图片对车型进行分类,最后分类类别总共是30个. 开始是试用了实验室师姐的方法采用了VGGNet的模型对车型进行分类,据之前得实验结果是训练后 ...

  9. 深度学习基础(五)ResNet_Deep Residual Learning for Image Recognition

    ResNet可以说是在过去几年中计算机视觉和深度学习领域最具开创性的工作.在其面世以后,目标检测.图像分割等任务中著名的网络模型纷纷借鉴其思想,进一步提升了各自的性能,比如yolo,Inception ...

随机推荐

  1. python-web自动化-元素定位

    # -*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By # ...

  2. mybatis xml中返回map 参看aiwanpai

    <!-- 指定日期活动被创建次数查询结果数据集--> <resultMap id="countPlayTimesMap" type="HashMap&q ...

  3. 【Servlet】(1)Servlet简介、Servlet底层原理、Servlet实现方式、Servlet生命周期

    一.Servlet简介 1.Servlet定义: Servlet(Server Applet)是Java Servlet的简称,是为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交 ...

  4. JVM之堆内存(年经代,老年代)

    一.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能.你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我 ...

  5. android 开发 View _7_ 动态自定义View

    效果图: 代码: package com.example.lenovo.mydemo.myViewDemo; import android.content.Context; import androi ...

  6. CSS样式学习-3、轮廓、伪类/元素、display-flex布局

    一.轮廓 outline绘制于元素周围的一条线,位于边框边缘外围. 属性规定元素轮廓的样式.颜色.宽度. outline-width轮廓宽度,属性:thin细轮廓.medium中等(默认值).thic ...

  7. Maven项目中遇到的问题及其解决方案

    Maven中pom报红 1.jdk版本是否符合要求? 2.maven的本地confg中的setting.xml中是否和要求的jdk版本一致? 3.maven本地仓库路径是否正确,即为自己的确定的仓库位 ...

  8. javascript函数嵌套时arguments的问题

    疑问: var funtest = function () { var fun = function (val, val2) { alert(arguments.length); //此处答案? 有些 ...

  9. 微信小程序自制提示框(具有输入文本功能)

    https://blog.csdn.net/qq_41681675/article/details/81005561

  10. DOM 扩展

    1.选择符API,selectors API 可以使用CSS选择符匹配查找节点 1)  querySelector(selector),接受一个CSS选择符,返回调用该函数的节点后代中第一个匹配的元素 ...