用于移动设备的高效神经网络主干通常针对FLOP或参数计数等指标进行优化。但是当部署在移动设备上时,这些指标可能与网络延迟没有很好的关联。基于此,Apple的研究人员通过在移动设备上部署多个移动友好网络,对不同指标进行了广泛分析,探索了现有高效神经网络的架构和优化瓶颈,并提供了缓解这些瓶颈的方法。该研究设计了一种高效的骨干架构MobileOne,其变体在iPhone12上实现了不到1毫秒的推理时间,在ImageNet上达到了75.9%的top-1准确率。论文地址:https://arxiv.org/abs/2206.04040MobileOne架构不仅实现了SOTA性能,而且在移动设备上提速了很多倍。其中,最好的模型变体在ImageNet上实现了与MobileFormer相当的性能,同时速度提高了38倍。在相似的延迟下,MobileOne在ImageNet上的top-1精度比EfficientNet高2.3%。此外,该研究表明,与部署在移动设备上的现有高效架构相比,MobileOne可以推广到多项任务——图像分类、对象检测和语义分割——具有更高的准确性和更低的延迟。方法概述研究人员首先分析了常用指标(FLOPs和参数计数)与移动设备延迟的相关性,并分析了架构中不同设计选择对手机延迟的影响。指标相关性用于比较两个或多个模型大小的最常用成本指标是参数计数和FLOP。然而,它们可能与现实世界移动应用程序中的延迟没有很好的关联,该研究提供了对有效神经网络基准测试的深入分析。研究并使用最近模型的Pytorch实现将它们转换为ONNX格式。该研究使用CoreMLTools将每个模型转换为coreml包,然后开发了一个iOS应用程序来测量iPhone12上的模型延迟。如下图2所示,该研究绘制了延迟与FLOPs以及延迟与参数计数的关系图。研究人员观察到,许多具有较高参数计数的模型具有较低的延迟。在相似的FLOP和参数数量下,MobileNets等卷积模型的延迟低于相应的Transformer模型。研究人员还估计了下表1(a)中的Spearman等级相关性,发现延迟与FLOPs适度相关,与移动设备上高效架构的参数计数弱相关,与桌面CPU相关性较低。激活函数的关键瓶颈为了分析激活函数对延迟的影响,本研究构建了一个30层卷积神经网络,并在iPhone12上使用不同的激活函数对其进行了基准测试,这些函数通常用于高效的CNN主干网络。下面表3中的所有模型都具有相同的体系结构,除了激活函数外,但它们的延迟却大不相同。这种差异主要是由最近提出的激活函数引起的,例如SE-ReLU、DynamicShift-Max和DynamicReLUs。MobileOne中只使用了ReLU激活函数。架构块影响运行时性能的两个关键因素是内存访问成本和并行性。在多分支架构中,内存访问成本显着增加,因为必须存储来自每个分支的激活函数以计算图中的下一个张量。如果网络的分支数量较少,则可以避免这种内存瓶颈。强制同步的架构块(例如Squeeze-Excite块中使用的全局池化操作)也会因同步成本而影响整体运行时间。为了证明内存访问成本和同步成本等隐藏成本,该研究在30层卷积神经网络中大量使用跳过连接和Squeeze-Excite块,表1b显示了它们对延迟的影响。基于此,该研究在推理时采用无分支架构,降低了内存访问成本,并在MobileOne的最大变体中使用Squeeze-Excite块来提高准确性。最终MobileOne架构如下图所示。为了提高性能,模型在以下维度上进行了扩展:宽度、深度和分辨率。该研究并未通过增加FLOP和内存消耗来扩大输入分辨率,这对移动设备的运行时性能不利。由于新模型在推理时没有多分支架构,因此不会产生数据移动成本。与多分支架构(如MobileNet-V2、EfficientNets等)相比,Apple的新模型可以在不产生高延迟成本的情况下积极扩展模型参数。增加参数数量可以使模型很好地泛化到其他计算机视觉任务,例如对象检测和语义分割。表4将新模型与最近的训练时间过参数化工作进行了比较,表明MobileOne-S1变体的性能优于RepVGG-B0约3倍。实验和结果在移动设备上进行准确的延迟测量可能很困难。在iPhone12上,没有命令行访问或仅保留模型执行的所有计算结构的功能。也没有办法将往返延迟分解为网络初始化、数据移动和网络执行等类别。为了测量延迟,该研究使用使用Swift开发的iOS应用程序对这些模型进行了基准测试。该应用程序使用CoreML运行模型。在基准测试期间,应用程序多次运行模型(默认为1000次)并累积统计信息。为了最低的延迟和最高的一致性,手机上的所有其他应用程序将被关闭。该研究报告了完整的模型往返延迟,如下表8所示。这个时间大部分可能不是来自模型本身的执行过程,但在实际应用中,这些延迟是不可避免的。因此,该研究将它们包括在报告的延误中。为了过滤掉来自其他进程的中断,该研究报告了所有模型的最小延迟。此外,该研究还报告了几个模型在MSCOCO数据集上的目标检测任务性能以及在PascalVOC和ADE20k数据集上的语义分割任务性能。MobileOne的性能普遍优于其他型号。具体结果如表9所示。感兴趣的读者可以阅读论文原文了解更多研究细节。
