news 2026/4/18 8:10:04

深度学习篇---ResNet 家族

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深度学习篇---ResNet 家族

你可以把深度学习网络想象成一条很长的“学习流水线”。输入一张图片,它就像一件产品,经过流水线上每个工人的处理(每个网络层),最终得出结果(比如认出这是猫还是狗)。


1. 核心问题:为什么需要 ResNet?

在 ResNet 出现之前,大家发现一个问题:网络不是越深越好
当网络层数增加到几十层时,效果反而变差了,训练误差和测试误差都升高了

这很奇怪,就像你给一个学生更多的学习资料和更长的学习时间,他反而考得更差了。

研究人员发现,这主要是因为“梯度消失/爆炸”“网络退化”

  • 梯度消失/爆炸:可以理解为,信息在长长的流水线中传递时,越到后面越模糊(消失)或者被过度放大(爆炸),导致后面的工人无法有效学习。

    • (这个问题通过一些技术如 BatchNorm 已经部分解决)

  • “网络退化”是更关键的问题:即使梯度正常,增加层数后,网络连恒等映射都学不会了。也就是说,一个更深的网络,连一个较浅网络的效果都复制不了(让后面新增的层什么事都不干,直接输出前一层的输入,这不难吧?),但实际训练中它却学不到这个简单的“偷懒”策略。


2. ResNet 的革命性思想:跳跃连接

2015年,何恺明等人提出的ResNet用一个非常巧妙的办法解决了“网络退化”问题,让网络可以做到几百层、上千层而依然有效。

它的核心思想叫“跳跃连接”“残差块”

残差块的比喻:
想象一下,在流水线上,工人A处理完产品后交给工人B。传统网络要求B从头开始理解这个产品。但在ResNet中,我们让工人B只需要学习“从A那里拿到的产品”和“理想产品”之间的“差异”(残差)
更妙的是,工人A处理完的产品会直接抄近道(跳跃连接)送到工人B的输出端,和B学习到的“差异”相加。

公式表达(核心精髓):
输出 = 输入 + 学到的残差
这里的“输入”就是跳跃连接过来的信号。

这样做的好处是什么?

  1. 防止梯度消失:梯度可以通过跳跃连接这条“高速公路”毫无阻碍地传回浅层。

  2. 易于学习恒等映射:如果新增的层是没用的,那么它只需要把“残差”学习为0就好了(输出 = 输入 + 0)。这比让一个传统网络层直接拟合输出 = 输入要容易得多!

  3. 集成不同深度的网络:由于跳跃连接的存在,ResNet 可以看作许多不同深度子网络的集合体,训练一个 ResNet 相当于同时训练了多个网络,具有很好的稳定性。

正是这个简单的设计,让 ResNet 在 ImageNet 等大赛中夺冠,并成为至今最基础、最流行的网络骨架之一。


3. ResNet 家族成员演变

ResNet 就像一个家族,最初的核心思想被后辈们不断优化。

a) 初代目:ResNet (v1)
  • 做了什么:提出了残差块的基本结构,构建了 ResNet-34, 50, 101, 152 等经典网络(数字代表层数)。

  • 结构:使用两种基本的残差块。

    • 基础块:用于较浅的网络(如 ResNet-34),包含两个 3x3 卷积。

    • 瓶颈块:用于很深的网络(如 ResNet-50 及以上)。它的结构是1x1(降维) -> 3x3(卷积) -> 1x1(升维),目的是减少计算量。这是最常用的块。

b) 优化版:ResNet v2
  • 做了什么:调整了残差块内部组件的顺序,让训练更稳定、效果更好。

  • 核心调整:将激活函数和批归一化层的顺序,从卷积 -> BN -> ReLU改为BN -> ReLU -> 卷积,并且将跳跃连接路径也进行BN处理。这被称为“预激活”结构,让信息流动更加顺畅。

c) 变宽版:Wide ResNet
  • 思想:ResNet 的成功主要源于残差连接,而非单纯的深度。那么,减少深度、增加每一层的宽度(通道数)会怎样?

  • 结果:更宽的 ResNet 通常比更深但更窄的 ResNet 效果更好,且因为并行度高,训练更快。这启发了后续很多“宽网络”的研究。

d) 进化版:ResNeXt
  • 思想:在残差块中引入“分组卷积”“基数”的概念。

  • 比喻:传统的残差块像一个“大专家”,而 ResNeXt 块像一组(例如32个)小专家委员会。每个小专家处理输入数据的一小部分(分组卷积),最后把所有人的意见汇总。这种方式在增加模型容量的同时,计算量增加不多,效果显著提升。

  • 核心结构:采用了“分割-转换-合并”的策略,是 ResNet 向更高效架构演进的重要一步。

e) 极致版:ResNet-D & ResNet in ResNet
  • 这些是更细致的结构改进。例如ResNet-D把下采样跳跃连接路径上的 1x1 卷积的步长修改,并额外添加一个平均池化层,以保留更多信息,进一步提升精度。

f) 近期明星:ResNet 的“近亲” —— DenseNet
  • 虽然不严格属于 ResNet 家族,但思想一脉相承且更进一步。

  • 核心每一层都接收前面所有层的输出作为输入,并把自己的输出传给后面所有层。建立了层与层之间极致密集的连接。

  • 好处:特征复用性极强,参数更少,效果很好。但非常消耗内存。


总结与对比

网络核心创新点通俗理解
ResNet (v1)跳跃连接(残差学习)工人B只学“差异”,学不会就输出0,保证不拖后腿。
ResNet v2“预激活”结构优化流水线工序,让信息流动更顺畅。
Wide ResNet深度减,宽度增少招几个工人,但给每个工人配更多助手(增加通道)。
ResNeXt分组卷积,基数把一个大专家,换成一个小专家委员会来投票决策。
DenseNet密集连接每个工人都能和之前所有工人交流,信息共享最大化。

ResNet 家族的意义
它解决了深度网络的训练难题,其“跳跃连接”的思想已经成为现代深度学习架构的标准组件,出现在Transformer(如BERT、GPT)、生成模型等众多领域,是深度学习发展史上最重要的基石之一。

简化演变关系图

演变路径分析

第一代:基础创新(2015)

原始问题 → 跳跃连接 → 深度网络可训练 ↓ ResNet-18/34/50/101/152

第二代:结构优化(2016)

ResNet v1 → 预激活顺序优化 → ResNet v2 ↓ 宽度方向探索 → Wide ResNet ↓ 连接极致化 → DenseNet

第三代:架构进化(2017)

残差块 → 分组多路径 → ResNeXt ↓ 更强的特征提取能力

第四代:细节完善(2018)

基础结构 → 下采样优化 → ResNet-D ↓ 更高的精度表现

核心创新对比表

阶段架构核心改进解决的问题
奠基ResNet v1跳跃连接深度网络退化
优化ResNet v2预激活顺序训练稳定性
拓展Wide ResNet宽度>深度训练效率
进化ResNeXt多路径分组特征多样性
精炼ResNet-D下采样优化信息保留
极致DenseNet密集连接特征复用

演变特点总结

  1. 从深度到宽度:早期追求层数深度,后期平衡宽度

  2. 从单一到多样:单一残差块→多路径并行

  3. 从粗略到精细:整体架构→局部细节优化

  4. 从专用到通用:图像识别→成为通用架构组件

这个演变过程体现了深度学习架构设计的渐进优化思路:先解决根本问题(跳跃连接),再优化细节(结构顺序),然后探索新维度(宽度/分组),最后完善局部(下采样),最终形成通用范式。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:52:40

(转)Mac系统配置环境变量保姆级教程

转自: https://blog.csdn.net/LYNNBXLI/article/details/128054891 1、下载好相关安装包 2、打开终端,输入命令转到系统环境变量配置文件 sudo vim ~/.bash_profile 运行项目并下载源码 输入密码(密码不显示,实际上已经在输入了…

作者头像 李华
网站建设 2026/4/18 8:16:43

半小时产出 3 万字文档:项目交接从未如此轻松

如果你问一个 Java 后端:最不想在项目末期干的事是什么? 我可以很确定地说一句:不是改 Bug,不是加需求,而是——写文档。 尤其是那种已经跑得很稳、但马上要交接的项目一、文档不是不会写,是“写到人麻了”…

作者头像 李华
网站建设 2026/4/18 4:48:02

学霸同款8个降AI率网站 千笔帮你轻松降AIGC

学霸同款8个降AI率网站 千笔帮你轻松降AIGC AI降重工具:让论文更自然,更专业 在当前学术写作中,越来越多的本科生开始使用AI工具辅助论文撰写。然而,随着高校对AIGC率和查重率的重视,如何有效降低AI痕迹、避免被系统…

作者头像 李华