[CVPR2019]:最新高效卷积方式HetConv

原文链接:https://zhuanlan.zhihu.com/p/59075508

最近放出来了一篇CVPR2019论文,文章提出了一种新的高效卷积方式:HetConv,在CIFAR10、ImageNet等数据集超过了标准卷积以及DW+PW的高效卷积组合形式,取得了更高的分类性能。

论文链接:arxiv.org/abs/1903.0412

【Motivation】

目前提高CNN性能的主要手段有:

  1. 增加模型宽度和深度。这样带来的代价是计算量会变得非常大。
  2. 设计更高效的卷积结构。比如depthwise conv、pointwise conv、groupwise conv等。这一类卷积结构的特点是计算量相比标准卷积小,代替原始的标准卷积方式可以较少一定的计算量,同时保持较高的精度。
  3. 为追求更快更小的网络结构,用剪枝(model pruning)的手段进行模型压缩(model compression),包括connection pruning、filter pruning、quantization等方式。模型剪枝的方式在某些方面很有效,缺点是得到一个好的模型通常需要大量的训练时间。训练-剪枝-再训练(fine-tune)的方式带来的计算资源和时间成本非常大,且最后不一定能得到令人满意的压缩模型。

目前来看,性价比最高的就是采用高效的轻量级网络,代表性的有:Xception、MobileNet系列、ShuffleNet系列。为了取得更高的性能,必须要精心设计网络结构,实现accuracy-speed trade-off。

设计一个新的有效的网络结构不是一件容易的事,需要不断的试错、总结,文章从卷积方式入手,提出了一种新的卷积方式来代替原来的卷积,取得了更好的实验效果。

像标准卷积、DW、PW、GW式的卷积的一个共同点就是所有的卷积核大小一致,称为“Homogeneous Convolution”,比如3x3x256的conv2d,每个卷积核的尺寸都是3x3大小。

文章提出的“Heterogeneous Convolution”,顾名思义,就是卷积核的尺寸大小不一。比如在有256个通道的卷积核中,一部分kernel size为1,另一部分kernel size为3。

HetConv带来的好处是可以无缝替换VGG、ResNet、MobileNet等结构的卷积形式,这种新的卷积形式,可以向标准卷积一样,从新开始训练,得到比pruning更好的性能效果。文章还指出,HetConv与标准卷积一样,实现latency zero。

【Method】

HetConvolution的方式很简单,就是将一部分卷积核尺寸设置为K,另一部分设置为1。更直观的可以看下图。

计算量的分析:

【标准卷积】计算量: FL_S=D_o \times D_o \times M\times N \times K \times K\rightarrow(1)

其中 D_o 是卷积输出特征图的尺寸,M是输入通道数,N是输出通道数,K是卷积核尺寸。

HetConvolution:假设输入通道数为M,有比例为P的卷积核尺寸为K,这样的kernel数为 \frac{M}{p} ,其他都是1 \times 1大小,这样的kernel数为 (1-\frac{1}{P})\cdot M

那么 K \times K 卷积的计算量为:

FL_K=(D_o \times D_o \times M \times N \times K \times K)/P

1 \times 1 卷积的计算量为:

FL_1=(D_o \times D_o \times N)\times (1-\frac{1}{P}) \times M

因此总的计算量为:

FL_{HC} = FL_K + FL_1\rightarrow(2)

HetConvolution与标准卷积的计算量之比:

R_{HetConv} = \frac{FL_k+FL_1}{FL_S} = \frac{1}{P}+\frac{1-\frac{1}{p}}{K^2}\rightarrow(3)

当P=1时,HetConv变为标准卷积,计算量之比为1。

【DW+PW】计算量: FL_{MobNet} = D_o \times D_o \times M \times K \times K + D_o \times D_o \times M \times N\rightarrow(4) (原文有误)

DW+PW与标准卷积的计算量之比:

R_{MobNet} = \frac{FL_{MobNet}}{FL_S} = \frac{D_o \times D_o \times M \times K \times K + D_o \times D_o \times M \times N}{D_o \times D_o \times M\times N \times K \times K}=\frac{1}{N}+\frac{1}{K^2}\rightarrow(5)


由公式(3)可知,增大P,HetConv变为标准卷积,控制P的大小,可以控制accuracy和FLOPs。

极端情况下,P=M的时候,公式(3)和(5):

\frac{1}{M}+\frac{1-\frac{1}{M}}{K^2} <\frac{1}{M}+\frac{1}{K^2}\rightarrow(6)

因此,MobileNet比HetConvolution计算量更大。

【GW+PW】计算量: FL_G =(D_o \times D_o \times M \times N \times K \times K)/G+ D_o \times D_o \times M \times N \rightarrow(7)

与标准卷积的计算量之比:

R_{Group} = \frac{FL_G}{FL_S} = \frac{1}{G} + \frac{1}{K^2} \rightarrow(8)

由公式(3)和(8)可知,P=G的时候:

\frac{1}{P}+\frac{1-\frac{1}{p}}{K^2} < \frac{1}{P} + \frac{1}{K^2}\rightarrow(9)

HetConv的计算量比GW+PW更少。

【Experiments】

作者选取了VGG、ResNet、MobileNet等网络,通过在CIFAR-10、ImageNet数据集上的实验验证HetConv的有效性。

【总结】

文章提出了一种新的卷积方式,通过计算FLOPs和实验证明,HetConv可以在更少计算量的上面取得更高的精度,文章也和model conpression进行了对比,从实验结果来看,效果也挺明显。HetConv可以和现有的网络结构结合,操作简单方便。

对于HeConv的实用性方面可能还需要时间来证明,毕竟理论计算量和实际情况还是有些差距,另外作者没有在detection、segmentation任务做实验,但从分类任务来说,缺少一定的可信度。希望尽快有开源实现。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值