【AI知识点】残差网络(ResNet,Residual Networks)

残差网络(ResNet,Residual Networks) 是由微软研究院的何凯明等人在 2015 年提出的一种深度神经网络架构,在深度学习领域取得了巨大的成功。它通过引入残差连接(Residual Connection) 解决了深层神经网络中的梯度消失(Vanishing Gradient) 问题,从而实现了对非常深层网络的有效训练。

ResNet 的提出使得神经网络可以训练出更深层的模型,极大提升了模型的性能。在 2015 年的 ImageNet 大规模视觉识别挑战赛(ILSVRC 2015)中,ResNet 获得了冠军,并且它也是许多后续深度学习模型的基础。


1. 深度网络中的问题

随着神经网络层数的增加,深度网络面临两个主要问题:

  1. 梯度消失和梯度爆炸:在反向传播中,梯度会随着层数的增加逐层变小或变大,导致前几层的权重更新非常缓慢或更新过大,模型难以有效训练。
  2. 退化问题:在非常深的网络中,增加更多的层有时反而会导致模型的训练误差增大,而不是进一步减少。理想情况下,增加更多的层应该至少不会使性能变差,但实际上在深度网络中,随着层数增加,网络的表示能力可能反而下降。

2. 残差学习的核心思想

ResNet 的核心思想是引入残差块(Residual Block),通过跳跃连接(Skip Connection) 让信息直接跳过一层或多层网络,从而解决深度网络中的退化问题。

下图为跳过两层的残差连接示意图

图片来源:ResNet的原始论文 Deep Residual Learning for Image Recognition

假设普通的深度网络中的映射为 H ( x ) H(x) H(x),在 ResNet 中,我们将其重新表示为残差函数 F ( x ) F(x) F(x) 加上输入 x x x 的直接跳跃连接:
H ( x ) = F ( x ) + x H(x) = F(x) + x H(x)=F(x)+x
其中:

  • x x x 是输入,
  • F ( x ) F(x) F(x) 是要学习的残差函数,它表示某一层对输入的变化量。

这种设计的核心思想是,与其直接学习映射 H ( x ) H(x) H(x),ResNet 通过学习残差 F ( x ) = H ( x ) − x F(x) = H(x) - x F(x)=H(x)x,让网络去拟合残差。在实践中,残差学习更容易收敛,因为直接保留输入 x x x,可以有效防止梯度消失。


3. ResNet 的结构

ResNet 的基本单元是残差块(Residual Block),其结构如下:

图片来源:https://en.wikipedia.org/wiki/Residual_neural_network

  • 输入 x x x 通过两层卷积,卷积层后接 Batch Normalization 和 ReLU 激活函数得到 F ( x ) F(x) F(x)
  • 跳跃连接:将输入 x x x 加到 F ( x ) F(x) F(x) 上得到输出 H ( x ) H(x) H(x)
  • 输出 H ( x ) H(x) H(x),该输出再输入到下一层。
  • 如果输入的维度和输出的维度不同,则会引入 1x1卷积 进行调整,以确保两者维度一致。如图右边所示。

4. 为什么残差学习有效?

在 ResNet 中,跳跃连接可以让网络层直接学习更深层次的特征,而不必从头学习每一层的映射。它的两个关键优势是:

  1. 更容易优化:因为每一层只是学习输入与输出之间的残差,它减小了学习的难度。这意味着,如果某一层无法学习到任何有效的信息,网络至少可以通过跳跃连接直接传递输入,确保不会出现退化现象。

  2. 防止梯度消失:在反向传播过程中,跳跃连接让梯度能够绕过一些中间层,直接传递到前面的层,从而缓解了梯度消失的问题。


5. ResNet 的不同版本

ResNet 提出了多个不同深度的版本,包括 18 层、34 层、50 层、101 层和 152 层等。

  • ResNet-18 和 ResNet-34:这些是比较浅的版本,通常用于计算资源有限的情况下。
  • ResNet-50、ResNet-101 和 ResNet-152:这些是较深的版本,能够学习更加复杂的特征,用于高性能任务,比如大规模图像分类和目标检测。

ResNet-50 为例,它由 49 个卷积层和 1 个全连接层组成,其中包括多个残差块,深度足以捕获复杂的模式,但通过残差连接,训练仍然较为稳定。

下图为原始的 Resnet-18 架构图.

图片来源:https://en.wikipedia.org/wiki/Residual_neural_network


6. ResNet 的改进版本

ResNet 的成功使得许多后续的深度学习模型引入了残差结构,且出现了一些改进版本:

a. Wide ResNet(WRN)

  • Wide ResNet 是通过增加每层的宽度(通道数)来提升网络的表示能力,提出了比增加深度更有效的优化方法。实验表明,增加网络宽度(而不是深度)在某些任务上表现更好。

b. ResNeXt

  • ResNeXt 是对 ResNet 的进一步扩展,它引入了“分组卷积”的概念,将卷积操作分为多个组进行并行计算,类似于“组卷积”的概念,从而提升网络的计算效率,同时保持较高的准确率。

c. DenseNet

  • DenseNet 也是一种基于跳跃连接的网络结构,但不同于 ResNet 中的简单残差连接,DenseNet 在每一层都连接了所有前面的层。它直接将前面所有层的输出拼接到一起,再传入当前层进行计算。DenseNet 的参数更少,且在某些任务上表现优于 ResNet。

7. ResNet 在实际中的应用

ResNet 在许多实际任务中表现优异,尤其是在图像处理任务上,它成为了许多深度学习模型的基础组件:

  • 图像分类:ResNet 广泛应用于图像分类任务中,特别是在 ImageNet 这种大规模数据集上的表现非常突出。
  • 目标检测和分割:ResNet 被广泛用于目标检测和语义分割的任务中,例如 Faster R-CNN、Mask R-CNN 等模型都使用 ResNet 作为特征提取器。
  • 自然语言处理:虽然 ResNet 主要用于图像处理,但它的残差思想也被迁移到自然语言处理(NLP)领域,用于构建深层语言模型。

8. ResNet 的成功原因总结

  • 有效解决了深度网络的训练问题:通过残差连接,ResNet 能够训练非常深的网络,而不会出现梯度消失或退化问题。
  • 简单有效的结构:残差块结构简单,容易实现,而且在各种深度学习任务中表现良好。
  • 可扩展性强:ResNet 的结构非常灵活,可以轻松地扩展到不同深度或不同宽度的版本,以适应不同的计算资源和任务需求。

9. ResNet 与传统卷积神经网络的比较

特性传统卷积神经网络(CNN)残差网络(ResNet)
层数层数相对较少层数可以非常深,50 层甚至更多
训练难度深层网络容易训练困难残差块降低了训练难度
梯度消失问题容易出现梯度消失问题跳跃连接缓解了梯度消失问题
网络性能层数增加后性能提升有限深层网络的性能提升显著
训练速度较难优化,训练速度较慢相对较快,优化效果更好

10. 总结

ResNet(残差网络) 通过引入残差连接,有效解决了深度神经网络中的梯度消失和退化问题,使得训练深层网络变得更加可行和高效。它的成功不仅提升了图像分类、目标检测等任务的性能,还成为了许多现代深度学习模型的重要组成部分。


11. 进一步了解

可以阅读ResNet的原始论文:Deep Residual Learning for Image Recognition

我个人认为其实我们人类学习也可以借鉴残差学习的思想、有时候不用按部就班去学,可以适当跳过一些地方(比如暂时不需要或者比较难懂的),直接学习关键的残差部分。另外,跳跃思维,也称为发散性思维,我感觉也有点残差学习的影子。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux--IO模型与高级IO重要概念

什么是IO? IO是指计算机系统与外部世界进行数据交换的过程。在计算机中,IO通常用于与外部设备通信,这些设备包括键盘、鼠标、打印机、显示器、网络等。通过IO操作,计算机系统可以接收来自外部设备的输入数据,也可以将…

CSS圆角

在制作网页的过程中,有时我们可能需要实现圆角的效果,以前的做法是通过切图(将设计稿切成便于制作成页面的图片),使用多个背景图像来实现圆角。在 CSS3 出现之后就不需要这么麻烦了,CSS3 中提供了一系列属性…

代数结构基础 - 离散数学系列(八)

目录 1. 群(Group) 群的定义 群的示例 2. 环(Ring) 环的定义 环的示例 3. 域(Field) 域的定义 域的示例 域在密码学中的应用 4. 实际应用场景 1. 对称性与加密 2. 误差检测与纠正 3. 数据编码…

jetlinks物联网平台学习5:dtu设备接入及温度报警场景联动

dtu设备接入及温度报警场景联动 1、平台端配置1、新建协议2、新建网络组件3、设备接入网关配置4、新增产品5、导入产品物模型6、新增设备7、场景联动配置7.1、触发规则7.2、触发条件7.3、执行动作 2、平台端验证场景联动 1、平台端配置 下载三个文件 https://hanta.yuque.com…

40条经典ChatGPT论文指令,圈定选题和进行论文构思

目录 1、用ChatGPT圈定选题范围2、用ChatGPT生成研究方法和思路3、用ChatGPT扩展论文观点和论证4、用ChatGPT辅助论文结构设计5、如何直接使用ChatGPT4o、o1、OpenAI Canvas6、OpenAI Canvas增强了啥?7、编程功能增强 👇 ChatGPT o1网页入口在文末&#…

如何让算法拥有“记忆”?一文读懂记忆化搜索

✨✨✨学习的道路很枯燥,希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一 什么是记忆化搜索 二 相关题目练习 2.1 斐波那契数(详解记忆化搜索) ​编辑 解法一(递归): 解法二(记…

免费高可用软件

高可用软件是指那些能够提供高可用性、高可靠性的软件,它们在各种应用场景下都能确保系统的稳定运行。以下是四款免费的高可用软件,它们在不同领域都表现出色,能够满足各种高可用性需求。 一、PanguHA PanguHA是一款专为Windows平台设计的双…

【吊打面试官系列-MySQL面试题】试述视图的优点?

大家好,我是锋哥。今天分享关于【试述视图的优点?】面试题,希望对大家有帮助; 试述视图的优点? (1) 视图能够简化用户的操作 (2) 视图使用户能以多种角度看待同一数据; (3) 视图为数据库提供了一定程度的…

一、机器学习算法与实践_06迭代法和KMeans、线性回归、逻辑回归算法笔记

0 迭代法 迭代法不仅是机器学习、深度学习的核心,也是整个人工智能领域的重要概念,其对于算法的设计和实现至关重要 0.1 适合场景 对于不能一次搞定的问题,将其分成多步来解决,逐步逼近解决方案 0.2 典型应用 KMeans 聚类算法…

基于SpringBoot博物馆游客预约系统【附源码】

基于SpringBoot博物馆游客预约系统 效果如下: 主页面 注册界面 展品信息界面 论坛交流界面 后台登陆界面 后台主界面 参观预约界面 留言板界面 研究背景 随着现代社会的快速发展和人们生活水平的提高,文化生活需求也在日益增加。博物馆作为传承文化、…

关于CSS 案例_新闻内容展示

新闻要求 标题:居中加粗发布日期: 右对齐分割线: 提示, 可以使用 hr 标签正文/段落: 左侧缩进插图: 居中显示 展示效果 审核过不了&#xff0c;内容没填大家将就着看吧。 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset&qu…

Java | Leetcode Java题解之第461题汉明距离

题目&#xff1a; 题解&#xff1a; class Solution {public int hammingDistance(int x, int y) {int s x ^ y, ret 0;while (s ! 0) {s & s - 1;ret;}return ret;} }

新款平行进口奔驰GLS450升级原厂AR实景导航人机交互行车记录仪等功能

平行进口的24款奔驰GLS450升级原厂中规导航主机通常具备以下功能&#xff1a; 人机交互系统&#xff1a;该导航主机配备了人机交互系统&#xff0c;可以通过触摸屏、旋钮或语音控制等方式与导航系统进行交互&#xff0c;方便驾驶者进行导航设置和操作。 实景AR导航&#xff1…

基于springboot+小程序的智慧物业平台管理系统(物业1)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 智慧物业平台管理系统按照操作主体分为管理员和用户。 1、管理员的功能包括报修管理、投诉管理管理、车位管理、车位订单管理、字典管理、房屋管理、公告管理、缴费管理、维修指派管理、…

03 Trace窗口3种过滤器

一、PreFilter &#xff1a;主要对报文进行过滤

EtherNet/IP 转 EtherNet/IP, EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关

EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关https://item.taobao.com/item.htm?ftt&id822721028899 协议转换通信网关 EtherNet/IP 转 EtherNet/IP GW系列型号 MS-GW22 概述 简介 MS-GW22 是 EtherNet/IP 和 EtherNet/IP 协议转换网关&#xff0c;…

vue快速上手

文章目录 vue快速上手vue简述框架介绍mvvm vue使用1.npm2.vue cli1.打开 vue 官网2.快速上手3.切换目录到我们创建的应用位置&#xff0c;安装依赖3.运行vue项目 vue快速上手 vue简述 框架介绍 mvvm vue使用 1.npm 包管理器 安装nodejs就好了 2.vue cli 1.打开 vue 官网…

WebRTC Connection Negotiate解决

最近有个项目 &#xff0c;部署之后一直显示&#xff0c;查了一些资料还是没有解决&#xff0c;无奈只有自己研究解决&#xff1f; 什么是内网穿透&#xff1f; 我们访问我们自己的官网产品页面&#xff0c;我们的服务器是一个单独的个体&#xff0c;有独立的公网ip&#xf…

【C/C++】错题记录(四)

题目一 一个函数可以有很多个返回值&#xff08;有很多个return语句&#xff09;&#xff0c;但是最终只能有一个return语句执行。 题目二 题目三 题目四 题目五 程序数据结构算法 题目六 题目七 题目八 题目九 D选项是语句……

移动硬盘无法读取?原因、恢复方案与预防措施全解析

一、移动硬盘无法读取的现象与影响 移动硬盘作为我们日常存储和传输数据的重要工具&#xff0c;其便捷性和大容量深受用户喜爱。然而&#xff0c;当移动硬盘突然无法被电脑识别或读取时&#xff0c;往往会让人感到十分焦虑。这种无法读取的情况可能表现为&#xff1a;插入移动…