NLP学习—9.Resent网络详解

本文详细介绍了ResNet网络的理论基础,包括如何通过残差连接解决深层神经网络的梯度消失问题,以及在VGGNet上的应用。接着,文章展示了在PyTorch中实现ResNet网络的步骤,包括Res Block的设计和整个网络结构的构建。最后,文中提到ResNet网络结构的灵活性,并鼓励读者点赞关注和交流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Resent网络理论部分

    2015年,He等人采用残差网络(Residual Networks,ResNet)来解决梯度消失的问题。ResNet的主要特点是跨层连接,它通过引入捷径连接技术(shortcut connections)将输入跨层传递并与卷积的结果相加。在ResNet中只有一个池化层,它连接在最后一个卷积层后面。ResNet使得底层的网络能够得到充分训练,准确率也随着深度的加深而得到显著提升。将深度为152层的ResNet用于LSVRC-15的图像分类比赛中,它获得了第1名的成绩。在文献中,还尝试将ResNet的深度设置为1000,并在CIFAR-10图像处理数据集中验证该模型。
    网络的层数越深,越有可能获得更好的泛化能力。但是当模型加深以后,网络变得越来越难训练,这主要是由于梯度弥散和梯度爆炸现象造成的。在较深层数的神经网络中,梯度信息由网络的末层逐层传向网络的首层时,传递的过程中会出现梯度接近于0 或梯度值非常大的现象。网络层数越深,这种现象可能会越严重。那么怎么解决深层神经网络的梯度弥散和梯度爆炸现象呢?一个很自然的想法是,既然浅层神经网络不容易出现这些梯度现象,那么可以尝试给深层神经网络添加一种回退到浅层神经网络的机制。当深层神经网络可以轻松地回退到浅层神经网络时,深层神经网络可以获得与浅层神经网络相当的模型性能,而不至于更糟糕。通过在输入和输出之间添加一条直接连接的Skip Connection 可以让神经网络具有回退的能力。以VGG13 深度神经网络为例,假设观察到VGG13 模型出现梯度弥散现象,而10 层的网络模型并没有观测到梯度弥散现象,那么可以考虑在最后的两个卷积层添加SkipConnection,通过这种方式,网络模型可以自动选择是否经由这两个卷积层完成特征变换,还是直接跳过这两个卷积层而选择Skip Connection,亦或结合两个卷积层和Skip Connection 的输出
    该网络的架构和 VGGNet 类似,主要包括 3x3 的卷积核。因此可以在 VGGNet 的基础上在层之间添加捷径连接以构建一个残差网络。下图展示了从 VGG-19 的部分早期层合成残差网络的过程。
在这里插入图片描述
注意事项:

  • 我们可以使用1*1的卷积使得channel数变多。
    在这里插入图片描述

  • 没有使用pooling来使feature map变小,使用stride=2来使feature map变小。
    在这里插入图片描述

  • 在虚线处,通道数翻倍,feature map变小。

  • 上述是原论文中的操作,当然也可以直接stride增大一倍,通道数增大一倍,也可以达到这种效果
    在这里插入图片描述

  • 在卷积层末尾通过avg pool,再通过分类层,经softmax后得到分类结果

  深层网络退化到浅层网络的关键是Basic Block(短路连接),其中包括两个卷积层。

由于网络层数的加深导致后面的梯度很难传播到前面的层中,所以增加了短接操作,使得这一层从理论上可以退化为短接线。此时,即使发生过拟合,也可以直接从短接层走,提供了一种深层次网络退化为浅层次网络的能力。

在这里插入图片描述
H ( x ) = F ( x ) + x H(x)=F(x)+x H(x)=F(x)+x
或者
H ( x ) = F ( x , W i ) + W s x H(x)=F(x,{W_i})+W_sx

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值