论文深入分析了inverted residual block的设计理念和毛病,提出更适宜轻量级网络的sandglass block,基于该构造搭建的MobileNext。依据论文的试验后果,MobileNext在参数量、计算量和准确率上都有更优的体现,惟一遗憾的是论文没有列出在设施上的理论用时,如果补充一下更好了

起源:晓飞的算法工程笔记 公众号

论文: Rethinking Bottleneck Structure for Efficient Mobile Network.pdf

  • 论文地址:https://arxiv.org/abs/2007.02269
  • 论文代码:https://github.com/zhoudaquan/rethinking\_bottleneck\_design

Introduction

***

 在介绍MobileNext前,先回顾一下bottleneck构造:

  • Residual block with bottleneck structure,蕴含两个$1\times 1$卷积层用于维度的升高和扩充,以及两头的$3\times 3$卷积用于提取特色,如图2a。这个构造不适用于轻量级网络,因为两头的$3\times 3$卷积的参数量和计算量都十分大。
  • Depthwise separable convolutions,为了解决规范卷积带来的参数量和计算量问题,将其合成为depthwise卷积和pointwise卷积,前者用于提取单维度的特色,后者用于线性组合多维度特色,大幅升高了计算量和参数量。
  • Inverted residual block,专为挪动设备设计,为了节俭计算量,输出改为低维度特色,先通过pointwise卷积扩充维度,而后通过depthwise卷积提取特色,最初通过pointwise卷积升高维度输入,如图2b。这里有两点不影响准确率的性能改良:1)skip path仅建设在低维度bottleneck间。2)最初一个pointwise卷积不须要非线性激活。

 只管Inverted residual block性能不错,但两头须要将特色先降到较低的维度,会导致以下几个问题:

  • 升高维度可能不足以保留足够的有用信息。
  • 近期有钻研发现更宽的网络结构有助于缓解梯度混同(不同batch产生的梯度对消),可能晋升网络性能。
  • shortcut建设在bottleneck之间,因为bottleneck维度较少,也可能会妨碍梯度的回传。

 为了解决上述问题,论文提出了设计更优的sandglass block,构造如图3c,基于此搭建了MobileNeXt,在性能和计算量上都优于MobileNetV2。

 论文的次要奉献如下:

  • 从新思考挪动网络的bottleneck构造,发现inverted residual并不是最优的bottleneck构造。
  • 钻研发现,shortcut应该建设在高维度特色上,depthwise卷积应该利用在高维度特色空间上学习更多样特色,linear residual是bottleneck构造的要害。
  • 基于上述发现提出sandglass block,更适宜挪动网络的搭建。

Method

***

Sandglass Block

 Sandglass Block的设计外围次要基于以下两个想法,也是与其余轻量级构造的次要区别:

  1. 为了更好地保留信息的传递和梯度的回传,shortcut该当建设在高维度特色之间。
  2. 卷积核较小的depthwise卷积是轻量的,可用于对高维度特色进行进一步的特征提取。
  3. Rethinking the positions of expansion and reduction layers inverted residual block先进行维度扩大,最初再进行缩减,依据设计外围将两个pointwise卷积的程序调换。定义sandglass block的输出和输入为$F\in \mathbb{R}^{D\_f\times D\_f\times M}$和$G\in \mathbb{R}^{D\_f\times D\_f\times M}$,则维度变动可示意为:

 $\phi\_e$和$\phi\_r$为用于维度扩大和缩减的pointwise卷积。这样的设计将bottleneck放弃在residual path两头可能缩小参数量和计算量,最重要的是,能将shortcut建设在维度较大的特色上。

  • High-dimensional shortcuts shortcut不再连贯低维度的bottleneck,而是连贯维度较高的$F$和$G$。可能更好地传递信息和回传梯度。
  • Learning expressive spatial features

 pointwise卷积只能捕获通道间特色,不足空间特色的捕获能力。能够像inverted residual block那样两头应用depthwise卷积来显示地提取空间特色,如图3a所示。但因为sandglass block两头是bottleneck,两头增加的depthwise卷积的卷积核数量很少,只能捕获大量空间信息。通过试验也发现,这样设计的准确率会比MobileNetV2降落1%。

 因而,sandglass block将depthwise卷积置于residual path的结尾和结尾,如图3b所示,可示意为:

 $\phi_{i,p}$和$\phi_{i,d}$代表$i$个pointwise卷积和depthwise卷积。比照inverted residual block,因为当初depthwise卷积的输出为高维度特色,能够提取更丰盛的空间信息。

  • Activation layers 有钻研发现,应用线性bottleneck可能避免特征值变为零,缩小信息失落。依据这一倡议以及试验后果,sandglass block仅在第一个depthwise卷积前面和第二个pointwise卷积前面增加激活层,其余的均不增加。
  • Block structure

 sandglass block的构造如表1所示,当输出和输入维度不一样时,不增加shortcut,depthwise卷积采纳$3\times 3$卷积核,在须要的中央采纳BN+ReLU6的组合。

MobileNeXt Architecture

 基于sandglass block,构建了如表2所示的MobileNeXt,结尾是32维输入的卷积,后续是sandglass block的重叠,最初是全局均匀池化,将二维的特色图压缩为一维,最初再由全连贯层输入每个类别的分数。

  • Identity tensor multiplier 只管shortcut连贯有助于梯度的回传,但论文通过试验发现,其实不须要放弃残缺的特色去跟residual path联合。为了让网络对挪动设施更敌对,论文提出超参数identity tensor multiplier $\alpha\in0,1$,用于管制shortcut传递的特色维度。undefined 定义$\phi$为residual path的转换函数,原来的residual block计算可示意为$G=\phi(F)+F$,加上超参数后,residual block变为:

 下标代表通道,应用较小的$\alpha$有两个益处:

  • 耗时的element-wise addition的计算将会缩小。
  • 耗时的内存拜访(MAC)将缩小,另外因为须要缓存的tensor变小了,有助于将其缓存在高速内存中,能够进一步减速。

Experiment

***

 与MobileNetV2在ImageNet上进行比照。

 与其余网络在ImageNet上进行比照。

 不同identity tensor multiplier的比照。

 作为检测网络的骨干网络的比照。

Conclustion

***

 论文深入分析了inverted residual block的设计理念和毛病,提出更适宜轻量级网络的sandglass block,基于该构造搭建的MobileNext。sandglass block由两个depthwise卷积和两个pointwise卷积组成,局部卷积不需激活以及shorcut建设在高维度特色上。依据论文的试验后果,MobileNext在参数量、计算量和准确率上都有更优的体现,惟一遗憾的是论文没有列出在设施上的理论用时,如果补充一下更好了。

如果本文对你有帮忙,麻烦点个赞或在看呗~undefined更多内容请关注 微信公众号【晓飞的算法工程笔记】