Happy · 2020年09月17日

SPConv|精度更高、速度更快的“即插即用”卷积

首发:AIWalker

640.jpg
标题&作者团队

【Happy导语】该文是北邮&南开大学联合提出了一种“即插即用”计算单元,它基于特征冗余而设计,它将输入特征分成两组分别进行处理最后采用简化版SK进行融合。相比常规卷积,所提方法不仅更高精度,同时具有更快推理速度。而它的更快推理速度则是其最关键的亮点,要知道其他“即插即用”型改进卷积(如OctConv、GhostConv、Res2Conv等等)都不可避免的导致推理速度变慢,相当于用速度换时间;而所提方法不仅精度,而且速度快,同时具有更低的FLOPs与参数量,这是非常难得的一点。

paper: https://arxiv.org/abs/2006.12085

Code: https://github.com/qiulinzhang/SPConv.pytorch

Abstract

已有诸多有效方法被提出用于降低模型冗余、加速模型推理速度,然而这些方法往往关注于消除不重要的滤波器或构建高效计算单元,反而忽略了特征内部的模式冗余。

作者揭露了这样一个现象:同一层内的许多特征具有相似却不平等的表现模式。然而,这类具有相似模式的特征却难以判断是否存在冗余或包含重要的细节信息。因此,不同于直接移除不确定的冗余特征方案,作者提出了一种基于Split的卷积计算单元(称之为SPConv),它运训存在相似模型冗余且仅需非常少的计算量。首先,将输入特征拆分为representative部分与uncertain部分;然后,对于representative部分特征采用相对多的计算复杂度操作提取重要信息,对于uncertain部分采用轻量型操作提取隐含信息;最后,为重新校准与融合两组特征,作者采用了无参特征融合模块。该文所提SPConv是一种“即插即用”型模块,可用于替换现有网络中的常规卷积。

无需任何技巧,在GPU端的精度与推理速度方面,基于SPConv的网络均可取得SOTA性能。该文主要贡献包含下面几个方面:

  • 重新对常规卷积中的特征冗余问题进行了再思考,提出了将输入分成两部分:representative与uncertain,分别针对两部分进行不同的信息提取;
  • 设计了一种“即插即用”型SPConv模块,它可以无缝替换现有网络中的常规卷积,且在精度与GPU推理速度上均可能优于SOTA性能,同时具有更少的FLOPs和参数量。

Method

下图给出了该文所提出的SPConv示意图。下面将介绍如何一步步从常规卷积到SPConv的演变思路。

640-1.jpg

image-20200706103138887

Vanilla Convolution

假设分别表示输入与输出特征,一般而言卷积的全职参数可以表示为,对应的卷积计算可以描述为。为简化表示,在后续介绍中忽略了偏置项b。上式写成矩阵形式如下:
640-2.jpg

Representative and Redundant

640-3.jpg

在现有的滤波器中,比如常规卷积、GhostConv、OctConv、HetConv均在所有输入通道上执行卷积。然而,如上图所示,同一层的特征中存在相似模式,也就是说存在特征冗余问题。但同时,并未存在完全相同的两个通道特征,进而导致无法直接剔除冗余通道特征。

受此现象启发,作者提出将所有输入特征按比例拆分为两部分:

  • (1) Representative部分执行卷积提取重要信息;
  • (2) Uncertain部分执行卷积补充隐含细节信息。

    因此该过程可以描述为(见SPConv的左侧部分):

640-4.jpg

image-20200706111643187

注:在上述公式中,左部分表示卷积,右部分表示卷积。

Further Reduction for Reprentative

前述将输入特征拆分为两部分后,Representative可能仍存在冗余问题。也就是说,Representative可以进一步进行拆分,不同部分表示不同的类别特征(比如颜色、颜色等)。因此,作者提出采用组卷积进一步降低Representative的冗余,见SPConv示意图的中间部分。作者认为:尽管组卷积可以降低冗余问题,但同时可能会导致部分信息损失。为补偿这部分信息损失,作者添加了额外的Point卷积。注:这里的组卷积与Point卷积是并行关系。最后通过Add方式对两者的输出特征进行融合,该过程可以描述为:

640-5.jpg

image-20200706113659043

Parameter Free Feature Fusion Module

前面已经将输入特征分成了两个部分并进行了针对性处理,也就是说通过前述操作得到了两类特征。由于两类特征源自不同的输入通道,所以需要进行特征融合以控制信息流。作者并未采用Add或者Concat方式进行融合,而是设计了一种新颖的特征融合模块,该融合模块不会引入额外的参数并能取得更好的性能(见SPConv图示右部分)。注:这里所提的PFFF其实就是SKNet中的Select Kernel机制的简化版。

经过了前述的一系列操作,常规卷积可以通过如下方式进行近似:

640-6.jpg

image-20200706122559861

通过上述方式优化转换,在GPU端,所提方法可以取得更高的精度以及更快的推理速度,同时具有更少的FLOPs与参数量。

Complexity Analysis

常规卷积的参数量可以描述为,所提SPConv的参数则为:

当时,模型的参数量可以降低2.8倍且性能与推理速度更优。

Experiments

为验证所提方法的有效性,作者设置SPConv中的卷积核k=3,g=2,同时整个网络设置统一的全局超参数(不同阶段设置不同的会更优,但会过于精细)。

首先在小尺度数据集Cifar10进行了进行了对比分析,然后在ImageNet数据集上进行了对比,最后为探索SPConv的泛化性能在MS-COCO数据集上进行了目标检测分析。为公平对比,所有实验均在含4个NVIDIA Tesla V100GPU的服务器上从头开始训练,且采用默认的数据增广与训练策略,不包含其他额外Tricks。

640-7.jpg

先来看一下Cifar10数据集上的性能对比,见上表。从中可以看到:

  • (1) 当从1逐渐过渡到1/16的过程中,FLOPs与参数量急剧下降,但模型性能并无严重影响;
  • (2) 当时,模型具有最佳性能,参数量与计算量仅为常规卷积时的33%。

640-8.jpg

image-20200706125253174

然后,我们再来看一下ImageNet数据集上模型性能对比,见上表。可以看到:

  • (1) 相比baseline,基于SPConv()的模型精度提升0.35%,而FLOPs与参数量降低约28%,推理速度提升0.09ms(提升约7%);
  • (2) 当保持模型精度不变时,,此时FLOPs与参数量降低约34%,而推理速度提升0.13ms(提升约11%);
  • (3) 在推理速度方面,采用NVIDIA DALI进行数据加载,硬件平台为Tesla V100,BatchSize=64。从上表可以看到,所提方法具有更快的推理速度,而OctConv则会导致推理速度变慢。

640-9.jpg

image-20200706130611676

其次,我们看一下MS-COCO数据集上模型能性能对比,见上表。
640-10.jpg

image-20200706130812302

最后,我们再来看一下作者提供的消融实验分析结果,见上表。可以看到:

  • GWC+PWC并行模式具有更佳指标;
  • 相比Add融合方法,所提融合机制性能更佳;
  • 直接删除冗余信息会导致模型性能降低3%(这个对比有点不公平哦,直接剔除相当于剪枝了,模型的容量都发生了变化)。

Conclusion

在该文中,作者重新对常规卷积中的信息冗余问题进行了重思考,为缓解该问题,作者提出了一种新颖的SPConv,它将输入特征拆分为两组不同特征并进行不同的处理,最后采用简化版SK进行融合。最后作者通过充分的实验分析说明了所提方法的有效性,在具有更高精度的时候具有更快的推理速度、更少的FLOPs与参数量。

所提SPConv是一种“即插即用”型单元,它可以轻易与其他网络架构相结合,同时与当前主流模型压缩方法互补,如能精心组合设计,有可能得到更轻量型的模型。



推荐阅读:

本文章著作权归作者所有,任何形式的转载都请注明出处。更多动态滤波,图像质量,超分辨相关请关注我的专栏深度学习从入门到精通
文件名 大小 下载次数 操作
2020 Split to be Slim An Overlooked Redundancy in Vanilla Convolution.pdf 511.52KB 0 下载
推荐阅读
关注数
6194
内容数
191
夯实深度学习知识基础, 涵盖动态滤波,超分辨,轻量级框架等
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息