作者 | 科技猛兽 编辑 | 极市平台
点击下方卡片,关注“自动驾驶之心”公众号
本文只做学术分享,如有侵权,联系删文
导读
本文作者提出了一种 ParameterNet 的方案来解决低 FLOPs 陷阱的通用设计原则,ParameterNet-600M 可以达到比 Swin Transformer 更高的精度 (81.6% v.s. 80.9%),并且 FLOPs 要低得多 (0.6G v.s. 4.5G)。
本文目录
1 ParameterNet:低计算量小模型也能从视觉大规模预训练中获益
(来自北京华为诺亚方舟实验室)
1 论文解读
1.1 大规模视觉预训练技术
1.2 端侧模型的视觉预训练的问题:低 FLOPs 陷阱
1.3 ParameterNet:小模型从大规模预训练中获益的方法
1.3.1 模型选择
1.3.2 ParameterNet
1.3.3 复杂度分析
1.4 实验结果
太长不看版
大规模的视觉预训练可以提高视觉大模型的性能,但是本文作者观察到:这个良好的性质对于低 FLOPs 的小模型并不适用,并将这种观察到的现象命名为 low FLOPs pitfall。为了解决这个问题,本文提出了一种通用设计原则 ParameterNet,即:对小模型进行大规模视觉预训练时,在保持小模型的低 FLOPs 的同时为模型添加更多参数。那么如何做到这一点,比如可以通过动态卷积,在只略微增加 FLOPs 的情况下为网络加入更多的参数。ParameterNet 使得低 FLOPs 网络也能够从大规模视觉预训练中受益。比如,ParameterNet-600M 可以达到比 Swin Transformer 更高的精度 (81.6% v.s. 80.9%),并且 FLOPs 要低得多 (0.6G v.s. 4.5G)。
1 ParameterNet:低计算量小模型也能从视觉大规模预训练中获益
论文名称:ParameterNet: Parameters Are All You Need for Large-scale Visual Pretraining of Mobile Networks
论文地址:
https://arxiv.org/pdf/2306.14525.pdf
代码地址:
https://github.com/huawei-noah/Efficient-AI-Backbones
1.1 大规模视觉预训练技术
由于近些年来硬件算力的提升和数据工程的发展,我们的训练数据越来越多了,算力越来越强了,大规模视觉预训练技术取得了令人瞩目的进展。预训练的视觉基础模型可以视为是一个表征学习器,它可以比较方便地迁移到图像识别和检测等下游任务上面。
大规模视觉预训练技术通常需要大量的资源,这些资源包括:
数据
参数
FLOPs
这三个关键因素基本根据 Scaling Law[1] 决定着预训练模型的性能。大规模视觉预训练技术也在不断发展,之前大家使用 1000 类,包含约 1.3M 张图的 ImageNet-1K 预训练视觉模型,并在下游任务上面微调。随着 21841 类,包含约 14M 张图片的 ImageNet-22K[2] 的提出,大家在训练视觉模型的时候一般先在 ImageNet-22K 上预训练,再在 ImageNet-1K 和下游任务数据集上做微调。为了更好地拟合大数据集,近年来模型大小 (包括参数和 FLOPs) 也越来越大,例如 ViT-G/14 模型有 1.8B 参数和 965B FLOPs。
在移动设备上的视觉应用通常需要模型具有快速推理的属性,因此不希望这些模型的 FLOPs 过大,因为过大 FLOPs 的模型在端侧很难有较快的推理速度。作者在本文里面就是去研究低 FLOPs 的端侧模型的视觉预训练。
1.2 端侧模型的视觉预训练的问题:低 FLOPs 陷阱
大规模视觉预训练技术的流程是: 模型选择 Transformer 和 CNN 模型,先在 ImageNet-22K 上做大规模预训练,再在 ImageNet-1K 上做微调得到最终的模型。端侧模型的视觉预训练的问题可以归结为图1和2所示。
如下图1所示是 Swin Transformer[3] (一种代表性的视觉 Transformer) 的结果,作者在 ImageNet-22K 和 ImageNet-1K 上预训练不同 FLOPs 的 Swin Transformer。可以看到,当模型 FLOPs 逐渐增加时,模型精度持续增加。对于高 FLOP (>10G) 模型,22K 预训练模型优于 1K 模型。然而,低 FLOPs (<4G) 模型不能从大规模预训练中受益。

如下图2所示是 EfficientNetV2[4] (一种代表性的 CNN) 的结果,作者在 ImageNet-22K 和 ImageNet-1K 上预训练不同 FLOPs 的 EfficientNetV2。可以看到,当模型 FLOPs 逐渐增加时,模型精度持续增加。同时也可以观察到与 Swin Transformer 相似的趋势,比如在 ImageNet-22K 上的 2G FLOPs 预训练的 EfficientNetV2 模型精度不如在 ImageNet-1K 上预训练的精度。
从 Transformer 和 CNN 网络的观察中,我们得出了一个经验结论,即:低 FLOP 模型无法从大规模预训练中受益,作者将这种现象命名为低 FLOPs 陷阱 (low FLOPs pitfall)。

1.3 ParameterNet:小模型从大规模预训练中获益的方法
1.3.1 模型选择
作者从 2023.6 的 Paperwithcode 网站上收集到了一系列具有 ImageNet-22K 预训练和 ImageNet-1K 微调的 ImageNet-1K 验证集精度结果,如下图3所示。可以看到,当 FLOP 高于 5G FLOPs 时,基于 Transformer 的模型始终优于具有相似计算成本的 CNN。对于较小的模型,尤其是 600M FLOPs 内的移动级模型,基于 CNN 的模型,因其归纳偏置,即局部性和平移等变性的作用始终优于具有相似计算成本的 Transformer。

1.3.2 ParameterNet
本文作者提出了一种 ParameterNet 的方案来解决这个低 FLOPs 陷阱 (low FLOPs pitfall) 的通用设计原则,即:在为模型添加更多的参数的同时尽量维持其低 FLOPs 的特性。有各种各样的方法具有更多的参数和较低的FLOPs。例如,这里主要考虑高效的动态卷积 (Dynamic Convolution),它可以增加参数的数量,而几乎没有带来额外的 FLOPs。
设输入特征是 ,权重特征是 ,卷积操作可以写成:

式中, 是输出特征。
具有 个动态专家的动态卷积操作可以写成:

式中, 是第 个动态卷积核的参数, 是对应的动态超参数, 随不同的输入而动态地生成。典型的生成策略是使用下面的模块来生成, 即:对于输入 , 应用全局平均池化将信息融合到一个向量中, 然后使用具有 softmax 激活的两层 MLP 模块动态生成系数。

式中, 。
1.3.3 复杂度分析
计算动态卷积和普通卷积的参数量之比:

计算动态卷积和普通卷积的 FLOPs 之比:

可以看到,动态卷积和普通卷积的参数量之比是 ,而动态卷积和普通卷积的 FLOPs 基本一致。这说明,每个动态卷积的参数量大约为常规卷积的 倍,且计算量的增加可以忽略不计。
1.4 实验结果
训练策略
如下图4所示是本文实验的预训练策略。ImageNet-1K 训练直接300 Epochs,ImageNet-22K 预训练先训练90 Epochs,再在 ImageNet-1K 上面微调30 Epochs,遵循 Swin 等的做法。

实验结果
模型基于 GhostNet-300M,是 GhostNet 1.45× 的版本,ParameterNet-300M 是通过将 GhostNet-300M 中传统的卷积层替换为动态卷积构造的。动态卷积专家的数量默认设置为 4。对于 GhostNet,在 ImageNet-22K 上进行预训练无助于性能提升,ImageNet-22K 预训练 ParameterNets 与常规 ImageNet-1K 训练相比可以将性能提高约 +2%,如下图5和6所示。


与 SOTA 对比
作者将 ParameterNet 与其他在 ImageNet-22K 或更大的数据集 (如 JFT-300M[5]和 IG-1B-Targeted[6]) 上预训练的代表性模型进行比较。从图7中的结果可以看出,ParameterNet 的 FLOPs 较少,但优于其他在大规模数据集上预训练的模型。例如,ParameterNet-600M 实现了 81.6% 的 top-1 准确率,其 FLOPs 比 ResNet50 或 Swin-T 低约 7 倍。

推理速度
作者评估了 ParameterNet 和其他代表性模型的推断速度进行比较。作者使用 ONNX 工具包在具有单线程模式的 Intel Xeon Platinum 8378C CPU 上运行模型。如图8所示,ParameterNet 的性能优于广泛使用的 ResNet 和 Swin Transformer,以获得更好的精度-延迟权衡。

参考
^Scaling Vision Transformers
^ImageNet Large Scale Visual Recognition Challenge
^Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
^EfficientNetV2: Smaller Models and Faster Training
^Revisiting Unreasonable Effectiveness of Data in Deep Learning Era
^Billion-scale semi-supervised learning for image classification
投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!
① 全网独家视频课程
BEV感知、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、大模型与自动驾驶、Nerf、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)
网页端官网:www.zdjszx.com
② 国内首个自动驾驶学习社区
国内最大最专业,近2700人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型、端到端等,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频

③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦2D/3D目标检测、语义分割、车道线检测、目标跟踪、BEV感知、多模态感知、Occupancy、多传感器融合、transformer、大模型、在线地图、点云处理、端到端自动驾驶、SLAM与高精地图、深度估计、轨迹预测、NeRF、Gaussian Splatting、规划控制、模型部署落地、cuda加速、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】平台矩阵,欢迎联系我们!