CVPR-2023
https://github.com/apple/ml-mobileone
文章目录
- 1、Background and Motivation
- Background
- Motivation
- 2、Related Work
- 3、Advantages / Contributions
- 4、Method
- 4.1、Metric Correlations
- 4.2、Key Bottlenecks
- 4.3、MobileOne Architecture
- 4.4、Training
- 4.5、Benchmarking
- 5、Experiments
- 5.1、Datasets and Metrics
- 5.2、Image Classification on ImageNet-1K
- 5.3、Knowledgedistillation
- 5.4、Objectdetection on MS-COCO
- 5.5、Semantic Segmentation on Pascal VOC and ADE20k
- 5.6、Robustness to corruption
- 5.7、Comparison with Micro Architectures
- 6、Conclusion(own) / Future work
1、Background and Motivation
Background
移动端网络通常用 FLOPs 和参数量衡量效率
MobileNet、ShuffleNet、EfficientNet、MobileViT 等工作主要通过降低 FLOPs、减少参数或复合缩放来提升移动端效率。这些指标不能准确代表真实设备延迟
FLOPs 没有考虑:- 内存访问开销;
- 算子的并行度;
- 分支、跳连带来的中间特征读写;
- 全局池化和复杂激活函数造成的同步开销。
因此,FLOPs 或参数更少的模型,在手机上不一定运行得更快。论文在 iPhone 12 上的测试也发现:移动端延迟与 FLOPs 仅中度相关,与参数量仅弱相关。
部分“提高精度”的结构会显著增加实际延迟
多分支、残差连接、Squeeze-and-Excitation,以及 Dynamic ReLU、Dynamic Shift-Max 等复杂激活,虽然可能改善精度,却会增加内存访问和同步成本。某些为特定平台设计的自定义算子,也不容易迁移到其他硬件。已有结构重参数化工作提供了新思路
ACNet、DBBNet、RepVGG 等证明:训练时可以采用多分支结构增强优化能力,推理时再将这些分支融合成简单的卷积,从而兼顾训练效果和推理效率。
Motivation
论文希望解决的核心矛盾是:
怎样不再只追求“纸面上的低 FLOPs”,而是在真实手机上同时获得低延迟和高精度?
具体包括三点:
直接面向真实设备优化
作者以 iPhone 12 + CoreML 的实测延迟为依据,识别真正影响端侧速度的架构瓶颈,而不是仅依赖 FLOPs 和参数量。同时解决推理和训练两类瓶颈
- 推理瓶颈:分支、跳连、复杂激活及同步操作增加内存和执行成本;
- 训练瓶颈:小模型容量有限,训练困难,而且容易被过强的正则化进一步限制。
解耦训练结构与推理结构
作者希望训练时使用线性多分支和过参数化提高优化能力,推理时将其重参数化为无分支、无跳连的简单前馈网络;同时动态放松正则化,避免小模型被过度约束。最终目标是在 iPhone 12 上实现1 ms 以内推理,同时保持较高精度和跨分类、检测、分割任务的泛化能力。
MobileOne 的出发点不是继续减少 FLOPs,而是围绕真实硬件延迟重新设计网络,并利用“训练复杂、推理简单”的结构重参数化缓解速度与精度之间的矛盾。
2、Related Work
轻量 CNN
- SqueezeNet、MobileNet、ShuffleNet、GhostNet、MixNet:主要压缩参数量或 FLOPs。
- EfficientNet、TinyNet:研究深度、宽度、分辨率的复合缩放。
- MNASNet、MobileNetV3、ShuffleNetV2:少数直接面向真实延迟优化。
移动端 Transformer
- MobileViT、MobileFormer:尝试将 Transformer 引入移动端。
- 问题:低参数量、低 FLOPs并不必然带来低延迟,真实设备上的表现可能不如 CNN。
复杂算子与平台适配
- MobileNetV3 等使用 Hard-Swish、自定义模块提高精度。
- 但复杂激活和平台专用算子可能增加同步开销,且跨硬件迁移困难。
结构重参数化
- ExpandNet、ACNet、DBBNet、RepVGG:训练时采用多分支增强优化,推理时融合为简单卷积。
- MobileOne沿用这一思路,并引入平凡过参数化(over-parameterization branches)分支,专门适配深度可分离卷积和小模型。
直接针对真实移动端延迟,追求“训练时易优化、推理时无分支”的简单网络。
3、Advantages / Contributions
真实延迟导向
不再以 FLOPs、参数量代替速度,直接在iPhone 12上分析激活函数、分支和跳连等延迟瓶颈。提出 MobileOne 架构
部分版本实现<1 ms 推理延迟;在该速度下,ImageNet Top-1 达到75.9%。训练复杂、推理简单
训练时使用重参数化与额外过参数化分支提升优化能力;推理时融合成无分支、无跳连的简单卷积网络。改善小模型训练
通过动态放松正则化(cosine),避免容量有限的小模型被过度正则化。综合优势突出
- 精度—延迟权衡更好;
- 内存访问与同步开销低;
- 主要使用基础算子,部署和跨平台适配更容易;
- 能够迁移到分类、目标检测和语义分割任务。
4、Method
4.1、Metric Correlations
pytorch->onnx-> coreml packages(Core ML Tools) 在 iphon12 上测延时
MobileNets have lower latency for similar FLOPs and parameter count than their transformer counter parts
latency ismoderately correlated with FLOPsandweakly correlated with parameter countsfor efficient architectures on a mobile device
| 延迟平台 | 对比指标 | ρ | p-value | 解读 |
|---|---|---|---|---|
| 手机 | FLOPs | 0.47 | 0.03 | 中等正相关,统计上显著 |
| 手机 | 参数量 | 0.30 | 0.18 | 弱正相关,但证据不足 |
| CPU | FLOPs | 0.06 | 0.80 | 几乎无相关性 |
| CPU | 参数量 | 0.07 | 0.77 | 几乎无相关性 |
p-value < 0.05:有一定统计证据认为相关性存在;
p-value ≥ 0.05:证据不足,不能排除随机波动。
4.2、Key Bottlenecks
(1)Activation Functions
同网络结构,不同 activation function 测 latency,作者 MobileOne 只用 ReLU
效果比较好的 Dynamic 系列,会引入 synchronization cost(同步开销,指硬件在执行后续计算前,必须等待某些前置计算全部完成所产生的等待与调度成本)
(2)Architectural Blocks
引入 SE 和 skip connections 后会增加 Memory access cost and degree of parallelism
4.3、MobileOne Architecture
(1)MobileOne Block
基于 mobilenet-V1 改进,推理时核心是 dw +pw conv
关于 over-parameterization,训练时故意使用比推理所需更多的参数和并行分支,让模型更容易优化;推理前再把这些分支等价合并成一个卷积。
k is varied from 1 to 5
MobileOne 用多个卷积分支共同“训练”出一个更好的卷积,部署时只保留合并后的单个卷积——即训练复杂,推理简单。
实验探索 k 对 ImageNet-top1 的影响,网络越大,over-parameterization 的作用 starts diminishing.
figure4 可以看出,小网络引入重参数方法后,train loss 和 validation loss 都更低。
引入 over-parameterization 后,loss 进一步降低
table5 对比的是,train 时候是否用了 re-param 的技术,inference 的时候同结构
训练阶段的过参数化改善了优化过程,而不是增加了部署时的模型容量。
(2)Model Scaling
table4 对比了其它的重参数 / 过参数方法
MobileOne-S1 variant outperforms RepVGG-B0 which is ∼3× bigger.
4.4、Training
相比于大模型,small models need less regularization to combat overfitting
作者采用的是 anneal weight decay,也即让 weight decay 随训练过程逐渐减小
- 前期较强:防止过拟合,稳定训练;
- 后期减弱:让小模型有空间进一步拟合和提升精度。
可以看到,引入 annealing weight decay 后精度提升了
Initial weight decay coefficient is set to 10−4 and annealed to 10−5 using the same cosine schedule
Progressive Learning(渐进式学习)
训练过程中逐渐增加任务难度:
- 前期:较低输入分辨率、较弱数据增强;
- 后期:逐步提高分辨率和增强强度。
MobileOne-S2 及以上的 variant 才使用该策略
weight decay 就是给“大权重”加罚款,让模型更简单;但罚得太重,小模型会学不动。
EMA(参数指数移动平均)
训练时额外维护一份平滑后的模型参数:
对近期多个版本的参数(文中作用于 W)做平滑集成
4.5、Benchmarking
CPU:Ubuntu,2.3 GHz Intel Xeon Gold 5118;
GPU:RTX 2080 Ti,使用 TensorRT 8.0.1.6;
桌面测试执行 100 次,报告中位数延迟。
5、Experiments
5.1、Datasets and Metrics
Image Classification on ImageNet-1K(Top-1)
Objectdetection on MS-COCO(mAP)
Semantic Segmentation on Pascal VOC and ADE20k(mIoU)
5.2、Image Classification on ImageNet-1K
lower latency even on CPU and GPU compared to competing methods.
5.3、Knowledgedistillation
Shen Z, Savvides M. Meal v2: Boosting vanilla resnet-50 to 80%+ top-1 accuracy on imagenet without tricks[J]. arXiv preprint arXiv:2009.08453, 2020.
将多个强教师的平均预测作为软标签,让学生模仿教师集成的完整判断,而不只是学习 one-hot 标签。
蒸馏后效果进一步加强,进一步可以发挥过参数的优势
5.4、Objectdetection on MS-COCO
mobileone + SSD
5.5、Semantic Segmentation on Pascal VOC and ADE20k
mobileone + DeeplabV3 segmentation network
table11
5.6、Robustness to corruption
不只测试干净 ImageNet,而是考察模型面对图像损坏和分布偏移时的表现
- Clean:标准 ImageNet Top-1,越高越好;
- IN-C:模糊、噪声等人工损坏,报告 mCE,越低越好;
- IN-A:自然对抗样本,越高越好;
- IN-R:绘画、卡通等不同视觉表现形式,越高越好;
- IN-SK:黑白草图,越高越好。
Hendrycks D, Zhao K, Basart S, et al. Natural adversarial examples[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2021: 15262-15271.
Hendrycks D, Dietterich T. Benchmarking neural network robustness to common corruptions and perturbations[J]. arXiv preprint arXiv:1903.12261, 2019.
Hendrycks D, Basart S, Mu N, et al. The many faces of robustness: A critical analysis of out-of-distribution generalization[C]//2021 IEEE/CVF International Conference on Computer Vision (ICCV). IEEE, 2021: 8320-8329.
Wang H, Ge S, Lipton Z, et al. Learning robust global representations by penalizing local predictive power[J]. Advances in neural information processing systems, 2019, 32.
5.7、Comparison with Micro Architectures
6、Conclusion(own) / Future work
Conclusion
- 提出 MobileOne:面向移动设备的通用高效骨干网络,在真实手机上实现优秀的精度—延迟权衡。
- 强调真实延迟:FLOPs和参数量不能可靠代表实际速度,模型设计应直接基于目标硬件测试。
- 识别关键瓶颈:复杂激活、多分支、跳连和同步操作会增加内存访问与实际延迟。
- 训练与推理解耦:训练时通过重参数化分支改善优化,推理时融合为简单的无分支结构。
- 泛化能力较好:不仅适用于ImageNet分类,也能迁移到目标检测和语义分割,并在手机、桌面CPU和GPU上保持竞争力。
Limitations & Future Work
局限:MobileOne虽然在轻量网络范围内表现领先,但与大型高容量模型相比,绝对精度仍存在差距。
未来工作
- 继续提高轻量模型的准确率;
- 将MobileOne扩展到更多视觉任务,包括:
- 光流估计;
- 深度估计;
- 3D重建;
- 进一步研究其在其他硬件和视觉应用中的快速推理能力。
MobileOne证明了“真实硬件延迟导向 + 训练复杂、推理简单”是设计移动端网络的有效路线,下一步重点是补足绝对精度并扩展应用范围。
iphone12、测 latency、coreML、重参数、过参数、ImageNet 变种(扩展)、部署的时候还是 mobilenetv1 框架(DW+PW)、蒸馏、动态 weight decay 正则化(cosine)
decreasing floating-point operations (FLOPs) and parameter count 并不等于减少了 latency
FLOPs do not account for memory access cost and degree of parallelism
introduce trivial over-parameterization branches
Memory access cost and degree of parallelism
蒸馏+过参数,强强联合
更多论文解读,请参考 【Paper Reading】