作业内容:
1:文字回答:用自己的语言描述 split-transform-merge是怎样一个过程.
答:split-transform-merge有两种形式:神经元形式和Inception module形式。
①一个神经元的操作:
Splitting:X分为D个元素,可理解为低维嵌入。
Transforming:每个元素进行变换,此处仅做乘法。
Aggregating:对D个变换后的结果进行聚合(求和)
②先来了解下ResNet中的Inception:split-transform-merge
如下如所示:
Spliting:通过多个分支:11卷积,实现低维嵌入。
Transforming:第一个分支使用11卷积,第二个分支使用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的参数量: CKKN
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,将训练曲线,混淆矩阵图等信息贴出来分享