关注公众号,发现CV技术之美
本篇分享论文『An Improved One millisecond Mobile Backbone』,相同性能下比MobileFormer快38倍!苹果提出对移动设备友好的高效主干网络MobileOne,在 iPhone12 上的运行时间小于1毫秒!
详细信息如下:
论文链接:https://arxiv.org/abs/2206.04040
项目链接:
https://github.com/facebookresearch/mobile-vision/tree/4d5207cf50cdcf260e240871abf04686ab7087ed/mobile_cv/arch/fbnet_v2 (Facebook 工程师的实现,非官方)
https://github.com/shoutOutYangJie/MobileOne (性能接近,非官方)
01
摘要
移动设备的高效神经网络主干通常针对FLOPs或参数计数等指标进行优化。然而,当部署在移动设备上时,这些指标可能与网络的延迟没有很好的相关性。因此,作者通过在移动设备上部署多个移动友好的网络来对不同的指标进行广泛的分析。作者识别和分析了最近高效神经网络中的架构和优化瓶颈,并提供了缓解这些瓶颈的方法。
为此,作者设计了一种高效的主干网络MobileOne,其变体在iPhone12上的推断时间小于1 ms,在ImageNet上的准确率为75.9%。作者表明,MobileOne在高效的结构中实现了最先进的性能,同时在移动设备上的速度快了很多倍。本文的最佳模型在ImageNet上的性能与MobileFormer相似,但速度要快38倍。
在相同的延迟下,本文的模型在ImageNet上的top-1准确性比EfficientNet高2.3%。此外,作者还表明,与部署在移动设备上的现有高效结构相比,本文的模型可推广到多个任务–图像分类、目标检测和语义分割,在延迟和准确性方面有显著改进。
02
Motivation
为移动设备设计和部署高效的深度学习结构取得了很大进展,不断减少浮点运算(FLOP)和参数计数,同时提高准确性。然而,就延迟而言,这些指标可能与模型的效率不太相关。像FLOPs这样的效率指标并没有考虑内存访问成本和并行度,这可能会对推断过程中的延迟产生非常重要的影响。参数计数与延迟也没有很好的相关性。例如,共享参数会导致更高的FLOPs,但模型尺寸更小。此外,无参数操作(如残差连接或分支)可能会产生巨大的内存访问成本。
本文的目标是通过识别影响设备延迟的关键瓶颈,提高高效结构的延迟成本,同时提高其准确性。为了识别这些瓶颈,作者使用CoreML在iPhone12上部署了神经网络,并对其延迟成本进行了基准测试。优化是另一个瓶颈,尤其是在训练容量有限的较小神经网络时。这可以通过解耦训练时间和推理时间架构来缓解,即在推理时重新参数化线性结构的参数。作者通过在整个训练过程中动态放松正则化来防止已经很小的模型被过度正则化,从而进一步缓解优化瓶颈。
基于对模型结构和优化瓶颈的研究结果,作者设计了一种新型结构MobileOne,其变体在iPhone12上运行时间不超过1毫秒,在高效结构系列中实现了最先进的准确性,同时在设备上运行速度显著加快。与之前关于结构重新参数化的工作一样,MobileOne在训练运行时引入了线性分支,这些分支在推理时重新参数