MobileNext:打破常规,依图逆向改造inverted residual block | ECCV 2020
论文深入分析了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的设计核心主要基于以下两个想法,也是与其他轻量级结构的主要区别:
- 为了更好地保留信息的传递和梯度的回传,shortcut应当建立在高维度特征之间。
- 卷积核较小的depthwise卷积是轻量的,可用于对高维度特征进行进一步的特征提取。
- 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更多内容请关注 微信公众号【晓飞的算法工程笔记】

MobileNext:打破常规,依图逆向改造inverted residual block | ECCV 2020的更多相关文章
- Neural Network模型复杂度之Residual Block - Python实现
背景介绍 Neural Network之模型复杂度主要取决于优化参数个数与参数变化范围. 优化参数个数可手动调节, 参数变化范围可通过正则化技术加以限制. 本文从优化参数个数出发, 以Residual ...
- 图书管理系统(Java实现,十个数据表,含源码、ER图,超详细报告解释,2020.7.11更新)
图书管理系统数据库设计实验报告 文章目录 更新日志 1.概述 2.需求分析 2.1需要实现的功能 2.2业务流程图 2.2.1学生流程图 2.2.2管理员流程图 2.2.3超级管理员流程图 2.3功能 ...
- [论文阅读]MobileNetV2: Inverted Residuals and Linear Bottlenecks
0. 本文贡献点 本文的主要贡献点是一个构造了一个结构,称为the inverted residual with linear bottleneck.该结构与传统的residual bloc ...
- 论文-MobileNetV2: Inverted Residuals and Linear Bottlenecks
1.主要创新 1)提出了一种新的layer module:the inverted residual with linear bottleneck, 2)short connect被置于bottlen ...
- TensorFlow从1到2(九)迁移学习
迁移学习基本概念 迁移学习是这两年比较火的一个话题,主要原因是在当前的机器学习中,样本数据的获取是成本最高的一块.而迁移学习可以有效的把原有的学习经验(对于模型就是模型本身及其训练好的权重值)带入到新 ...
- (原)MobileNetV2
转载请注明出处: https://www.cnblogs.com/darkknightzh/p/9410574.html 论文: MobileNetV2: Inverted Residuals and ...
- MovibleNet
MobileNet MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications MobileN ...
- 【小白学PyTorch】13 EfficientNet详解及PyTorch实现
参考目录: 目录 1 EfficientNet 1.1 概述 1.2 把扩展问题用数学来描述 1.3 实验内容 1.4 compound scaling method 1.5 EfficientNet ...
- CNN结构演变总结(二)轻量化模型
CNN结构演变总结(一)经典模型 导言: 上一篇介绍了经典模型中的结构演变,介绍了设计原理,作用,效果等.在本文,将对轻量化模型进行总结分析. 轻量化模型主要围绕减少计算量,减少参数,降低实际运行时间 ...
- 卷积神经网络学习笔记——轻量化网络MobileNet系列(V1,V2,V3)
完整代码及其数据,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/DeepLearningNote 这里结合网络的资料和Mo ...
随机推荐
- Swoole从入门到入土(15)——WebSocket服务器[初步接触]
WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议.换句话说,Websocket让web可以与服务端实现长连接. 在Swoole中,通过内置的 WebSock ...
- 分享一个Github相关彩蛋
楼上很多回答 都是基于手把手实操Github.Git源代码管理相关, 这些操作"无他,唯手熟尔". 今天提供一个github上阅读源码的小技巧,逆天级别的彩蛋. 要想成为大神,Gi ...
- windows 上 ffmpeg 库的安装
真复杂啊 安装 ffmpeg 库有两种途径,一种是自己下载源码再去编译,另一种是使用 vcpkg 自动安装 一般情况下,第二种是最简单方便的,但是如果你需要使用 ffmpeg 的特定历史版本,那就有点 ...
- [BUUCTF][Web][HCTF 2018]WarmUp 1
这题已经标识为php 代码审计题,那么需要搞到源码才行 打开靶机对应的url,展示的是一张笑脸图片 右键查看网页源代码 <!DOCTYPE html> <html lang=&quo ...
- centos7.x及centos8.x安装新版docker
前置步骤 # 如之前安装过docker,请先删除 yum remove docker docker-common docker-selinux docker-engine centos7 # cent ...
- 【MySQL】数据库设计(一)三大范式
三大范式 1NF 第一范式 强调列的原子性,即列不可分 例如: 2NF 第二范式 前提是1NF,另外包含两个部分: 表必须具有一个主键: 没有包含在主键中的列必须完全依赖于主键,而不是只依赖主键的一部 ...
- 【Azure 环境】移动应用 SSO 登录AAD, MSAL的配置为Webview模式时登录页面无法加载
问题描述 移动端集成MASL登录过程中,配置文件中配置项"authorization_user_agent"使用"DEFAULT"可以正常登录,但是改为&quo ...
- 【Azure Redis 缓存】Azure Redis加入VNET后,在另一个区域(如中国东部二区)的VNET无法访问Redis服务(注:两个VNET已经结对,相互之间可以互ping)
问题描述 为了保护Redis资源,把它与VNET集成后,实现只能通过VNET内网访问.在东二的区域中部署两个Redis服务后,发现一个奇怪的现象:东1区中的VM资源通过全局对等互联(Peering)实 ...
- dart特殊符号语法(一)
许久没有写博客.浏览以往的博客,是那么稚嫩.就让它们当成成长的照片吧.重新开始操起这个记录的爱好,一方面把它当成可以查阅的资料,方便自己:另一方面希望有帮助于人.由于个人能力,认知有限,如读者发现有纰 ...
- 可视化学习:使用WebGL实现网格背景
前言 作为前端开发人员,我们最关注的就是应用的交互体验,而元素背景是最基础的交互体验之一.一般而言,能够使用代码实现的界面,我们都会尽可能减少图片的使用,这主要是有几方面的原因,第一,是图片会消耗更多 ...