深圳Yolo 视觉
深圳
立即加入
词汇表

残差网络 (ResNet)

探索残差网络(ResNet)的强大功能。了解跳跃连接如何解决梯度消失问题,从而使计算机视觉领域的深度学习成为可能。

残差网络(Residual Networks,简称ResNets)是一种特殊的人工神经网络(ANN)架构,旨在实现超深网络的训练。该架构由Microsoft 研究人员Microsoft 提出,成功解决了深度学习中的关键瓶颈——梯度消失问题。 在传统网络中,增加层数往往导致性能饱和或退化,因为用于更新模型权重的信号在层间反向传播时会逐渐衰减。ResNet引入的"跳跃连接"(或残差连接)机制,使数据能够绕过一个或多个层,直接流向后续处理阶段。 这项创新证明了 更深层网络可实现有效训练, 在计算机视觉(CV)领域取得重大突破, 并成为现代架构的基础概念。

核心概念:残差学习

ResNet的核心特征是"残差模块"。在标准卷积神经网络(CNN)中,每层都试图学习从输入到输出的直接映射关系。随着网络深度增加,学习这种直接映射变得越来越困难。

ResNet通过重新定义学习目标改变了这一思路。它不再期望每组层都能学习到完整的底层映射关系,而是通过残差模块迫使各层学习输入与期望输出之间的"残差"——即两者之间的差异。 原始输入通过跳跃连接被添加回已学习的残差中。这种结构性改变意味着:若存在恒等映射(即输入不作改变地通过),网络便能轻松将残差推至零。这使得深度学习(DL)模型的优化变得更为简便,使其能够从数十层扩展至数百层乃至数千层。

关键架构变体

自诞生以来,ResNet的多个变体已成为人工智能领域的标准基准测试。

  • ResNet-50 采用50层结构的版本,运用"瓶颈"设计。该设计通过1x1卷积实现维度压缩与恢复,在保持高精度的同时显著提升网络计算效率。
  • ResNet-101 和 ResNet-152:深度变体,分别拥有 101 层和 152 层。当计算资源允许处理更高复杂度时,常用于捕捉更精细的特征图
  • ResNeXt:ResNet的进化版本,引入了"基数"维度,将残差模块拆分为多个并行路径,从而提升了效率和性能。

实际应用

ResNet架构的稳健性使其成为各类视觉任务的首选方案。

ResNet 与其他架构的比较

区分ResNet与其他流行架构有助于理解其独特价值。

  • ResNet 与VGG 的对比:VGG(视觉几何组)网络同样属于深度卷积神经网络,但缺乏残差连接。因此,在达到与 ResNet 相当的深度时,其训练难度显著增加,且由于包含大量全连接层,通常计算成本更高。
  • ResNet 与Inception 的对比:Inception 网络侧重于 宽度,在同一层中使用多种尺寸的滤波器来捕捉不同尺度的特征。ResNet 侧重于 深度。现代架构如 Inception-ResNet 则将这两种概念结合起来。
  • ResNet 与 视觉Transformer ViT)的对比: 虽然 ViT 采用自注意力机制进行全局图像处理,ResNet 则依赖局部卷积。然而, ResNet 仍是强大的基线模型,在小规模数据集或实时推理场景中通常具有更快的处理速度。

实施实例

现代深度学习库(PyTorch )PyTorch 访问预训练的ResNet模型PyTorch 简单。这些模型对迁移学习具有不可估量的价值——在迁移学习中,模型基于大型数据集(如ImageNet)进行训练后,可直接应用于新任务。 ImageNet 进行训练后,针对特定任务进行微调。

以下Python 如何加载预训练的 ResNet-50 模型: torchvision (PyTorch 的一部分)并执行简单的正向传播。而 Ultralytics 平台 可能经常使用 YOLO26 在检测领域,理解ResNet等基础核心概念对于高级定制至关重要。

import torch
import torchvision.models as models

# Load a pre-trained ResNet-50 model
resnet50 = models.resnet50(weights=models.ResNet50_Weights.DEFAULT)
resnet50.eval()  # Set model to evaluation mode

# Create a dummy input tensor (batch_size, channels, height, width)
input_tensor = torch.randn(1, 3, 224, 224)

# Perform a forward pass to get predictions
with torch.no_grad():
    output = resnet50(input_tensor)

print(f"Output shape: {output.shape}")  # Expect [1, 1000] for ImageNet classes

在现代人工智能中的重要性

尽管像YOLO26这样的新型架构采用了高度优化的结构以实现最高速度和精度,残差学习原理依然无处不在。跳跃连接的概念现已成为许多先进网络的标准组件,包括自然语言处理中使用的变压器(NLP) 以及最新的物体检测模型。通过 使信息能在网络中更自由地流动,ResNet为驱动当今人工智能的深度复杂模型铺平了道路。

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入