第八周 ResNeXt

作业内容:
1:文字回答:用自己的语言描述 split-transform-merge是怎样一个过程.
答:split-transform-merge有两种形式:神经元形式和Inception module形式。
①一个神经元的操作:
Splitting:X分为D个元素,可理解为低维嵌入。
Transforming:每个元素进行变换,此处仅做乘法。
Aggregating:对D个变换后的结果进行聚合(求和)
②先来了解下ResNet中的Inception:split-transform-merge
如下如所示:
Spliting:通过多个分支:11卷积,实现低维嵌入。
Transforming:第一个分支使用1
1卷积,第二个分支使用11卷积之后加上33卷积,第三个分支使用11卷积之后加上55卷积,第四个分支使用33最大池化加上11卷积。
Aggregating:对变换后的结果进行聚合。
在这里插入图片描述
因此,我们可以详细地描述以下ResNeXt中的聚合变换是怎么操作的:
Block中的聚合变换:
在这里插入图片描述
Splitting:通过1*1卷积实现低维嵌入,256个通道变成4个通道,总共32个分支(cardinality=32)
Transforming:每个分支进行变换(用网络层对数据操作)
Aggregating:对32个分支得到的变换结果—特征图,进行聚合(求和)

2:文字回答:ResNeXt-50_32x4d 中的50, 32和4分别表示什么意思?
答:50代表网络的深度,32代表分组数cardinality,4代表网络的宽度(每组的卷积核数或通道数)。
3:文字回答:分组卷积能减少多少参数?(输入通道数、输出通道数均一致的情况下)
答:分组卷积用更少的参数得到相同的特征图。
Feature map:CHW
Kernel size:KK
Output channel(kernel numbers):N
Conv的参数量: C
KKN
Group conv的参数量:C/GKK*N
分组卷积参数量减少至1/G
4:文字回答:读完该论文,对你的启发点有哪些?
答:1. 提炼VGG、ResNet和Inception系列的优秀思想:
(1)处理相同尺寸的特征图时,采用同样大小、数量的卷积核。
(2)特征图分辨率长宽降低2倍时,特征图通道数(卷积核数量)翻倍。
(3)block中各分支采用相同机构,演化成分组卷积。
2.提出Cardinality来衡量模型复杂度,实验表明Cardinality比模型深度、宽度更高效。
3.视觉任务研究方向从传统的“特征工程”转向“网络工程”,“网络工程”一词非常妙,道出了CV研究的方向。
4.相同架构的block进行堆叠,可以减少过度适应的风险,侧面反映出Inception系列模型泛化性能较差。
5.ResNeXt并不是模型集成的,各个branch是共同训练,只有当模型分开训练才称为模型集成。
6.下图(b)形式的block与Inception-ResNet的block是一样的结构,但本文最大不同是各分支是同构的,相同的结构便于调试,不至于过适应具体任务。

在这里插入图片描述
在这里插入图片描述
7.参数少训练速度不一定快,要看硬件对OP(operations)的支持情况。
8.ImageNet-1K数据集上模型精度饱和,并不是模型能力问题,而是数据太少,因此在ImageNet-5K上进行实验。

5:代码实现(选做题):在cifar-10上训练一个resnext29,将训练曲线,混淆矩阵图等信息贴出来分享
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### ResNeXt 深度学习模型架构特点 ResNeXt 是一种改进版的残差网络 (ResNet),旨在提高图像识别任务中的性能。其核心特点是引入了聚合残差变换的概念,这使得模型能够在不增加计算复杂度的前提下提升表达能力。 #### 聚合残差变换 ResNeXt 中的关键创新在于使用了一种称为“基数”(cardinality)的新维度来扩展网络宽度。不同于传统的仅通过加深或加宽网络的方法,ResNeXt 提出了并行分支的设计思路,每个分支执行相同的操作但参数独立[^1]。这种设计允许更灵活地调整网络容量,并且实验证明可以带来显著的效果增益。 #### 卷积操作细节 具体来说,在每一个残差单元内部,ResNeXt 使用一组平行的小型卷积核来进行特征提取工作。这些小型卷积核共享相同的输入通道数和输出通道数,但在不同路径上具有不同的权重矩阵。这样的结构不仅保持了原始残差连接的优势——即缓解梯度消失问题和支持非常深的学习过程;同时也增强了模型对于局部模式的理解力[^3]。 ```python def resnext_block(input_tensor, filters, cardinality=32): # 定义基础滤波器数量 base_filters = filters // cardinality # 创建多个并行的卷积路径 paths = [] for i in range(cardinality): path = Conv2D(base_filters, kernel_size=(3, 3), padding='same')(input_tensor) paths.append(path) # 合并所有路径的结果 concat = Concatenate()(paths) return Activation('relu')(concat) ``` ### 应用场景实例 ResNeXt 已经被广泛应用于各种计算机视觉领域,特别是在那些需要高精度分类的任务中表现出色。例如,在一项研究中提到,为了应对城市生活垃圾自动分拣的需求,研究人员开发了一个名为 OM-ResNeXt50 的改进版本用于垃圾分类识别。通过对现有数据集不足之处的研究,团队建立了专门针对中国国情下的垃圾图片数据库 FCGC-TrashNet,并在此基础上进行了针对性优化。最终实验表明,相比于标准配置下运行的基础 ResNeXt50 模型,OM-ResNeXt50 将整体准确率提高了大约五个百分点[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值