卷积神经网络 - ResNet(残差网络)

残差网络(Residual Network,ResNet)通过给非线性的卷积层增加直连边 (Shortcut Connection)(也称为残差连接(Residual Connection))的方式来提高信息的传播效率。

这是一种特殊的深度神经网络结构,由 Kaiming He 等人在 2015 年提出,目的是解决深层网络训练中出现的退化问题和梯度消失问题。

假设在一个深度网络中,我们期望一个非线性单元(可以为一层或多层的卷积层)𝑓(𝒙; 𝜃) 去逼近一个目标函数为 h(𝒙)。如果将目标函数拆分成两部分:恒等函数(Identity Function)𝒙 和残差函数(Residue Function)h(𝒙) − 𝒙。

根据通用近似定理,一个由神经网络构成的非线性单元有足够的能力来近似逼近原始目标函数或残差函数,但实际中后者更容易学习。因此, 原来的优化问题可以转换为:让非线性单元 𝑓(𝒙; 𝜃) 去近似残差函数 h(𝒙) − 𝒙,并 用 𝑓(𝒙; 𝜃) + 𝒙 去逼近 h(𝒙)。

下图给出了一个典型的残差单元示例。残差单元由多个级联的(等宽)卷 积层和一个跨层的直连边组成,再经过 ReLU 激活后得到输出:

残差网络就是将很多个残差单元串联起来构成的一个非常深的网络。

接下来,我们从其核心概念、设计思想和举例说明:

1. 核心思想

  • 深层网络的难题
    随着网络层数加深,传统网络往往难以训练,原因在于:

    • 梯度在反向传播中逐渐变小(梯度消失),导致前面层更新缓慢。

    • 层数过深时,网络容易出现“退化”问题,即即使加深网络,训练误差也可能反而增大。

  • 残差学习(Residual Learning)
    ResNet 的核心思想是让网络学习“残差函数”,而不是直接学习原始映射。设原始目标映射为 H(x)(输入 x 到输出之间的映射),传统网络直接逼近 H(x)。而在残差网络中,设计层(即残差块)学习一个残差函数 F(x)=H(x)−x,因此原始映射可以表示为

    H(x)=F(x)+x.

    这种“快捷连接”(skip connection)直接将输入 x 加到输出上,帮助梯度直接传递,使得更深的网络也能有效训练。

2. 残差块结构

基本残差块通常由以下部分构成:

  1. 两个或三个卷积层:负责学习残差函数 F(x)。

  2. 激活函数(通常是 ReLU):在每个卷积层之后加上非线性变换。

  3. 快捷连接(Shortcut/Skip Connection):将输入 x 直接加到残差输出 F(x) 上,形成输出 H(x)=F(x)+x。

举例说明
假设一个简单的残差块,输入 x 经过两层卷积操作:

  • 第 1 层:卷积 W_1 + 批归一化 + ReLU,得到中间特征 F_1(x)。

  • 第 2 层:卷积 W_2 + 批归一化,得到残差 F(x)。

  • 然后输出为

    H(x) = F(x) + x.
  • 最后再经过 ReLU 得到最终输出。

这种设计让网络可以更容易地学习恒等映射(即如果 F(x)=0,那么 H(x)=x),从而防止网络层数增加时性能下降。

3. 残差网络的优势

  • 缓解梯度消失:快捷连接使得梯度在反向传播时可以直接传递给较早的层,从而避免梯度消失问题。

  • 易于训练更深的网络:通过残差块,网络可以堆叠几十甚至上百层,而不会出现明显的退化现象。

  • 更好的泛化能力:实验表明,ResNet 在 ImageNet 等大型数据集上表现优异,并推动了深度学习向更深层次的发展。

4. 直观比喻

可以将残差网络比作一条高速公路:

  • 普通网络:每一层都是一段独立的路段,如果某一段出现了堵车(梯度消失),整个行程都会受影响。

  • 残差网络:在每段路之间都有直通车道(快捷连接),即使某一段路段“堵车”,信号(梯度)也能通过直通车道直接到达前方,确保整个系统的流畅性。

5. 举例说明

假设我们有一个输入图像 x,通过残差块后得到输出 H(x)。

  • 如果输入 x 的信息本身已经足够好,那么理想情况下网络只需要学习到 F(x)≈0,于是 H(x)≈x。

  • 如果图像存在一些复杂特征需要调整,那么卷积层学习的 F(x) 会捕捉到这些“差异”信息,并加上 x 后得到更合适的特征表示。

例如,在图像分类任务中,如果低层已经能够提取到简单的边缘和纹理,而某些高层需要区分细微的类别差异,残差块就能帮助网络更精确地调整特征表示,而不会因层数加深而导致训练困难。

6. 总结

  • 残差网络通过引入快捷连接,让每个残差块学习输入与输出之间的差异(残差),而不是直接学习复杂的映射。

  • 这种设计有效缓解了深层网络训练中出现的梯度消失和退化问题,使得网络可以更深、更容易训练,并取得更好的性能。

  • 理解残差网络不仅需要从数学公式上掌握 H(x) = F(x) + x 的设计,还需要通过直观比喻和实验观察其对梯度流动和特征提取的积极作用。

这些详细解释和实例能够帮助我们更全面地理解残差网络的设计理念和优势。

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

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

相关文章

质因数个数--欧拉函数中统计纯素数

和互质数不同&#xff0c;这里统计的是纯素数部分 就是x/i那一部分 #include<bits/stdc.h> using namespace std; #define N 100011 typedef long long ll; typedef pair<ll,int> PII; int n,m,k; ll eular(ll x) { ll an0;ll px;for(ll i2;i*i<x;i){if(x%i…

2025年3月电子学会c++五级真题

结绳 #include <bits/stdc.h> using namespace std;int n,a[10010];int main() {cin>>n;for(int i 0;i<n;i){cin>>a[i];}sort(a0,an);//将a数组从小到大排序double sum 0;for(int i 0;i<n;i){sum (suma[i])/2;}cout<<(int)sum;return 0; } 最…

用Nginx实现负载均衡与高可用架构(整合Keepalived)

前言 在分布式架构中&#xff0c;负载均衡和高可用是保障系统稳定性的两大核心能力。本文将深入讲解如何通过Nginx实现七层负载均衡&#xff0c;并结合Keepalived构建无单点故障的高可用架构。文末附完整配置模板&#xff01; 一、Nginx负载均衡实现方案 1. 核心原理 Nginx通…

springBoot与ElementUI配合上传文件

以下是使用Vue CLI创建的Vue项目&#xff0c;结合Element UI来实现文件上传功能的完整示例。 步骤 创建Vue项目&#xff1a;确保你已经安装了Vue CLI&#xff0c;若未安装&#xff0c;可使用以下命令安装&#xff1a; npm install -g vue/cli然后创建一个新的Vue项目&#x…

黑盒测试的测试用例构成的八点要素

测试用例: 是为测试项目而设计的执行文档 作用&#xff1a; 防止漏测实施测试的标准 编写格式&#xff1a; 用例编号:项目 模块 编号用例标题:预期结果(测试点)模块/项目:所属项目或模块优先级:表示用例的重要程度或者影响力P0~p4(P0最高)前置条件:要执行此条用例&#xf…

蓝桥刷题note11(好数)

1&#xff0c;好数 一个整数如果按从低位到高位的顺序&#xff0c;奇数位 (个位、百位、万位 ⋯⋯ ) 上的数字是奇数&#xff0c;偶数位 (十位、千位、十万位 ⋯⋯ ) 上的数字是偶数&#xff0c;我们就称之为 “好数”。 给定一个正整数 NN&#xff0c;请计算从 1 到 NN 一共…

Keil编译生成的axf文件的介绍

在 Keil 开发环境&#xff08;如 Keil MDK&#xff09;中&#xff0c;.axf 文件是一种 可执行文件格式&#xff0c;主要用于 ARM 处理器的嵌入式开发。它的作用类似于 ELF&#xff08;Executable and Linkable Format&#xff09;格式&#xff0c;包含了可执行代码、调试信息、…

C#:第一性原理拆解属性(property)

目录 第一步&#xff1a;从最基本的需求出发 第二步&#xff1a;引入控制需求 第三步&#xff1a;优化访问方式 第四步&#xff1a;剖析属性的本质 第五步&#xff1a;进一步简化和演化 第六步&#xff1a;总结属性的第一性原理 我们用第一性原理&#xff08;First Prin…

-PHP 应用文件上传函数缺陷条件竞争二次渲染黑白名单JS 绕过

#学习前必读&#xff1a; 1 、课前一定要明白&#xff1a; 无文件解析安全问题上&#xff0c;格式解析是一对一的&#xff08;不能 jpg 解析 php &#xff09; 换句话来说有解析错误配置或后缀解析漏洞时才能实现格式差异解析 2 、文件上传安全指的是攻击者通过利用上传…

C++的模板(十四):更多的自动内存管理

在前文《C的模板(八)&#xff1a;子系统》class DMM&#xff0c;给出了一个自动动态内存管理的例子。https://blog.csdn.net/aaasssdddd96/article/details/139921880 它使用了一个list容器&#xff0c;把两个类型兼容的指针存放在一起。在new的时候&#xff0c;随即就把得到的…

Windows下VSCode的安装

前言 VSCode的安装看起来平平无奇&#xff0c;但也不是轻轻松松的。笔者将最新的Windows下安装VSCode&#xff0c;以及运行最简单的C程序的过程记录下来&#xff0c;供后续的自己和大家参考。 一、官网下载安装包 Visual Studio Code - Code Editing. Redefined 二、安装 直接…

Matlab教程004:Matlab矩阵的拼接重构重排以及矩阵的运算

文章目录 1.4.3 矩阵的拼接重构重排1.4.3.1 横向拼接1.4.3.2 纵向拼接1.4.3.3 矩阵的重构重排 1.4.4 矩阵的运算1.4.4.1 算数运算1.4.4.2 矩阵加减1.4.4.3 矩阵乘法1.4.4.4 矩阵转置 1.4.3 矩阵的拼接重构重排 1.4.3.1 横向拼接 A和B的行数相同&#xff0c;那么使用[A,B]、[A …

Python小练习系列 Vol.3:生成有效括号组合(回溯 + DFS)

&#x1f9e0; Python小练习系列 Vol.3&#xff1a;生成有效括号组合&#xff08;回溯 DFS&#xff09; &#x1f44b; 本期我们来刷一道 LeetCode 热门经典题&#xff0c;借此掌握回溯算法的精髓 —— 生成有效括号组合&#xff0c;是学习递归 & DFS 的黄金题型&#xff…

实战经验深度解析 | 博睿数据制造行业精选案例集发布!

近年来&#xff0c;我国制造业加速迈向高端化、智能化、绿色化&#xff0c;为经济高质量发展注入新动能。放眼全球&#xff0c;制造业正加速数字化、智能化转型&#xff0c;5G、人工智能、边缘计算等技术与生产全流程深度融合&#xff0c;有力推动柔性化生产与产业链协同创新发…

[创业之路-344]:战略的本质是选择、聚焦, 是成本/效率/低毛利优先,还是差易化/效益/高毛利优先?无论是成本优先,还是差易化战略,产品聚焦是前提。

前言&#xff1a; 一、战略的本质是选择、聚焦 关于战略的本质&#xff0c;触及了商业竞争的核心矛盾&#xff1a;选择成本优先&#xff08;效率/低毛利&#xff09;还是差异化&#xff08;效益/高毛利&#xff09;&#xff0c;本质上是对企业战略方向的终极拷问。 1、战略选…

项目代码第10讲【数据库运维知识——如何优化数据库查询效率?】:各种日志查看;主从复制;分库分表(MyCat);读写分离;区别数据分区、分表、分库

01. 运维-课程介绍_哔哩哔哩_bilibili 一、各种日志查看 二、主从复制 三、分库分表&#xff08;MyCat&#xff09; 四、读写分离 五、区别数据分区、分表、分库 1、数据库分区 上图中的ibd文件&#xff0c;是分区表的数据文件&#xff0c;可以分布在不同的物理设备上&…

OpenCV图像拼接(10)用于实现图像拼接过程中的时间流逝(timelapse)效果的一个类cv::detail::Timelapser

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::detail::Timelapser 是 OpenCV 库中用于实现图像拼接过程中的时间流逝&#xff08;timelapse&#xff09;效果的一个类。它通常用于将一系列…

Transformer 通关秘籍2:利用 BERT 将文本 token 化

前面两节分别通过两个代码示例展示了模型将文本转换为 token 之后是什么样的&#xff0c;希望你可以对此有一个感性的认识。 本节来简要介绍一下将一个连续的文本转换为 token 序列的大致过程&#xff0c;这个过程被称为分词&#xff0c;也叫 tokenization。 在你没了解这方面…

Optional的stream方法,flatMap, filter应用

Java 8引入的Optional和Stream彻底改变了我们处理空值和集合操作的方式。本文将深入探讨如何将二者结合使用&#xff0c;通过四个核心场景提升代码的健壮性和简洁性。 一、Optional构成的Stream&#xff1a;空值自动过滤 当处理Optional集合时&#xff0c;我们常需要过滤掉空…

参加李继刚线下活动启发:未来提示词还会存在吗?

上周六&#xff0c;我参加了李继刚老师组织的线下活动。 现场干货满满&#xff0c;尤其是关于 AI 时代提示词的价值、与 AI 沟通的艺术等话题&#xff0c;李老师的分享如同醍醐灌顶&#xff0c;让我对 AI 人机协作有了更深的理解。 将几点核心收获整理出来&#xff0c;与大家…