Abstract

  • 我们介绍了一种名为ShuffleNet的极其计算高效的CNN架构,该架构专为计算能力非常有限的移动设备而设计。新架构采用了两种新的操作,逐点组卷积和通道切换,大大降低了计算成本,同时保持了准确性。ImageNet分类和MS COCO物体检测的实验证明了ShuffleNet优于其他结构的优越性能,例如: 在40MFLOP的计算预算下,其在ImageNet分类任务中比MobileNet的TOP-1(绝对7.8%)的错误率还低。在基于ARM的移动设备上,ShuffleNet实现了比AlexNet大约13倍的实际加速,同时保持了相当的精度。

Introduction

  • 构建越来越大的卷积神经网络(CNN)是解决主要视觉识别任务的主要趋势。最准确的CNN通常具有数百个层和数千个通道,因此需要以数十亿Flops计算。本报告研究了相反的极端:在数十或数百MFLOP的非常有限的计算预算中追求最佳精度,专注于无人机,机器人和智能手机等常见移动平台。请注意,许多现有工作集中在表示“基本”网络架构的修剪,压缩或低位。 在这里,我们的目标是探索一种高效的基本架构,专为我们所需的计算范围而设计。
  • 我们注意到最先进的基本架构,如Xception和ResNeX在极小的网络中变得不那么有效,因为昂贵的密集1×1卷积。我们建议使用逐点组卷积来降低1×1卷积的计算复杂度。 为了克服群体卷积带来的副作用,我们提出了一种新颖的渠道shuffle操作来帮助跨越特征通道的信息。 基于这两种技术,我们构建了一个名为ShuffleNet的高效架构。 与流行结构相比,对于给定的计算复杂度预算,我们的ShuffleNet允许更多的特征映射通道,这有助于编码更多信息,对于非常小的网络的性能尤其重要。
  • 我们根据具有挑战性的ImageNet分类和MS COCO物体检测任务评估我们的模型。 一系列对照实验表明了我们的设计原则的有效性以及比其他结构更好的性能。与最先进的架构MobileNet相比,ShuffleNet以显着的优势实现了卓越的性能,例如: 在40 MFLOP级别下,ImageNet top-1错误绝对降低7.8%。

Related Work

  • 最近几年,深度神经网络在计算机视觉任务中取得了成功[21,36,28],其中模型设计起着重要作用。在嵌入式设备上运行高质量深度神经网络的需求日益增长,这促进了对高效模型设计的研究。例如,与简单地堆叠卷积层相比,GoogLeNet [33]以更低的复杂度增加了网络的深度。 SqueezeNet [14]在保持精度的同时显着降低了参数和计算量。 ResNet [9,10]利用高效的瓶颈结构来实现令人印象深刻的性能。SENet [13]引入了一种架构单元,可以以较低的计算成本提升性能。
  • 组合卷积的概念首先在AlexNet [21]中引入,用于在两个GPU上分布模型,已经很好地证明了它在ResNeXt中的有效性[40]。 Xception [3]中提出的深度可分卷积概括了初始序列[34,32]中可分离卷积的思想。 最近,MobileNet [12]利用深度可分离卷积并在轻量级模型中获得最先进的结果。 我们的工作以一种新颖的形式概括了群卷积和深度可分卷积。
  • 尽管CNN库cuda-convnet [20]支持“随机稀疏卷积”层,这相当于随机信道shuffle,然而据我们所知,在高效模型设计的前期工作中很少提及信道shuffle操作的想法。 一组卷积层。 这种“随机shuffle”操作具有不同的目的,后来很少被利用。 最近,另一项并发工作[41]也将这一想法用于两阶段卷积。 然而,[41]没有专门研究通道shuffle本身的有效性及其在微小模型设计中的应用。
  • 该方向旨在加速推理,同时保持预训练模型的准确性。 修剪网络连接[6,7]或通道[38]可减少预训练模型中的冗余连接,同时保持性能。 在文献中提出量化[31,27,39,45,44]和因子分解[22,16,18,37]以减少计算中的冗余以加速推断。 在不修改参数的情况下,FFT [25,35]和其他方法[2]简单的优化卷积算法在实践中减少了时间消耗。 蒸馏[11]将知识从大型模型转移到小型模型中,这使得培训小型模型变得更加容易。

Approach

  • 现代卷积神经网络[30,33,34,32,9,10]通常由具有相同结构的重复构建块组成。 其中,最先进的网络,如Xception [3]和ResNeXt [40],将高效的深度可分离卷积或群组卷积引入构建块,以在表示能力和计算成本之间取得良好的折衷。 然而,我们注意到两种设计都没有完全考虑1×1卷积(在[12]中也称为逐点卷积),这需要相当大的复杂性。 例如,在ResNeXt [40]中,只有3×3层配备了组卷积。 因此,对于ResNeXt中的每个残差单位,逐点卷积占据乘法 - 加法的93.4%(基数= 32,如[40]中所建议的)。 在微小的网络中,昂贵的逐点卷积导致有限数量的信道满足复杂性约束,这可能会显着损害准确性。
  • 为了解决这个问题,一个简单的解决方案是在1×1层上应用通道稀疏连接,例如组卷积。 通过确保每个卷积仅在相应的输入通道组上操作,组卷积显着降低了计算成本。 但是,如果多个组卷积堆叠在一起,则会产生一些影响:某些通道的输出仅来自一小部分输入通道。 图1(a)示出了两个堆叠的组卷积层的情况。 很明显,某一组的输出仅与该组内的输入有关。 此属性阻止通道组之间的信息流并削弱表示。
  • 如果我们允许组卷积从不同的组获得输入数据(如图1(b)所示),输入和输出通道将完全相关。 具体而言,对于从前一组图层生成的特征图,我们可以首先将每个组中的通道划分为多个子组,然后在下一层中为每个组提供不同的子组。 这可以通过信道shuf fl e操作有效和优雅地实现(图1(c)):假设具有g组的卷积层,其输出具有g×n个信道; 我们首先将输出通道尺寸重新整形为(g,n),转置然后将其作为下一层的输入进行反复处理。 请注意,即使两个卷数具有不同的组数,该操作仍然有效。 此外,信道shuffle也是可区分的,这意味着它可以嵌入到网络结构中以进行端到端训练。
  • 利用通道Shuffle操作,我们提出了一种专为小型网络设计的新型ShuffleNet单元。我们从图2(a)中的瓶颈单元[9]的设计原理出发。 这是一个残余块。 在其剩余分支中,对于3×3层,我们在瓶颈特征图上应用计算经济的3×3深度卷积[3]。然后,我们用逐点组卷积替换第一个1×1层,然后进行信道shuffle操作,形成一个ShuffleNet单元,如图2(b)所示。第二个逐点组卷积的目的是恢复通道维度以匹配快捷方式路径。为简单起见,我们不会在第二个逐点图层之后应用额外的通道shuffle操作,因为它会产生无法比较的分数。 批量归一化(BN)[15]和非线性的使用类似于[9,40],除了我们在[3]建议的深度卷积之后不使用ReLU。对于使用步幅应用ShuffleNet的情况,我们只做两个修改(见图2(c)):( i)在快捷方式路径上添加3×3平均池; (ii)用通道级联替换元素加法,这使得很容易扩大通道维度而几乎没有额外的计算成本。
  • 由于具有通道shuffle的逐点组卷积,可以有效地计算ShuffleNet单元中的所有组件。与ResNet [9](瓶颈设计)和ResNeXt [40]相比,我们的结构在相同设置下的复杂性较低。此外,在ShuffleNet中,深度卷积仅在瓶颈特征图上执行。 尽管深度卷积通常具有非常低的理论复杂度,但我们发现难以在低功率移动设备上有效地实现,这可能是由于与其他密集操作相比较差的计算/存储器访问率。 在[3]中推断出了这样的回退,它有一个基于TensorFlow的运行时库[1]。 在ShuffleNet单元中,我们故意仅在瓶颈上使用深度卷积,以尽可能地防止开销。
  • 基于ShuffleNet单元,我们在表1中提出了整体ShuffleNet架构。建议的网络主要由一组ShuffleNet单元组成,分为三个阶段。每个阶段的第一个构建块应用stride = 2。 阶段中的其他超参数保持不变,并且对于下一阶段,输出通道加倍。与[9]类似,我们将每个Shuf fl eNet单元的瓶颈通道数设置为输出通道的1/4。 我们的目的是提供尽可能简单的参考设计,尽管我们发现进一步的超参数调整可能会产生更好的结果。在ShuffleNet单元中,G组控制点向卷积的连接稀疏度。表1探讨了不同的组数,我们调整了输出通道,以确保总体计算成本大致不变(~140 mFlops)。显然,对于给定的复杂度约束,较大的组数会产生更多的输出通道(从而产生更多的卷积滤波器),这有助于编码更多的信息,但由于相应的输入通道有限,这也可能导致单个卷积滤波器的性能下降。

ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices相关推荐

  1. 网络结构(1)ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

    论文目录 ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices 引言 相关工作 高效模型设计 ...

  2. 轻量化网络(五)ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices

    ShuffleNet是由旷视推出的专门为移动设备设计的神经网络,主要使用了pointwise group convolution and channel shuffle这两个操作.实验在Arm端手机上运行 ...

  3. 轻量化网络(一)MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

    轻量化网络研究(一)MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 研究过深度学习的 ...

  4. MobileNetV1《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》

    MobileNetV1<MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications> ...

  5. 笔记:PoseCNN:A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes

    PoseCNN: A Convolutional Neural Network for 6D Object Pose Estimation in Cluttered Scenes (Robotics: ...

  6. 一步一步分析讲解深度神经网络基础-Convolutional Neural Network

    Convolutional Neural Network 参考http://cs231n.github.io/convolutional-networks/ history Convolutional ...

  7. 卷积神经网络(Convolutional Neural Network, CNN)

    卷积神经网络(Convolutional Neural Network, CNN) 目录 卷积神经网络(Convolutional Neural Network, CNN) 概述: 结构: 卷积层:

  8. 论文笔记 Inter-sentence Relation Extraction with Document-level Graph Convolutional Neural Network

    一.动机 为了抽取文档级别的关系,许多方法使用远程监督(distant supervision )自动地生成文档级别的语料,从而用来训练关系抽取模型.最近也有很多多实例学习(multi-instanc ...

  9. 二值网络--Optimize Deep Convolutional Neural Network with Ternarized Weights and High Accuracy

    Optimize Deep Convolutional Neural Network with Ternarized Weights and High Accuracy IEEE Winter Con ...

最新文章

  1. php导包,Thinkphp5.1 导入第三方包的问题
  2. java svn安装地址_SVN的安装和配置
  3. 我很懒,什么都没留下系列 之 教你上手React服务端渲染(React SSR) HMR
  4. secureCRT 右键的设置选中就copy or 选中即粘贴
  5. 面试pythone_python面试常见问题有哪些
  6. fastapi学习(一):输出hello world与基本运行方法
  7. !DOCTYPE html
  8. 介绍一个python的新的web framework——karloop框架
  9. 辨别虚假流量的十二种方法
  10. 【渝粤教育】国家开放大学2018年春季 8616-22T食品营养卫生 参考试题
  11. Hvv近期0day总结二
  12. IoTDB常用的SQL语句大全
  13. 吉隆坡兰卡威旅游信息整理
  14. 计算机无法启动打印服务,电脑重启print spooler服务无法启动怎么处理
  15. Chrome免安装版制作
  16. python实现软件自动点击_鼠标自动点击、键盘自动输入?几行Python代码搞定
  17. 修复计算机用户名密码,win7恢复出厂设置后用户名密码是多少
  18. windows10文件资源管理器打开时显示此电脑
  19. 一文看懂苹果WWDC20:iOS 14更好玩,可Intel要哭瞎了
  20. 实时时钟DS1302实验

热门文章

  1. 请写出sfr和sbit的语句格式_单片机sfr和sbit关键字,详解
  2. 微信小程序 获取用户信息 getUserInfo
  3. H5中使用微信小程序位置API
  4. GridControl每一列的模糊查询
  5. 小马哥----高仿苹果6sp(主板型号W9200_WZS_2QG 6582 7月版本刷机拆机主板图与开机识别图
  6. 类似QQ点赞的动画效果
  7. html5 footer header,html-5 --html5教程article、footer、header、nav、section使用
  8. 用MFC制作一个倒计时小程序
  9. sonos 显示媒体服务器,30分钟搞定 手把手教你安装Sonos 5.1声道客厅影院
  10. OPENCV 第一课 纹理合成