ResNet要解决的问题

深度学习网络的深度对最后的分类和识别的效果有着很大的影响,所以正常想法就是能把网络设计的越深越好,但是事实上却不是这样,常规的网络的堆叠(plain network)在网络很深的时候,效果却越来越差了。

这里其中的原因之一即是网络越深,梯度消失的现象就越来越明显,网络的训练效果也不会很好。
但是现在浅层的网络(shallower network)又无法明显提升网络的识别效果了,所以现在要解决的问题就是怎样在加深网络的情况下又解决梯度消失的问题。

ResNet的解决方案

ResNet引入了残差网络结构(residual network),通过残差网络,可以把网络层弄的很深,据说现在达到了1000多层,最终的网络分类的效果也是非常好,残差网络的基本结构如下图所示

通过在输出个输入之间引入一个shortcut connection,而不是简单的堆叠网络,这样可以解决网络由于很深出现梯度消失的问题,从而可可以把网络做的很深,ResNet其中一个网络结构如下图所示

之前一直在探究残差网络提出的由来,作者是基于先前的什么知识才提出残差网络的,咋一看感觉残差网络提出的很精巧,其实就是很精巧,但是现在感觉非要从残差的角度进行解读感觉不太好理解,真正起作用的应该就是shortcut连接了,这才是网络的关键之处。

对ResNet的解读

基本的残差网络其实可以从另一个角度来理解,这是从另一篇论文里看到的,如下图所示:

残差网络单元其中可以分解成右图的形式,从图中可以看出,残差网络其实是由多种路径组合的一个网络,直白了说,残差网络其实是很多并行子网络的组合,整个残差网络其实相当于一个多人投票系统(Ensembling)。下面来说明为什么可以这样理解

删除网络的一部分

如果把残差网络理解成一个Ensambling系统,那么网络的一部分就相当于少一些投票的人,如果只是删除一个基本的残差单元,对最后的分类结果应该影响很小;而最后的分类错误率应该适合删除的残差单元的个数成正比的,论文里的结论也印证了这个猜测。
下图是比较VGG和ResNet分别删除一层网络的分类错误率变化

下图是ResNet分类错误率和删除的基本残差网络单元个数的关系

ResNet的真面目

ResNet的确可以做到很深,但是从上面的介绍可以看出,网络很深的路径其实很少,大部分的网络路径其实都集中在中间的路径长度上,如下图所示:

从这可以看出其实ResNet是由大多数中度网络和一小部分浅度网络和深度网络组成的,说明虽然表面上ResNet网络很深,但是其实起实际作用的网络层数并没有很深,我们能来进一步阐述这个问题,我们知道网络越深,梯度就越小,如下图所示

而通过各个路径长度上包含的网络数乘以每个路径的梯度值,我们可以得到ResNet真正起作用的网络是什么样的,如下图所示

我们可以看出大多数的梯度其实都集中在中间的路径上,论文里称为effective path。
从这可以看出其实ResNet只是表面上看起来很深,事实上网络却很浅。
所示ResNet真的解决了深度网络的梯度消失的问题了吗?似乎没有,ResNet其实就是一个多人投票系统。

对ResNet的理解相关推荐

  1. ResNet 论文理解含视频

    ResNet 论文理解 问题导引论文理解 Q1.神经网络真的越深越好吗? Q2. 为什么加深网络会带来退化问题? Q3. 如何构建更深层的网络? 基于残差的深度学习框架 Residual Learni ...

  2. 残差神经网络(ResNet)理解

    关键词:退化现象 (Degradation).快捷连接(Shortcut connection) 退化现象:随着网络层不断的加深,模型的准确率先是不断的提高,达到最大值(准确率饱和),然后随着网络深度 ...

  3. 对残差神经网络,resnet的理解

    参考资料 背景:遇到了挑战,随着网络深度的增加,模型的预测结果并没有编号.按道理,如果深度为20的网络已经达到不错的效果的话,深度增加到30层,后10层什么都不做,也能达到和20层一样的效果才对.但是 ...

  4. 对残差网络resnet shortcut的解释

    重读残差网络--resnet(对百度vd模型解读) 往事如yan 已于 2022-02-25 07:53:37 修改 652 收藏 4 分类专栏: AI基础 深度学习概念 文章标签: 网络 cnn p ...

  5. tensorflow2制作Resnet残差网络

    使用tensorflow2复现 Resnet v1&v2 关于resnet的原理.解析参考论文以及网络博客, 这里就不再复述了, 我主要是看其他框架版本的resnet进行理解, 毕竟文字描述不 ...

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

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

  7. 【模型压缩】通道剪枝《Pruning Filters For Efficient ConvNets》论文翻译

    论文题目:<Pruning Filters For Efficient ConvNets> 论文地址:https://arxiv.org/abs/1608.08710 主要思想: 这篇文章 ...

  8. 什么是Resnet50模型?

    1 深度残差网络  随着CNN的不断发展,为了获取深层次的特征,卷积的层数也越来越多.一开始的 LeNet 网络只有 5 层,接着 AlexNet 为 8 层,后来 VggNet 网络包含了 19 层 ...

  9. dl----算法常识100例

    1.depthwise卷积&&Pointwise卷积 depthwise与pointwise卷积又被称为Depthwise Separable Convolution,与常规卷积不同的 ...

最新文章

  1. spring入门(二) 使用注解代替xml配置
  2. matlab 向量模量,有限元分析简单实例之平面矩形薄板(matlab)
  3. cpc卡内计费信息异常包括_抖音CPC是什么?广告的优势在哪?抖音CPC广告转化率高吗?...
  4. 现代操作系统: 第四章 文件系统
  5. 阻止jQuery事件冒泡
  6. Altium Designer--如何走差分等长线
  7. 字节跳动怎么都十万人了?
  8. 递归实现指数型枚举(递归)
  9. 图像与视频处理中的优化方法
  10. namecheap域名解析
  11. 睡不醒别赖基因,UC伯克利最新研究:锻炼和早餐是关键
  12. win10操作系统官网如何下载ios境像文件安装操作系统
  13. 74LS85的IP核设计
  14. Dynamics CRM 数据迁移工具DataMigrationUtility
  15. 《你不知道的JavaScript(中卷)》读后笔记 —— JavaScript中“Number”的冷门知识点
  16. ubuntu安装极点五笔输入法
  17. 字体图标兼容性,兼容IE
  18. 卡其色裤子如何搭配鞋子
  19. c++ 定义一个字符栈类Stack(包括类的实现)。数据成员包括一个存放字符的数组stck[ ]和一个栈指针tos。栈数组的尺寸由常量SIZE确定。栈的基本操作为Push()和Pop()。
  20. VUE DIFF算法之双端DIFF

热门文章

  1. 在 jetson nano 上构建 isaac SDK 示例时出错:JetPack43 未在任何 .rc 文件中定义
  2. 学习ifconfig实战技巧,成为网络管理高手
  3. Ceph-ansible 安装 ceph (rbd + rgw)
  4. java菜鸟1:jdk 安装
  5. WideDeep——记忆能力和泛化能力的综合
  6. CFile、CStdioFile、FILE和其他文件操作
  7. C++的高精乘+高精加
  8. 3D人物移动和相机跟随_学习整理资料
  9. cisco服务器网关自动清空,监控、重置和删除Cisco CallManager的MGCP网关
  10. 性能测试能力提升-基准、负载、压力、容量测试