news 2026/8/22 11:49:57

ResNet网络学习

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ResNet网络学习

从VGGNet后,CNN结构就从“卷积层+池化层”范式进化为了“卷积块+池化层”范式。

卷积块就是由1层或多层卷积层组成

这个概念现在基本成为共识。注意,VGGNet提出后,后面网络对卷积层进行了各种“折腾”、“整活”和“进化”——GoogLeNet把普通卷积层进化成inception模块(实质取代普通传统卷积层——超级卷积层),ResNet也是,它对卷积层进化成了残差块。

因此,inception模块、残差块等都是特殊的卷积层,于是卷积块的组成就由传统卷积层组成或者特殊卷积层组成了——实质还是逃不出“卷积块是由卷积层组成”,因为incpetion模块,VGG模块,残差块等也可以看作是卷积层。

1 残差块

残差块分为2种——一种是两层的basicblock(用以搭建浅层网络,如resnet18,resnet34),另一种是三层的bottleneck(用以搭建深层网络,如resnet50,resnet101,resnet152)。
如下文章所讲。
【【深度学习】ResNet网络讲解 - CSDN App】https://blog.csdn.net/weixin_44001371/article/details/134192776
其图截取如下:

图中左边是2层的basicblock,右边是3层的bottleneck。

李沐等人《动手学深度学习》只是介绍了basicblock。

根据本章概念,这2种残差块也是属于卷积层的超级进化,可以当成卷积层。

2 网络结构

【深度学习】ResNet网络讲解 https://blog.csdn.net/weixin_44001371/article/details/134192776

该文章中的resnet34网络结构截图如下,

图中也对比了VGG19,你看VGG19有5个最大池化层,根据卷积块概念可知它就被最大池化层分割成了5个卷积块。再看每个卷积块分别由谁组成——VGGNet的5块卷积块里都是由串联的传统卷积层组成,我们也可以叫它GoogleNet提出的同样的名字——inception模块(盗梦空间——梦中梦,inception模块串联起来走向更深层的网络!),它也符合串联起来走向更深层。所以它第1块卷积块由2个串联的传统卷积层组成,同样方法,依次观察,第2块-第5块卷积块分别由2、4、4、4个传统卷积块组成。于是可以总结其结构为:
5个卷积块(2+2+4+4+4)+ 3个全连接层。

按照前面卷积块概念观察ResNet34网络结构,同样可以观察到ResNet34网络是由2个卷积块+GAP全局平均池化层组成,即1+16+GAP全局平均池化层——由1层传统卷积层组成的第1块卷积块 + 由16个basicblock组成的第2个卷积块 + GAP全局平均池化层。

【深度学习】ResNet网络讲解 https://blog.csdn.net/weixin_44001371/article/details/134192776
这篇文章还罗列了ResNet各网络结构设计,如下图:

其实从LeNet网络到如今的ResNet网络,各个网络团队研究出来的各自的什么模块都可以当成超级卷积层,你看各家论文都是把自己创造的模块当成卷积层来使用的
从上表,可以通过前面的CNN网络结构组成范式概念,来重新解读下:

ResNet18就是2个卷积块+GAP全局平均池化层,具体是1+8+GAP全局平均池化层——由1层传统卷积层组成的第1块卷积块 + 由8个basicblock组成的第2个卷积块 + GAP全局平均池化层。

ResNet34就是2个卷积块+GAP全局平均池化层,具体是1+16+GAP全局平均池化层——由1层传统卷积层组成的第1块卷积块 + 由16个basicblock组成的第2个卷积块 + GAP全局平均池化层。

ResNet50就是2个卷积块+GAP全局平均池化层,具体是由1+16+GAP全局平均池化层——由1层传统卷积层组成的第1块卷积块 + 由16个bottleneck组成的第2个卷积块 + GAP全局平均池化层。

ResNet101就是2个卷积块+GAP全局平均池化层,具体是由1+33+GAP全局平均池化层——由1层传统卷积层组成的第1块卷积块 + 由33个bottleneck组成的第2个卷积块 + GAP全局平均池化层。

ResNet152就是2个卷积块+GAP全局平均池化层,具体是由1+50+GAP全局平均池化层——由1层传统卷积层组成的第1块卷积块 + 由50个bottleneck组成的第2个卷积块 + GAP全局平均池化层。

可以发现ResNet网络特殊,就用了2个池化层,第1个最大池化层,最后一个池化层是全局平均池化层,像之前的网络结构都是不少池化层的,而ResNet就2个,如果全局平均池化层不算的话,就只有一层池化层,也就是ResNet研究出的残差块进行串联都不会有最大池化层分隔——不像GoogLeNet网络中很多inception模块串联但是中间有不少最大池化层分隔。

也就是说上述表格里的conv2.x到conv5.x,这一区域属于一个卷积块——前面说的概念卷积块由池化层分割,它一共2个池化层。

根据人们之前实验探索出来的经验来推衍,卷积+池化组合应该在深层网络中是有效的,但是现实往往打脸——经过实验发现,哎呀,前面探索出来的经验推导出来的理论竟然失效了!!! 而ResNet网络探索发现是研究出来的模块——超级卷积层——不用最大池化层进行分割效果更好——这难以理解——我猜目前神经网络的结构理论是属于高维层次的理论,远远超出人类大脑理解的范畴吧。

同时又加深了我对于神经网络结构的演变是实验科学的论证。或者说神经网络属于实验科学

3 革新点

【【深度学习】ResNet网络讲解 - CSDN App】https://blog.csdn.net/weixin_44001371/article/details/134192776
该文章所述:
1.超深的网络结构(超过1000层)。
2.提出residual(残差结构)模块。
3.使用Batch Normalization加速训练(丢弃dropout)。

4 影响

ResNet(残差网络)的探索实验是深度学习发展史上的一个里程碑,它通过引入残差连接(Skip Connection)​ 解决了深层网络训练中的梯度消失/爆炸问题,对后续网络架构产生了深远且根本性的影响。

以下是ResNet探索实验对后续网络发展的具体影响分析:

4.1 核心贡献:残差连接(Skip Connection)

ResNet的核心思想是“恒等映射”。它不再让网络层直接学习目标函数 H(x),而是学习残差函数 F(x)=H(x)−x。这样,原始函数就变成了 H(x)=F(x)+x。

解决了深度瓶颈:在此之前,网络深度增加(如超过20层)会导致训练误差反而增大(退化问题)。ResNet通过残差连接,使得梯度可以直接“跳过”某些层进行反向传播,确保了信息流的畅通,使得训练数百甚至上千层的网络成为可能。

缓解梯度消失:在深层网络中,梯度在反向传播时会逐层衰减。残差连接提供了一条“高速公路”,让梯度可以直接回传,有效缓解了梯度消失问题。

4.2 对后续网络架构的影响

a) 成为现代网络的“标准组件”

ResNet提出的残差块(Residual Block)已经成为现代深度网络架构的标配。无论是图像分类、目标检测还是语义分割,几乎所有的SOTA(State-of-the-Art)模型都内置了残差连接的思想。

DenseNet:在ResNet的基础上更进一步,提出了“密集连接”,即每一层都接收前面所有层的特征图作为输入,进一步增强了特征复用。

Inception-v4:将Inception模块与ResNet的残差连接结合,形成了Inception-ResNet-v2,性能显著提升。

Highway Networks:可以看作是ResNet的前身,但ResNet将其简化并推广,使其更易于训练和部署。

b) 启发了注意力机制与Transformer的架构

ResNet的“跳连”思想启发了后续神经网络对信息流路径的设计。

注意力机制:在Transformer中,残差连接与层归一化(LayerNorm)结合,构成了Transformer Block的基础结构(如Pre-Norm结构)。这种设计确保了深层Transformer模型(如BERT、GPT)的稳定训练。

U-Net:在图像分割领域,U-Net的跳跃连接(Skip Connection)将编码器的高分辨率特征与解码器的上采样特征拼接,这一设计灵感直接来源于ResNet对信息流的保护。

c) 推动了超深网络的研究

在ResNet之前,网络的深度被认为是有限的。ResNet(如ResNet-152)的成功证明了网络深度是提升性能的关键因素之一。这直接推动了后续对极深网络(如1000层以上)的探索,尽管后来的研究(如ResNeXt、EfficientNet)表明宽度和分辨率也同样重要,但深度始终是模型能力的基础。

4.3 小结

ResNet的探索实验不仅仅是提出了一个更好的网络结构,更是改变了深度学习社区对网络架构设计的认知。它证明了:

网络可以非常深:只要解决梯度传播问题,深度就是有效的。

捷径(Shortcut)是有效的:网络不需要学习完整的映射,学习残差往往更简单、更高效。

架构的通用性:残差思想不仅适用于CNN,也适用于RNN、Transformer等各类网络。

因此,ResNet被誉为“深度学习领域的经典之作”,其影响延续至今,是现代AI模型不可或缺的基石之一。

5 神经网络结构探索是实验科学

这个观点我始终坚持,原因是我猜神经网络结构的科学理论是高维科学理论,人类大脑理解不了,只能通过不断的实验探索、盲人摸象般地去一步一步靠近真相!

我觉得还有赖于人类对自己大脑的进一步认识,或者改变当前神经元的数学模型——使其更加贴近人类大脑神经元的真实活动规律,这样未来AI才有进化出意识的可能性。

6 探索的经验

原先的卷积+池化在浅层有效果,然后人们就觉得一定的卷积+池化交替出现,建立了这个理论,然后resnet打破打破这个理论了——它创造的超级卷积层的堆叠就没有按照卷积池化交替出现的规律,但是效果更好!
从此,ResNet的经验就是不需要最大池化层!这影响了很多,比如yolo受到它的思想的影响,在yolov3开始引入残差思想,其最大池化层被卷积层所代替效果更好!!

7 与控制理论的渊源

看到ResNet的结构有种似曾相识的感觉,就是控制理论的反馈系统,但是人家是负反馈。
残差块(Residual Block)的结构确实和控制理论中的反馈系统(尤其是负反馈系统)在形式上高度相似,甚至在信号处理的思想内核上也有共通之处。我们可以从结构映射和功能逻辑两个层面来解析这种相似性:

功能逻辑:残差学习 ≈ 负反馈的“误差修正”
控制理论中,负反馈系统的核心思想是:通过反馈信号与实际输出的差异(误差)来修正系统的行为,从而让输出更接近目标(比如稳定系统、跟踪输入、抑制干扰等)。

残差块的设计思想(残差学习)是:让网络学习“残差”(即 F(x) = H(x) - x,其中 H(x) 是理想输出,x 是输入),而不是直接学习 H(x)。这等价于:H(x) = F(x) + x也就是,网络的输出是“输入 x”加上“学习到的残差 F(x)”。

这和负反馈的逻辑高度相似:输入 x 相当于“目标值”(或期望输出);前向通路(两个卷积+ReLU)学习的是“误差修正量”(即残差 F(x),类似负反馈中“控制器根据误差计算的调整量”);加法器将“目标值 x”和“修正量 F(x)”叠加,得到“实际输出 H(x)”,相当于负反馈中“输出 = 目标 + 修正(或输出 = 前向输出 + 反馈量)”。

为什么残差块用“加法”而不是“减法”?(正反馈 vs 负反馈)
控制理论中负反馈通常用减法(\text{误差} = \text{目标} - \text{输出}),而残差块用的是加法(\text{输出} = x + F(x))。
这其实是因为残差学习的定义是 F(x) = H(x) - x,所以变形为 H(x) = x + F(x)——这里的“加法”本质上是“把输入作为基准,学习相对于输入的偏差”。

如果把残差块的逻辑反过来,让 F(x) = x - H(x),那就会变成减法,但本质还是“学习误差(偏差)来修正输出”。

残差块选择加法,是为了让梯度更容易传播(避免深层网络的梯度消失),但从反馈的思想来说,核心是“用输入作为参考,通过学习偏差来逼近目标”,和负反馈“用误差修正输出”的逻辑是一致的。

总结:形式相似,思想同源
残差块的结构(输入直连+前向变换+加法叠加)和功能(学习残差来修正输出,让网络更容易训练深层结构),都和控制理论中负反馈系统(反馈信号叠加修正、误差驱动学习)的思想高度呼应:结构上的“输入直连+加法器”对应反馈系统的“反馈通路+求和点”;功能上的“残差学习(修正输入以逼近目标)”对应负反馈的“误差修正(调整输出以接近目标)”。

这种相似性也体现了不同学科思想的互通:无论是深度学习(让网络学习更高效的表示)还是控制理论(让系统更稳定/精确),都需要解决“如何让系统(或网络)逼近目标”的问题,因此演化出了相似的“反馈+修正”逻辑。

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

TensorFlow学习笔记:猫狗识别

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、基础设置与导入数据 import matplotlib.pyplot as plt import numpy as np import os import PIL import tensorflow as tf from tensorflow import ker…

作者头像 李华
网站建设 2026/8/22 11:48:05

稀土抑烟剂: 让PVC燃烧“静默”的秘密

你或许不曾留意,生活中处处可见的PVC材料,正悄然完成一场安全升级。从建筑工地的防护膜、农业温室大棚,到电子产品包装,这种轻便耐用的塑料无处不在。但鲜为人知的是,传统PVC有一个致命短板——遇火即燃,且…

作者头像 李华
网站建设 2026/8/22 11:49:02

从零开始学网络安全:指纹识别的5种实用方法及工具推荐

从零到一:网络安全中的指纹识别实战指南 刚接触网络安全,你可能听过“指纹识别”这个词,但总觉得它有点神秘,像是电影里特工用的技术。其实,在数字世界里,指纹识别是安全工程师和渗透测试人员最基础、最核心…

作者头像 李华
网站建设 2026/7/14 16:39:10

小白也能玩转CVPR模型:MogFace人脸检测工具部署实录

小白也能玩转CVPR模型:MogFace人脸检测工具部署实录 1. 引言 你有没有想过,自己也能轻松用上那些在顶级学术会议上发表的最新AI模型?今天,我要带你体验的,就是一个来自CVPR 2022的“明星”模型——MogFace&#xff0…

作者头像 李华
网站建设 2026/7/14 16:39:08

RK3588 Ubuntu系统下ARM平台交叉编译环境搭建指南

1. 为什么要在RK3588上折腾交叉编译? 如果你手头有一块RK3588的开发板,比如Firefly的ITX-3588J或者Rockchip官方的ROC-RK3588S-PC,并且已经刷好了Ubuntu系统,那你可能会遇到一个很实际的问题:我想在板子上跑我自己写的…

作者头像 李华
网站建设 2026/7/14 16:39:11

4.1-CRUD+动态SQL【复用】+防注入:参数解析与引用机制

处理数据访问参数的基础知识点,直接关系到 SQL 执行的安全性和规范性 一、#{} 预编译参数绑定(推荐使用) #{} 是 MyBatis 参数引用的核心方式,其底层实现和核心特性是该知识点的重点:底层实现 MyBatis 在解析#{}时&…

作者头像 李华