尺度分配可学习的多尺度聚合网络(ScaleNet)[Paper Download]
[Code Download] 多尺度特征聚合能显著提高神经网络的表达能力。目前常见的多尺度聚合模块都是人工分配每
个尺度的通道(channel)数。那么怎样才能设计高效率的多尺度聚合模块呢?针对这个问
题,商汤科技的视频大数据研究团队提出了一种新的思路:自动学习多尺度聚合模块中每个尺
度的通道数。此外,团队还设计了基于下采样的多尺度聚合模块,不但可以提取多尺度特征,
还显著降低计算复杂度。其所提出的ScaleNet在经典的分类和检测任务上都有显著的增益。
代码和模型已经开源[7]。 多尺度聚合模块(Scale Aggregation Block)我们首先构建了一个多尺度聚合的网络模块,称之为SA block。 经典ResNet [1], GoogleNet [2], 以及DenseNet[3]等基于”short-cut” 连接或者多尺度卷积核。
相反,SA block首先基于不同采样率的下采样和卷积实现多尺度的特征提取,然后通过上采样得
到同样大小的多尺度特征图,最后,在通道维度拼接多尺度特征图,输出多尺度聚合特征。 下图比较了Residual block和SA block的结构: SA block非常高效, 它只采用了3x3的的卷积操作,而没有使用更耗时的大kernel卷积(如 Inception中使用的5x5)以及空洞卷积;它通过下采样,减少了特征图的空间尺寸,以下采样率 平方的比例降低了计算复杂度。 尺度通道数分配的自动学习SA block 在整个网络结构中的深度,以及整个神经网络的任务不一样,每一个SA block 中不同
尺度重要性不一样,因此我们设计一种尺度通道数分配的自动学习方法。 受到剪枝方法MorphNet [5]的启发,首先我们设计一个每个尺度卷积通道数冗余的初始网络,并
训练该初始网络至收敛。 其次, 对SA block 中的每个尺度卷积通道进行重要性排序, 我们采用紧随卷积层之后的
BatchNorm [4]层中的缩放系数(即γ)作为该系数对应的卷积通道的重要性评分。 通常来说,缩放系数越大则对应卷积通道响应越大,卷积通道对应的神经元也更重要。 再次,根据卷积通道的重要性评分从高到低排序,取top-k个卷积通道,使得top-k个卷积通道对
应的计算复杂度为指定值。 这样, 每个SA block 中, 自动分配了每个尺度的神经元比例。最后, 根据学习得到的SA
block,使用随机初始化的参数重新训练得到最后的网络。 下图是在ImageNet的数据集上,基于ResNet-50学习得到的ScaleNet一个实例。 上部分是特征图处理的流程,下部分是每个SA block模块中四个尺度的比例,可以看到不同深 度,SA block中尺度的比例不一样。 实验结果针对ResNets,我们在ImageNet上用经典的multi-step学习率下的SGD优化器和最常用的数据 增强方式训练了100个epochs。 如上表所示,在相同计算复杂度的情况下,相比ResNet原论文结果和相同训练策略下的复现结 果,ScaleNets的错误率都有比较明显的下降。 更加显著的是,如上表所示,把Faster-Rcnn的主干网络从ResNets替换为同等计算复杂度的 ScaleNets,mmAP最大有4.6%的提升。 另外,相比ResNeXt [6]这种基于分组卷积的网络来说,ScaleNet对GPU也比较友好,如上表, 在多分支并行的架构下,其运行速度和精度都有比较明显的优势。 其它尺度聚合网络结构最近,多尺度特征图或卷积核的融合方法成为了网络结构设计的一个热门方向,也涌现出很多优
秀的方法,典型如GoogleNet [2], 最新如Big-Little Net [8], OctConv [9]以及MixNet [10]。 与ScaleNet相比,它们不同点在于实现多尺度的方法,聚合方式以及尺度分配方法和尺度数量 (如下表所示)。这些不同的思路同样是值得借鉴的。
参考文献[1] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. CVPR, pages
770–778, 2016. Stats Copyright © 2021 Wayne Zhang. |