【论文阅读】:Split to Be Slim: An Overlooked Redundancy in Vanilla Convolution

论文:Split to Be Slim: An Overlooked Redundancy in Vanilla Convolution

 SPConv——基于Split的卷积计算单元

Hermosa_zdg
【论文导读】本篇论文是北邮&南开大学联合提出的开源SPConv,它是一种“即插即用”型计算单元,基于拆分的思想将输入特征分成两组分别进行处理,最后采用新的特征融合模块进行融合,用于解决特征图之间的冗余问题。相比常规卷积,SPConv不仅精度更高,同时具有更快推理速度,而且具有更低的FLOPs与参数量。类似SqueezeNet、MoblieNet、ShuffleNet以及GhostNet,是一种较轻量级的计算模型。

论文连接:https://arxiv.org/abs/2006.12085
代码连接:https://github.com/qiulinzhang/SPConv.pytorch

Abstract

为了减少推理加速模型的冗余,人们提出了许多有效的解决方案。然而,常见的方法大多集中于消除不太重要的过滤器或构造有效的操作,而忽略了特征图中的模式冗余。我们发现,同一层中的许多特征图具有相似但不完全相同的模式。然而,很难确定具有类似模式的特性是否冗余或包含基本细节。因此,我们没有直接去除不确定的冗余特征,而是提出了一种基于拆分的卷积操作,即SPConv,可以容忍模式相似但计算量少的特征。具体来说,我们将输入的特征图分割为具有代表性的部分和不确定冗余的部分,通过比较大的计算从代表部分中提取内在信息,对不确定冗余的部分进行一些轻量操作补充隐藏的细节差异。为了重新校准和融合这两组处理后的特征,我们提出了一个无参数的特征融合模块。此外,我们的SPConv是用来以即插即用的方式取代普通卷积的。在没有任何花哨的东西的情况下,在基准测试中,实验结果表明SPConv网络在GPU上的精确性和推断时间上始终优于最先进的基础网络,且(FLOPs)计算量和参数急剧下降。

1 Introduction

近年来,深度神经网络取得了显著的成功。然而,这种快速增长的精度是以越来越复杂的模型为代价的,其中包含数百万个参数和每秒数十亿次浮点运算。因此,最近的努力尝试减少参数和每秒的浮点运算,同时确保模型没有显著的性能下降。
一个主要的工作是设计一个有效的卷积操作。目前的流行趋势是充分利用组卷积(GWC)、深度可分离卷积(DWC)和点向卷积(PWC) 。将这三种方案结合起来,已经产生了许多有效且高效的模型,如MobileNet、Xception、ResNeXt 和ShuffleNet 。这些著名网络背后的思想表明,信道间连接的冗余可以被合理地减少,或者说,稠密卷积核的效果可以通过一些稀疏卷积核的组合来实现。
Hermosa_zdg
图1:ResNet-50中第二阶段的输入图像(左上角)和一些输入特征图的可视化。它们中有许多看起来很相似。因此,可以选择一些有代表性的feature map来补充固有信息,而剩余的冗余只需要对微小的不同细节进行补充。

与上面讨论的通道不同,我们后退一步,看看输入。第二阶段ResNet-50的输入的可视化如图1所示。我们注意到,一些特征图表现出了大量的模式相似性。对于这种现象,一种自然的想法是,许多特征图是多余的,可以删除它们,这样在训练过程中需要的特征提取过滤器就更少了。然而,对于不同的任务和数据集,很难确定每一层中有多少通道是足够有用的。在每一层/阶段中被广泛使用的64-128-256-512-1024通道的构造模式,也是我们从经典架构中继承的固有模式,给出了一个折中的答案:在大多数数据集上,为了获得更好的性能,是冗余而不是短缺。这种刻板印象意味着很难获得确切的渠道数量。因此,我们倾向于容忍feature maps之间的冗余,并以更优雅的方式对待它们,而不是与这样的障碍作斗争。回到图1,一些特征图看起来非常相似,这表明它们携带的信息也相似。然而,在普通卷积中,相似的特征图被不同的k×k×1核重复卷积。直观上,如果一个模型从一张feature map中提取了信息,那么它只需要从相似的feature map中提取出差异即可。
本文的主要创新点
①揭示了常规卷积中被忽略的冗余,提出了将输入分成两部分:representative与uncertain,分别提取内在的重要信息和补充隐含的细节差异;
②设计了一种“即插即用”型SPConv模块,它可以无缝替换现有网络中的常规卷积,且在精度与GPU推理速度上均可能优于SOTA性能,同时具有更少的FLOPs和参数量。

2 Related Work

自1990年的LeCun以来,研究人员对创建紧凑而准确的模型的兴趣越来越大。 Inception采用了分裂-转换-合并的策略,实现了低理论复杂度和令人信服的准确性。同时,一些新的卷积滤波器如组卷积(GWC)、深度可分离卷积(DWC)、点卷积(PWC) 被广泛用于高效模型设计。ResNeXt在所有聚合转换中与GWC和PWC共享相同的拓扑结构,这减少了通道间连接的冗余,并引入了一个名为基数的新维度。为了进一步降低连接密度,Xception 和MobileNet 先后使用DWC进行空间信息提取,PWC进行信道信息融合。更彻底的是,ShuffleNet在3x3卷积上采用DWC,在1x1卷积上采用GWC,然后再进行信道洗牌操作。
正交于通道冗余,OctConv探索了特征图空间维度上的冗余。HetConv 除了齐次卷积外,还设计了异构卷积滤波器,在单个滤波器中同时存在3×3核和1×1核。然后将某一特定层过滤器中的这两个异质内核按移位方式排列。在注意模型有效的情况下,SKNet引入了基于输入信息多尺度的动态核选择机制,实现了自适应感受场。以上这些有效模型,包括OctConv 、HetConv和SKNet的共同之处是,它们在所有输入通道上都使用3×3核。然而,如图1所示,许多特征映射显示出许多模式相似性,这表明普通的卷积基本上是重复的。因此,我们建议使用SPConv模块来减少这种冗余。与我们想法相似的GhostNet 也指出了特征图之间的冗余。该算法首先利用普通卷积生成一些固有特征,然后利用廉价的线性运算进行特征增强。与GhostNet不同的是,我们的SPConv保证了模型能够抓住每一个原始的特征,而不是由内在产生的特征,从而获得更好的性能。
至于GPU上的推理时间,上面几乎所有的高效模型都比基础模型慢(很多)。我们的SPConv优于他们,实现了比基线更快的推理速度。

3 Approach

在本节中,我们首先介绍我们提出的用于减少特征图之间冗余的SPConv,然后详细分析这个模块。
Hermosa_zdg
Vanilla Convolution

令X,Y分别表示输入、输出特征,L表示输入通道个数,M表示输出通道个数。W表示kk卷积核的全职参数,对应的卷积计算可以描述为Y = WX + b,为简化表示,在后续介绍中忽略了偏置项b。卷积计算的矩阵表示为:

其中x表示L个输入矩阵,y代表M个输出矩阵,Wij代表M个k
K滤波器的参数。

The Representative and the Redundant

在现有的滤波器中,比如常规卷积、GhostConv、OctConv、HetConv均在所有输入通道上执行k*k卷积。然而,如图1所示,同一层的特征中存在相似模式,也就是说存在特征冗余问题。但同时,并未存在完全相同的两个通道特征,进而导致无法直接剔除冗余通道特征。因此,作者将输入通道按比例α拆分为两部分:
(1)Representative 用k×k(这里我们采用广泛使用的3×3)卷积来提供内在信息;
(2)Redundant 用1×1卷积来补充微小的隐藏细节。
矩阵表示如下:

其中,x表示αL个输入矩阵,y表示输出矩阵,Wij表示Representative部分在αL个通道上3×3卷积核的参数,wij代表Redundant 部分在(1-α)L个通道上1×1卷积核的参数。

Further Reduction for the Representative

将所有输入通道分成两个主要部分后,代表部分之间可能存在冗余。换句话说,有代表性的通道可以分为几个部分,每个部分代表一个主要的特征类别,例如颜色和纹理。因此我们在有代表性的通道上采用组卷积来进一步减少冗余,如图2中间部分所示。我们可以将组卷积看作是与稀疏块对角卷积核的卷积,其中每个块对应于通道的一个分区,并且在这些分区之间没有连接。也就是说,在组卷积之后,我们进一步减少了代表部分之间的冗余,同时也切断了跨信道的连接,这不可避免地会起到一定的作用。我们通过在所有有代表性的信道上增加点态卷积来弥补这种信息损失。矩阵表示如下:

zi表示αL个通道被划分为G组,每组有αL/G个通道,Wii代表第i组的组卷积核的参数,右部分点卷积类似Redundant部分的点卷积操作,只是这里通道数是αL。

Parameter-Free Feature Fusion Module

前面已经将输入特征分成了两个部分并进行了针对性处理,也就是说通过前述操作得到了两类特征。由于两类特征源自不同的输入通道,所以需要进行特征融合以控制信息流。作者并未采用Add或者Concat方式进行融合,而是设计了一种新颖的特征融合模块,该融合模块不会引入额外的参数并能取得更好的性能。(这里的无参数特征融合模块实际上就是SKNet的简化版,具体参考https://blog.csdn.net/qq_34784753/article/details/89381947写的很好!)
①GAP全局平均池化操作,生成对通道的统计S3、S1:
得到k个1×1的特征图,之后 stack 上面生成的S3, S1 ,经过一个全连接层,得到一个压缩的特征向量z,然后将这个压缩的单维度向量经过softmax层,重新分为两个特征向量β,γ:

然后分别与相应的 Representative和Redundant 之后的特征向量进行相应通道的相乘操作,再Add得到输出特征:

这样就完成了从常规卷积到SPConv的演变:

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

Complexity Analysis

由式1可计算出常规卷积的参数为:

由式7可知,SPConv的参数为:

这里分为2组,g=2,当α=0.5时,模型的参数量可以降低2.8倍且性能与推理速度更优。

4 Experiment


首先是用ResNet_20和VGG_16架构,在CIFAR_10数据集上做的对比实验。从表中可以看出:
(1) 当α从1逐渐变化到1/16的过程中,FLOPs与参数量急剧下降,但模型性能并无严重影响;
(2) 当α=1/2时,模型具有最佳性能,参数量与计算量仅为常规卷积时的33%。

然后是在ImageNet2012 数据集上使用ResNet50架构,从上表可以看出:
(1) 相比基础网络,基于SPConv(α=1/2)的模型精度提升0.35%,而FLOPs与参数量降低约28%,推理速度提升0.09ms(提升约7%);
(2) 当保持模型精度不变时,α=1/4,此时FLOPs与参数量降低约34%,而推理速度提升0.13ms(提升约11%);
(3) 从上表可以看到,所提方法的推理速度都比基础网络要快,而OctConv则会导致推理速度变慢。

5 Conclusion

在本文中,作者重新对常规卷积中的信息冗余问题进行了重思考,为缓解该问题,作者提出了一种新颖的SPConv,它将输入特征拆分为两组不同特征并进行不同的处理,最后采用简化版SK进行融合。最后作者通过充分的实验分析说明了所提方法的有效性,在具有更高精度的时候具有更快的推理速度、更少的FLOPs与参数量。
所提SPConv是一种“即插即用”型单元,它可以轻易与其他网络架构相结合,同时与当前主流模型压缩方法互补,如能精心组合设计,有可能得到更轻量型的模型。

以上就是对本篇文章的全部理解,如有错误,敬请指正。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值