论文深入分析了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×11\times 11×1卷积层用于维度的降低和扩大,以及中间的3×33\times 33×3卷积用于提取特征,如图2a。这个结构不适用于轻量级网络,因为中间的3×33\times 33×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卷积是轻量的,可用于对高维度特征进行进一步的特征提取。
  • Rethinking the positions of expansion and reduction layers

 inverted residual block先进行维度扩展,最后再进行缩减,根据设计核心将两个pointwise卷积的顺序互换。定义sandglass block的输入和输出为F∈RDf×Df×MF\in \mathbb{R}^{D_f\times D_f\times M}F∈RDf​×Df​×M和G∈RDf×Df×MG\in \mathbb{R}^{D_f\times D_f\times M}G∈RDf​×Df​×M,则维度变化可表示为:

 ϕe\phi_eϕe​和ϕr\phi_rϕr​为用于维度扩展和缩减的pointwise卷积。这样的设计将bottleneck保持在residual path中间能够减少参数量和计算量,最重要的是,能将shortcut建立在维度较大的特征上。

  • High-dimensional shortcuts

 shortcut不再连接低维度的bottleneck,而是连接维度较高的FFF和GGG。能够更好地传递信息和回传梯度。

  • Learning expressive spatial features

 pointwise卷积只能捕捉通道间特征,缺乏空间特征的捕捉能力。可以像inverted residual block那样中间使用depthwise卷积来显示地提取空间特征,如图3a所示。但由于sandglass block中间是bottleneck,中间添加的depthwise卷积的卷积核数量很少,只能捕捉少量空间信息。通过实验也发现,这样设计的准确率会比MobileNetV2下降1%。
 因此,sandglass block将depthwise卷积置于residual path的开头和结尾,如图3b所示,可表示为:

 ϕi,p\phi_{i,p}ϕi,p​和ϕi,d\phi_{i,d}ϕi,d​代表iii个pointwise卷积和depthwise卷积。对比inverted residual block,由于现在depthwise卷积的输入为高维度特征,可以提取更丰富的空间信息。

  • Activation layers

 有研究发现,使用线性bottleneck能够防止特征值变为零,减少信息丢失。根据这一建议以及实验结果,sandglass block仅在第一个depthwise卷积后面和第二个pointwise卷积后面添加激活层,其余的均不添加。

  • Block structure

 sandglass block的结构如表1所示,当输入和输出维度不一样时,不添加shortcut,depthwise卷积采用3×33\times 33×3卷积核,在需要的地方采用BN+ReLU6的组合。

MobileNeXt Architecture

 基于sandglass block,构建了如表2所示的MobileNeXt,开头是32维输出的卷积,后续是sandglass block的堆叠,最后是全局平均池化,将二维的特征图压缩为一维,最后再由全连接层输出每个类别的分数。

  • Identity tensor multiplier

 尽管shortcut连接有助于梯度的回传,但论文通过实验发现,其实不需要保持完整的特征去跟residual path结合。为了让网络对移动设备更友好,论文提出超参数identity tensor multiplier α∈[0,1]\alpha\in[0,1]α∈[0,1],用于控制shortcut传递的特征维度。
 定义ϕ\phiϕ为residual path的转换函数,原来的residual block计算可表示为G=ϕ(F)+FG=\phi(F)+FG=ϕ(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在参数量、计算量和准确率上都有更优的表现,唯一遗憾的是论文没有列出在设备上的实际用时,如果补充一下更好了。



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

MobileNext:打破常规,依图逆向改造inverted residual block | ECCV 2020相关推荐

  1. MobileNet v2中 Inverted Residual 和 Linear Bottleneck 是怎么回事

    MobileNet v2中 Inverted Residual 和 Linear Bottleneck 是怎么回事 flyfish MobileNet v1的深度可分离卷积 Block的结构 先从Mo ...

  2. v-chart折线图数据改造

    v-chart折线图数据改造 事件缘由 事件缘由 最近因为要做的项目当中需要用的折线图, 使用的框架中引用了v-chart, 可是因为后台返回的数据格式和 v-chart 所需的数据格式不同,出来的折 ...

  3. Mobile Inverted Residual Bottleneck Block图解

    一.背景 Mobile Inverted Residual Bottleneck Block,又称作移动可翻转卷积块,在EfficienetNet模型中有所使用,其将残差结构和注意力进行了结合. 二. ...

  4. residual block、bottleneck、skip connection……都是些什么?

      最近在看论文的时候,总是时不时会看到residual block.bottleneck.skip connection等术语,于是花了点时间找了几篇高质量的问答贴看了一下(链接附在本文末尾),并将 ...

  5. ResNet(残差网络模型)原理解读-包括residual block与BN原理介绍

    <Deep Residual Learning for Image Recognition> <Identity Mappings in Deep Residual Networks ...

  6. 腾讯优图8篇论文入选ECCV 2020,涵盖目标检测/跟踪/Re-ID/人脸等领域

    点击上方"视学算法",选择加"星标"置顶 重磅干货,第一时间送达 本文转载自:腾讯优图 近日,计算机视觉方向的三大国际顶级会议之一的ECCV 2020公布论文获 ...

  7. ECCV 2020 | 腾讯优图8篇论文入选,涵盖目标跟踪、行人重识别、人脸识别等领域...

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要10分钟 Follow小博主,每天更新前沿干货 来源:腾讯优图 近日,计算机视觉方向的三大国际顶级会议之一的ECCV 2020公布论文获奖结果 ...

  8. 1DCNN添加Residual Block, python代码实现及讲解

    注:以下代码基于jupyter notebook编辑器,pytorch 以下为Residual block示意图 接下来将实现左边的示意图 构建一个 ResNet_basic_block类 impor ...

  9. 用于时序动作提名生成任务,爱奇艺提出BC-GNN图神经网络 | ECCV 2020

    时序动作提名生成任务可以从未处理的长视频中定位出包含动作内容的片段,对视频理解以及时序行为检测任务等有着重要的作用.随着视频数量的激增以及视频内容的丰富,对时序动作提名算法的关注和需求也得到巨大提升. ...

  10. 华为诺亚、北大提出GhostNet​,使用线性变换生成特征图,准确率超MobileNet v3 | CVPR 2020...

    作者 | Kai Han, Yunhe Wang等 编译 | Conv 出品 | AI科技大本营(rgznai100) 受限于内存空间和计算资源,将卷积神经网络部署到嵌入式设备中会比较困难.CNNs中 ...

最新文章

  1. AI大觉醒:图灵奖得主Bengio称AI将产生意识,未来机器学习核心是注意力机制
  2. java future 线程 状态_手把手带你了解Java线程的实现方式及生命周期原理
  3. 支持向量机svm的完整实现并配有解析
  4. 孙鑫VC视频学习笔记一
  5. halcon知识:hough变换检出图像的直线
  6. Python(10):类
  7. 启动wcc显示本地服务器失败,cwrsync server 服务启动失败的解决方法小结
  8. 记录|斐讯K2拆机使用ttl刷入breed并刷入新固件
  9. 2019中兴捧月·总决赛心得
  10. 谷歌身份验证器(Google Authenticator)的使用详情
  11. oracle含有特殊字符查询,Oracle特殊字符查询
  12. 车载吸尘器方案-无刷马达运用2
  13. Acwing-4454. 未初始化警告
  14. spring应用手册-IOC(XML配置实现)-(8)-bean中的scop属性
  15. HI3559算法移植之OpenCV图像拼接、配准和图像融合技术(四)
  16. vc++之oncreate
  17. 一个月薪5k+的广州安全服务实习生的真实生活
  18. Burp抓不了或者抓不全本地的包
  19. 计算机专业可以考天文学研究生吗,天文学专业强势高校来袭 看似冷门考生却挤破头都想去...
  20. git add .添加文件时报错 error: ‘fileName/‘ does not have a commit checked out 解决方法

热门文章

  1. Milvus 2.1 版本更新 - 简单可信赖、性能持续提升
  2. LoadBalancer 负载均衡
  3. sklearn之make_blobs:产生数据集
  4. 小蜜蜂吉他谱 高八度和低八度
  5. IMRAM: Iterative Matching with Recurrent Attention Memory for Cross-Modal Image-Text Retrieval
  6. JavaScript数组扁平化
  7. 对等商务_对等| 第2部分
  8. vs打开别人cpp_和女朋友定了间主题酒店,结果打开门后崩溃了...哈哈哈哈哈照片xswl!...
  9. MySQL8下载安装卸载教程
  10. 如何用计算机蓝牙发送文件,电脑怎么利用蓝牙使手机和电脑互传文件