前言 本文给我们介绍根据 CNN 架构中重参数化技能的轻量化主干网络 MobileOne。尽管 Apple 公司在其项目 ml-mobileone 中现已开源了 MobileOne 的代码以及权重,但并没有揭露练习和推理的战略。MMClassification 通过一系列努力,现已彻底复现了 MobileOne 的练习精度(全网唯一),能够检查相关 issue、复现结果。
本文转载自OpenMMLab
作者 | 带来新知识的
欢迎重视大众号CV技能攻略,专心于核算机视觉的技能总结、最新技能盯梢、经典论文解读、CV招聘信息。
CV各大方向专栏与各个布置结构最全教程收拾
核算机视觉入门1v3辅导班
issue:
github.com/apple/ml-mo…
复现结果:
github.com/open-mmlab/…
2021 年,旷视的 RepVGG 提出重参数化技能,模型在练习和推理时具有不同的结构,推理时结构更简洁,速度更快且易于后期的布置和算子优化。现在重参数化技能现已被广泛运用,如检测使命的 YOLOv6 以及 YOLOv7,且取得了十分好的作用。
MobileOne 模型本身没有特别新颖的立异点,能够看作一个 MobileNet、 重参数技能、练习技巧的组合立异作用。其在苹果 iPhone12 上,以推理时延小于 1ms 的速度在 ImageNet1k 数据集上达到了 75.9 的 TOP1 精度,到达现在轻量级模型最优的作用。
起点
一直以来移动设备的高效神经网络主干通常是针对核算量或参数量等指标进行优化,然而,这些指标与实在布置在移动设备上的推理延迟存在一个差距。有些模型尽管有较低的核算量和参数量,但它的推理速度仍然十分慢。
为了探索推理时延最优的模型,苹果公司通过在移动设备上布置常见的轻量级模型,剖析推理时延瓶颈所在,并提供了对应缓解的办法。MobileOne 与 EfficientFormer 运用的研讨办法类似,都是通过试验剖析的办法。
试验剖析
作者将常见的移动端轻量级模型在 iPhone12 上运用 coreML 布置,直接测验其推理时延,图 1 是一切的统计结果,能够看出 CNN 架构的模型具有显着的优势。为了定量剖析核算量和参数量与推理时间的关系,作者核算了 Spearman 相关系数。图 2 展示了核算量和参数量与推理时延的 Spearman 系数,Spearman 系数值越大,代表它们的相关度越大,能够看出参数量和推理时延的相关程度较弱,核算量与推理时延的相关程度也一般。
图 1 常用轻量级模型在 iPhone12 上的体现
图 2 推理时延与核算量、参数量的 Spearman 相关系数
作者又剖析了基本模块对推理时间的影响,首要是激活函数,残差结果以及 SE 模块的影响。图 3 展示了激活函数对推理时延的影响,运用杂乱的激活函数尽管能够带来精度上的十分小的提高,但它会带来推理时延巨大增加。图 4 是 SE 模块与残差模块对推理时延的影响,它们都增加了很多的推理时延,文章中也给出了解说,这类多分支结构,会带来额外的访存开支。
图 3 激活函数的影响
图 4 SE 模块与残差结构影响
试验定论
-
CNN 结构在推理速度上有很大优势
-
ReLU 的速度最快,其他激活函数速度慢,精度提高并不显着
-
SE 模块与残差结构都显著的影响推理速度,应该尽量防止
MobileOne 结构
将上述试验定论作为规划辅导,MobileOne 首要是根据 MobileNet 以及 RepVGG 这样的卷积神经网络,一方面为了削减残差结构的额外开支,运用 RepVGG 中的重参数技能,另一个方面只在最大的模型结构 MobileOne-s4 中才运用少量的 SE 模块。
MobileOne Block 根据深度可分离卷积,由多分支的 DepthWise 卷积模块和 PointWise 卷积模块组成,它有两种状况,练习时状况和推理时状况,图 5 左边为练习时的状况,右侧为推理时状况。
在练习状况下,DepthWise 卷积模块有三个分支,分别为 11 DepthWise 卷积分支,33 DepthWise 卷积分支和一个 BN 层分支。PointWise 卷积模块有两个分支,分别为 11 卷积分支和一个 BN层 分支。
在推理状况下, DepthWise 卷积模块 和 PointWise 卷积模块只要一个 33 DepthWise 卷积和 11 PointWise 卷积,没有其他额外的分支,其间卷积和 BN 还能够进一步融合。
图 5 MobileOne Block 结构
首要考虑到:
- 输入分辨率的放大, 会增大核算量以及内存的耗费,这些都是对移动设备不友好的,所以一切的结构都运用 224*224 的输入分辨率。
- 模型在推理时没有多分支的结构,不会产生额外的访存,所以规划时运用了更大的通道数。
作者提出了 5 种不同巨细的模型结构,如图 6 所示,全体连续了 RepVGG 的架构,总共 8 个 stage,其间 6 个 stage 的 Block Type 为 MobileOne Block,1 个 stage 的 Block Type 为 AvgPool,1 个 stage 的 Block Type 为 Linear,只在最大的 MobileOne-S4 的最终的两个 stage 上才增加 SE 模块,一切的激活函数都运用 ReLU。
图 6 MobileOne 模型全体结构
练习技能优化
图 7 MobileOne 练习技巧消融试验
MobileOne 的练习战略全体上连续了 RepVGG,并在其根底上额外运用了 3 个特有的练习优化技巧,分别是:
- 渐进式学习战略
- 退火权重衰减系数
- 指数均匀移动 EMA
渐进式学习战略是由 EfficientNetV2 提出的一种练习战略,简单来说就练习进程渐进地增大图画巨细,但在增大图画同时也选用更强的正则化战略,练习的正则化战略包括数据增强和 dropout 等,MobileOne 中更强的正则化指的是选用更大的 AutoAug 的增强强度系数, 在练习的流程中,分别在 37 轮和 112 轮,增加了输入图片的分辨率以及 AutoAug 的强度系数。渐进式学习战略不只能够加快练习速度,还能够提高模型精度。
图 8 MobileOne 练习进程数据增强
与大型模型比较,小型模型需求较少的正则化来防止过度拟合。在练习的早期阶段权重正则化(Weight-Decay)很重要,作者试验发现,比较于消除练习进程中权重正则化,对权重正则化引起的损失进行退火处理更有用。
MobileOne 运用学习率中最常见的 Cosine schedule 来退火权重衰减系数,图 9 是 MobileOne 的权重衰减曲线,从图 9 中能够看到退火权重衰减系数提高了 0.5 %。
图 9 MobileOne 权重衰减曲线
EMA 是指数均匀移动(Exponential moving average),现在它是深度学习领域十分常见的练习技巧,近年很多新作业运用了该练习技巧。EMA 能够看作一种模型的集成,不过这里集成的是练习迭代进程中权重。其公式十分简单,如下所示:
现在这几种练习优化都现已在 MMClassification 中完成,欢迎运用,装备如下:
试验结果
以下展示了桌面端以及移动端上 MobileOne 和其他轻量级模型的一些性能比照,能够看出其具有显着的性能优势。
图 10 MobileOne 分类性能比较
图 11 MobileOne 检测、切割使命性能比较
在分类使命上,它在速度精度归纳评比中不只超过了 CNN 架构的 MobileNet 、ShuffleNet 系列,还远超前文说到的 MobileViT 系列算法。其间 MobileOne-s1 结构更是在推理时延为 1ms 的前提下,ImageNet 数据集上精度达到 75.6。
MobileOne 不只在分类使命上取得了速度与精度的最佳权衡,它在检测(图 11.a)和切割(图 11.b)使命中,也取得了十分不错的作用。
总结
本文介绍了最新的根据 CNN 架构的算法 MobileOne,要点首要有以下两点:
- 将重参数化技能使用到深度可分离卷积中;
- 运用了 3 个特有的练习优化技巧,分别是:渐进式学习战略;退火权重衰减系数;指数均匀移动 EMA。
MobileOne 是现在精度速度归纳体现最好的算法,特别合适使用到实际的业务场景中来。而且现已集成在 MMClassification 中,且现已对齐了练习精度,欢迎对相关模型感兴趣的同学尝试试用。
MobileOne:github.com/open-mmlab/…
参考文献
-
An Improved One millisecond Mobile Backbone
-
RepVGG: Making VGG-style ConvNets Great Again
-
EfficientNetV2: Smaller Models and Faster Training
-
EfficientFormer: Vision Transformers at MobileNet Speed
欢迎重视大众号CV技能攻略,专心于核算机视觉的技能总结、最新技能盯梢、经典论文解读、CV招聘信息。
核算机视觉入门1v3辅导班
【技能文档】《从零建立pytorch模型教程》122页PDF下载
QQ沟通群:444129970。群内有大佬担任回答我们的日常学习、科研、代码问题。
其它文章
CVPR2023最新Backbone | FasterNet远超ShuffleNet、MobileNet、MobileViT等模型
CVPR2023 | 集成预练习金字塔结构的Transformer模型
AAAI 2023 | 一种通用的粗-细视觉Transformer加速方案
大核分化与注意力机制的奇妙结合,图画超分多尺度注意网络MAN已开源!
MIRNetV2 更快、更强、更轻量!
AI布置与算法/自动驾驶/深度学习材料汇总!
点云模型专栏(一)概述、特性、存储格式、数据集
核算机视觉各个方向沟通群与知识星球
【免费送书活动】 全新轻量化模型 | 轻量化沙漏网络助力视觉感知涨点
方针盯梢专栏(一)基本使命、常用办法
CV各大方向专栏与各个布置结构最全教程收拾
一文尽览 | 自动驾驶中光流的使用、挑战和改进
方针检测、实例切割、旋转框样样精通!详解高性能检测算法 RTMDet
CV算法工程师卷得要死,布置工程师却成为了香饽饽
大卷积模型 + 大数据集 + 有监督练习!探寻ViT的前身:Big Transfer (BiT)
高效轻量级语义切割总述
超快语义切割 | PP-LiteSeg集速度快、精度高、易布置等长处于一身,必会模型!!!
数据集+插件,一把子解决遮挡下方针检测难题
AAAI | Panini-Net | 根据GAN先验的退化感知特征插值人脸修
一文带你掌握轻量化模型规划原则和练习技巧!
图画增强新思路:DeepLPF
LCCL网络:相互辅导博弈来提高方针检测精度(附源代码)
与SENet互补提高,华为诺亚提出自注意力新机制:Weight Excitation
最新FPN | CFPNet即插即用,助力检测涨点,YOLOX/YOLOv5均有用
DeepLSD:根据深度图画梯度的线段检测和细化
CVPR 2023 | 根底模型推动语义切割的弱增量学习
消费级显卡的春天,GTX 3090 YOLOv5s单卡完整练习COCO数据集缩短11.35个小时
BOE告知你:一层卷积能够做超分!
卫星图画揭露数据集资源汇总
DiffusionDet:用于对象检测的分散模型
CV小知识评论与剖析(7) 寻找论文立异点的新方式
CV小知识剖析与评论(6)论文立异的一点误区
核算机视觉入门1v3辅导班
核算机视觉沟通群
聊聊核算机视觉入门