前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >视觉Backbone怎么使用1/8的FLOPs实现比Baseline更高的精度?

视觉Backbone怎么使用1/8的FLOPs实现比Baseline更高的精度?

作者头像
集智书童公众号
发布2023-09-04 11:09:25
3320
发布2023-09-04 11:09:25
举报
文章被收录于专栏:集智书童

大规模视觉预训练显著提高了大型视觉模型的性能。然而,作者观察到现有的低FLOPs模型无法从大规模预训练中受益的问题。在本文中,作者提出了一种通用的设计原则,即ParameterNet,用于在大规模视觉预训练中增加更多参数的同时保持低FLOPs。 例如,采用动态卷积技术可以为网络提供更多参数,同时仅略微增加FLOPs。提出的ParameterNet方案使得低FLOPs网络能够从大规模视觉预训练中受益。 在大规模ImageNet-22K数据集上的实验证明了作者ParameterNet方案的卓越性能。例如,ParameterNet-600M相比广泛使用的Swin Transformer具有更高的准确性(81.6%对80.9%),并且具有更低的FLOPs(0.6G对4.5G)。

1、简介

由于计算硬件和数据工程的发展,作为计算机视觉中的基础组成部分,大规模视觉预训练取得了令人瞩目的进展。预训练的视觉模型可以作为表示学习器,并迁移到下游任务中,如图像识别和目标检测。

主流的预训练视觉模型通常需要大量的资源,包括数据、参数和FLOPs。这3个关键因素严重影响着性能,并基本遵循缩放定律。大规模的预训练数据可以为表示学习提供多样化的样本。这些数据集的规模从数百万到数十亿不等,例如,广泛使用的ImageNet-22K数据集包含了1400万张图像和21841个类别。为了更好地拟合大规模数据集,模型的大小(包括参数和FLOPs)近年来越来越大,例如,ViT-G/14模型具有18亿个参数和9650亿个FLOPs。

移动设备上的视觉应用通常需要快速推理,因此由于高计算成本,很难部署现有的预训练视觉模型。为了解决这个问题,作者经验性地研究了大规模视觉预训练中FLOPs的影响。作者采用ImageNet-22K作为大规模预训练数据集,而ImageNet-1K是一个相对较小的数据集用于比较。

然后,作者对预训练的Transformer和CNN模型在ImageNet-1K上进行微调以评估性能。如图2和图3所示,当模型的FLOPs逐渐增加时,模型的准确性持续提高。对于高FLOPs的模型,22K预训练模型优于1K模型。然而,低FLOPs的模型无法从大规模预训练中获益,作者称之为低FLOPs陷阱。

在这篇论文中,作者通过增加更多的参数来构建低FLOPs的ParameterNet,同时保持低FLOPs的特性,用于大规模视觉预训练。这是一个通用的设计原则,有多种方法可以增加参数数量并保持低FLOPs。

例如,作者主要考虑高效动态卷积,它可以大幅增加参数数量而几乎不增加额外的FLOPs。ParameterNet方案可以使以前的网络从大规模视觉预训练中受益,并克服低FLOPs的陷阱。

在实验中,ImageNet-22K预训练的ParameterNets相比正常的ImageNet-1K训练可以提高约2%的性能。例如,ParameterNet-600M在ImageNet-1K验证集上实现了81.6%的top-1准确率,其FLOPs数量比Swin-T低7倍。

2、本文方法

在本节中,作者研究了大规模预训练设置下的 low-FLOPs 网络。

2.1 Architecture: Transformer vs. CNN

在这里,作者没有提出一个新的架构,而是选择了最适合大规模视觉预训练的低FLOPs网络架构。ViT及其变种在大型视觉模型领域中展示了Transformer相对于CNN的优越性。

如下图所示,当FLOPs高于5G FLOPs时,基于Transformer的模型在计算成本相似的情况下始终表现出色于CNN。

至于更小的模型,特别是在600M FLOPs范围内的移动级模型,具有局部性和平移不变性的CNN仍然占主导地位。为了构建用于视觉任务的高效Backbone模型,作者选择了CNN作为基础模型。GhostNet是代表最先进的移动模型,引入了廉价运算来简化标准卷积层。

2.2 Parameters Are All You Need

在神经网络中,参数数量和FLOPs之间存在高度的相关性。具有大量参数的模型通常拥有较高的FLOPs。考虑到大量数据需要更多的参数的直觉,作者通过增加参数数量来构建ParameterNet,同时保持低FLOPs。

作者从传统的卷积层开始。给定输入特征

X \in R^{C_{in}×H×W}

和权重张量

W \in R^{C_{out}×C_{in}×K×K}

,传统的卷积层的操作如下:

在这种情况下,输出特征图

Y \in R^{C_{out}×H^′×W^′}

可以看作是卷积操作的结果,其中

表示卷积操作,并且省略了偏置项以简化表示。全连接层可以被看作是卷积核尺寸为1×1的卷积层。

作者的设计原则是在保持低 FLOPs 的同时增加更多的参数。构建 ParameterNet 的方法有多种,例如动态卷积和重参化卷积。尽管重参化卷积在训练过程中增加了参数的数量,但其在推理阶段的参数和 FLOPs 是不变的,也就是说,模型的容量没有增加。

在本文中,作者主要考虑高效的动态卷积,它可以多倍增加参数的数量,几乎不带来额外的 FLOPs。

具有M个dynamic experts的动态卷积可以表示为:

其中

W_i \in R^{C_{out}×C_{in}×H×W}

是第

i

个卷积权重张量,

\alpha_i

是对应的动态系数。系数

\alpha_i

是根据不同的输入样本动态生成的,一种典型的方法是使用MLP模块基于输入生成系数。

对于输入

X

,作者首先进行全局平均池化将信息融合为一个向量,然后使用具有

softmax

激活函数的两层MLP模块来动态生成系数:

其中

\alpha \in R^M

成分分析:

对于标准的卷积层来说,参数数量为

C_{out}·C_{in} · K · K

,FLOPs 数量为

H' · W' · C_{out} · Cin · K · K

。动态卷积由系数生成模块、动态权重融合和卷积过程组成。

具有

C_{in}

个隐藏维度的系数生成模块需要

C^2_{in} + C_{in}M

个参数和

C^2_{in} + C_{in}M

个 FLOPs。动态权重融合是无参数的,并且有

M · C_{out} · C_{in} · K · K

个 FLOPs。

因此,动态卷积的总参数数目和 FLOPs 数目分别为

C^2_{in} + C_{in}M + M · C_{out} · C_{in} · K · K

C^2_{in} + C_{in}M + M · C_{out} · C_{in} · K · K + H' · W' · C_{out} · C_{in} · K · K

动态卷积与标准卷积的参数比例为:

FLOPs比率为:

因此,与标准卷积相比,动态卷积具有大约

M

倍的参数,并且额外的 FLOPs 可以忽略不计。

3、实验

3.1 实验设置

3.2 主要结果

3.2.1 与SOTA比较

3.2.2 推理速度

3.3 消融实验

3.3.1 dynamic experts的数量

3.3.2 Dynamic convolution vs. re-parameterized convolution

3.3.3 ParameterNet for other network architectures

4、参考

[1].ParameterNet: Parameters Are All You Need for Large-scale Visual Pretraining of Mobile Networks.

5、推荐阅读

ADAS项目实践 | 源码级讲解单目3D检测的int8 ptq量化开发教程

一文全览 | 全览iPhone 12就可以实时推理的移动端ViT

SAM-Med | 英伟达基于SAM提出医学图像标注效率神器

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 集智书童 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、简介
  • 2、本文方法
    • 2.1 Architecture: Transformer vs. CNN
      • 2.2 Parameters Are All You Need
        • 成分分析:
    • 3、实验
      • 3.1 实验设置
        • 3.2 主要结果
          • 3.2.1 与SOTA比较
            • 3.2.2 推理速度
            • 3.3 消融实验
              • 3.3.1 dynamic experts的数量
                • 3.3.2 Dynamic convolution vs. re-parameterized convolution
                  • 3.3.3 ParameterNet for other network architectures
                  • 4、参考
                  • 5、推荐阅读
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档