前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >轻量化卷积:TBC,不仅仅是参数共享组卷积,更具备跨通道建模

轻量化卷积:TBC,不仅仅是参数共享组卷积,更具备跨通道建模

作者头像
AIWalker
发布2021-05-24 10:52:36
7300
发布2021-05-24 10:52:36
举报
文章被收录于专栏:AIWalkerAIWalker

标题&作者团队

大家好,我是Happy。

今天看到一篇非常有意思的文章:Tied Block Convolution,它也是一种轻量化卷积算子,但还算不上即插即用。为什么这么说呢?我理解的即插即用应该是不用对现有模块中其他地方进行任何改进,直接采用该模块替换卷积即可。显然,TBC是做不到的。

言归正传,我们先来看一下TB到底是何方神圣?

Method

TBC Formulation

在正式介绍TBC之前,我们先看一下卷积与组卷机的定义。假设输入特征为

X \in R^{c_i \times h \times w}

,输出特征为

\tilde{X} \in R^{c_o \times h \times w}

。卷积核尺寸表示为

k\times k

,为描述的简单性,这里假设输入与输出的分辨率不变。

标准卷积(见上图a)定义如下:

\tilde{X} = X * W

其中,

W \in R^{c_o \times c_i \times k \times k}

表示卷积核。也就是说,参数量为

c_o \times c_i \times k \times k

组卷积(见上图b)的则是将输入特征拆分为G个通道数相等的特征

X_1, \cdots, X_G

,且每组共享卷积核参数,即组内为标准卷积,输出再进行concat拼接。组卷机的定义公式如下:

\tilde{X} = X_1 * W_1 \oplus X_2 * W_2 \oplus \cdots \oplus X_G * W_G

注:

\oplus

表示concat操作,此时每组卷积核信息

W_i \in R^{c_0/G \times c_i/G \times k \times k}, i =1,2,\cdots G

,组卷积的整体参数量为

G \times c_o/G \times c_i /G \times k \times k

Tied Block Convolution (见上图c)是一种有效降低参数量的轻量算子,类似组卷积,它同样将输入特征进行分组,每组内部采用标准卷积进行操作;但不同于组卷积之处在于:组间参数共享。定义公式如下:

\tilde{X} = X_1 * W^{'} \oplus X_2 * W^{'} \oplus \cdots \oplus X_B * W^{'}

注:

W^{'} \in R^{c_o/B \times c_i/B \times k \times k}

。由于组间参数共享,TBC的参数量只有

c_o/B \times c_i/B \times k \times k

。很明显,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,定义如下:

\tilde{X} = (X_{11} * W_1^{'} \oplus \cdots \oplus X_{1B}* W_1^{'}) \oplus \cdots \oplus (X_{G1} * W_G^{'} \oplus \cdots \oplus X_{GB}* W_G^{'})

其中,

W_g^{'} \in R^{c_o/{BG} \times c_i/{BG} \times k \times k}

,G和B分别表示组卷积数与TBC数。

类似地,我们还可以构建Tied Block Fully Connected Layer,由于太简单了,略过吧。

TBC/TGC in Bottleneck Modules

上图给出了TGC、TBC在ResNet、ResNeXt以及ResNeSt中所构建的模块示意图。简单介绍如下:

  • 对于ResNet与ResNeXt中的
3\times 3

部分,我们先进行分组,每组有各自的TBC/TGC。对于开头与结尾的

1\times 1

,开头部分替换为TBC(B=2),结尾部分不变。

  • 对于ResNeSt,替换所有
3\times 3

卷积为TBC(B=2)。

默认配置信息:Tied-ResNet50(Tied-ResNeXt50)拆分为4个split且基础宽度为32/64,即

4s\times32w(4s\times 64w)

;Tied-ResNet-S(Tied-ResNeXt50-S)的配置则为

4s\times 18w(4s\times36w)

所提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会受遮挡影响,当

r=0.8

时,ResNet的

AP^{0.75}

指标下降高达6%,而TiedResNet仅下降0.7%。类似地,随着遮挡比例增加,AP的直播啊提升从2.8%到5.9%。这意味着:TiedResNet具有极强的处理重叠实例的能力。上图c表明:TiedResNet具有更少的FP、更高的分割质量。

Lightweight Attention

上表给出了轻量型注意力模块方面的性能对比,从中可以看到:

  • 当B=8时,TiedSE可以带来64倍参数量(仅针对注意力模块)下降,并取得相当性能;
  • 无论是在SEResNet还是EfficientNet,所提TiedSE可以显著降低参数量且不会造成性能牺牲。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AIWalker 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Method
    • TBC Formulation
      • TBC/TGC in Bottleneck Modules
        • TBC and TFC in Attention Modules
        • Experiments
          • ImageNet Classification
            • Object Detection & Segmentation
              • Lightweight Attention
              相关产品与服务
              图像识别
              腾讯云图像识别基于深度学习等人工智能技术,提供车辆,物体及场景等检测和识别服务, 已上线产品子功能包含车辆识别,商品识别,宠物识别,文件封识别等,更多功能接口敬请期待。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档