论文: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"。
内容中包含的图片若涉及版权问题,请及时与我们联系删除
评论
沙发等你来抢