ResNeXt思想:将VGG、ResNet和Inception中优秀的思想归纳并演绎
VGG:结构简洁, 堆叠使用3*3卷积
ResNet: 堆叠的Building Block采用残差结构
Inception系列:采用多分支结构Split- Transform-Merge
1、分组卷积
(将输入的特征图分为C组,每组内部进行正常卷积,然后按通道拼接,得到输出特征图)
参数量对比:
注:分组卷积的分组数必须能被输入通道数整除,以及输出通道数整除
逐通道卷积(Depth-wise)- 分组卷积的特例,即分组数等于通道数2、聚合变换
聚合变换的推导公式: C:cardinality 基数——分组的组数
Ti的作用:“先把输入分发到(低维)嵌入中,再对第i个嵌入变换”,最后对基数C个变换进行汇总
(1)对于一个神经元的 *** 作:Splitting: X分解为D个元素,可理解为低维嵌入
Transforming:每个元素进行变换,此处仅做乘法 Aggregating:对D个变换后的结果进行聚合(求和)(2)Block中的聚合变换:
Splitting: 通过1*1卷积实现低维嵌入,256通道变成4个通道,总共32个分支(cardinality=32)
Transforming:每个分支进行变换(用网络层对数据 *** 作) Aggregating:对32个分支得到的变换结果——特征图,进行聚合(求和)
(3)Block的三种等效形式
卷积参数等价: (a)第三层:4*1*1*256*32 = 32768 (b)第三层:128*1*1*256 = 32768 (b) 第一层:256*1*1*4*32 = 32768 第二层:4*3*3*4*32 = 4608 (c) 第一层:256*1*1*128 = 32768 第二层:128/32*3*3*128 = 4608 三种结构精度相同,经过层层等价,ResNeXt的模型远比Inception来的简洁优雅,易于实现。 3、ResNeXt结构 整体结构与ResNet一致,即: 划分为6个stage 1. 头部迅速降低分辨率 2. 4阶段残差结构堆叠 3. 池化+FC层输出 唯一不同:Building Block 特点:加入分组卷积,节省了参数量,因此可用更多卷积核代码复用:ResNeXt与ResNet代码基本相同,不同的是ResNeXt引入分组卷积,增加了两个参数groups和width_per_group的定义
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)