ResNet 论文学习笔记

ResNet论文笔记 ResNet——MSRA何凯明团队的Residual Networks,在2015年ImageNet上大放异彩,在ImageNet的classification、detection、localization以及COCO的detection和segmentation上均斩获了第一名的成绩,而且Deep Residual Learning for Image Recognition也获得了CVPR2016的best paper,实在是实至名归。就让我们来观摩大神的这篇上乘之作。 阅读详情

1. ResNet 提出的背景

        深层卷积神经网络在图像分类领域取得了很多很棒的进展,因为随着网络层次的加深,feature level 从 low--mid--high 逐步得到丰富,但是通过简单堆叠多层网络真的可以学的更好吗?(Is learning better networks as easy as stacking more layers? )答案是否定的。随着网络层次的加深,会出现两个问题:

1)梯度消失/爆炸 (vanishing/exploding gardient)

        梯度消失/爆炸会阻碍网络收敛,此问题可借助 normalized initialization 和 Intermediate normalization layers(BN层)得到较好的解决。☞ Batch Normalization

2)退化问题(degradation problem)

        虽然BN较好的解决了梯度问题,但是随着网络层数的加深,训练正确率会趋于饱和随后急剧下降,该问题并不是由于过拟合导致的(原文作者猜想可能是由于深层网络使得网络的收敛速率指数级下降)。ResNet 就是为了解决退化问题而提出来的(提出了残差结构)。

2. ResNet 的思想

        针对当前的这几层来说,如果不考虑 identity 位置的映射x,网络的学习任务是从 1 处的 x 学习一个映射关系 H(x),然后经过 ReLU 模块之后输出到 2 位置,即 σ(H(x))。 

        但是鉴于 退化问题 的存在,为了保证 2 处的学习效果 不差于 1 处,ResNet 引入了 identity 处的连接,叫做“shortcut connections”,此时 H(x) = F(x) + x,当前模块的学习目标是 resudual function F(x) = H(x) - x。

        为什么这样做呢?因为 退化问题 实际上是说 2 处的学习效果差于 1 处,即该模块难以用图中的两个非线性 layer 去学习到一个线性的 恒等映射(此时1和2的学习效果相等);而 residual function 可以通过将 图中两层神经元的权值都逼近0而方便的学到 恒等映射,从而保证了 2 处的学习效果不差于1。

3. ResNet 的学习目标 F(x)

        既然要学习 F(x),那我们就来看一下 F(x) 的表达式:

        输入 x 经过第一个 weighted layer 的输出为 W1*x,经过 ReLU 之后的输出为 σ(W1*x),再经过第二个 weighted layer 的输出即为 F = W2*σ(W1*x),最终该模块在 2 处的输出为

σ(F + x) = σ(W2*σ(W1*x) + x)

         在上面的这个公式中,x 和 F 需要有相同的 dimension,但是实际网络中可能存在 x 和 F 尺寸不相同的情况,此时就涉及到 shortcut 的两种连接方式:

1)identity mapping:当 x 和 F 的尺寸相同时,上式可以直接操作,无需引入额外的参数和计算复杂度;

2)projection:引入一个线性的映射矩阵 WS 将 x 映射为和 F 相同尺寸的矩阵,再进行相加,此时上式变为 σ(F + WS*x)。projection也可以用zero-padding代替,从而无需引入额外的学习参数,但是projection的效果要比zero-padding好一些。

        在卷积神经网络中,F 执行的操作是两个 feature map 的 每个通道的 逐像素 求和。

4. Residual block 的架构

         左侧的2层架构用在 ResNet-34 中,右侧的3层架构(bottleneck design)用在 ResNet-50/101/152 中,其中 1*1的层用于降维和升维,从而使得 3*3层的输入输出维度比较小,减少参数量,而且也便于使用 identity mapping,降低了运算复杂度。

        为什么右侧的残差结构可以减少训练参数量呢?假设给左右两个架构均输入 256d 的特征向量,针对左侧的残差结构,为了保证主分支与shortcut的输出特征矩阵有相同的 shape,则主分支的 kernel number 也应该设置为256,则左侧的参数量为 3*3*256*256 + 3*3*256*256 = 1179648;而右侧的残差结构通过第一个1*1的降维和第二个1*1的升维,保证了主分支的输出特征维度与shortcut相同,所以右侧的参数量为 1*1*256*64 + 3*3*64*64 + 1*1*64*256 = 69632,是左侧 (1179648 / 69632 ≈ 17)的1/17。

5. ResNet 的整体结构和参数设计

        ResNet 是参照 VGG-19的网络架构,首先将网络层数扩展到34层,然后添加了 shortcut connection,如下图所示,其中实线代表3中介绍的 identity mapping,虚线表示 projection:

       

        以第一个虚线连接为例,介绍一下projection的操作:

        从文章中的结果可以看出, ResNet相较于同层数的 plain net 可以加速收敛,且深层的 ResNet 比 浅层的 ResNet 有很好的性能提升。

网络亮点:

1. 超深的网络结构(突破1000层)

2. 提出 residual 模块

3. 使用 batch normalization 加速训练,丢弃 dropout

原文链接:https://arxiv.org/pdf/1512.03385.pdf

ResNet论文翻译及解读 阅读详情

相关推荐

课程一学习笔记:实现ResNet18(残差网络)

课程一:实现ResNet18(残差网络)1. Why Transformer?2. 实现ResNet18代码: 1. Why Transformer? • In NLP:近年来,基于Transformer的深度学习技术已经首先“统治”NLP领域 •In CV:2020年底开始,Vision Transformer逐渐成为CV方向的研究热点 •基于Transformer的模型在多个视觉任务中已经超越CNN模型达到目前SOTA性能 •实践代码——“3W”心法:Who am I?Where am I? What

Wangzx的博客 3159

ResNet50是什么

它的深度和残差学习的方法使得它能够学习更复杂的特征,从而提高了它的准确率。残差学习的思想是,如果一个层的输入和输出相同,那么这个层就是一个恒等映射。这个模型是在2015年的ImageNet比赛中获得了第一名,它的准确率比前一年的获胜者提高了3.6%。ResNet50的名字中的“Res”代表残差,这是因为这个模型使用了残差学习的方法。这个模型的深度使得它能够学习更复杂的特征,从而提高了它的准确率。这个层将每个特征图的所有像素的平均值作为该特征图的输出。这个层的作用是减少模型的参数数量,从而减少过拟合的风险。

m0_73820512的博客 7464

在linux上本地大模型部署与推理

您的Python脚本(客户端)可能在您的个人电脑上,而模型服务(服务器)在远程Linux服务器上。如果您的服务器有强大的NVIDIA GPU,并且您对性能有更高的要求(例如需要高吞吐量),vLLM是更好的选择。这种方式无需向公网暴露服务器端口,而是通过加密的SSH通道将服务器的端口“映射”到您的本地电脑上。我们将启动一个API服务器,它会加载您指定的模型,并等待您的代码前来调用。如果您直接在SSH窗口运行上面的命令,一旦您关闭窗口,服务就会停止。这是根据您的原始代码修改的版本,适配本地vLLM服务。

frostmelody 全网同名,大家多多关注呀~ 持续分享优质内容! 2054

5.ResNet 论文总结

1.背景 网络的 depth 很重要

gylph的博客 444

Verilog中用于时序验证的系统任务[setup][hold][skew][width][recovery][removal]【STA静态时序分析】

下列时序检查语句错误的是() A. $setup(posedge clk, data, tSU) B. $hold(posedge clk, data, tHLD) C. $setuphold(posedge clk, data, tSU, tHLD) 答案:A 解析: 在时序检查函数中,$setup 函数比较特殊,格式是: $setup(data_event, reference_event, limit); 其他常见的检查是: $......(reference_...

DengFengLai123的博客 1万+

什么是OAuth 2.0?

OAuth2.0是一种授权协议而非登录协议,核心思想是通过令牌(Token)而非密码实现安全授权。它涉及三个关键角色:用户、第三方应用和身份提供商(IdP)。最常用的授权码流程(AuthorizationCode Flow)通过浏览器三方对话,确保用户密码只提供给IdP而非第三方应用。OAuth2.0提供四种授权方式,其中授权码和客户端凭证是当前主流,而隐式和密码模式已不推荐。需要注意的是,OAuth2.0解决的是授权问题,身份认证需通过OpenID Connect实现。该协议通过临时令牌机制,实现了&qu

sonadorje的专栏 1158

基于ResNet50实现垃圾分类

ResNet50是Residual Networks(残差网络)的一种变体,由Kaiming He等人在2015年提出。ResNet50包含50个深度层,通过引入残差模块,有效地解决了深层网络的退化问题。残差模块通过引入短连接(skip connections)使得网络在训练时更容易优化。下图在下文中称为主图模型的精确率达到了69.7%左右,并且对一些样本少的类别和图像质量较差的预测结果不理想,可能需要对图像的预处理方法进行改进,比如图像增强等等。

qq_52191127的博客 3355

STM32+HX711实战:5分钟搞定拉力传感器数据采集(附完整代码)

本文详细介绍了如何使用STM32微控制器和HX711模数转换器快速搭建高精度拉力测量系统。通过硬件连接指南、驱动实现代码和校准方法,帮助开发者在5分钟内完成拉力传感器数据采集,适用于工业自动化和消费电子等场景。

y7z8a9的博客 875

ResUNet原理与实现

U-Net的下采样和上采样的设计与许多现在成熟的网络结构异曲同工。因为ImageNet是一个大规模的图像分类数据集,ImageNet预训练权重可以帮助我们在U-Net的训练中使用更好的初始化权重,加快网络的收敛速度并提高网络的泛化能力。但是,U-Net的下采样和上采样的设计思路和现在许多成熟的网络结构相似,因此,可以看作是先驱性的工作。整个网络结构包括了ResNet的残差连接和U-Net的上下采样和跳跃连接思想,可以更好地平衡特征的丰富性和细节的保留性,在图像分割任务中表现出较好的性能。

mefocus的博客 2万+

FPGA_AD9361实战

1.参考网站。

Pual_Georg的博客 748

Visual Studio Community与Visual Studio Community与VS Code有啥区别

Visual Studio Code提供了基本的代码编辑、调试和版本控制功能,以及丰富的插件和扩展库。Visual Studio Community和Visual Studio Code在功能上有很大的差异,Visual Studio Community提供了比Visual Studio Code更多的功能,包括代码重构、智能提示、图形化设计等。他的优势在于它的轻量级和灵活性。此外,Visual Studio Code还具有丰富的扩展和插件生态系统,用户可以通过安装插件来扩展其功能,从而满足自己的需求。

m0_56551554的博客 2843

深度学习| ResNet和ResUnet

快速理解ResNet和RestUnet。

qq_40306845的博客 1万+

YOLO26 FP16/INT8混合量化实战:精度无损+速度拉满,边缘设备部署最优解

这是混合量化的灵魂,告诉量化器:哪些层不准动,保留FP16。"""判断是否为量化敏感层 → 是则豁免为FP16返回 True=敏感层(FP16),False=可量化(INT8)"""# 1. 检测头回归分支# 2. 小通道1×1卷积# 3. SiLU 激活# 4. 残差ShortcutYOLO26想要在Jetson、RK3588、昇腾、嵌入式NPU上真正落地,FP16/INT8混合量化是唯一最优解。它的核心逻辑不是玄学,而是工程上的精准取舍能量化的层,全部INT8榨性能;

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 746

【ResNet】ResNet论文学习笔记

文章目录0. 背景1. ResNet的大体思路2. ResNet效果3. 两个我还没弄明白的技术细节 最近一段时间在做毕设,整体节奏较为悠闲,毕设完成后也会分享在博客和我的网站。这两天比较闲,读了ResNet。 作为一名准研究生,我在看论文方面还存在相当多的不足。其实我一直不清楚自己要怎么去读一篇论文,是应该把里面的所有技术细节都完全弄明白,还是只去把握他的大体思想。我一直处于摇摆之中,有时候觉得需要把技术细节完全弄懂,这样心里才舒服;但这样做太费时间,有时候又感觉现阶段能做到把握论文的大体思想应该就够了,

syh的技术记录 5833

⭐️VMwareWorkstation17.0虚拟机搭建WindowsXP虚拟机(完整安装步骤详细图文教程)

Windows XP是微软公司研发的计算机操作系统,于2001年10月25日正式发布。其名字中“XP”的意思来自英文中的“体验”(Experience)。Windows XP使用了Luna图形用户界面和双列开始菜单,提升了系统的安全性和工作性能,提供了WiFi支持,简化了软件的安装和运行,并增加了远程桌面功能。

Python老吕的博客 1万+

精雕软件(JDpaint) 5.5 绿色版

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

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

一、前言 在学习Yolo v3的过程中,了解到它借鉴了残差网络的快捷链路(shortcut connection),因此为了更好的理解yolo3,我对ResNet展开了学习,并阅读其论文。 ResNet—— Residual Network残差神经网络,是何恺明大神(Faster RCNN的作者)于2015年提出,在当年多个大赛中用此网络获得了第一名。 为什么会提出ResNet? 在深度神经网络中存在一个问题,大家都知道,网络层数加深,参数增多,网络表现能力理应更好。但随着深度的不断增加,会出现网络退

Shadownow的博客 4155

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ResNet论文学习笔记

原作地址:https://arxiv.org/abs/1512.03385 参考文章: https://blog.youkuaiyun.com/qq_28385535/article/details/90739694(条理章节清晰) https://blog.youkuaiyun.com/C_chuxin/article/details/82948733(翻译章节较全,翻完了第4章,其他都是前三章) https:...

xiaotian127的博客 247

IEM模型,地表粗糙度模拟

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

ResNet论文精读:翻译+学习笔记+Pytorch代码复现

上一篇文章详细解读了论文GoogLeNet网络结构,现在给大家介绍何凯明大神在2016年发表在CVPR的best paper,<Deep Residual Learning for Image Recognition> 开创了深度残差网络的先河,解决了超深层网络训练问题,研究人员不再需要担心随着层数增加而带来的梯度问题,ResNet在2015年ImageNet的图像分类任务中,获得了第一名,并且在top-5错误率上达到了3.57%,大大超过了其他参赛模型。

王智野的博客 1978

caffe学习笔记27-ResNet论文笔记

caffe学习记录

YiLiang 1331

DL学习笔记-ResNet论文阅读

ResNetResNet简介ResNet(Residual Nerual Network)由微软研究院的何明凯等4名华人提出,通过使用Residuak Unit 成功训练152层深的神经网络,在ILSCRC2015年比赛中获得3.75%的top-5错误率,获得冠军。ResNet的参数量少,且新增的Residual Unit单元可以极快地加速超深神经网络的训练,同时模型的准确率也有非常大的提升。相关...

云中寻雾的博客 902

pytorch学习笔记-----Resnet 残差网络论文学习

发现问题: 深层网络训练的效果反而不如浅层网络效果 解决办法: 一方面更深卷积,另一方面要对未卷积之前的进行映射 (个人理解即相当于未进网络的图片分成两条路一条走网络,一条直接拿过来,可以通过训练对两条路的训练效果进行比较调整比重,保证训练的结果至少不比未经网络之前的差) Resnet网络中体现: 每个模块都要相上述方法两条路进网络,对于特征图数不同的,我们可以进行卷积操作来增加特征图数量(要求:两条路最终...

qq_52822699的博客 241

经典神经网络论文超详细解读(五)——ResNet(残差网络)学习笔记(翻译+精读+代码复现)

RseNet论文(《Deep Residual Learning for Image Recognition》)超详细解读。翻译+总结。文末有代码复现

路人贾的博客 2万+

第四十一周学习笔记

第四十一周学习笔记 论文阅读概述 Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering 结合Bottom-Up和Top-Down的信息,Bottom-up:Faster RCNN,Top-Down:Hierarchical LSTM 两个LSTM,第一个用来做attention,第...

Peter的脱发日记 516

【深度学习】ResNet 原论文及原作者讲解

ResNet 原论文及原作者讲解

一杯水果茶!足矣~ 1万+

Resnet论文总结

1.问题引入 通过分析很多网络结构,作者发现网络深度是一个影响网络性能的因素,因此提出:是否网络越深,神经网络的学习效果越好? 解决这个问题之前,一个有关深度神经网络的明显问题就是梯度消失。我们知道,在深层神经网络当中,经常会遇到梯度消失的问题,这可以通过标准初始化和中间层初始化来解决,这使得数十层的网络在通过SGD训练即可达到收敛。 在解决了梯度消失问题之后,网络越深,是否性能就越好呢?作者通过...

北塘羽的博客 5980

ResNet学习&&论文精读&&手搓代码&&相关项目

在ResNet中,(aa): Identity() 表示残差块中的 “aa” 部分,它的作用是恒等映射(identity mapping)。nn.Identity() 是 PyTorch 中的一个模块,它的作用是进行恒等映射,即将输入直接返回,不进行任何变换。总之,(aa): Identity() 的作用是创建一个跳跃连接,允许梯度直接通过残差块,促进了网络的训练。f(x)=x+g(x),此处+为逐元素的相加(x和g(x)的结构是相同的)残差块使得很深的网络更加容易训练,甚至可以训练一千层的网络。

qq_35975367的博客 1258
上一篇: Python 运行报错 fixture ‘cfg‘ not found
下一篇: Python 将多列数据写入 csv,并写入标题行
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值