大规模视觉预训练显著提高了大型视觉模型的性能。然而,作者观察到现有的低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。
作者从传统的卷积层开始。给定输入特征和权重张量,传统的卷积层的操作如下:
在这种情况下,输出特征图可以看作是卷积操作的结果,其中 表示卷积操作,并且省略了偏置项以简化表示。全连接层可以被看作是卷积核尺寸为1×1的卷积层。
作者的设计原则是在保持低 FLOPs 的同时增加更多的参数。构建 ParameterNet 的方法有多种,例如动态卷积和重参化卷积。尽管重参化卷积在训练过程中增加了参数的数量,但其在推理阶段的参数和 FLOPs 是不变的,也就是说,模型的容量没有增加。
在本文中,作者主要考虑高效的动态卷积,它可以多倍增加参数的数量,几乎不带来额外的 FLOPs。
具有M个dynamic experts的动态卷积可以表示为:
其中是第个卷积权重张量,是对应的动态系数。系数是根据不同的输入样本动态生成的,一种典型的方法是使用MLP模块基于输入生成系数。
对于输入,作者首先进行全局平均池化将信息融合为一个向量,然后使用具有激活函数的两层MLP模块来动态生成系数:
其中 。
成分分析:
对于标准的卷积层来说,参数数量为 ,FLOPs 数量为 。动态卷积由系数生成模块、动态权重融合和卷积过程组成。
具有 个隐藏维度的系数生成模块需要 个参数和 个 FLOPs。动态权重融合是无参数的,并且有 个 FLOPs。
因此,动态卷积的总参数数目和 FLOPs 数目分别为 和 。
动态卷积与标准卷积的参数比例为:
FLOPs比率为:
因此,与标准卷积相比,动态卷积具有大约 倍的参数,并且额外的 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.