深度学习基础知识-残差网络ResNet

news2024/11/26 22:36:51

目录

一、ResNet 的核心思想:残差学习(Residual Learning)

二、ResNet 的基本原理

三、ResNet 网络结构

1. 残差块(Residual Block)

        ResNet 的跳跃连接类型

2. 网络结构图示

四、ResNet 的特点和优势

五、ResNet 的局限

六、ResNet 的变体

七、ResNet 的应用场景


ResNet(Residual Network) 是由何恺明等人于 2015 年提出的一种深层卷积神经网络结构。它在 ILSVRC 2015 比赛中取得了图像分类、检测等多个任务的突破性成果。ResNet 的主要创新在于引入了“残差连接”(Residual Connections),有效地解决了深层神经网络的梯度消失和梯度爆炸问题,使得网络可以堆叠更多层,显著提升模型的表达能力和分类效果。

一、ResNet 的核心思想:残差学习(Residual Learning)

在传统的深层网络中,随着层数的增加,网络的训练难度会显著提高,容易导致梯度消失(Gradient Vanishing)或梯度爆炸(Gradient Explosion)问题。深度网络可能出现退化现象,即层数增加带来的错误率上升,而不是模型的性能提升。ResNet 的提出正是为了解决这一问题,其核心思想是通过残差块(Residual Block)引入“跳跃连接”(Skip Connection),使得网络可以“跳跃”几层进行信息传递。这一方法不仅有效防止了梯度消失,还使得网络可以更深,参数更少。

二、ResNet 的基本原理

在传统的深层神经网络中,随着层数的加深,梯度会逐渐消失或爆炸,导致模型的训练变得困难,甚至出现退化问题。ResNet 的核心思想是通过引入“残差连接”来直接将输入传递到下一层网络。即每一层的输出不仅依赖于上一层的输出,还加上了输入的“跳跃连接”,即:

这里:

  • x 是输入特征。
  • F(x) 是通过卷积、激活等操作生成的特征。
  • y 是残差单元的输出。

这种结构称为“残差块”(Residual Block),它通过直接引入输入,将信息从浅层直接传递到深层,有效缓解了梯度消失的问题,使得更深层次的网络也能够有效训练。

三、ResNet 网络结构

ResNet 的网络结构由多个残差块和一些普通卷积层、池化层组成。根据网络的深度不同,ResNet 主要有以下几种版本:

  • ResNet-18/34:较浅的网络结构,适用于较小的数据集和不需要极深网络的任务。
  • ResNet-50/101/152:较深的网络结构,通过“瓶颈结构”(Bottleneck)进一步加深网络层数,用于处理更复杂的图像数据集。
1. 残差块(Residual Block)

ResNet 的残差块有两种基本结构:

  • 基本残差块(Basic Residual Block):用于较浅的网络(如 ResNet-18 和 ResNet-34)。
  • 瓶颈残差块(Bottleneck Residual Block):用于较深的网络(如 ResNet-50、ResNet-101 和 ResNet-152),该结构通过 1×1 卷积降维和升维,减少参数量的同时加深网络。

基本残差块的结构图如下:

  1. 输入特征经过第一个卷积层,产生输出 F(x)。
  2. 将输入 x 直接与 F(x) 相加形成残差连接,得到y=F(x)+x。

瓶颈残差块的结构图如下:

  1. 输入首先经过 1×1 卷积降维,然后经过 3×3 卷积提取特征,最后通过 1×1 卷积升维。
  2. 输出 F(x) 与输入 x 相加形成残差连接,输出为 y=F(x)+x。

ResNet 的跳跃连接类型

ResNet 中的跳跃连接主要有两种类型:恒等映射(Identity Mapping)卷积映射(Convolution Mapping)

  • 恒等映射:当输入和输出的通道数相同时,直接将输入加到输出上。即在不改变通道数的情况下直接执行加法。
  • 卷积映射:当输入和输出的通道数不一致时,在跳跃连接处使用 1×1 卷积来升维或降维,使输入和输出维度一致。这种方式常用于瓶颈残差块的跳跃连接。
2. 网络结构图示

在 ResNet 中,残差块和卷积层的堆叠方式因版本不同而略有差异。

以下是 ResNet-50 的网络结构图解:

  • 输入层:224×224 尺寸的输入图像。
  • 第一层卷积:一个 7×7 卷积层,步长为 2,通道数为 64。
  • 池化层:3×3 的最大池化层,步长为 2。
  • 残差层:分为 4 个阶段,每个阶段包括若干个瓶颈残差块。
    • Stage 1:3 个瓶颈残差块,每个瓶颈层输出通道数为 256。
    • Stage 2:4 个瓶颈残差块,输出通道数为 512。
    • Stage 3:6 个瓶颈残差块,输出通道数为 1024。
    • Stage 4:3 个瓶颈残差块,输出通道数为 2048。
  • 全局平均池化层:通过全局平均池化,将每个通道的特征压缩为一个值。
  • 全连接层:输出类别数的概率分布。

四、ResNet 的特点和优势

  1. 梯度流通更顺畅:通过残差连接有效缓解了深层网络的梯度消失问题,使得梯度能够更顺利地传播到浅层。
  2. 易于训练:即使在网络层数很深的情况下,残差连接也可以保证训练过程的稳定性。
  3. 优越的性能:相比于其他深层网络,如 VGG,ResNet 的参数更少,但表现更优异,是许多图像处理任务中的经典结构。
  4. 可扩展性:残差块的结构简单易用,适合扩展到更深、更复杂的网络结构中。

五、ResNet 的局限

尽管 ResNet 解决了深度学习中的许多问题,但仍存在一些不足:

  1. 参数量大:虽然 ResNet 已优化过计算量,但对于一些移动设备和嵌入式设备仍然较大。
  2. 结构复杂:对于一些非图像任务,直接迁移 ResNet 会出现过拟合或计算开销过大的问题。
  3. 低效的计算:ResNet 的残差连接在部分情况下仍有冗余操作,后续的改进网络(如 ResNeXt、DenseNet 等)在此基础上优化了计算效率。

六、ResNet 的变体

基于 ResNet 结构出现了很多改进版本,包括但不限于:

  1. ResNeXt:通过分组卷积的方式优化计算效率,减少参数量。
  2. DenseNet:在残差连接的基础上增加了密集连接(Dense Connections),使得浅层特征直接传递到深层,进一步减少了参数冗余。
  3. Wide ResNet:相比增加网络深度,通过增加网络宽度的方式来提升模型的表达能力,适用于计算资源丰富的场景。
  4. Dual Path Network:融合 ResNet 和 DenseNet 的特点,进一步提升特征传递的效率。

七、ResNet 的应用场景

ResNet 网络凭借其强大的表达能力和良好的训练效果,在图像分类、目标检测、图像分割等多个任务中广泛应用。此外,ResNet 作为主流的特征提取模块,也在多种复杂模型(如 Faster R-CNN、YOLO)中作为骨干网络(Backbone)进行迁移。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2233823.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

做反向代购没货源,也能靠“东方玄学”风生水起?

在全球化日益加深的今天,文化的交流与碰撞愈发频繁。近年来,一股神秘的东方力量——风水玄学,在海外社交媒体上悄然走红,成为众多外国友人追捧的新风尚。从TikTok到Instagram,无数华人博主通过分享风水知识、解读玄学饰…

新闻稿件管理:SpringBoot框架实战指南

3系统分析 3.1可行性分析 通过对本新闻稿件管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本新闻稿件管理系统采用SSM框架,JAVA作为开发语…

web实操2——idea创建普通web项目

创建项目 就是普通的java项目,项目右键add framework support(添加框架支持),然后点击Web Application(web应用程序),然后点击OK。即可。 文件下就会多一个web文件夹,里面是WEB-INF文件夹&…

冰雪奇缘!中科院一区算法+双向深度学习+注意力机制!SAO-BiTCN-BiGRU-Attention雪消融算法优化回归预测

冰雪奇缘!中科院一区算法双向深度学习注意力机制!SAO-BiTCN-BiGRU-Attention雪消融算法优化回归预测(Matlab) 目录 冰雪奇缘!中科院一区算法双向深度学习注意力机制!SAO-BiTCN-BiGRU-Attention雪消融算法优…

LabVIEW适合开发的软件

LabVIEW作为一种图形化编程环境,主要用于测试、测量和控制系统的开发。以下是LabVIEW在不同应用场景中的适用性和优势。 一、测试与测量系统 LabVIEW在测试与测量系统中的应用广泛,是工程测试领域的主流工具之一。利用其强大的数据采集与处理功能&…

ssm校园线上订餐系统的设计与实现+vue

系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习,获取源码看文章最下面 需要定制看文章最下面 目 录 摘 要 I 目 录 III 第1章 绪论 1 1.1 研究背景 1 1.2目的和意义 1 1.3 论文研究内容 1 …

stm32使用串口的轮询模式,实现数据的收发

------内容以b站博主keysking为原型,整理而来,用作个人学习记录。 首先在STM32CubeMX中配置 前期工作省略,只讲重点设置。 这里我配置的是USART2的模式。 会发现,PA2和PA3分别是TX与RX,在连接串口时需要TX对RX&…

Webserver(2.8)守护进程

目录 守护进程案例 守护进程案例 每隔2s获取系统时间&#xff0c;将这个时间写入到磁盘文件中 #include<stdio.h> #include<sys/stat.h> #include<sys/types.h> #include<unistd.h> #include<fcntl.h> #include<sys/time.h> #include<…

Vue3父传子

1. App.vue - 父组件 咱们先来看左边的 App.vue&#xff0c;它扮演的是“父亲”角色——你可以想象它是一位热心的老爸&#xff0c;手里拿着一条消息&#xff0c;正准备把这条消息送到“儿子”那里。 <script setup> // 这个 setup 就像一个神奇的开关&#xff0c;一开…

IO 多路复用技术:原理、类型及 Go 实现

文章目录 1. 引言IO 多路复用的应用场景与重要性高并发下的 IO 处理挑战 2. IO 多路复用概述什么是 IO 多路复用IO 多路复用的优点与适用场景 3. IO 多路复用的三种主要实现3.1 select3.2 poll3.3 epoll三者对比 4. 深入理解 epoll4.1 epoll 的三大操作4.2 epoll 的核心数据结构…

HarmonyOS-消息推送

一. 服务简述 Push Kit&#xff08;推送服务&#xff09;是华为提供的消息推送平台&#xff0c;建立了从云端到终端的消息推送通道。所有HarmonyOS 应用可通过集成 Push Kit&#xff0c;实现向应用实时推送消息&#xff0c;使消息易见&#xff0c;构筑良好的用户关系&#xff0…

ubuntu安装与配置Nginx(1)

在 Ubuntu 上安装和配置 Nginx 是相对简单的。以下是一个逐步指南&#xff1a; 1. 更新系统包 首先&#xff0c;确保你的系统是最新的。打开终端并运行&#xff1a; sudo apt update sudo apt upgrade2. 安装 Nginx 使用以下命令安装 Nginx&#xff1a; sudo apt install …

FastAdmin动态创建一个富文本编辑器(summernote)

话多说直接看效果&#xff1a; <!-- 动态创建的一个富文本&#xff0c;请注意本人是为了方便所以把js放在了这里&#xff0c;使用者可以结合自身需求修改 --><div class"form-group"><!-- 这里博主使用临时路径&#xff0c;需要自行修改 --><…

网络层5——IPV6

目录 一、IPv6 vs IPv4 1、对IPv6主要变化 2、IPv4 vs IPv6 二、IPv6基本首部 1、版本——4位 2、通信量类——8位 3、流标号——20位 4、有效载荷长度——16位 5、下一个首部——8位 6、跳数限制——8位 7、源 、 目的地址——128位 8、扩展首部 三、IPv6地址 1…

C++STL——list

C教学总目录 list 1、list简介2、构造函数3、迭代器4、访问和容量函数5、修改类函数6、操作类函数 1、list简介 list是带头双向循环链表&#xff0c;也是模板类&#xff0c;使用时要指明类型&#xff0c;包含于头文件<list> 由于list是双向循环链表&#xff0c;在任意位置…

DMRl-Former用于工业过程预测建模和关键样本分析的数据模式相关可解释Transformer网络

DMRl-Former用于工业过程预测建模和关键样本分析的数据模式相关可解释Transformer网络 Liu, Diju, et al. “Data mode related interpretable transformer network for predictive modeling and key sample analysis in industrial processes.” IEEE Transactions on Indust…

JS渗透(安全)

JS逆向 基本了解 作用域&#xff1a; 相关数据值 调用堆栈&#xff1a; 由下到上就是代码的执行顺序 常见分析调试流程&#xff1a; 1、代码全局搜索 2、文件流程断点 3、代码标签断点 4、XHR提交断点 某通js逆向结合burp插件jsEncrypter 申通快递会员中心-登录 查看登录包…

Redis为什么用跳表实现有序集合

Redis为什么用跳表实现有序集合 手写一个跳表 为了更好的回答上述问题以及更好的理解和掌握跳表&#xff0c;这里可以通过手写一个简单的跳表的形式来帮助读者理解跳表这个数据结构。 我们都知道有序链表在添加、查询、删除的平均时间复杂都都是 O(n) 即线性增长&#xff0c…

影刀RPA实战:嵌入python,如虎添翼

1. 影刀RPA与Python的关系 影刀RPA与Python的关系可以从以下几个方面来理解&#xff1a; 技术互补&#xff1a;影刀RPA是一种自动化工具&#xff0c;它允许用户通过图形化界面创建自动化流程&#xff0c;而Python是一种编程语言&#xff0c;常用于编写自动化脚本。影刀RPA可以…

GR2——在大规模视频数据集上预训练且机器人数据上微调,随后预测动作轨迹和视频(含GR1详解)

前言 上个月的24年10.9日&#xff0c;我在朋友圈看到字节发了个机器人大模型GR2&#xff0c;立马去看了下其论文(当然了&#xff0c;本质是个技术报告) 那天之后&#xff0c;我就一直想解读这个GR2来着 然&#xff0c;意外来了&#xff0c;如此文《OmniH2O——通用灵巧且可全…