当前位置: 首页 > news >正文

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

目录

一、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)进行迁移。

相关文章:

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

目录 一、ResNet 的核心思想:残差学习(Residual Learning) 二、ResNet 的基本原理 三、ResNet 网络结构 1. 残差块(Residual Block) ResNet 的跳跃连接类型 2. 网络结构图示 四、ResNet 的特点和优势 五、ResNe…...

Linux云计算个人学习总结(二)

高级文件系统 一、RSYNC概述 1、作用:快速的文件复制工具(支持本地和远程),以及删除、查看等基本功能。 2、特点:支持实时(inotify、sersync)的增量备份工具3、模式:检查模式&#…...

Java入门(7)--网络编程

Java网络编程:构建网络应用的基石 🌐 🎯 掌握Java网络编程,打造强大的网络应用! 在上一篇文章中,我们探讨了Java的I/O操作和反射机制。今天,让我们深入学习Java网络编程,了解如何构建…...

[思考记录]思维局限,以为懂了

最近配合整理一些内容,找到较早期的某些产品设计资料在翻阅回顾。在这次回顾过程中,发现当时自己的理解存在很多局限。 以资源体系的设计为例,那时自认为已经“懂了”,对相关的概念、作用关系、组成及实现等都有一定的了解&#x…...

力扣题目解析--最长公共前缀

题目 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入:strs ["flower","flow","flight"] 输出:"fl"示例 2&#xff…...

不画饼——研究生学习和赚钱的平衡点

在现代社会中,年轻人面临着学习和赚钱之间的矛盾。尤其是在经济压力日益增大的背景下,如何在这两者之间找到合适的平衡点,成为了许多学生和职场新人面临的重要问题。本文将探讨在何种情况下应该听从老师的建议,专注于学习&#xf…...

华为实时视频使用FLV播放RTSP流

import flvjs from ‘flv.js’; 安装flv <video style"width:100%;height:100%;" ref"videoHWRef" ></video>// src 华为rtsp流 rtsp://admin:Huaweivideo10.10.8.151:554/xxx/trackID1// url 需要后端提供视频源地址playVideo() {if (fl…...

JAVA设计模式之【建造者模式】

1 定义 建造者模式&#xff08;Builder Pattern&#xff09;使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 2 类图 产品类&#xff08;Product&#xff09;&#xff1a;表示被创建的复杂…...

【jvm】为什么Xms和Xmx的值通常设置为相同的?

目录 1. 说明2. 避免性能开销3. 提升稳定性4. 简化配置5. 优化垃圾收集6. 获取参数6.1 代码示例6.2 结果示例 1. 说明 1.-Xms 和 -Xmx 参数分别用于设置堆内存的初始大小&#xff08;最小值&#xff09;和最大大小。2.在开发环境中&#xff0c;开发人员可能希望快速启动应用程…...

windows查看net网络监听端口命令和工具(ipconfig、netstat、tasklist、TCPView)

文章目录 使用命令提示符(CMD)查看网络连接和配置使用 netstat 命令查看监听端口查看特定的端口查看TCP监听端口tasklist查看对应进程ID的程序Get-NetTCPConnection 命令使用 TCPView工具使用命令提示符(CMD) 查看网络连接和配置 ipconfig :显示所有网络 适配器的当前 TC…...

JAVA-数据结构- 二叉搜索树

1.搜索树 前面我们已经使用C语言学习完了二叉树&#xff0c;懂得了一些二叉树的基本性质已经实现方法 https://mp.csdn.net/mp_blog/creation/editor/139572374&#xff0c;本文我们来一起进行二叉树的衍生-二叉搜索树 1.1 概念 二叉搜索树又称二叉排序树&#xff0c;它或者是…...

深入研究 RAG 流程中的关键组件

我们已经看到了整个RAG流程&#xff0c;并获得了第一手的实践经验&#xff0c;您可能会对RAG流程中一些组件的使用和目的存在很多疑惑&#xff0c;比如RunnablePassthrough。在本节中&#xff0c;我们将进一步了解这些关键组件。 RAG的核心模型思想是将一个复杂的任务分解为多…...

新手如何学习python并快速成为高手

英雄Python入门到精通链接&#xff1a;https://pan.quark.cn/s/57162ec366a9 学习Python作为新手&#xff0c;有以下几个步骤&#xff1a; 学习基本概念和语法&#xff1a;首先&#xff0c;你需要学习Python的基本概念和语法。可以通过在线教程、书籍或者视频教程来学习。了解…...

Linux历史命令history增加执行时间显示

Centos系统默认历史命令显示如下 为了更好的溯源&#xff0c;获取执行命令的准确时间&#xff0c;需要增加一些配置 设置环境变量 vim /etc/profile 在最下面添加以下环境配置 export HISTTIMEFORMAT"%Y-%m-%d %H:%M:%S " 立即刷新该环境变量 source /etc/pro…...

从 vue 源码看问题 — 你知道 Hook Event 吗?

前言 在之前的几篇文章中&#xff0c;都有提到 vue 中调用生命周期钩子时是通过 callHook() 方法进行调用的&#xff0c;比如在初始化篇章中调用 beforeCreate 和 created 生命周期钩子方式如下: 那么接下来一起来了解下到底什么是 Hook Event &#xff1f; Hook Event 是什…...

信息安全工程师(68)可信计算技术与应用

前言 可信计算技术是一种计算机安全体系结构&#xff0c;旨在提高计算机系统在面临各种攻击和威胁时的安全性和保密性。 一、可信计算技术的定义与原理 可信计算技术通过包括硬件加密、受限访问以及计算机系统本身的完整性验证等技术手段&#xff0c;确保计算机系统在各种攻击和…...

每日OJ题_牛客_相差不超过k的最多数_滑动窗口_C++_Java

目录 牛客_相差不超过k的最多数_滑动窗口 题目解析 C代码 Java代码 牛客_相差不超过k的最多数_滑动窗口 相差不超过k的最多数_牛客题霸_牛客网 (nowcoder.com) 描述&#xff1a; 给定一个数组&#xff0c;选择一些数&#xff0c;要求选择的数中任意两数差的绝对值不超过 …...

来咯来咯webSocket

在项目总目录下 设置socketServe文件夹 里面创建下面两个文件 使用的时候需要开启 node webSocket.cjs var { Server } require(ws); var moment require(moment);const wss new Server({port: 8888 });let id 0; let onlineMemberList []; const defaultUser user;wss…...

Android CALL关于电话音频和紧急电话设置和获取

获取音频服务&#xff0c;设置音源类型&#xff1a;电话类型和获取最大电话音量&#xff0c;响铃模式 private AudioManager mAudioManager; mAudioManager (AudioManager) getSystemService(AUDIO_SERVICE); mAudioManager.setStreamVolume(AudioManager.STREAM_VOIC…...

【春秋云镜】CVE-2023-23752

目录 CVE-2023-23752漏洞细节漏洞利用示例修复建议 春秋云镜&#xff1a;解法一&#xff1a;解法二&#xff1a; CVE-2023-23752 是一个影响 Joomla CMS 的未授权路径遍历漏洞。该漏洞出现在 Joomla 4.0.0 至 4.2.7 版本中&#xff0c;允许未经认证的远程攻击者通过特定 API 端…...

C#-__DynamicallyInvokable

[__DynamicallyInvokable] 属性是用于 .NET Framework 中的特性之一。这个特性通常用于标记在动态语言运行时中可以进行调用的方法或属性。 当一个方法或属性被标记为 [__DynamicallyInvokable]&#xff0c;它表明这个成员在动态语言的环境中是可调用的。换句话说&#xff0c;…...

2024年最新10款顶级项目管理软件排行

项目管理软件在现代项目管理中扮演着至关重要的角色&#xff0c;它不仅仅是一个工具&#xff0c;更是一种高效、系统化的方法来管理和优化项目流程&#xff0c;帮助项目经理和团队成员快速了解项目状态&#xff0c;加速项目进展。 进度猫 进度猫是一款以甘特图为向导的轻量级…...

Python NLTK进阶:深入自然语言处理

目录 Python NLTK进阶&#xff1a;深入自然语言处理 1. 文本处理技术 1.1 命名实体识别&#xff08;NER&#xff09; 1.2 共指消解 2. 语义分析 2.1 语义角色标注&#xff08;SRL&#xff09; 2.2 词义消歧&#xff08;Word Sense Disambiguation&#xff09; 3. 机器学…...

【React 的理解】

谈一谈你对 React 的理解 对待这类概念题&#xff0c;讲究一个四字口诀“概用思优”&#xff0c;即“讲概念&#xff0c;说用途&#xff0c;理思路&#xff0c;优缺点&#xff0c;列一遍” 。 React 是一个网页 UI 框架&#xff0c;通过组件化的方式解决视图层开发复用的问题&a…...

软件压力测试有多重要?北京软件测试公司有哪些?

软件压力测试是一种基本的质量保证行为&#xff0c;它是每个重要软件测试工作的一部分。压力测试是给软件不断加压&#xff0c;强制其在极限的情况下运行&#xff0c;观察它可以运行到何种程度&#xff0c;从而发现性能缺陷。 在数字化时代&#xff0c;用户对软件性能的要求越…...

十四届蓝桥杯STEMA考试Python真题试卷第二套第五题

来源:十四届蓝桥杯STEMA考试Python真题试卷第二套编程第五题 本题属于迷宫类问题,适合用DFS算法解决,解析中给出了Python中 map() 和列表推导式的应用技巧。最后介绍了DFS算法的两种常见实现方式——递归实现、栈实现,应用场景——迷宫类问题、图的连通性、树的遍历、拓朴排…...

虚拟机 Ubuntu 扩容

文章目录 一、Vmware 重新分配 Ubuntu 空间二、Ubuntu 扩容分区 一、Vmware 重新分配 Ubuntu 空间 先打开 Vmware &#xff0c;选择要重新分配空间的虚拟机 点击 编辑虚拟机设置 &#xff0c;再点击 硬盘 &#xff0c;再点击 扩展 选择预计扩展的空间&#xff0c;然后点击 扩展…...

内网远程连接解决方案【Frp】

1、从https://github.com/fatedier/frp/releases下载需要的版本&#xff0c;如 frp_0.61.0_linux_amd64.tar.gz 2、解压tar -xvf frp_0.61.0_linux_amd64.tar.gz 3、配置服务端【外网云主机】&#xff0c;修改ftps.toml文件&#xff1a; bindPort 7000 vhostHTTPPort8000…...

浙江欧瑞雅装饰材料有限公司:空间的艺术,定制的智慧!

浙江欧瑞雅装饰材料有限公司&#xff1a;空间的艺术&#xff0c;定制的智慧&#xff01;在追求生活品质与空间利用并重的当下&#xff0c;浙江欧瑞雅装饰材料有限公司以其卓越的全屋定制服务&#xff0c;成为了众多家庭优化居住环境的理想选择。这家公司&#xff0c;凭借其深厚…...

jfrog artifactory oss社区版,不支持php composer私库

一、docker安装 安装环境&#xff1a;centos操作系统&#xff0c;root用户。 如果是mac或ubuntu等操作系统的话&#xff0c;会有许多安装的坑等着你。 一切都是徒劳&#xff0c;安装折腾那么久&#xff0c;最后还是不能使用。这就是写本文的初衷&#xff0c;切勿入坑就对了。 …...