文章来源于极市平台,作者Happy

导语:该文是依图科技&新加坡国立大学颜水成团队提出的一种对标MobileNetV2的网络架构MobileNeXt。它针对MobileNetV2的核心模块逆残差模块存在的问题进行了深度分析,提出了一种新颖的SandGlass模块,并用于组建了该文的MobileNeXt架构,SandGlass是一种通用的模块,它可以轻易的嵌入到现有网络架构中并提升模型性能。该文应该是近年来为数不多的优秀终端模型了,推荐指数五颗星。

paper: https://arxiv.org/abs/2007.02269

code: https://github.com/zhoudaquan/rethinking_bottleneck_design(未开源)

Abstract

截止目前,逆残差模块已成为手机端网络架构设计的主流架构。它通过引入两个主要的设计规则(1.逆残差学习;2.线性瓶颈层)对经典的残差瓶颈模块进行了改变。

该文作者对这种设计模式改变的必要性进行了重思考,发现:这种设计模块可能导致信息损失与梯度混淆。鉴于此,作者提出对该结构进行镜像并提出一种新颖的瓶颈模块,称之为SandGlass Block,它在更高维度进行恒等映射与空间变换,因此可以有效的缓解信息损失与梯度混淆。

作者通过实验证实:所提模块比已有的逆残差模块更有效。在ImageNet分类任务中,通过简单的模块替换(即采用SandGlass 替换MobileNetV2中的InvertedResidualBlock),即可取得了1.7%的性能提升,且不会导致额外的参数量与计算量提升;在VOC2007测试集上,可以按到目标检测指标的0.9%mAP的提升。

与此同时,作者将所提模块嵌入到NAS方法(DARTS)搜索空间中,可以取得了0.13%的性能提升且参数量降低25%。

Method

下图给出了目前CNN网络架构常用的两种主流模块与本文所提的模块:

  • Bottleneck,见下图a,它包含两个1x1卷积(分别进行降维与升维)与一个3x3卷积(用于空间信息变换),它是一种heavy-weight模块;

  • Inverted Residual Block,见下图b,它包含两个1x1卷积(分别进行升维与降维)与一个3x3深度卷积(用于空间信息变换),它是一种light-weight模块。

  • SandGlass,见上图c,整体形势上它与Bottlneck比较类似,但它引入了深度卷积降低计算量,更多描述见下文。

SandGlass

已有研究表明:(1) 更宽的网络有利于缓解梯度混淆问题并有助于提升模型性能;(2)逆残差模块中的短连接可能会影响梯度回传。

考虑到上述逆残差模块的局限性,作者对其设计规则进行重思考并提出了SandGlass模块缓解上述问题。该模块的设计主要源自如下几点分析:

  • 保持更多的信息从bottom传递给top层,进而有助于梯度回传;

  • 深度卷积是一种轻量型单元,可以执行两次深度卷积以编码更多的空间信息。

基于上述分析,作者从以下几个方面进行了模块的精心设计(最终设计的模块见上图)。

  • Position of Expansion and Reduction. 在原始的逆残差模块中先进行升维再进行降维。基于前述分析,为确保高维度特征的短连接,作者对两个1x1卷积的顺序进行了调整。假设表示输入张量,表示输出张量(注:此时尚未考虑深度卷积),那么该模块的可以写成如下形式,见上图b中的中间两个1x1卷积。

  • High-dimensional Shortcut. 作者并未在瓶颈层间构建短连接,而是在更高维特征之间构建短连接,见上图b。更宽的短连接有助于更多的信息从输入F传递给输出G,从而有更多的梯度回传。

  • Learning expressive spatial features. 1x1卷积有助于编码通道间的信息,但难以获取空间信息,因此,在这里作者沿着逆残差模块的思路引入深度卷积编码空间信息。不同于逆残差模块在两个1x1卷积之间引入深度卷积,作者认为1x1卷积导致了减少的空域信息编码,因此将深度卷积置于两个1x1卷积之外,见上图b中的两个3x3深度卷积。该模块可以采用如下公式进行描述:

其中分别表示1x1卷积与深度卷积。从而确保了深度卷积在高维空间处理并得到更丰富的特征表达。

  • Activation Layer. 已有研究表明:线性瓶颈层有助于避免特征出现零化现象,进而导致信息损失。基于此,作者在用于降维的1x1卷积后不添加激活函数。同时最后一个深度卷积后也不添加激活函数,激活函数今天加第一个深度卷积与最后一个1x1卷积之后。

  • Block Structure. 基于上述考虑,我们得到了该文所设计的新颖的残差瓶颈模块,结构如下表与上图b所示。注:当输入与输出通道数不相同时不进行短连接操作。

MobileNeXt Architecture

前面已经对该文所提到的SandGlass模块进行了详细介绍说明,那么接下来就是如何利用上述模块构建网路架构了。作者将上述模块构建的网络架构称之为MobileNeXt(是为了对标MobileNet吗?哈哈)。MobileNeXt的详细配置信息见下表。注:SandGlass中的扩展比例与MobileNetV2中的相同,均为6.

Identity tensor multiplier

已有研究表明:残差模块中的短连接有助于梯度跨层传播。但是,作者通过实验发现:没有必要保持全局恒等tensor与残差分支组合。为使得该网络更适合于手机端,作者引入了一个新的超参数:identity tensor multiplier,表示为。为简单起见,我们假设表示残差分支的变换函数,那么添加该超参数后的模块可以重写为:

这里引入的超参数有两个作用:

  • 通过降低该超参数,每个模块中的add数量可以进一步降低,因为add操作会占用不少耗时。用户可以选择更少的以得到更好的推理速度且性能几乎无影响;

  • 可以降低内存访问时间。影响模型推理的一个重要因素是:内存访问消耗(Memory acces cost, MAC)。降低该超参数有助于减少cache占用,进而加速推理。更多分析见实验部分。

Experiments

为说明所提方案的有效性,作者在ImageNet与VOC数据集上进行了实验分析。在模型训练过程中,优化器为SGD(momentum=0.9,weight_decay=),初始学习率为0.05,cosine方式衰减,BatchSize=256,4个GPU。如无特殊说明,模型总计训练200epoch。

Comparsions with MobileNetV2

下表给出了所提方法与MobileNetV2在不同参数量下的性能对比。可以看到:(1) 所提方法在参数量和精度方面均优于MobileNetV2;(2) 模型越小,所提方法优势越明显。

下表给出了所提方法在添加后训练量化后的性能对比。可以看到:后训练量化对于MobileNet的精度影响非常大,而所提方法经量化后性能差异进一步拉大。产生这种现象的原因有两点:(1) 相比MobileNetV2,所提方法将短连接有瓶颈区域移到了高维区域,经由量化,跟过的信息得以保留;(2) 采用更多的深度卷积有助于保留更多的空域信息,而空域信息有助于分类性能提升。

为更好的说明所提模块有效性,作者将MobileNetV2的卷积数提升到与SandGlass相同。实验结果见下表。尽管添加了额外的深度卷积有确实提升了模型性能,但仍比所提方法的性能低1%,而且MobileNetV2添加额外的深度卷积还导致了参数量与计算量的增加。

此外,作者还给出了所提方法与其他SOTA方法的性能对比,见下表。注:为更好的说明所提方法的优越性,作者还额外引入了SE模块。

下表给出了超参数不同配置时的模型性能对比,注:硬件平台为Google Pixel 4XL手机,Pytorch导出模型。可以看到随着该超分数的酱烧,推理速度有提升,且性能无显著下降。此外,作者还提到,在Pixel 4XL平台,TF-Lite推理框架下,MobileNeXt的推理速度为66ms,MobileNetV2的推理速度为68ms(可能这里的模型进行了量化,作者原文并未细说)。

Object Detection

为探索所提方案的迁移性能,作者在目标检测任务上进行了更多的实验分析,结果见下表。相比MobileNetV2,所提方法作为Backbone时的性能可以提升0.09mAP。

Combine with NAS

为更好说明所提方案的有效性,作者还将其与NAS相结合,将该模块为作为NAS网络的搜索空间。相关结果见下表。关于NAS所得网路架构建议查看原文的supp部分内容。

好了,全文核心内容到此结束。对此感兴趣的小伙伴建议去看原文,虽然这里已经将文章核心介绍清楚了,但实验部分的分析还是建议查看原文。

Conclusion

该文对逆残差模块中的设计规则与缺陷进行了深度分析,并基于分析结果提出一种新颖的称之为SandGlass的模块。它打破了传统残差模块的设计思想并着重说明了高维度特征进行短连接的重要。最后作者通过实验在分类、检测以及NAS方面论证了所提方案的有效性。

◎作者档案

Happy,一个爱“胡思乱想”的AI行者

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑获取一折本站知识星球优惠券,复制链接直接打开:https://t.zsxq.com/yFQV7am本站qq群1003271085。加入微信群请扫码进群:

【论文解读】打破常规,逆残差模块超强改进,新一代移动端模型MobileNeXt来了!精度速度双超MobileNetV2...相关推荐

  1. 打破常规,逆残差模块超强改进,新一代移动端模型MobileNeXt来了!精度速度双超MobileNetV2

    原文链接:打破常规,逆残差模块超强改进,新一代移动端模型MobileNeXt来了!精度速度双超MobileNetV2 导语:该文是依图科技&新加坡国立大学颜水成大佬团队提出的一种对标Mobil ...

  2. 【论文解读】突破置换模块计算瓶颈,MSRA开源轻量版HRNet,超越主流轻量化网络!|CVPR2021...

    作者丨happy 审稿丨邓富城 编辑丨极市平台 极市导读 本文从HRNet与轻量化网络ShuffleNet的组合出发,针对置换模块存在的计算瓶颈问题,提出了一种高效条件通道加权单元替换1x1卷积,并得 ...

  3. 微软论文解读:用于视觉对话的多步双重注意力模型

    作者丨张琨 学校丨中国科学技术大学博士生 研究方向丨自然语言处理 论文动机 当前 Visual dialog 模型尽管已经取得了令人印象深刻的表现,但当问题涉及到图像的特定区域或者比较细节的对话片段时 ...

  4. 【目标检测论文解读复现NO.27】基于改进YOLOv5的螺纹钢表面缺陷检测

    前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文,帮 ...

  5. 【目标检测论文解读复现NO.25】基于改进Yolov5的地铁隧道附属设施与衬砌表观病害检测方法

    前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文,帮 ...

  6. 目标检测论文解读复现【NO.24】改进 YOLOv5s 的轨道障碍物检测模型轻量化研究

    前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标检测算法论文,帮 ...

  7. ECCV2020最佳论文解读之递归全对场变换(RAFT)光流计算模型

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 计算机视觉三大国际顶级会议之一的 ECCV 2020 已经召开.今年 ECCV 共收到有效投稿 502 ...

  8. raft2020年更新_ECCV2020最佳论文解读之递归全对场变换(RAFT)光流计算模型

    计算机视觉三大国际顶级会议之一的 ECCV 2020 已经召开.今年 ECCV 共收到有效投稿 5025 篇,是 ECCV 2018 论文投稿数量的二倍还要多,接收论文1361 篇,接收率为 27%, ...

  9. 直播 | CIKM 2021论文解读:基于广群的知识图谱表示学习统一模型框架

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

最新文章

  1. Numpy生成二项分布随机数
  2. intellij_使用IntelliJ ..已经2周了,到目前为止还算不错
  3. Linux中安装配置hadoop集群
  4. 将h5用HBuilderX打包成安卓app后,document.documentElement.scrollTop的值始终为0或者document.body.scrollTop始终为0...
  5. 泛型委托Action与ActionT
  6. 阿里研究员:警惕软件复杂度困局
  7. 从零开始学python人工智能课程_从零开始如何学习人工智能?
  8. 这才是程序员春运抢票的正确姿势!
  9. hadoop的基本搭建
  10. 收集小型机snap日志文件步骤
  11. python结巴分词下载_jieba: 结巴中文分词做最好的Python分词组件
  12. 分布式集群中大数据的中位数
  13. 关于STC单片机“假死”状态的判别和处理方法
  14. (十四)商品详情页实现
  15. 纳什效率系数与可决系数的差异
  16. 1-5 Minecraft-Forge-1.16.5 Mod的开发(创建属于你的武器与工具)
  17. 如何打造企业短视频账号的人设?
  18. 登录学习通报错:浏览器没有开启cookie功能
  19. 3PAR SSMC管理平台更新3.8.3.0.26
  20. LeetCode:14. Longest Commen Prefix(Easy)

热门文章

  1. 用80386汇编来编写asp.net页面。
  2. 白话SpringCloud | 第五章:服务容错保护(Hystrix)
  3. P4513 小白逛公园 (线段树)
  4. Centos6.x搭建lnmp环境
  5. Android项目笔记整理(1)
  6. C51端口结构和工作原理(转)
  7. 用数据驱动思想来设计游戏-读《游戏编程精粹1》
  8. beanshell变量无法传到jmeter_学会BeanShell,才敢说自己懂Jmeter
  9. C++之 static 关键字
  10. 在学术发展上,不论困难与否,应该给自己一个清晰定位