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

第四十三周周报

文章目录

  • 摘要
  • Abstract
  • 文献基本信息
  • 论文背景
  • 核心思想
    • 残差学习的提出
    • 残差连接的机制
    • 残差学习为什么有效?
  • 网络架构
  • 实验设计与分析
  • 总结

摘要

本周学习了论文Deep Residual Learning for Image Recognition,本文围绕深度残差网络(ResNet)展开,分析了深层神经网络中存在的退化问题,并介绍了其核心思想——残差学习。通过将原始映射转化为残差函数学习,并引入 shortcut connection,模型显著降低了优化难度。论文进一步设计了多种深层网络结构,并在 ImageNet 和 CIFAR-10 数据集上进行了验证。实验结果表明,ResNet 能够有效训练更深模型并持续提升性能,为后续深度学习模型的发展提供了重要基础

Abstract

This week, I studied the paper “Deep Residual Learning for Image Recognition,” which focuses on deep residual networks (ResNet). It analyzes the degradation problem in deep neural networks and introduces its core concept—residual learning. By transforming the original mapping into residual function learning and incorporating shortcut connections, the model significantly reduces optimization difficulty. The paper further designs various deep network architectures and validates them on the ImageNet and CIFAR-10 datasets. Experimental results demonstrate that ResNet can effectively train deeper models while continuously improving performance, providing an important foundation for the development of subsequent deep learning models.

文献基本信息

标题:《Deep Residual Learning for Image Recognition》
作者:Kaiming He Xiangyu Zhang Shaoqing Ren JianSun
链接:Deep Residual Learning for Image Recognition

论文背景

2012年,AlexNet的出现成为深度学习在计算机视觉领域取得突破的标志。它利用深层卷积神经网络(CNN),在ImageNet竞赛中大幅领先传统方法,由此掀起了深度学习的热潮。此后,VGG、GoogLeNet等模型进一步加深了网络结构,性能也随之不断提升。但研究者很快意识到,一味增加网络层数并非总能提高性能,有时反而会导致性能下降,这就是所谓的“退化问题”(Degradation Problem)。

退化问题是指网络过深时训练误差和测试误差同时上升,而非像过拟合那样仅测试误差高。深层网络按理说表达能力更强,但实际性能却下降,这既源于梯度消失或爆炸(反向传播时梯度极小或极大,虽经BN和ReLU缓解但未根除),也源于优化困难:参数量巨大,优化过程复杂,易陷入次优解。
面对退化问题,研究者尝试了多种方法,例如改进初始化策略、引入正则化、优化激活函数等。然而,这些方法只能部分缓解问题,无法从根本上解决深层网络的训练难题。He等人在论文中提出了一种全新的思路:与其试图直接优化深层网络,不如让网络学习“残差”,从而简化优化过程。这就是ResNet的核心思想。

核心思想

残差学习的提出

在传统神经网络中,模型直接学习从输入 x 到输出 H(x) 的映射关系。然而,作者提出不再直接学习该映射,而是转而学习其“残差”:
从而将原问题转化为:
这里的 x 被称为“恒等映射”(Identity Mapping),通过“残差连接”(Shortcut Connection)直接传递到输出。残差连接的直觉是:如果某些层对性能贡献不大,网络可以通过学习 F(x)≈0F(x)≈0 来“跳过”这些层,从而退化为恒等函数。这样,深层网络至少不会比浅层网络性能更差。

残差连接的机制


x 是输入特征;
F(x,{Wi}) F(x,{Wi​}) 是残差函数,通常由若干卷积层组成;
y 是输出特征;
{Wi} {Wi​} 是残差函数中的参数。
残差连接通过将输入 x 直接加到 F(x,{Wi})F(x,{Wi​}) 的输出上,确保了信息的无损传递。这种结构不仅简化了优化过程,还增强了梯度的传播,缓解了梯度消失问题。

在结构上,残差学习通过一种基本单元——残差块(Residual Block)来实现。该结构包含两条路径:一条是由多层卷积组成的主分支,用于学习残差函数F(x);另一条是将输入直接传递到输出端的 shortcut 分支。两条路径的输出在末端进行逐元素相加,形成最终输出。

这种结构设计带来了多方面的优势。首先,shortcut connection 为梯度提供了一条“直通路径”,使得反向传播过程中梯度可以直接传递到浅层,从而有效缓解梯度消失问题;其次,输入信息可以不经过多层变换而直接传递到后续层,有助于保持特征表达的完整性;最后,由于残差函数通常较小,网络的每一层只需对输入进行微小调整,使得整体优化过程更加稳定。

残差学习为什么有效?

  • 优化简便:如果目标函数接近恒等映射,学习 F(x)≈0F(x)≈0 比直接学习 H(x)H(x) 更容易。

  • 梯度传播:残差连接允许梯度直接通过恒等映射传播,避免了深层网络中的梯度消失。

  • 模块化设计:残差块可以堆叠成任意深度的网络,而不会显著增加优化难度。

网络架构

作者在ImageNet数据集上测试了各种普通/残差网络,并观察到一致的现象。普通网络的基准架构主要受VGG网络启发,卷积层大多使用 3×3滤波器,并遵循两个简单的设计规则:对于相同的输出特征图大小,层具有相同数量的滤波器;如果特征图大小减半,滤波器数量加倍以保持每层的时序复杂度。

从图中可以看出,残差网络与普通网络在主体结构上基本一致,唯一的区别在于增加了跨层连接(shortcut)。这些连接将输入直接加到后续层的输出上,使得网络能够在保持原有表达能力的同时,显著改善训练性能。

实验设计与分析


数据集:实验在ImageNet 2012分类数据集上进行,该数据集包含1000个类别。模型在128万张训练图像上进行训练,并在5万张验证图像上进行评估。最终结果在10万张测试图像上获得,由测试服务器报告。
实验设置:图像随机裁剪为224x224大小,并进行标准颜色增强。在每个卷积层之后立即使用批量归一化(BN),并在激活之前进行。权重初始化按照[12]的方法进行,所有普通/残差网络从头开始训练。使用SGD优化算法,批量大小为256,学习率从0.1开始,当误差趋于平稳时除以10,训练最多进行60,000次迭代。使用0.0001的权重衰减和0.9的动量。

数据分析:

普通深层网络(plain network)与残差网络(ResNet),并分别设计了18层和34层结构进行对比。实验结果表明,在普通网络中,随着深度从18层增加到34层,模型的训练误差和测试误差均有所上升,体现出明显的退化问题;而在残差网络中,34层模型不仅没有退化,反而在训练误差和测试误差上均优于18层模型。这一现象表明,残差学习成功解决了深层网络难以优化的问题。


作者在 CIFAR-10 数据集上进行了更深入的分析实验。作者构建了不同深度的普通网络和残差网络(如20层、32层、44层、56层甚至110层),结果表明:普通网络随着深度增加,训练误差显著上升,优化难度加剧;而残差网络则能够稳定收敛,并随着深度增加不断提升性能。这说明残差学习不仅适用于大规模任务,在小规模数据集上同样具有良好的泛化能力。

在PASCAL VOC 2007/2012和COCO数据集上的目标检测结果表明,ResNet-101在COCO数据集上的标准指标(mAP@[.5,.95])提高了6.0%,相对提升了28%。

总结

本文通过引入残差学习框架,将深层网络的直接映射问题转化为对残差函数的学习,从而有效缓解了随着网络加深带来的优化困难。其核心在于通过 shortcut connection 保留输入信息,使网络更容易学习对恒等映射的微小修正。实验结果表明,残差网络不仅能够稳定训练更深的模型,还能持续提升性能,成为后续深度学习模型设计的重要基础 。总体来看,ResNet 的成功说明,在深度学习中,合理的结构设计与优化路径同样关键,这一思想对后续模型的发展具有重要启发意义。

http://www.jsqmd.com/news/710870/

相关文章:

  • GESP学习考试必读((一)、《粗心怪其实是“漏洞怪”》)
  • 手把手教你用Python生成COE文件,为FPGA以太网通信初始化MAC地址
  • 告别Inspect!用微软官方推荐的Accessibility Insights搞定WinApp自动化测试元素定位
  • 别再乱用get_event_loop了!深入Python asyncio源码,看透事件循环的线程隔离机制
  • 自回归生成图像检测:D3QE方法解析与应用
  • FanControl深度解析:如何通过Windows开源工具实现精准风扇控制
  • DeepSeek总结的数据库外部表
  • STM32物联网云监控智能报警器(MQ-2烟雾/火焰/DHT11温湿度/红外)
  • Qt项目构建进阶:从.pro到.pri,详解那些藏在qmake里的‘黑魔法’与避坑指南
  • 保姆级教程:用YOLOv8/RT-DETR实现工地安全帽检测与人员追踪(附完整代码)
  • Docker镜像拉取总失败?除了换源,试试搭建自己的私有镜像缓存仓库(Harbor实战)
  • LLM分类器架构与特征工程实践对比
  • 2026年国内GEO行业入局指南:主流服务商实力解析与代理合作全攻略 - GEO优化
  • 仅剩48小时!Docker官方认证AI工程师考试大纲已同步更新至v2026.1,附赠3套高仿真模考卷(含动态权重评分系统)
  • C#面向对象
  • 如何快速掌握SubFinder字幕查找器:新手终极实战指南
  • 苍穹外卖订单状态流转设计:从下单到完成的全链路解析
  • 3步终极指南:免费开源工具G-Helper快速解决华硕笔记本性能瓶颈
  • 保姆级教程:将QtMqtt库集成到你的QT Creator项目中(以SimpleClient为例)
  • 艾尔登法环 DirectX 闪退怎么办?2026最新修复步骤与原因排查
  • 中文心理咨询对话数据集架构解析与AI心理健康应用实现
  • Vosk-API深度解析:从源码编译到生产部署的完整技术指南
  • Sunshine游戏串流终极教程:5步搭建你的私人云游戏平台
  • 音乐解锁完整指南:如何在浏览器中免费解密加密音乐文件
  • Cursor编辑器AI代码导航规则配置实战:提升开发效率的智能跳转指南
  • 强化学习探索策略优化与GRPO框架实践
  • JVM 学习第七天:JVM 终结篇——执行引擎+内存模型+调优实战+大厂面试压轴题(无重复)
  • 大语言模型与信息检索工具链的工程实践
  • 第二十三篇技术笔记:郭大侠学DoIP - 扒扒DoIP报文的“底裤”
  • EvidenceLoop框架:解决RAG多跳推理难题的创新方案