标题&作者团队
大家好,我是Happy。
今天看到一篇非常有意思的文章:Tied Block Convolution,它也是一种轻量化卷积算子,但还算不上即插即用。为什么这么说呢?我理解的即插即用应该是不用对现有模块中其他地方进行任何改进,直接采用该模块替换卷积即可。显然,TBC是做不到的。
言归正传,我们先来看一下TB到底是何方神圣?
Method
TBC Formulation
在正式介绍TBC之前,我们先看一下卷积与组卷机的定义。假设输入特征为
,输出特征为
。卷积核尺寸表示为
,为描述的简单性,这里假设输入与输出的分辨率不变。
标准卷积(见上图a)定义如下:
其中,
表示卷积核。也就是说,参数量为
。
组卷积(见上图b)的则是将输入特征拆分为G个通道数相等的特征
,且每组共享卷积核参数,即组内为标准卷积,输出再进行concat拼接。组卷机的定义公式如下:
注:
表示concat操作,此时每组卷积核信息
,组卷积的整体参数量为
。
Tied Block Convolution (见上图c)是一种有效降低参数量的轻量算子,类似组卷积,它同样将输入特征进行分组,每组内部采用标准卷积进行操作;但不同于组卷积之处在于:组间参数共享。定义公式如下:
注:
。由于组间参数共享,TBC的参数量只有
。很明显,TBC是一种组间参数共享的组卷积。
你以为两者之间的异同就这么简简单单的完事了吗?NoNoNo!
- 相比组卷积,TBC具有更少的参数量;
- 组卷积需要G个
fragmentations
进行计算,而TBC仅需一个fragmentation
,这可极大的降低并行度。下图对比了GC与TBC在GPU端计算时不同分组数的耗时对比,很明显:TBC耗时几乎不随组数增加而变化,而GC则成线性关系。
image-20210515101116372
- TBC可以更好的建模跨通道相关性。由于GC每组滤波器仅作用于通道子集,因此难以进行跨通道全局建模;而TBC的滤波器可以作用于所有通道,故而可以更好的建模跨通道相关性。
- 在目标检测与实例分割任务上,基于TCB的TiedResNet显著优于基于GC的ResNeXt模型;TiedResNet-S甚至凭借更小的模型(2x)优于ResNeXt,证实了TiedResNet可以更有效的利用模型参数。
Tied Block Group Convolution 类似卷积到组卷积的过度,TBC也可以做成组TBC的形式:TGC,定义如下:
其中,
,G和B分别表示组卷积数与TBC数。
类似地,我们还可以构建Tied Block Fully Connected Layer,由于太简单了,略过吧。
TBC/TGC in Bottleneck Modules
上图给出了TGC、TBC在ResNet、ResNeXt以及ResNeSt中所构建的模块示意图。简单介绍如下:
- 对于ResNet与ResNeXt中的
部分,我们先进行分组,每组有各自的TBC/TGC。对于开头与结尾的
,开头部分替换为TBC(B=2),结尾部分不变。
- 对于ResNeSt,替换所有
卷积为TBC(B=2)。
默认配置信息:Tied-ResNet50(Tied-ResNeXt50)拆分为4个split且基础宽度为32/64,即
;Tied-ResNet-S(Tied-ResNeXt50-S)的配置则为
。
所提TiedBottleNeck可以带来1%的性能提升,然而跨通道集成确实会弱化模型性能,为补偿之,我们引入了mixer
融合多个split的输出,此时可以带来额外的0.5%性能提升。
TBC and TFC in Attention Modules
上图给出了TBC、TFC与注意力模块SE、GCB的组合示意图。这里只是简单地TBC、TFC在对应模块的替换,不再赘述。
Experiments
接下来,我们从图像分类、目标检测、实例分割三个任务上对所提方案进行验证。
ImageNet Classification
上表对比所提方案与其他基线模型的性能对比,可以看到:
- TiedResNet50-S取得了与ResNet50相当的性能,且仅需60%计算量、54%参数量;
- TiedNet50与TiedResNet101同样可以更少的参数量超越了其对应的基线模型,指标分别提升1.5%、1.4%;
- TiedResNeSt-50-S仅需59%参数量、82%的计算量取得了优于ResNeSt50的性能;
- TiedResNet50-S凭借相当的参数量、计算量超过了轻量化模型ShuffleNet50与GhostNet50.
Object Detection & Segmentation
上图给出了所提方案在目标检测方面的性能对比,可以看到:
- 以Cascade R-CNN、RetinaNet、Mask R-CNN作为基线模型,所提方案可以带来2%-2.5%指标提升;
- 以RetinaNet作为基线模型,所提方案TiedResNet101显著优于重度模型ResNeXt101-64x4d。
- 在轻量型方面,TiedResNet-S与TiedResNet相较同量级模型可以带来1.1%、2.1%性能提升;
- 无论基线检测器多强,我们总是可以看到TBC可以带来性能提升,这进一步说明了TBC的有效性。
上图a与上图b表明:ResNet会受遮挡影响,当
时,ResNet的
指标下降高达6%,而TiedResNet仅下降0.7%。类似地,随着遮挡比例增加,AP的直播啊提升从2.8%到5.9%。这意味着:TiedResNet具有极强的处理重叠实例的能力。上图c表明:TiedResNet具有更少的FP、更高的分割质量。
Lightweight Attention
上表给出了轻量型注意力模块方面的性能对比,从中可以看到:
- 当B=8时,TiedSE可以带来64倍参数量(仅针对注意力模块)下降,并取得相当性能;
- 无论是在SEResNet还是EfficientNet,所提TiedSE可以显著降低参数量且不会造成性能牺牲。