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

残差神经网络(ResNet)

残差神经网络(Residual Neural Network,简称 ResNet)是深度学习领域的里程碑式模型,由何凯明等人在 2015 年提出,成功解决了深层神经网络训练中的梯度消失 / 爆炸问题,使训练超深网络(如 152 层)成为可能。以下从核心原理、结构设计、优势与应用等方面进行详解。

一、核心问题:深层网络的训练困境

在 ResNet 提出前,随着网络层数增加,模型性能会先提升,然后迅速下降 —— 这种下降并非由过拟合导致,而是因为深层网络的梯度难以有效传递到浅层,导致浅层参数无法被充分训练(梯度消失 / 爆炸)。

ResNet 通过引入 “残差连接”(Residual Connection)解决了这一问题。

二、核心原理:残差连接与恒等映射

1. 传统网络的映射方式

传统深层网络中,每一层的目标是学习一个 “直接映射”(Direct Mapping):
设输入为x,经过多层非线性变换后,输出为H(x),即网络需要学习H(x)。

2. 残差网络的映射方式

ResNet 提出:不直接学习H(x),而是学习 “残差”F(x)=H(x)−x
此时,原映射可表示为:H(x)=F(x)+x
其中,F(x)是残差函数(由若干卷积层 / 激活函数组成),x通过 “跳跃连接”(Skip Connection)直接与F(x)相加,形成最终输出。

3. 为什么残差连接有效?
  • 梯度传递更顺畅:反向传播时,梯度可通过x直接传递到浅层(避免梯度消失)。例如,若F(x)=0,则H(x)=x,形成 “恒等映射”,网络可轻松学习到这种简单映射,再在此基础上优化残差。
  • 简化学习目标:学习残差F(x)比直接学习H(x)更简单。例如,当目标映射接近恒等映射时,F(x)接近 0,网络只需微调即可,无需重新学习复杂的映射。

三、ResNet 的基本结构:残差块(Residual Block)

残差块是 ResNet 的基本单元,分为两种类型:

1. 基本残差块(Basic Block,用于 ResNet-18/34)

由 2 个卷积层组成,结构如下:x→Conv2d(64,3x3)→BN→ReLU→Conv2d(64,3x3)→BN→(+x)→ReLU

  • 输入x先经过两个 3x3 卷积层(带批归一化 BN 和 ReLU 激活),得到残差F(x)。
  • 若输入x与F(x)的维度相同(通道数、尺寸一致),则直接相加(恒等映射);若维度不同(如 stride > 1 或通道数变化),则需通过 1x1 卷积调整x的维度(称为 “投影捷径”,Projection Shortcut):x→Conv2d(out_channels,1x1,stride)→BN→(+F(x))
2. 瓶颈残差块(Bottleneck Block,用于 ResNet-50/101/152)

为减少计算量,用 3 个卷积层(1x1 + 3x3 + 1x1)组成,结构如下:x→Conv2d(C,1x1)→BN→ReLU→Conv2d(C,3x3)→BN→ReLU→Conv2d(4C,1x1)→BN→(+x′)→ReLU

  • 1x1 卷积用于 “降维”(减少通道数),3x3 卷积用于提取特征,最后 1x1 卷积 “升维”(恢复通道数),显著降低计算量。
  • 同样支持投影捷径(当维度不匹配时)。

四、完整 ResNet 的网络架构

ResNet 通过堆叠残差块形成深层网络,不同层数的 ResNet 结构如下表:

网络类型 残差块类型 卷积层配置(每个阶段的残差块数量) 总层数
http://www.dtcms.com/a/343394.html

相关文章:

  • 矫平机与纵剪:一条钢卷“变身”的全过程
  • 【UE5-Airsim】Windows10下安装UE5-Airsim的仿真环境
  • leetcode 1658 将x减到0的最小操作数
  • 同题异构解决leetcode第3646题下一个特殊回文数
  • Linux网络socket套接字(上)
  • linux 之virtio 的驱动框架
  • Motocycle 智能仪表盘
  • 白光干涉测量系统的复合相移三维重建和多视场形貌拼接的复现
  • 【自然语言处理与大模型】微调与RAG的区别
  • JavaScript基础语法five
  • 【Protues仿真】基于AT89C52单片机的数码管驱动事例
  • 力扣905:按奇偶排序数组
  • 2025-08-21 Python进阶4——错误和异常
  • 开发者中使用——控制台打印数据
  • 爬虫基础学习-基本原理和GET请求
  • JavaScript 基本语法
  • 智慧城市SaaS平台/市政设施运行监测系统之空气质量监测系统、VOC气体监测系统、污水水质监测系统及环卫车辆定位调度系统架构内容
  • 学习嵌入式之驱动
  • 3.2.6 混凝土基础施工
  • Chrome 内置扩展 vs WebUI:浏览器内核开发中的选择与实践
  • C++入门自学Day16-- STL容器类型总结
  • Git标准化开发流程
  • iOS 应用上架多环境实战,Windows、Linux 与 Mac 的不同路径
  • 详解开源关键信息提取方案PP-ChatOCRv4的设计与实现
  • 哈尔滨云前沿服务器租用类型
  • IoTDB如何解决海量数据存储难题?
  • 多模态大模型研究每日简报【2025-08-21】
  • Python学习-- 数据库和MySQL入门
  • 在线课程|基于SprinBoot+vue的在线课程管理系统(源码+数据库+文档)
  • 华为仓颉语言的函数初步