paper:AdaptFormer: Adapting Vision Transformers forScalable Visual Recognition

code:https://github.com/ShoufaChen/AdaptFormer

引言

可研究性

预训练的ViTs在视觉识别方面取得了巨大的成功。由于大量的计算和内存存储,这种自适应具有挑战性。每个模型都需要一个独立和完整的微调过程来适应不同的任务,这限制了其在不同视觉领域的可转移性。为了解决这一挑战,我们提出了一种有效的Transformer适应方法,即AdaptFormer,它可以有效地使预先训练的振动适应许多不同的图像和视频任务。

优点
  • 首先,Adapt前者引入了轻量级模块,为ViT只添加不到2%的额外参数,同时能够在不更新原始预训练参数的情况下增加ViT的可迁移性,在动作识别基准上显著优于现有的100%完全微调的模型。

  • 其次,AdaptFormer即插即用,并可扩展到许多视觉任务。

  • 最后,在5个图像和视频数据集上的大量实验表明,在很大程度上提高了目标域的vit。

方法

三种微调方法

prompt tuning:最近的prompt相关方法将可训练参数插入到token空间中,在线性投影之前将可学习的参数预先添加到嵌入的token中,或者在线性投影之后将可学习的参数添加到key and value token中

【VPT】

  • linear probing(线性探测):将预训练的model作为特征提取器后加一个额外的线性层,只更新线 性层的参数,也就是为每项任务设计一个特定的轻型分类头,但效果 不佳。

  • Full Fine-tuning:将所有的参数都设为可学习,一起进行调整。

  • VPT:将可学习的参数添加到key and value token空间中,微调添加的额外参数。

整体框架

如图2b所示。与普通的完全微调机制相比,AdaptFormer使用AdaptMLP取代了MLP块,它由两个子分支组成。左侧分支中的MLP层与原始网络相同,而右侧分支是一个额外引入的轻量级模块,用于特定于任务的微调。具体来说,右分支被设计为限制参数数量的瓶颈结构,其中包括一个参数为的下投射层,一个参数为的上投射层,其中是瓶颈的中间维度,满足。此外,由于非线性性质,在这些投射层之间存在一个ReLU层。该瓶颈模块通过一个比例因子s的残差连接和原始的MLP网络(左分支)相连。对于特定的输入特征,AdaptMLP中的右分支生成适应的特征,形式是通过:

然后将特征通过残差连接与融合,

AdaptFormer的总体框架:使用AdaptMLP替换了MLP模块,AdaptMLP模块有两个分支,一个是冻结分支,一个是可训练的bottleneck分支,右分支通过比例因子s残差连接到左分支

每个Transformer编码器主要由两种子层组成,即多头自注意层(MHSA)和MLP层。在MHSA中,标记被线性投影,并进一步重新表述为三个向量,即Q、K和V。对Q、K、V进行自注意计算,计算方法为:

其中,是由MHSA在第l层产生的令牌。输出令牌被进一步发送到一个由两个全连接层组成的LayerNorm和MLP块,中间有一个GELU激活。这个过程的正式表述如下:

其中,是第l个编码器块的输出。在最后一个Transformer层,CLS(class token)被用于最终的对象识别。在本文中,用AdaptMLP模块替换了MLP层,以实现高效的微调。

本文借鉴VPT冻结backbone和引入可调参数的思想,但与VPT不同的是VPT将可学习的参数插入到token空间中,而本文是将参数加到Transformer的MLP层。

AdaptFormer用AdaptMLP代替了Transformer编码器中的MLP块。AdaptMLP由两个并行的子分支组成:

左分支中的MLP层与原始网络相同,也叫冻结分支;

右分支是引入的task-specific轻量级模块,设计为bottleneck结构,轻量级编码器-解码器结构旨在通过降低中间维度来限制新引入的参数量。bottleneck结构由两个全连接层,一个非线性激活函数和一个缩放因子组成,与原始ViT模型的前馈网络 (FFN) 并行设置。

在微调阶段,原始模型部件(图b中的蓝色块)从预训练的checkpoint加载权重并保持不变,避免下游任务之间的交互。新添加的参数(橙色块)在特定数据域上随任务特定损失进行更新。在微调后,作者保持共享参数固定,并额外加载前一阶段微调的额外参数的权重。 AdaptFormer仅通过微调少量额外参数就获得了强大的迁移学习能力,避免了任务间的干扰。

实验

自监督预训练和监督预训练模型的微调方法比较

AdaptFormer始终优于linear probing和Visual Prompt tuning(VPT)方法,在视频领域优势更加显著。相比完全调整,参数量只有不到2%,但准确率高5%.

可调参数实验

Left:在参数量的比较上,相比于VPT方法,本文的方法在两个数据集上都能达到更高的性能。当参数数量超过任务特定值时,VPT的准确性会显著下降,而AdaptFormer对不断增加的参数具有鲁棒性。

Right:逐渐增加VPT的token数量,token≤4时是稳定的,≥8训练会崩溃;而中间维度控制AdaptFormer引入的参数的数量,即table3.a可以看出Adaptformer随着参数量的增加精度保持稳定

消融实验
  • 中间维度 越小,引入的参数越少。在SSv2数据集上,当中间维度增加到64时,准确度持续提高,当中间维度大约为64时,达到饱和点。当中间维度甚至降低到一个时,AdaptFormer也可以获得不错的性能。

  • 添加层数layers:AdaptFormer的性能与添加的层数呈正相关。当引入相同数量的层时,并行效果比串行效果好。原因是因为并行设计使用一个独立的分支来保持原始特征,并通过元素的缩放和来聚合更新的上下文;同时 串行设计相当于添加更多的层,这可能会导致优化困难。

  • 缩放因子s:s是用于平衡task-agnostic特性(由原始冻结分支生成)和task-specific特性(由可调bottleneck分支生成)。结果表明s在0.1左右达到最佳性能。

  • 帧数:嵌入patch token的数量随着视频帧的数量线性增加。作者使用不同数量的帧进行了实验,即{2,4,8},观察到增加帧数对所有这三种微调方法都是有益的。AdaptFormer始终优于线性方式和VPT方法。

结果可视化

与前两个方法相比,全微调策略在特征方面表现良好,但需要消耗大量的计算资源。图(d)验证了AdaptFormer有助于以更少的可学习参数生成更多的可分离表示。

鲁棒性实验

作者使用在ImagNet-21k上预训练的模型在SSv2和HMDB-51上进行动作识别。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐