【机器学习】《动手学深度学习 PyTorch版》李沐深度学习笔记(ResNet、ResNeXt)

本文深入探讨了深度学习中的残差网络ResNet及其扩展版本ResNeXt。阐述了ResNet如何解决网络退化问题,并介绍了ResNeXt通过引入基数(cardinality)概念进一步提升模型性能的方法。

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

ResNet、ResNeXt、迁移学习

1、为什么要选择残差网络(ResNet)

在VGG中,卷积网络达到了19层,在GoogLeNet中,网络史无前例的达到了22层。那么,网络的精度会随着网络的层数增多而增多吗?在深度学习中,网络层数增多一般会伴着下面几个问题:

1.计算资源的消耗(使用GPU集群)
2.模型容易过拟合(扩大数据集、Droupout、批量归一化、正则化、初始化参数调整等等方法)
3.梯度消失/梯度爆炸问题的产生(批量归一化)

随着网络层数的增加,网络发生了退化(degradation)的现象:随着网络层数的增多,训练集loss逐渐下降,然后趋于饱和,当你再增加网络深度的话,训练集loss反而会增大
注意:这并不是过拟合,因为在过拟合中训练loss是一直减小的。
在这里插入图片描述

当网络退化时,浅层网络能够达到比深层网络更好的训练效果,这时如果我们把低层的特征传到高层,那么效果应该至少不比浅层的网络效果差,我们可以当前层特征添加一条直接映射到下一层来达到此效果。
在这里插入图片描述

在前向传输的过程中,随着层数的加深,Feature Map包含的图像信息会逐层减少,而ResNet的直接映射的加入,保证了下一层的网络一定比前一层包含更多的图像信息。基于这种使用直接映射来连接网络不同层直接的思想,残差网络应运而生。(退化现象)
![在这里插入图片描述](https://img-blog.csdnimg.cn/d16a7b4b4b414d37ab14719d34ebb070.png
在这里插入图片描述

ResNet总结

在这里插入图片描述注意:
1.主分支与捷径分支的输出特征矩阵大小必须相同
2.resnet实线和虚线的区别:虚线部分是对特征矩阵的深度、高和宽都变换了,实线部分没有变化在这里插入图片描述
在这里插入图片描述

3、ResNeXt网络结构(CVPR2017)

基数(cardinality)是什么?

ResNeXt中提出的基数(cardinality)指的是分组卷积(group convolution)的分组数量,即输入的通道被平均分为多少组进行卷积计算。ResNeXt通过在每个残差块中使用分组卷积来增加网络的非线性和表现力,而基数就控制了每个卷积层中分组卷积的组数,从而影响了网络的复杂度和性能。

网络结构

这个网络结构是基于ResNet的,是ResNet的增强版。在这篇文章中,ResNeXt最大的一个亮点就是ResNeXt单元中引入了一种新的维度称为**“cardinality”,它代一个ResNeXt单元内相同的转换的个数,即分组的大小。实验表明,其它条件不变的情况下,增大cardinality的大小可以增大分类的准确率
在这里插入图片描述
如图所示,上面是论文提出的ResNeXt模块的三种的等价形式,第一种是输入的256通道特征图,通过32个1×1的卷积,生成32个通道数为4的特征图,然后每个组进行3×3的卷积,然后通过1*1的卷积升维到256通道,最后32个组的结果
相加融合**。第二种和第一种类似,只不过32组先进行concat,然后再通过1×1的卷积升维。第三种是先通过1*1的卷积降维为128通道的特征图,然后通过分组卷积后concat,最后用1×1的卷积进行升维。这里的分组卷积主要是来自于AlexNet。ResNeXt-50的整体网络结构如下(只是将ResNet单元换成了ResNeXt单元),而ResNeXt-101以及ResNeXt-152的结构也与此类推:
在这里插入图片描述
ResNeXt单元的设计遵循:1)如果生成相同尺寸的特征图,那么这些分组共享相同的超参数(卷积核尺寸和通道数);2)当特征图的尺寸下采样2倍时,特征图的通道数需要增加为原来的两倍,比如对于第一阶段的残差块的通道数为256时,分为32组,每组通道为数为4;而对于第二阶段的残差块通道数为512时,分为32组,每组的通道就为8。依此类推,通道数逐渐翻倍。

4、实验对比

在这里插入图片描述
在这里插入图片描述

5、ResNeXt总结

1.使用分组让参数变得更少(是之前的1/g,g是组的个数)
2.错误率更低

6、迁移学习

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注:不管有多少层,下边接近数据的也能拿到很大的梯度进行更新。

7、参考

文章:https://blog.csdn.net/jerry_liufeng/article/details/119710269
论文:《Aggregated Residual Transformations for Deep Neural Network》
视频:霹雳吧啦Wz

### 李沐深度学习笔记资源汇总 对于希望获取李沐动手学深度学习》相关笔记的读者来说,存在多种途径可以访问这些资料。课程笔记不仅覆盖了理论讲解还包含了实践操作指南[^3]。 #### PDF 笔记 目前官方并没有提供统一整理成PDF本的笔记文件。不过社区成员基于个人学习过程中制作了一些总结文档,但需要注意的是这类非官方发布的材料权归属可能存在争议,建议优先考虑通过合法渠道获取学习素材。 #### GitHub 仓库 GitHub上有一个由exacity维护的项目专门用于存放《Deep Learning Book》中文翻译的内容,虽然这不是直接针对李沐老师的教材,但对于理解深度学习原理同样具有很高的参考价值[^2]: - **链接**: [Deeplearningbook Chinese](https://github.com/exacity/deeplearningbook-chinese) 另外,在[动手学深度学习v2 PyTorch](https://zh.d2l.ai/)官方网站提供了每章对应的Jupyter Notebook形式的学习资料下载选项,这对于想要跟随教程亲手实验的同学非常有帮助[^4]。 #### 数据处理相关内容 如果特别关注于数据获取方面的话题,则可以从实用机器学习的角度出发了解如何收集、清洗并利用不同类型的机器学习数据集,这部分内容涉及到了诸如公开可用的数据源介绍以及自动化抓取技术等知识点[^5]。 ```python import requests from bs4 import BeautifulSoup def fetch_data(url): response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') return soup.prettify() ``` 此段Python代码展示了简单的网页爬虫实现方式之一,可用于从互联网上提取所需的信息作为后续分析的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jul7_LYY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值