当前位置:网站首页>苹果MobileOne: 移动端仅需1ms的高性能骨干
苹果MobileOne: 移动端仅需1ms的高性能骨干
2022-06-11 11:28:00 【智源社区】

论文:https://arxiv.org/abs/2206.04040
导读
用于移动设备的高效神经网络主干通常针对 FLOP 或参数计数等指标进行优化。然而,当部署在移动设备上时,这些指标可能与主干的推理延迟没有很好的相关性。因此,本文通过在移动设备上部署多个高效网络来对不同指标进行广泛分析。通过识别和分析高效神经网络中的架构和优化瓶颈,本文提供了缓解这些瓶颈的方法。为此,作者设计了一个高效的主干 MobileOne,其变体在 iPhone12 上的推理时间低于 1 毫秒,在 ImageNet 上的 top-1 准确率为 75.9%。本文展示了 MobileOne 在高效架构中实现了最先进的性能,同时在移动设备上速度提高了许多倍,其中最好的模型在 ImageNet 上获得了与 MobileFormer 相似的性能,同时速度提高了 38 倍。MobileOne在 ImageNet 上的 top-1 准确率比 EfficientNet 在相似的延迟下高 2.3%。此外,MobileOne可以推广到多个任务——图像分类、对象检测和语义分割,与部署在移动设备上的现有高效架构相比,延迟和准确度显着提高。

贡献
高效率网络具有更强的实用价值,但学术界的研究往往聚焦于FLOPs或者参数量的降低,而这两者与推理效率之间并不存在严格的一致性。比如,FLOPs并未考虑访存消耗与计算并行度,像无参操作(如跳过连接导致的Add、Concat等)会带来显著的访存消耗,导致更长推理耗时。

为更好的分析高效率网络的瓶颈所在,作者以iPhone12平台为基准,从不同维度进行了"瓶颈"分析,见上图。从中可以看到:
具有高参数量的模型也可以拥有低延迟,比如ShuffleNetV2;
具有高FLOPs的模型也可以拥有低延迟,比如MobileNetV1和ShuffleNetV2;

上表从SRCC角度进行了分析,可以看到:
在移动端,延迟与FLOPs和参数量的相关性较弱;
在PC-CPU端,该相关性进一步弱化。
方法
基于上述洞察,作者从先两个主要效率"瓶颈"维度上进行了对比,然后对性能"瓶颈"进行了分析并提出相应方案。

- Activation Functions:上表对比了不同激活函数对于延迟的影响,可以看到:尽管具有相同的架构,但不同激活函数导致的延迟差异极大。本文默认选择ReLU激活函数。

- Architectural Block:上表对影响延迟的两个主要因素(访存消耗与计算并行度)进行了分析,见上表,可以看到:当采用单分支结构时,模型具有更快的速度。此外,为改善效率,作者在大模型配置方面有限的实用了SE模块。

基于上述分析,MobileOne的核心模块基于MobileNetV1而设计,同时吸收了重参数思想,得到上图所示的结构。注:这里的重参数机制还存在一个超参k用于控制重参数分支的数量(实验表明:对于小模型来说,该变种收益更大)。

在Model Scaling方面类似MobileNetV2,上表给出了MobileOne不同配置的参数信息。

在训练优化方面,小模型需要更少的正则,因此作者提出了Annealing的正则调整机制(可带来0.5%指标提升);此外,作者还引入渐进式学习机制(可带来0.4%指标提升);最后,作者还采用EMA机制,最终MobileOne-S2模型达到了77.4%的指标。
实验

上表给出了ImageNet数据集上不同轻量型方案的性能与效率对比,可以看到:
- 哪怕最轻量的Transformer也需要至少4ms,而MobileOne-S4仅需1.86ms即可达到79.4%的精度;
- 相比EfficientNet-B0,MobileOne-S3不仅具有指标高1%,同时具有更快的推理速度;
- 相比其他方案,在PC-CPU端,MobileOne仍具有非常明显的优势。

上表为MS-COCO检测、VOC分割以及ADE20K分割任务上的性能对比,很明显:
- 在MC-COCO任务上,MobileOne-S4比MNASNet指标高27.8%,比MobileViT高6.1%;
- 在VOC分割任务上,所提方案比MobileViT高1.3%,比MobileNetV2高5.8%;
- 在ADE20K任务上,所提最佳方案比MobileNetV2高12%,而MobileOne-S1仍比MobileNetV2高2.9%。

在文章最后,作者俏皮的提了一句:"Although, our models are state-of-the art within the regime of efficient architectures, the accuracy lags large models ConvNeXt and Swin Transformer"。
边栏推荐
- Exness: the progress of Russia Ukraine negotiations is limited, and the RBA's decision remains unchanged
- Collection of practical WordPress plug-ins (under update)
- Typeerror: argument of type "Int 'is not Iterable
- JS prototype. The find () method has no effect on the object array. It is urgent...
- How to form a good habit? By perseverance? By determination? None of them!
- Learn 02 - slice, morphological change and dimension exchange of numpy multidimensional array
- [fragmentary thoughts] thoughts on wavelength, wave velocity and period
- nft数字藏品app系统搭建
- JVM class loading process
- WordPress landing page customization plug-in recommendation
猜你喜欢

Lifeifei: I am more like a scientist in physics than an engineer

MSF CS OpenSSL traffic encryption

CAP理论听起来很高大上,其实很简单

使用Labelimg制作VOC数据集或yolo数据集的入门方法

Using domestic MCU (national technology n32g031f8s7) to realize pwm+dma control ws2812

Node connects to MySQL database and writes fuzzy query interface

数据库系统概论 ---- 第二章 -- 关系数据库(2.4 关系代数)

How to form a good habit? By perseverance? By determination? None of them!

Display of receiving address list 【 project mall 】

Don't be a fake worker
随机推荐
Split data - horizontal split and vertical split
外观模式--在各种套餐中早就用到啦!
再不刷题就晚了,最全的BAT大厂面试题整理
Tu ne peux pas être libre sans richesse?
Digital collection system app source code
JVM-类加载过程
CAP理论听起来很高大上,其实很简单
Digital collection app applet official account source code
WordPress数据库缓存插件:DB Cache Reloaded
WordPress重新生成特色图像插件:Regenerate Thumbnails
[file upload vulnerability 06] server file content detection and bypass experiment + image horse production method (based on upload-labs-14 shooting range)
小白在同花顺上直接开户是安全的吗?
Where is it safer to open an account for soda ash futures? How much capital is needed to buy soda ash futures?
[issue 31] 360 background development practice experience - two rounds of technical aspects
Is the securities account opened by qiniu Gang safe and reliable?
普通人应当如何挑选年金险产品?
Is it safe for Xiaobai to open an account directly on the flush?
Add auto thumbnail function for WordPress related log plug-ins
WordPress登录页面美化插件:Login Designer推荐
js面试题---箭头函数,find和filter some和every