大数跨境
0
0

低 FLOPs 网络也能在大规模预训练中尝到甜头!ParameterNet:0.6G即可精度超越SwinT

低 FLOPs 网络也能在大规模预训练中尝到甜头!ParameterNet:0.6G即可精度超越SwinT 极市平台
2023-07-05
1
↑ 点击蓝字 关注极市平台
作者丨科技猛兽
编辑丨极市平台
本文为签约作者原创,转载须经授权,白名单账号需添加极市名片。

极市导读

 

本文作者提出了一种 ParameterNet 的方案来解决低 FLOPs 陷阱的通用设计原则,ParameterNet-600M 可以达到比 Swin Transformer 更高的精度 (81.6% v.s. 80.9%),并且 FLOPs 要低得多 (0.6G v.s. 4.5G)。 >>加入极市CV技术交流群,走在计算机视觉的最前沿

本文目录

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) 模型不能从大规模预训练中受益

图1:ImageNet-1K 验证集上的 Swin Transformer 结果。红色和蓝色线分别表示 ImageNet-21K 和 ImageNet-1K 预训练的精度

如下图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)

图2:ImageNet-1K 验证集上的 EfficientNetV2 结果。红色和蓝色线分别表示 ImageNet-21K 和 ImageNet-1K 预训练的精度

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。

图3:带有 ImageNet-22K 预训练和 ImageNet-1K 微调的 ImageNet-1K 验证集精度曲线

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 等的做法。

图4:训练策略

实验结果

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

图5:ImageNet-1K 精度,原始的 GhostNet 存在低 FLOPs 陷阱。所提出的 ParameterNet 克服了这个问题
图6:ImageNet-1K 精度,原始的 GhostNet 存在低 FLOPs 陷阱。所提出的 ParameterNet 克服了这个问题

与 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 倍。

图7:与 SOTA 对比结果

推理速度

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

图8:推理速度比较结果

参考

  1. ^Scaling Vision Transformers
  2. ^ImageNet Large Scale Visual Recognition Challenge
  3. ^Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
  4. ^EfficientNetV2: Smaller Models and Faster Training
  5. ^Revisiting Unreasonable Effectiveness of Data in Deep Learning Era
  6. ^Billion-scale semi-supervised learning for image classification

公众号后台回复“极市直播”获取100+期极市技术直播回放+PPT

极市干货

极视角动态2023GCVC全球人工智能视觉产业与技术生态伙伴大会在青岛圆满落幕!极视角助力构建城市大脑中枢,芜湖市湾沚区智慧城市运行管理中心上线!
数据集:面部表情识别相关开源数据集资源汇总打架识别相关开源数据集资源汇总(附下载链接)口罩识别检测开源数据集汇总
经典解读:多模态大模型超详细解读专栏

极市平台签约作者#


科技猛兽

知乎:科技猛兽


清华大学自动化系19级硕士

研究领域:AI边缘计算 (Efficient AI with Tiny Resource):专注模型压缩,搜索,量化,加速,加法网络,以及它们与其他任务的结合,更好地服务于端侧设备。


作品精选

搞懂 Vision Transformer 原理和代码,看这篇技术综述就够了
用Pytorch轻松实现28个视觉Transformer,开源库 timm 了解一下!(附代码解读)
轻量高效!清华智能计算实验室开源基于PyTorch的视频 (图片) 去模糊框架SimDeblur



投稿方式:
添加小编微信Fengcall(微信号:fengcall19),备注:姓名-投稿
△长按添加极市平台小编

觉得有用麻烦给个在看啦~  

【声明】内容源于网络
0
0
极市平台
为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
内容 8155
粉丝 0
极市平台 为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
总阅读5.7k
粉丝0
内容8.2k