深度学习基础知识-残差网络ResNet

目录

[一、ResNet 的核心思想:残差学习(Residual Learning)](#一、ResNet 的核心思想:残差学习(Residual Learning))

[二、ResNet 的基本原理](#二、ResNet 的基本原理)

[三、ResNet 网络结构](#三、ResNet 网络结构)

[1. 残差块(Residual Block)](#1. 残差块(Residual Block))

[ResNet 的跳跃连接类型](#ResNet 的跳跃连接类型)

[2. 网络结构图示](#2. 网络结构图示)

[四、ResNet 的特点和优势](#四、ResNet 的特点和优势)

[五、ResNet 的局限](#五、ResNet 的局限)

[六、ResNet 的变体](#六、ResNet 的变体)

[七、ResNet 的应用场景](#七、ResNet 的应用场景)


ResNet(Residual Network) 是由何恺明等人于 2015 年提出的一种深层卷积神经网络结构。它在 ILSVRC 2015 比赛中取得了图像分类、检测等多个任务的突破性成果。ResNet 的主要创新在于引入了"残差连接"(Residual Connections),有效地解决了深层神经网络的梯度消失和梯度爆炸问题,使得网络可以堆叠更多层,显著提升模型的表达能力和分类效果。

一、ResNet 的核心思想:残差学习(Residual Learning)

在传统的深层网络中,随着层数的增加,网络的训练难度会显著提高,容易导致梯度消失(Gradient Vanishing)或梯度爆炸(Gradient Explosion)问题。深度网络可能出现退化现象,即层数增加带来的错误率上升,而不是模型的性能提升。ResNet 的提出正是为了解决这一问题,其核心思想是通过残差块(Residual Block)引入"跳跃连接"(Skip Connection),使得网络可以"跳跃"几层进行信息传递。这一方法不仅有效防止了梯度消失,还使得网络可以更深,参数更少。

二、ResNet 的基本原理

在传统的深层神经网络中,随着层数的加深,梯度会逐渐消失或爆炸,导致模型的训练变得困难,甚至出现退化问题。ResNet 的核心思想是通过引入"残差连接"来直接将输入传递到下一层网络。即每一层的输出不仅依赖于上一层的输出,还加上了输入的"跳跃连接",即:

这里:

  • x 是输入特征。
  • F(x) 是通过卷积、激活等操作生成的特征。
  • y 是残差单元的输出。

这种结构称为"残差块"(Residual Block),它通过直接引入输入,将信息从浅层直接传递到深层,有效缓解了梯度消失的问题,使得更深层次的网络也能够有效训练。

三、ResNet 网络结构

ResNet 的网络结构由多个残差块和一些普通卷积层、池化层组成。根据网络的深度不同,ResNet 主要有以下几种版本:

  • ResNet-18/34:较浅的网络结构,适用于较小的数据集和不需要极深网络的任务。
  • ResNet-50/101/152:较深的网络结构,通过"瓶颈结构"(Bottleneck)进一步加深网络层数,用于处理更复杂的图像数据集。
1. 残差块(Residual Block)

ResNet 的残差块有两种基本结构:

  • 基本残差块(Basic Residual Block):用于较浅的网络(如 ResNet-18 和 ResNet-34)。
  • 瓶颈残差块(Bottleneck Residual Block):用于较深的网络(如 ResNet-50、ResNet-101 和 ResNet-152),该结构通过 1×1 卷积降维和升维,减少参数量的同时加深网络。

基本残差块的结构图如下:

  1. 输入特征经过第一个卷积层,产生输出 F(x)。
  2. 将输入 x 直接与 F(x) 相加形成残差连接,得到y=F(x)+x。

瓶颈残差块的结构图如下:

  1. 输入首先经过 1×1 卷积降维,然后经过 3×3 卷积提取特征,最后通过 1×1 卷积升维。
  2. 输出 F(x) 与输入 x 相加形成残差连接,输出为 y=F(x)+x。
ResNet 的跳跃连接类型

ResNet 中的跳跃连接主要有两种类型:恒等映射(Identity Mapping)卷积映射(Convolution Mapping)

  • 恒等映射:当输入和输出的通道数相同时,直接将输入加到输出上。即在不改变通道数的情况下直接执行加法。
  • 卷积映射:当输入和输出的通道数不一致时,在跳跃连接处使用 1×1 卷积来升维或降维,使输入和输出维度一致。这种方式常用于瓶颈残差块的跳跃连接。
2. 网络结构图示

在 ResNet 中,残差块和卷积层的堆叠方式因版本不同而略有差异。

以下是 ResNet-50 的网络结构图解:

  • 输入层:224×224 尺寸的输入图像。
  • 第一层卷积:一个 7×7 卷积层,步长为 2,通道数为 64。
  • 池化层:3×3 的最大池化层,步长为 2。
  • 残差层 :分为 4 个阶段,每个阶段包括若干个瓶颈残差块。
    • Stage 1:3 个瓶颈残差块,每个瓶颈层输出通道数为 256。
    • Stage 2:4 个瓶颈残差块,输出通道数为 512。
    • Stage 3:6 个瓶颈残差块,输出通道数为 1024。
    • Stage 4:3 个瓶颈残差块,输出通道数为 2048。
  • 全局平均池化层:通过全局平均池化,将每个通道的特征压缩为一个值。
  • 全连接层:输出类别数的概率分布。

四、ResNet 的特点和优势

  1. 梯度流通更顺畅:通过残差连接有效缓解了深层网络的梯度消失问题,使得梯度能够更顺利地传播到浅层。
  2. 易于训练:即使在网络层数很深的情况下,残差连接也可以保证训练过程的稳定性。
  3. 优越的性能 :相比于其他深层网络,如 VGG,ResNet 的参数更少,但表现更优异,是许多图像处理任务中的经典结构。
  4. 可扩展性:残差块的结构简单易用,适合扩展到更深、更复杂的网络结构中。

五、ResNet 的局限

尽管 ResNet 解决了深度学习中的许多问题,但仍存在一些不足:

  1. 参数量大:虽然 ResNet 已优化过计算量,但对于一些移动设备和嵌入式设备仍然较大。
  2. 结构复杂:对于一些非图像任务,直接迁移 ResNet 会出现过拟合或计算开销过大的问题。
  3. 低效的计算:ResNet 的残差连接在部分情况下仍有冗余操作,后续的改进网络(如 ResNeXt、DenseNet 等)在此基础上优化了计算效率。

六、ResNet 的变体

基于 ResNet 结构出现了很多改进版本,包括但不限于:

  1. ResNeXt:通过分组卷积的方式优化计算效率,减少参数量。
  2. DenseNet:在残差连接的基础上增加了密集连接(Dense Connections),使得浅层特征直接传递到深层,进一步减少了参数冗余。
  3. Wide ResNet:相比增加网络深度,通过增加网络宽度的方式来提升模型的表达能力,适用于计算资源丰富的场景。
  4. Dual Path Network:融合 ResNet 和 DenseNet 的特点,进一步提升特征传递的效率。

七、ResNet 的应用场景

ResNet 网络凭借其强大的表达能力和良好的训练效果,在图像分类、目标检测、图像分割等多个任务中广泛应用。此外,ResNet 作为主流的特征提取模块,也在多种复杂模型(如 Faster R-CNN、YOLO)中作为骨干网络(Backbone)进行迁移。

相关推荐
jl48638211 分钟前
打造医疗设备的“可靠视窗”:医用控温仪专用屏从抗菌设计到EMC兼容的全链路解析
大数据·运维·人工智能·物联网·人机交互
以太浮标6 分钟前
华为eNSP模拟器综合实验之- NAT策略配置类型全景汇总
服务器·网络·华为
kiro_10236 分钟前
BGRtoNV12与NV12toBGR互转函数
人工智能·opencv·计算机视觉
码农三叔6 分钟前
(9-1)电源管理与能源系统:电池选择与安全
人工智能·嵌入式硬件·安全·机器人·能源·人形机器人
司沐_Simuoss8 分钟前
Text to SQL系统的千层套路~
数据库·人工智能·sql·语言模型·系统架构
北京阿法龙科技有限公司10 分钟前
工业场景下AR+AI图像识别:精准选型赋能运维与质检
运维·人工智能·ar
哥布林学者19 分钟前
吴恩达深度学习课程五:自然语言处理 第三周:序列模型与注意力机制(四)语音识别和触发字检测
深度学习·ai
才兄说31 分钟前
机器人租售怎么嵌?按流程节点
人工智能
logic_533 分钟前
关于VIT为啥可以用卷积代替第一层嵌入层
人工智能·神经网络·cnn
小oo呆33 分钟前
【学习心得】CMD终端设置Proxy的几个要点
运维·服务器·网络