深度学习基础知识-残差网络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)进行迁移。

相关推荐
溯Sec9 分钟前
shodan(五)连接Mongodb数据库&Jenkins&org、net、查看waf命令
网络·安全·web安全·网络安全·系统安全·网络攻击模型·安全架构
矩阵猫咪18 分钟前
【深度学习】时间序列预测、分类、异常检测、概率预测项目实战案例
人工智能·pytorch·深度学习·神经网络·机器学习·transformer·时间序列预测
OJAC近屿智能32 分钟前
热门 AI 培训机构大盘点!近屿智能、黑马、博为峰,哪家更适合你的需求?
人工智能
小张贼嚣张35 分钟前
yolov8涨点系列之HiLo注意力机制引入
深度学习·yolo·机器学习
CV-King41 分钟前
yolov11-cpp-opencv-dnn推理onnx模型
人工智能·opencv·yolo·计算机视觉·dnn
不是AI1 小时前
【持续更新】【NLP项目】【自然语言处理】智能聊天机器人——“有问必答”【Chatbot】第1章、《系统、环境》
人工智能·自然语言处理·机器人
techzhi1 小时前
为什么TCP(TIME_WAIT)2倍MSL
服务器·网络·tcp/ip
知孤云出岫1 小时前
web安全测试渗透案例知识点总结(下)——小白入狱
网络·网络安全·web
行者Sun19891 小时前
【K8s】专题十五(1):Kubernetes 网络之概念总览
网络·云原生·容器·kubernetes
Qqqguo1 小时前
双十一母婴用品排行榜 准妈妈的母婴购物清单
人工智能·生活