深度残差网络是2015年提出的深度卷积网络,一经出世,便在ImageNet中斩获图像分类、检测、定位三项的冠军。
我们都知道增加网络的宽度和深度可以很好的提高网络的性能,深的网络一般都比浅的的网络效果好,比如说一个深的网络A和一个浅的网络B,那A的性能至少都能跟B一样,为什么呢?因为就算我们把A的网络参数全部迁移到B的前面几层,而B后面的层只是做一个等价的映射,就达到了A网络的一样的效果。一个比较好的例子就是VGG,该网络就是在AlexNex的基础上通过增加网络深度大幅度提高了网络性能。

但事实真的是这样的吗?不然,通过实验我们发现,当网络层数达到一定的数目以后,网络的性能就会饱和,再增加网络的性能就会开始退化,但是这种退化并不是由过拟合引起的,因为我们发现训练精度和测试精度都在下降,这说明当网络变得很深以后,深度网络就变得难以训练了。
ResNet的出现其实就是为了解决网络深度变深以后的性能退化问题。

ResNet就是用这种跳跃结构来作为网络的基本结构。为什么要使用这种结构呢?作者认为,本来我们要优化的目标是H(x)=F(x)+x(x就是该结构的输入)但是通过这种结构以后就把优化的目标由H(x)转化为H(x)-x。
那么问题又来了,优化目标转化后又有什么用呢,为什么可以通过这种方式来解决退化问题呢?我们之前说到,深网络在浅网络的基础上只要上面几层做一个等价映射就可以达到浅网络同样的效果,但是为什么不行呢,就是因为我们的算法很难将其训练到那个程度,也就是说没办法将上面几层训练到一个等价映射,以至于深网络最后达到了一个更差的效果。那么这时,我们把训练目标转变,由原来的H(x)转为H(x)-x,因为这时候就不是把上面几层训练到一个等价映射了,而是将其逼近与0,这样训练的难度比训练到一个等价映射应该下降了很多。
也就是说,在一个网络中(假设有5层),如果前面四层已经达到一个最优的函数,那第五层就是没有必要的了,这时我们通过这种跳跃结构,我们的优化目标就从一个等价映射变为逼近0了,逼近其他任何函数都会造成网络退化。通过这种方式就可以解决网络太深难训练的问题。

右边就是ResNet,其实就是普通的网络上面的插入跳跃结构。

对于跳跃结构,当输入与输出的维度一样时,不需要做其他处理,两者相加就可,但当两者维度不同时,输入要进行变换以后去匹配输出的维度,主要经过两种方式,1)用zero-padding去增加维度,2)用1x1卷积来增加维度

上面是两种不同的跳跃结构,主要就是使用了不同的卷积核。左边参数要比右边的多很多(快一倍)。所以当网络很深时,用右边的比较好。
其实我觉得,那么多层数中间肯定有一些层是不起作用的,也就是等价映射。可能就是从那么多层里面选取一个最优的层数。

深度残差网络(ResNet)浅析相关推荐

  1. dlibdotnet 人脸相似度源代码_使用dlib中的深度残差网络(ResNet)实现实时人脸识别 - supersayajin - 博客园...

    opencv中提供的基于haar特征级联进行人脸检测的方法效果非常不好,本文使用dlib中提供的人脸检测方法(使用HOG特征或卷积神经网方法),并使用提供的深度残差网络(ResNet)实现实时人脸识别 ...

  2. 何恺明编年史之深度残差网络ResNet

    文章目录 前言 一.提出ResNet原因 二.深度残差模块 1.数学理论基础 2.深度网络结构 三.Pytorch代码实现 四.总结 前言 图像分类是计算机视觉任务的基石,在目标监测.图像分割等任务中 ...

  3. TF2.0深度学习实战(七):手撕深度残差网络ResNet

    写在前面:大家好!我是[AI 菌],一枚爱弹吉他的程序员.我热爱AI.热爱分享.热爱开源! 这博客是我对学习的一点总结与记录.如果您也对 深度学习.机器视觉.算法.Python.C++ 感兴趣,可以关 ...

  4. 【深度学习之ResNet】——深度残差网络—ResNet总结

    目录 论文名称:Deep Residual Learning for Image Recognition 摘要: 1.引言 2.为什么会提出ResNet残差网络呢? 3.深度残差网络结构学习(Deep ...

  5. 深度残差网络ResNet解析

    ResNet在2015年被提出,在ImageNet比赛classification任务上获得第一名,因为它"简单与实用"并存,之后很多方法都建立在ResNet50或者ResNet1 ...

  6. 深度残差网络RESNET

    一.残差神经网络--ResNet的综述 深度学习网络的深度对最后的分类和识别的效果有着很大的影响,所以正常想法就是能把网络设计的越深越好, 但是事实上却不是这样,常规的网络的堆叠(plain netw ...

  7. 【深度学习】深度残差网络ResNet

    文章目录 1 残差网络ResNet 1.1要解决的问题 1.2 残差网络结构 1.3 捷径连接 1.4 总结 1 残差网络ResNet 1.1要解决的问题   在传统CNN架构中,如果我们简单堆叠CN ...

  8. 通过深度残差网络ResNet进行图像分类(pytorch网络多网络集成配置)

    通过深度残差网络进行图像分类(pytorch网络多网络集成配置) 简介 本项目通过配置文件修改,实现pytorch的ResNet18, ResNet34, ResNet50, ResNet101, R ...

  9. 大话深度残差网络(DRN)ResNet网络原理

    -- 原文发布于本人的微信公众号"大数据与人工智能Lab"(BigdataAILab),欢迎关注. 一说起"深度学习",自然就联想到它非常显著的特点" ...

  10. CNN经典模型:深度残差网络(DRN)ResNet

    一说起"深度学习",自然就联想到它非常显著的特点"深.深.深"(重要的事说三遍),通过很深层次的网络实现准确率非常高的图像识别.语音识别等能力.因此,我们自然很 ...

最新文章

  1. linux发现很多pif和exe文件,u盘里 木马xftiaj.pif 是什么文件,肿么删除?
  2. java序列化的作用-这个挺有用的,不妨学学
  3. iphone全部机型_iPhone12卖爆 产业链喜迎5G时代 股价天花板打开?|iphone|iphone12|运营商|智能机...
  4. 关于Jmeter+Ant+Jenkins作为接口、性能自动化框架的误区
  5. Python安装PyOpenGL
  6. opengl加载显示3D模型COB类型文件
  7. sdch: chrome支持的新HTTP传输压缩算法
  8. linux的memmap函数_究竟有多少linux内核命令行参数
  9. h5打开麦克风权限录音_HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能...
  10. Insyde uefi 隐藏设置_Hidden bar:Mac菜单栏图标隐藏利器
  11. C语言 怎样定义函数
  12. 小写字母转换大写字母代码
  13. 深度学习大神都推荐入门必须读完这9篇论文
  14. python手机触屏代码_PyGame任何触摸屏
  15. canvas webGL SVG 比较
  16. VMware vCenter Server 7.0U3
  17. JavaScript一些优雅小技巧不得不知
  18. Jest 单元测试快速入门
  19. JS实现抽奖代码(0-999随机数开始暂停抽奖按钮)
  20. 【LaTeX 教程】01. LaTeX 简介与安装

热门文章

  1. 如何使用Foobar将高码率Flac转成低码率Flac或者Wav
  2. 机器学习理论基础---1
  3. JavaWeb是什么?如何学习JavaWeb的体系
  4. MBR格式转GPT格式阿里云云盘在线扩容
  5. chrome 导入html书签,怎么把谷歌浏览器书签导出来?怎么将书签导入到别的浏览器中?...
  6. echarts关系图配置详解
  7. 1. (3.20~5.5)2022年自动化保研信息+分析汇总(夏令营)
  8. 使用IBM SPSS快速对数据进行分组
  9. 位运算(异或、左移、右移)的运算规则
  10. Linux KVM环境搭建,以及创建kvm虚拟机