ResNet个人理解

残差网络ResNet原理及为何有效避免梯度消失 ResNet 阅读详情

2015年最火的ResNet现在看已经是过去时了,后来的DenseNet、Mask-RCNN等架构的出现已经磨平了2015CVPR best paper的锋芒。ResNet的想法非常简单,学过闭环反馈的话都会自然地想到是不是可以将信息跳跃式地反穿?当然,结构上看ResNet是正向的一个skip connection (shortcut)。其实一直以来我都不理解为什么ResNet能够解决深层网络效果反而下降的问题,残差究竟代表什么?为什么学习残差会有效?感觉原paper中也没有讲清楚,事实上ResNet最初也是先尝试实验发现效果好,然后在尝试去解释的。最近搜集了一些不同的观点,加上自己的理解整理如下:

这里写图片描述

观点1. 这也是孙剑的看法,即过于深的网络在反传时容易发生梯度弥散,一旦某一步开始导数小于1,此后继续反传,传到前面时,用float32位数字已经无法表示梯度的变化了,相当于梯度没有改变,也就是浅层的网络学不到东西了。这是网络太深反而效果下降的原因。加入ResNet中的shortcut结构之后,在反传时,每两个block之间不仅传递了梯度,还加上了求导之前的梯度,这相当于把每一个block中向前传递的梯度人为加大了,也就会减小梯度弥散的可能性。

观点2.特征冗余:认为在正向卷积时,对每一层做卷积其实只提取了图像的一部分信息,这样一来,越到深层,原始图像信息的丢失越严重,而仅仅是对原始图像中的一小部分特征做提取。这显然会发生类似欠拟合的现象。加入shortcut结构,相当于在每个block中又加入了上一层图像的全部信息,一定程度上保留了更多的原始信息。

观点3.加入shortcut后相当于一个ensemble模型,输出的结果是前面各个block及其组合一起做的一个投票选出的结果。即可以把ResNet网络看成是多个子网络并行,从实验中看,真实起作用的路径长度并不深,主要走是中等深度的网络。简单来说,就是做了不同层次上的特征组合。

这里写图片描述

观点4.特征具有层次性的角度看:具有层次性,也就是说对于同一个任务,对不同样本可能适合不同层次(复杂程度)的特征就可以完成。例如:对一瓶纯净水和一瓶饮料做二分类,如果一个样本是黄色的,更具颜色特征判断它显然会是饮料,如果样本是无色的,就需要通过它的味道或成分等更复杂的特征判断了。回到网络结构上面,浅层网络提取的是简单的特征,而简单和复杂的特征适用于不同的样本,没有shortcut时,对所有样本的分类都是利用最复杂的特征判断,费时费力;加入shortcut后,相当于保留了一些简单的特征用于判断,变得省时。这一观点主要解释了为什么ResNet网络能够更快收敛。

观点5.从函数曲面的角度看:对于非常深的网络,其损失函数的图像是严重非凸的,很难找到一个较好的最优点。加入shortcut结构,使得损失函数的图像变得很接近凸函数,更容易(更快)找到较好最优点。(至于为什么shortcut能够使函数变凸,尚不理解…)

其中个人觉得观点1和2更为充分,其他观点更多的是从某一个角度去论证的,观点3和4最好结合在一起理解。

总的来说,我认为:由于每做一次卷积(包括对应的激活操作)都会浪费掉一些信息:比如卷积核参数的随机性(盲目性)、激活函数的抑制作用等等。这时,ResNet中的shortcut相当于把以前处理过的信息直接再拿到现在一并处理,起到了减损的效果。

与之想法类似的DenseNet,是把前面每一个block输出的梯度都skip connection到后面各个block的输出,同时在同一层增加了类似Inception的选择式结构,介绍了参数,进一步提升了效果,还获得了2017CVPR best paper…

这里写图片描述

pytorch复现resnet(附个人理解) pytorch复现resnet 1.Resnet网络介绍(个人理解) ​ 对于传统的CNN,层数在25层之前,准确率会随着层数增加提高。但是一旦层数过深,网络过于庞大,准确率反而会下降。而Resnet较好的解决了这一问题。其原因在于: ​ Resnet具有一定的记忆性,在第一次进入某个卷积块(多个卷积层)时,Tensor0(输入)通过卷积块进行前向传播得到Tensor1,之后,如果Tensor0与... 阅读详情

相关推荐

fasterrcnn_resnet50_fpn 对于源码的个人理解

fasterrcnn_resnet50_fpn 对于源码的个人理解

qq_35326529的博客 3697

深度学习之ResNet为什么有效

文章目录前言ResNet为什么有效ResNet结构参考 前言 残差网络(ResNet)是深度学习的一个重要的概念,在许多关于深度学习的任务中都能够找到它的身影。在这篇文章当中,结合一些文献对ResNet进行分析,介绍其思想以及有效性的一些可能解释。在开始之前,先引出以下两个问题: 卷积神经网络的深度为什么重要? 因为卷积神经网络的层数越多,意味着能够提取不同级别的特征越丰富。越深的网络提取的特征越抽象,越具有语义信息。 增加网络深度是否可以提升性能? 对于原来的神经网络,如果简单地增加网络深度,会导致梯度

Fantastic 3705

对ResNet的理解

ResNet要解决的问题深度学习网络的深度对最后的分类和识别的效果有着很大的影响,所以正常想法就是能把网络设计的越深越好,但是事实上却不是这样,常规的网络的堆叠(plain network)在网络很深的时候,效果却越来越差了。 这里其中的原因之一即是网络越深,梯度消失的现象就越来越明显,网络的训练效果也不会很好。 但是现在浅层的网络(shallower network)又无法明显提升网络的识

Buyi_Shizi的博客 8万+

ResNet详解:ResNet到底在解决什么问题?

计算机视觉的圣经ResNet!

个人学习笔记 1万+

对SE_ResNet的理解

最近在使用InsightFace_Pytorch-master pytorch工程,然后有使用到SE_ResNet50,所以想要分析相应的网络结构(包括网络层名和读取对应层相应参数) 了解什么叫做SE模块? SE是Squeeze-and-Excitation(SE)的缩写,该模块的提出主要是考虑到模型通道之间的相互依赖性。SE网络的使用结构如下图所示: 上左图是将SE模块嵌入到Incep...

猫猫与橙子的博客 2万+

【11】ResNet中BLock模块的理解

网上有大量的文章对ResNet网络进行了详细的阐述,但是写的都比较模糊,没有对F(X)是什么,每一层的F(x)怎么计算给出详细的过程,因此萌新们在阅读,此处针对block块进行进一步的阐述,谈谈自己的见解 1 参数理解 如图所示,整个方框表示残差模块,下面解释图中每一个参数的意义。 x:残差块的输入,整个个模块的输入,就是之前层的输出 H(X):残差块的输出,就是这个模块算完的结果,就是下面的y通过激活函数的结果,H(X)=G(Y)(其中函数G为激活函数) F(X):残差,就是我们要学习的目标

qq_33612665的博客 1万+

ResNet的作用

残差连接是指在网络中将输入直接添加到输出中,以便直接传递梯度,从而减轻了梯度消失和梯度爆炸的问题。总之,ResNet的引入通过残差连接解决了深度神经网络中的梯度消失和网络退化问题,使得深层网络的训练变得更加容易和有效,并在计算机视觉领域取得了重大的突破。1. 允许训练更深的神经网络:通过残差连接,ResNet可以轻松地训练非常深的网络,有助于提取更丰富的特征表示,提高模型的性能。2. 缓解梯度消失和梯度爆炸问题:残差连接有助于传播梯度,减轻了梯度在深层网络中衰减或爆炸的问题,使得网络更容易训练。

Larry Chow 2281

【Resnet】Resnet代码详解(图+代码)

具体理论就不说了。直接看网络结构以及其代码就好。 1.先上网络整体结构。 如下图 分别放出来resnet18 resnet134resnet50resnet101 resnet152.文字注释应该写明白了大致的网络结构。 ...

gbz3300255的博客 1万+

残差网络为什么有效

残差网络(Residual Network,ResNet)由许多残差单元堆叠而成。 残差单元通过为非线性的网络层添加跳跃连接(shortcut/skip connection)的方式来提高信息的传播效率。 它将期望的映射函数H(x)\mathcal{H}(\mathbf{x})H(x)分解为残差函数F(x):=H(x)−x\mathcal{F}(x):=\mathcal{H}(\mathbf{x}) -\mathbf{x}F(x):=H(x)−x和恒等(identity)函数x:=x\mathbf{x}:=

weixin_44378835的博客 1528

从零开始,用MATLAB/Simulink手把手搭建一个无刷直流电机(BLDC)的控制模型

本文详细介绍了如何使用MATLAB/Simulink从零开始搭建无刷直流电机(BLDC)控制模型。通过可视化建模方法,避开繁琐的数学推导,直接构建三相逆变器、电机本体参数化模型、霍尔传感器与换相逻辑实现,以及速度闭环控制设计。文章还提供了PID控制器整定、抗饱和处理和系统调试的实用技巧,帮助工程师快速掌握BLDC控制系统的仿真与实现。

weixin_27741699的博客 254

S32K3基于EB配置GPT触发WDG的实战解析

本文详细解析了S32K3 MCU基于EB tresos工具配置GPT定时器触发看门狗(WDG)的实战方法。通过分析协同工作机制、MCAL配置步骤及代码实现,帮助开发者构建可靠的硬件监控系统,提升汽车电子系统的安全性与实时性。

f9g0h的博客 205

ResNet个人理解以及pytorch实现ResNet34

ResNet个人理解以及Pytorch实现ResNet 代码由于暂时设备问题,没有进行实验,仅供参考。 本文仅代表个人看法,参考了https://zhuanlan.zhihu.com/p/42706477以及原论文,链接讲的很详细,图和公式部分来源于链接以及原论文,有人和错误感谢大家指出。 以上部分仅为自己在看ResNet的心得体会,作为记录方便自己观看,图和公式来源于https://zhuanlan.zhihu.com/p/42706477和原论文,自己使用Pytorch实现了一下R...

clearkoro1的博客 4977

Jetson-nano 编译实时内核并烧录

前言 之前一篇文章介绍了正常的烧录过程,使用的是默认内核,实际工作中需要对内核打补丁升级为实时内核,并对其重编译。 一、准备内容 官网大法好 官方内核下载链接 官方交叉编译器下载链接 官方文档 ubuntu主机一台 根据官网选择下载对应的文件, 1、L4TDriver Package (BSP) source jetson内核文件。 2、官方交叉编译器 因为我们不是在jetson上直接编译,而jetson是arm平台,所以要进行交叉编译。 二、使用步骤 1.解压 内核 tar -xjf public_s

ldl371122的博客 3287

ResNET简介与个人理解

一、开发背景残差神经网络(ResNet)是由微软研究院的何恺明、张祥雨、任少卿、孙剑等人提出的, 斩获2015年ImageNet竞赛中分类任务第一名, 目标检测第一名。残差神经网络的主要贡献是发现了,并针对退化现象发明了,极大的消除了深度过大的神经网络训练困难问题。神经网络的“深度”首次突破了100层、最大的神经网络甚至超过了1000层。二、网络结构残差单元(残差块)ResNet团队分别构建了带有“直连边(Shortcut Connection)”的、以及。

qq_44558039的博客 1673

AutoSAR RTE调度机制揭秘:从定时器事件到Runnable执行的完整流程

本文深入解析了AutoSAR RTE(运行时环境)的核心调度机制,详细阐述了从定时器事件触发到Runnable(可运行实体)执行的完整流程。通过剖析Rte_Start()函数、OS任务与警报的交互,以及事件驱动循环,揭示了RTE如何作为幕后指挥家,高效、可靠地协调软件组件间的周期性任务执行,是打通AutoSAR应用开发的关键。

weixin_29169899的博客 226

MATLAB小白也能搞定!BCT脑网络分析工具箱安装与入门指南

本文为零基础用户提供了一份详尽的BCT脑网络分析工具箱安装与入门指南。从MATLAB环境配置、BCT工具箱下载与路径添加,到连接矩阵构建、节点度与聚类系数等基础指标计算,手把手带领神经科学研究者跨越编程门槛,快速掌握脑影像数据分析的核心流程。

threejs5artist的博客 1092

ResNet的一些个人理解

  最开始接触到这个ResNet的时候是在看deeplab2的论文的时候,里面用到的是Res101,对于习惯了使用VGG16来作为基本框架的我对于这个101层的网络自然是充满着无比的敬意呀,哈哈。 ResNet在各个方面的表现都很优异,他的作者何凯明博士也因此摘得CVPR2016最佳论文奖。 我认为VGG16是在AlexNet的基础上加深了网络层次从而获得了优异的结果,就理论上来说,ResN...

Pierce_KK的博客 968

倍福TwinCAT3 OPC UA配置全流程:从安装到无密码访问(附常见问题解决)

本文提供了倍福TwinCAT3 OPC UA配置的完整实战指南,重点讲解如何实现无密码游客访问。从软件安装、授权配置、服务器初始化到深度排错,详细解析了配置流程中的关键步骤与常见陷阱,帮助工程师高效打通PLC与上位系统的数据通讯通道。

vulkan6gpu的博客 472

(个人记录)修改Pytorch自带的ResNet

感谢各位大佬们! ReNet原理和代码:https://blog.youkuaiyun.com/m0_50127633/article/details/117200212 如何修改部分结构:https://blog.youkuaiyun.com/andyL_05/article/details/108930240 如何训练自己的分类器: https://www.jianshu.com/p/2c37965a06ae ...

weixin_44180836的博客 1985

如何对TBSS的结果进行统计学的分析,已完成置换检验,如何在最终的TBSS输出结果提取除具体值及如何做进一步相关性分析??

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 1439

Windows环境下Ollama的本地部署方案

本文主要介绍了Windows环境下Ollama的本地部署方案,希望对使用大语言模型的同学们有所帮助。 文章目录 1. 前言 2. Windows环境安装 3. API调用示例代码

herosunly的博客 11万+

通过和resnet18和resnet50理解PyTorch的ResNet模块

文章目录模型介绍resnet18模型流程总结resnet50总结 resnet和resnext的框架基本相同的,这里先学习下resnet的构建,感觉高度模块化,很方便。本文算是对PyTorch源码解读之torchvision.modelsResNet代码的详细理解,另外,强烈推荐这位大神的PyTorch的教程! 模型介绍 resnet的模型可以直接通过torchvision导入,可以通过pretr...

得克特 2万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ResNet-50网络理解

本文主要针对ResNet-50对深度残差网络进行一个理解和分析 ResNet已经被广泛运用于各种特征提取应用中,当深度学习网络层数越深时,理论上表达能力会更强,但是CNN网络达到一定的深度后,再加深,分类性能不会提高,而是会导致网络收敛更缓慢,准确率也随着降低,即使把数据集增大,解决过拟合的问题,分类性能和准确度也不会提高。Kaiming大神等人发现残差网络能够解决这一问题。这里首先放上一张Res...

Cheungleilei的博客 14万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

理解ResNet

ResNet(Residual Net)残差网是MSRA的何凯明团队在2015年提出来的,不但获得了2015年ImageNet的多项第一,甚至被运用到前一段时间非常火的AlphaGo Zero中去,取得了非常好的效果,可见ResNet的强大。ResNet的一个非常重要的贡献就是在深度网络中创造性地使用了残差块,从而解决了网络退化问题,大大提升了神经网络深度和效果。1、退化问题 那什么是网络退化问题

Kobe Bryant的专栏 5650

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

ResNet之残差结构的理解

ResNet 论文 2015年提出的ResNet 2016年改进后的ResNet 博客 深度学习—残差resnet网络原理详解 ResNet详解——通俗易懂版 残差结构解析 2015年论文的残差结构 译文: 在本文中,我们通过提出一个深度残差学习框架来解决退化问题。与其希望每个堆叠层直接适应一个需要的基础映射,我们明确地让这些堆叠层适应残差映射。 形式上,将所需的基础映射表示为H(x)H(x)H(x),我们让堆叠的非线性层适应F(x)F(x)F(x)的另一个映射H(x)−xH(x)-xH(x)−x。源映

qq_38109282的博客 1万+

【ResNet】Pytorch从零构建ResNet50

Pytorch从零构建ResNet50,详细解释了ResNet50的具体结构,包括残差块的分析,shortcut的两种情况的讨论。并与ResNet18做了比对,仔细说明了他们之间的区别。非常适合想了解ResNet的同学或者想熟悉pytorch的同学

通过图灵测试的人类的博客_优快云_PYTHON_DeepLearning_数据挖掘 1万+
上一篇: INSIGHT
下一篇: tf.slice()介绍
nini_coded
博客等级 码龄10年 62粉丝 27原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值