ResNet

一、深度神经网络的挑战

ResNet,全称Residual Network,是一种深度神经网络结构,解决了深层神经网络在训练过程中遇到的梯度消失梯度爆炸问题。

论文原文:https://arxiv.org/pdf/1512.03385

梯度消失

  • 原理:在深层神经网络中,反向传播时,梯度会在层与层之间传递。如果网络层数过多,梯度在多次乘积后会变得非常小,导致前几层的权重更新几乎停滞。
  • 影响:梯度消失会使网络训练变得极其缓慢,甚至无法有效学习到特征。

梯度爆炸

  • 原理:与梯度消失相反,梯度在反向传播过程中如果不断增大,会导致前几层的梯度变得非常大。
  • 影响:梯度爆炸会使得网络参数更新幅度过大,导致训练过程不稳定,甚至无法收敛。

这幅图展示了ResNet(残差网络)的核心组件——残差块(Residual Block)及其中的恒等映射(Identity Mapping)。

二、残差块(Residual Block)

  1. 输入 x:图的左上角是输入 x,它是进入残差块的原始数据。

  2. 权重层(Weight Layer):在图中,"weight layer"表示卷积层,这些层对输入数据进行处理。这个残差块中有两个卷积层,分别对输入 x进行变换。

  3. 激活函数 ReLU:在每个卷积层后面,都有一个ReLU激活函数,表示通过这个函数后,输出的负值会被变为0,正值保持不变。

  4. 短路连接(Shortcut Connection):图中右侧的箭头表示恒等映射,这条箭头直接将输入 x 传递到输出层,形成所谓的“短路”。

  5. 加法操作(Addition):在卷积层的输出 F(x)与恒等映射的 x 相加。这里的 F(x)表示通过卷积层和ReLU处理后的结果。相加后的结果再经过一个ReLU激活函数。

  6. 输出 F(x)+x:最终输出是输入 x 和卷积层输出 F(x) 的和,再经过一个ReLU激活函数。

工作原理

  • 输入 x:输入数据进入残差块。
  • 卷积处理:数据通过两个卷积层和两个ReLU激活函数,得到 F(x)。
  • 恒等映射:输入 x 直接通过短路连接到输出,加上卷积层的输出 F(x)。
  • 相加操作: x和 F(x)相加,形成 F(x)+x。
  • 输出:相加后的结果通过最后一个ReLU激活函数,得到最终的输出。

三、恒等映射(Identity Mapping)

  • 箭头表示恒等映射:右侧的箭头从输入 xx直接指向相加操作的节点。这表示输入 x 没有经过任何变换,直接传递到输出。

作用

  • 信息保留:通过恒等映射,输入数据 xx能直接传递到输出,确保了信息的保留,不会因为多层变换而丢失原始信息。
  • 减轻梯度消失问题:在反向传播过程中,梯度可以直接通过恒等映射传递,减少了梯度消失的可能性。
  • 简化学习任务:网络只需要学习输入和输出之间的差异(残差),而不是学习复杂的映射关系。这使得深层网络更容易训练。

总结

  • 残差块:通过在卷积层输出与输入之间建立短路连接,使得输入数据能直接传递到输出,减轻了深度网络的训练难度。
  • 恒等映射:确保输入数据不变,通过短路连接直接传递到输出,保留了原始信息,减轻了梯度消失问题,简化了学习任务。
  • 即使网络层数增加,通过残差块,输入数据至少可以保持原有状态,不会因为多层变换而变得更差。

四、网络结构

这张图展示了ResNet(残差网络)在不同层数(18层、34层、50层、101层和152层)的网络结构概述。图中包含每一层的名称、输出尺寸和具体的卷积操作细节。


五、ABC模型

Top-1 和 Top-5 错误率

  • Top-1 错误率:模型预测的最有可能的类(即概率最高的那个类)是错误的情况的比例。例如,如果模型预测一张猫的图片为狗,那么这就是一个Top-1错误。

  • Top-5 错误率:模型预测的前五个最有可能的类中没有正确答案的情况的比例。例如,如果模型预测一张猫的图片时,猫没有出现在前五个预测的类中,那么这就是一个Top-5错误。

这两个指标用于衡量模型的性能,数值越低,模型的性能越好。Top-5 错误率通常低于 Top-1 错误率,因为它允许模型在前五个预测中出错的容忍度更高。

  1. ResNet-34 A

    • 方法:当增加维度时使用零填充(zero-padding)shortcut,其他部分使用恒等(identity)shortcut。
    • 解释:零填充shortcut只是简单地将某些位置填充为零,不进行实际计算。这种方法简单,但填充的部分没有进行任何学习。
  2. ResNet-34 B

    • 方法:当增加维度时使用投影(projection)shortcut,其他部分使用恒等(identity)shortcut。
    • 解释:投影shortcut使用额外的卷积层来匹配维度,确保所有部分都参与学习。比A方法稍好,因为每一层都在进行实际学习。
  3. ResNet-34 C

    • 方法:所有地方都使用投影(projection)shortcut。
    • 解释:投影shortcut遍布整个网络,增加了学习的能力,性能最好,但增加了模型的复杂度和计算量。

总结

  • A选项简单,计算量小,但学习不充分。
  • B选项在关键地方使用投影,平衡了计算量和学习效果。
  • C选项全程使用投影,学习效果最好,但计算量最大。

因此,B选项通常是较好的选择,性能优于A,复杂度低于C。


六、bottleneck design

1×1卷积层的优点

  1. 降维和升维:1×1卷积层能够减少或增加特征维度。例如,在瓶颈架构中,第一个1×1卷积层将输入的256维降维到64维,这样可以减少计算量;而最后一个1×1卷积层则将维度恢复到256维。
  2. 减少计算复杂度:降维后再进行3×3卷积,计算量大大减少。相比直接对高维度数据进行3×3卷积,使用1×1卷积降维可以显著降低计算复杂度。
  3. 增强非线性:1×1卷积增加了网络的非线性表达能力,因为每个1×1卷积后面都接有ReLU激活函数。

这样的设计不仅在计算复杂度上更加高效,还有效解决了深层网络中的退化问题,使得ResNet能够在更深的层次上保持高性能。50层、101层和152层的ResNet通过增加这种3层瓶颈块的数量,实现了深层网络的高效训练和高准确率。


  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值