前段时间仔细的阅读了孙剑老师和何凯明老师在2015年的大作:Deep Residual Learning for Image Recognition。读完就一个感受:这思路太精妙了,关键这篇论文写的还非常好懂,敬佩之情溢于言表啊!!!这篇博客主要记录下残差网络这篇论文的主要内容。

作者首先抛出了一个问题:在ImageNet竞赛中,层数很深的网络能够获得很好的结果,那么仅仅是简单地将网络层数堆叠地更多就能够获得更好的结果吗?其实不然,在这之前就有人在这方面作过实验,并出现下面这样的现象:

有人用同样的数据训练了两个网络,分别为20层和56层,上图是这个实验的对比结果:

左图是两个网络的训练误差,右图是两个网络的测试误差。我们先看右图,可以发现56层的网络的在测试集上的表现不如20层的网络,按照以往的经验,我们会认为这是由于56层的网络发生了过拟合,但是再看左图,我们会惊奇地发现56层地网络甚至在训练集上地表现都不如20层的网络,这与既有的经验不符。这个现象被称为:degradation problem,也就是退化问题。这个现象说明退化问题不只是由于过拟合造成的,而是由于网络层数的加深使得模型更难优化了。

有什么解决办法呢?那就是重构模型。在浅层网络的基础上叠加更多层,如果叠加的这些层学习到的是恒等映射(identity mapping),那么这个深层网络的训练误差至少不应该高于浅层网络。但是让网络去学习恒等映射这一点并不容易做到。

因此,作者提出了这样的思想:如果可以学习到恒等映射,那么与其让叠加层去学习这个完整的映射,还不如去学习在浅层网络上的变化是什么,如果确实是恒等映射的话,那么叠加的这一层的参数应该被压缩至零。下面截图是论文原文。

残差块的结构:

在上面的结构中,x是输入,经过两层卷积后,将F(x)与x做加和,然后再使用激活函数进行激活。这里采用直接相加的好处是不会增加计算复杂度。看到这里,可能有人会想到F(x)与x做加和时二者的维度不一致怎么办?关于这点,作者再论文中提到有两种解决办法:1、有维度不一致的情况就使用零填充,将不足的部分用0补齐;2、使用1×1卷积将二者的维度变换到一致,很明显第二种方法会引入更多的参数。

恒等映射使用公式表示为:

关于残差块有一点需要注意:论文中采用的结构是每两层或者三层卷积构成一个残差块,也可以使用别的层数,这个是没有固定限制的,但是层数不能为1,因为当层数为1的时候,上面的公式就变成了:y=Wx+x,中间的非线性映射就不存在了,即这是一个线性层,这与一般网络的单层没有什么区别,作者也没有发现此时网络会表现地更好。

残差网络的结构:

作者借鉴了VGG网络的思想:所有的卷积核均使用3×3大小,每两层卷积设置为一个残差块。作者一共设置了几种不同深度的网络,在较深的网络中,残差块与较浅的残差网络不同,具体见下图:

在右边的结构中使用了1×1卷积,这是因为:输入的深度为256,如果直接做卷积运算的话计算量和参数都会非常大,因此先使用了1×1卷积降维,再使用了1×1卷积升维。

到此,残差网络的主要思想就总结完成啦!!!

转载于:https://www.cnblogs.com/puheng/p/9684099.html

ResNet论文笔记相关推荐

  1. ResNet论文笔记及Pytorch代码解析

    注:个人学习记录 感谢B站up主"同济子豪兄"的精彩讲解,参考视频的记录 [精读AI论文]ResNet深度残差网络_哔哩哔哩_bilibili 算法的意义(大概介绍) CV史上的技 ...

  2. resnet 论文笔记

    摘要 Deeper neural networks are more difficult to train. We present a residual learning framework to e ...

  3. ResNet 论文阅读笔记

    ResNet 论文阅读笔记 #机器学习/深度学习 文章介绍 论文地址:https://arxiv.org/pdf/1512.03385.pdf 原文题目:Deep Residual Learning ...

  4. 论文笔记:再看ResNet——ResNet典型网络结构

    前言 第一次看ResNet论文的时候,由于刚接触深度学习不久,对ResNet的理解仅仅停留在论文中阐述的一些基本思想.加上当时实验室的硬件条件很有限,用的模型基本上以AlexNet和VGG为主,并没有 ...

  5. ResNet改进原理介绍论文笔记

    ResNet改进原理介绍论文笔记 Identity Mappings in Deep Residual Networks Abstract 深度剩余网络是一系列极深的体系结构,显示出令人信服的准确性和 ...

  6. 目标检测学习笔记2——ResNet残差网络学习、ResNet论文解读

    ResNet残差网络学习.ResNet论文解读 一.前言 为什么会提出ResNet? 什么是网络退化现象? 那网络退化现象是什么造成的呢? ResNet要如何解决退化问题? 二.残差模块 三.残差模块 ...

  7. unet论文_图像分割之RefineNet 论文笔记

    RefineNet: Multi-Path Refinement Networks forHigh-Resolution Semantic Segmentation (2017) 论文笔记 文章的创新 ...

  8. 图像内复制粘贴篡改取证matlab_[论文笔记] 篡改检测:RGB-N

    [论文笔记] Learning Rich Features for Image Manipulation Detection 说在前面 个人心得: 第一次关注篡改检测,最常见的篡改方式是拼接.复制移动 ...

  9. Focal Loss 论文笔记

    论文:<Focal Loss for Dense Object Detection> 论文地址:https://arxiv.org/abs/1708.02002 代码地址: 官方 gith ...

最新文章

  1. gsoap 学习 1-自己定义接口生成头文件
  2. 产生指定长度的随机字符串
  3. JUC多线程:CountDownLatch、CyclicBarrier、Semaphore同步器原理总结
  4. Java守护线程概述
  5. python3学习笔记 雨痕_Python 3 学习笔记:数字和布尔
  6. Jsp之我遇到过的中文乱码问题和解决方法
  7. Python 3.8与普通程序员有关的几个新特性
  8. CIRD主站与DOPAS构建笔记#1
  9. word英文字体下载 如Caecilia LT Std
  10. APP过等保三级需要注意个人信息保护
  11. qq说说时间轴php实现,qq空间时间轴PHP实现时间轴函数代码
  12. 人脸识别 -- 活体检测(张嘴摇头识别)
  13. 戴尔R230安装esxi
  14. jquery实现app开发闹钟功能_jQuery Mobile 实现苹果滑动删除闹钟功能的几点总结
  15. 账号二次登陆,强制当前账号下线
  16. 25个漂亮的旅游网站设计作品欣赏
  17. 使用接口测试活动的中奖概率(随机事件测试)
  18. SAP 工艺路线分配组件 CA02正常显示分配但是CA03不显示分配解决方法
  19. 建筑施工技术【12】
  20. 京东 618:如何配合业务打造 JDReact 三端融合开发平台?

热门文章

  1. Python3.7.3安装(Ubuntu16.04)
  2. 【opencv学习】【Canny边缘检测】
  3. 【Tensorflow】Tensorflow 自定义梯度
  4. 王道 —— 进程同步、进程互斥
  5. Nodejs留言板案例总结
  6. tensorflow应用:双向LSTM神经网络手写数字识别
  7. hog与fhog(转载)
  8. OpenCV3.4.1+opencv_contrib编译:windows10
  9. c语言模拟试题快速排序,快速排序(东软喜欢考类似的算法填空题,又如堆排序的算法等)...
  10. QT @ VS2017的安装