残差神经网络(ResNet)

残差神经网络(Residual Neural Network,简称 ResNet)是深度学习领域的里程碑式模型,由何凯明等人在 2015 年提出,成功解决了深层神经网络训练中的梯度消失 / 爆炸问题,使训练超深网络(如 152 层)成为可能。以下从核心原理、结构设计、优势与应用等方面进行详解。

一、核心问题:深层网络的训练困境

在 ResNet 提出前,随着网络层数增加,模型性能会先提升,然后迅速下降 —— 这种下降并非由过拟合导致,而是因为深层网络的梯度难以有效传递到浅层,导致浅层参数无法被充分训练(梯度消失 / 爆炸)。

ResNet 通过引入 “残差连接”(Residual Connection)解决了这一问题。

二、核心原理:残差连接与恒等映射

1. 传统网络的映射方式

传统深层网络中,每一层的目标是学习一个 “直接映射”(Direct Mapping):
设输入为x,经过多层非线性变换后,输出为H(x),即网络需要学习H(x)。

2. 残差网络的映射方式

ResNet 提出:不直接学习H(x),而是学习 “残差”F(x)=H(x)−x
此时,原映射可表示为:H(x)=F(x)+x
其中,F(x)是残差函数(由若干卷积层 / 激活函数组成),x通过 “跳跃连接”(Skip Connection)直接与F(x)相加,形成最终输出。

3. 为什么残差连接有效?
  • 梯度传递更顺畅:反向传播时,梯度可通过x直接传递到浅层(避免梯度消失)。例如,若F(x)=0,则H(x)=x,形成 “恒等映射”,网络可轻松学习到这种简单映射,再在此基础上优化残差。
  • 简化学习目标:学习残差F(x)比直接学习H(x)更简单。例如,当目标映射接近恒等映射时,F(x)接近 0,网络只需微调即可,无需重新学习复杂的映射。

三、ResNet 的基本结构:残差块(Residual Block)

残差块是 ResNet 的基本单元,分为两种类型:

1. 基本残差块(Basic Block,用于 ResNet-18/34)

由 2 个卷积层组成,结构如下:x→Conv2d(64,3x3)→BN→ReLU→Conv2d(64,3x3)→BN→(+x)→ReLU

  • 输入x先经过两个 3x3 卷积层(带批归一化 BN 和 ReLU 激活),得到残差F(x)。
  • 若输入x与F(x)的维度相同(通道数、尺寸一致),则直接相加(恒等映射);若维度不同(如 stride > 1 或通道数变化),则需通过 1x1 卷积调整x的维度(称为 “投影捷径”,Projection Shortcut):x→Conv2d(out_channels,1x1,stride)→BN→(+F(x))
2. 瓶颈残差块(Bottleneck Block,用于 ResNet-50/101/152)

为减少计算量,用 3 个卷积层(1x1 + 3x3 + 1x1)组成,结构如下:x→Conv2d(C,1x1)→BN→ReLU→Conv2d(C,3x3)→BN→ReLU→Conv2d(4C,1x1)→BN→(+x′)→ReLU

  • 1x1 卷积用于 “降维”(减少通道数),3x3 卷积用于提取特征,最后 1x1 卷积 “升维”(恢复通道数),显著降低计算量。
  • 同样支持投影捷径(当维度不匹配时)。

四、完整 ResNet 的网络架构

ResNet 通过堆叠残差块形成深层网络,不同层数的 ResNet 结构如下表:

网络类型 残差块类型 卷积层配置(每个阶段的残差块数量) 总层数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值