点击下方卡片,关注「集智书童」公众号
导读
现有自适应技术通常需要架构修改或添加参数,导致计算成本和复杂性较高。作者提出了注意力投影层自适应(APLA),这是一种在不改变架构或添加参数的情况下适应视觉Transformer(ViTs)的简单方法。
通过系统分析,作者发现注意力机制之后的层对于自适应至关重要。通过仅更新这个投影层,或者甚至只更新这个层的一小部分权重,APLA在保持最先进性能的同时,将GPU内存使用量减少了高达52.63%,训练时间减少了高达43.0%,且在推理过程中无需额外成本。
在涵盖场景分类、医学成像、卫星成像和细粒度分类等多种任务的46个数据集上,APLA在分类、分割和检测任务中始终优于包括全微调在内的17种其他领先的自适应方法。
代码:github.Com/MoeinSorkhei/APLA
- 引言
模型适应的主要目标是使模型能够在最小数据和计算成本的情况下泛化到新的任务。最成功的方案通过向冻结的基础模型中注入新的参数或层来实现这一目标[6, 29, 31, 42]。这个过程通常需要复杂的启发式方法——例如梯度敏感性分析[23, 69]和神经架构搜索[68]——来确定注入参数的最佳位置。此外,添加新的参数可能会引入显著的开销。为了提高效率,一些方法试图在不添加参数的情况下适应模型现有的结构[66, 69],但这些方法与添加参数的技术相比表现不佳。这引发了一个关键问题:是否仅使用模型现有的架构就能实现具有竞争力的适应?
作者提出答案是肯定的——关键在于更好地利用模型固有的架构。
作者系统地研究了在偏离传统参数添加方法的情况下,Vision Transformer (ViT) 基础模型中哪些现有组件对于适应最为关键。作者的分析表明,紧接在多头自注意力 (MSA) 机制之后的投影层发挥着独特而关键的作用。随后,受低秩逼近技术 [29, 32] 的启发,这些技术表明对完整权重矩阵的更新通常可以用低维矩阵有效地表示,作者探讨了是否需要更新整个投影层。作者发现,仅修改该层参数的随机子集就足以维持——甚至超越——性能,同时进一步降低计算成本。这一结果表明,用于学习更新低秩逼近的额外参数可能是不必要的,为更简单、更有效的适应策略打开了大门。
在本工作中,作者提出了注意力投影层适配(APLA)方法,这是一种用于高效适配ViTs的最新技术,且无需额外参数。作者的主要贡献如下:
- • 识别关键ViT组件:通过系统实验,作者确定紧接注意力机制之后的投影层是适应性最重要的组件,为APLA提供了针对ViT调优的关键方法,同时也能提升其他适应性技术。
- • 低秩子集更新以实现高效自适应:基于这一洞察,作者提出了一种低秩自适应技术,该技术仅更新投影层权重的一个随机子集,以更低的计算成本实现更高的性能。
- • 简化适配,无需额外参数:该方法在不引入任何新参数的情况下实现了SOTA(最先进的技术)结果,并消除了确定注入新参数或适配现有参数位置所需的高成本启发式方法的需求。
- • 在不同规模和多样化应用中验证:作者在46个数据集上对APLA进行了验证,涵盖了各种任务和模型大小,证明了其在17种自适应方法中的一致优越性。在大多数情况下,APLA的表现优于全微调,同时实现了高达52.63%的GPU内存节省和43.0%的训练时间减少。
这些贡献共同确立了APLA作为高效且易于访问的ViT适应的新标准。
- 相关工作
基础模型[3]已经改变了计算机视觉领域,但随着这些模型规模的扩大[14, 30, 51],它们的微调需要高内存和计算资源。传统的预训练后微调范式[12, 44, 49, 70]多年来推动了该领域的发展,但由于这些不断增加的成本,它正变得对许多应用来说不可行。最近在模型规模方面的进步[14, 30, 51]只是增加了这些挑战,使得许多应用的全量微调变得不可行。
作为回应,高效的适应方法已经出现,使得资源较少的实践者可以通过引入少量新参数来利用大型基础模型,这些方法通常被称为参数高效微调(PEFT)。这些方法降低了开销,使得大型模型在资源受限的环境中更容易部署。
基于 Adapter 的方法将紧凑、轻量级的模块引入特定层,通过仅调整 Adapter 参数来实现特定任务的适应性调整,同时保持基础模型基本冻结。最初为自然语言处理(NLP)领域开发, Adapter [28]将瓶 Neck 依次放置在每个多头注意力和MLP块[61]之后。AdaptFormer[6]扩展了这一方法,在视觉Transformer中将 Adapter 与MLP块并行放置,而不是依次放置。最近的方法对 Adapter 设计进行了优化以提高效率。ARC[16]使用类似的 Bottleneck 操作,但引入了参数共享。SPT-Adapter[23]根据梯度幅度识别并仅对最具影响力的层进行适配。SSF[42]在每个ViT层之后附加可学习的缩放和移位变换来调节特征,而Consolidator[22]添加了分组连接层,通过通道输入组捕获更丰富的信息。基于 Adapter 的方法提供了具有较少参数的灵活、高效模型适配,但它们增加了推理成本,需要谨慎初始化[28, 56],并且它们的放置通常依赖于启发式方法[6]或基于梯度的选择[23],这增加了计算开销,并可能导致次优配置。
基于低秩的方法利用适应更新中的低秩结构,通过低秩矩阵实现高效的适应。LoRA [29] 通过在注意力块中添加低秩矩阵与原始权重相结合,开创了这种方法。SPT-LoRA [23] 在LoRA的基础上,通过选择性地对梯度幅度最大的层应用低秩更新。FacT [32] 和 RLRR [17] 将更新分解为因子,并将这些因子应用于所有ViT层。虽然低秩方法降低了适应成本,但它们像 Adapter 一样插入额外的参数。
基于 Prompt 的方法引入可学习的 Token 以引导适应,而不修改核心模型参数。VPT [31] 将 Token 添加到每个Transformer块的输入中,而
[21] 则将辅助 Token 纳入注意力层。尽管基于 Prompt 的方法避免了改变内部参数,但它们可能会因为添加的 Token 而增加推理成本。NOAH [68] 结合 Prompt 、 Adapter 和LoRA模块,利用神经架构搜索来优化放置。
参数选择性调整是一种由少数与APLA最密切相关的方法所采用的方法,这些方法通过仅调整模型的一小部分现有参数来适应模型。GPS [69] 根据梯度的幅度选择调整参数,旨在针对适应过程中的错误诱导参数。BitFit [66] 采用了一种更简单的方法,仅更新偏差参数。虽然这些方法在计算效率和易于实现方面可能具有优势,但它们在识别最优参数子集方面面临挑战,这反映在它们相对较差的性能上。APLA通过识别并针对ViTs中的关键层进行适应,实现了最先进的性能。
- 方法
受限于调整网络权重子集的方法和使用低秩更新的方法启发,作者提出疑问:“作者能否结合两者的优势?为此,作者确定了最具有影响力的ViT组件以进行适应,并提出了一种简单的方法,该方法更新现有权重的低秩子集。”
3.1. 探究ViT组件的适应性
ViT由多个可学习组件组成。为了确定对将模型适应下游任务影响最大的组件,作者首先回顾了不同的ViT组件,按照其功能进行分组(图2)。
以输入图像
为起点,通过 patchifying stem 将其分割并 Reshape 成
个加粗的块。每个块在嵌入层
中进行线性变换,并添加位置嵌入
(其中
)以捕获空间信息,同时附加分类 Token [CLS] 以创建初始嵌入
。这些嵌入通过
个 Transformer 块传递,每个块包含 LayerScale (LS) [57]、LayerNorm (LN) [1]、多头自注意力 (MSA) 和多层感知器 (MLP) 模块。最终表示通常来自第
个块的 [CLS] Token ,然后由分类头
处理以产生预测
。
在 MSA 块中,使用可学习的矩阵
、
和
(其中
对应于
个并行自注意力头)对输入 Token 进行自注意力计算,允许每个头学习不同的上下文关系。每个头的自注意力输出为:
其中
表示每个自注意力头中 Query 、 Key和Value 向量的维度。每个头的输出连接起来,然后通过投影层
重新加权组合特征,形成MSA块的最终输出。
该输出随后被一个MLP块处理,该块由两个全连接层
和
组成,层间包含非线性函数。
为了确定适应过程中最关键的组件,作者通过逐一调整上述每个组件,同时保持其余网络部分冻结,并调整最终的分类头
,进行了一次实证研究(图2)。作者发现,仅调整投影层
(位于MSA块中的自注意力操作之后)就能获得最佳性能,甚至超过了全量微调。本研究的详细内容见第5.1节。
3.2 低秩自适应通过部分梯度
低秩自适应方法利用了以下见解:全秩矩阵的初始值与自适应值之间的差异
完全微调的90.7矩阵可以由一个低秩矩阵紧密逼近
,
和
分别表示层在适应前后的可学习矩阵,而
是满秩的。先前的工作(例如[29, 32])通过向ViT层添加低秩矩阵来近似这个差异,其中秩
被设置为超参数。
相比之下,作者提出了一种更简单的低秩自适应方法,通过在随机选择的列子集上计算梯度来实现,这种方法在节省大量计算资源的同时,保留了低秩更新的优点,且无需添加参数或改变模型的架构。
具体来说,给定一个参数矩阵
,作者将其划分为一个可训练的子矩阵
,在训练过程中计算梯度,以及一个冻结的子矩阵
,其保持不变。
其中括号表示对
进行索引,代表随机选择的可训练列索引,其中
控制更新的秩,当
时达到满秩。
3.3. 注意力投影层自适应(APLA)
基础模型已经编码了丰富的特征集,作者假设通过选择性地重新加权这些特征以适应目标任务,可以实现对新任务的适应。因此,作者针对高效模型适应的方法集中在识别具有影响力的层,并在随机选择的输出特征子集(矩阵列)上计算部分梯度。
投影层
是一个理想的适应目标,因为它在所有头之间重新加权注意力机制中的特征方面发挥着核心作用。
因此,作者提出了注意力投影层自适应(APLA)方法,该方法调整每个Transformer块中随机选择的
矩阵的列子集,同时保持ViT Backbone 网络的其他部分冻结。具体来说,作者仅调整
矩阵的列向量子集和最终的分类头
。
对于每个 Transformer 块
,作者在训练开始时选择一个全局秩超参数
,然后独立地采样一个不同的列索引子集
。
APLA易于实现,计算效率高,无需新增参数,且不引入额外的推理延迟,使其非常实用。
- 实验设置
作者将APLA与21种适应方法在4个任务中的46个数据集上进行了基准测试,使用了3个基础模型。对于作者的主要模型类型,除非另有说明,作者使用不同容量的Vision Transformers(ViTs)[18]和Swin Transformers [44]。以下是作者实验设置的概述。更多细节请见附录A。
适应方法作者评估了APLA与各种适应方法,从传统方法开始:全微调(FINETUNE)和仅训练附加线性层(LINEAR)。作者进一步与MLP-
和PARTIAL-
进行比较。在MLP-
中,附加了一个
层MLP到模型中,并且只训练这个模块,而PARTIAL-
调整模型的最后
个模块。作者为MLP-
设置
,为PARTIAL-
设置
,与[31]一致。为了基准测试高效的适应方法,作者将其与17种最近的方法进行比较:B1TFIT [66]、ADAPTER [28]、ADAPTFORMER [6]、VPT-shallow和VPT-deep [31]、
VPT [21]、SSF [42]、LoRA [29]、SPT-adapter和SPT-LoRa [23]、NOAH [68]、FACT-TK和FACT-TT [32]、CoNSOLIDATOR [22]、ARC [16]、GPS [69]和RLRR [17]。
数据集和任务作者在46个数据集上对APLA进行了基准测试,涵盖了多种目标类别和任务。从21个通用图像分类任务开始,作者涵盖了上位目标识别、细粒度分类、场景识别、卫星图像和医学图像分析,使用以下数据集:CUB200-2011 [62]、NABirds [60]、Birdsnap [2]、Stanford Dogs [36]、StanfordCars [39]、Aircraft [46]、Caltech-256 [20]、Caltech-101 [19]、CIFAR-100和CIFAR-10 [40]、OxfordIII Pet [52]、DTD [8]、MIT Indoor [54]、SUN397 [64]、AID [63]、RSSCN7 [7]、ISIC2019 [9, 10, 58]、APTOS2019 [33]、DDSM [41]、Colorectal [34]和Pneumonia [35]。
对于语义分割、实例分割和目标检测,作者使用ADE20K [71, 72] 和 MS COCO [43]。
为了在低数据环境下进行测试,作者使用了VTAB-1k [67],这是一个包含19个分类任务的数据集,每个任务仅有1,000个训练示例——代表了具有挑战性但现实场景下的模型适应性。对于分布外(OOD)评估,作者使用了ImageNet、ImageNet-A [27]、ImageNetC [25]和ImageNet-R [26],这些数据集引入了各种领域偏移,包括损坏、扰动和对抗性示例。作者使用每个数据集的标准评估指标。
基础模型 为了评估基础模型类型和预训练策略的影响,作者比较了在IMAGENET-21K [15]上使用监督学习训练的模型、使用半监督训练的OPENCLIP [30]以及使用自监督预训练的DINOV2 [51]。除非另有说明,作者使用DINoV2。
实现细节为确保公平比较,作者紧密遵循[6, 16, 17, 21, 29, 31, 32]中的实现方法。对于每个数据集,当可用时,作者使用官方协议和标准的训练/验证/测试划分[67]或[31]提供的划分。模型使用Adamw[45]进行100个epoch的训练,采用余弦退火学习率计划,预热期为10个epoch。超参数通过在验证集上进行网格搜索进行选择。
APLA与其他低秩方法(例如[29, 32])一样,需要选择值
,在作者的案例中,
代表用于自适应采样的权重矩阵的列数。作者在
范围内搜索以找到最佳值。有关实验设置的更多详细信息,请参阅附录A。
- 实验与结果
作者首先评估了APLA的核心组件选择,首先关注于识别适应过程中最关键的层——投影层
——以及如何选择其中需要调整的参数。接着,作者在标准分类、检测和分割任务上,包括低数据设置和分布外数据集,将APLA与其他几种方法进行了基准测试。此外,作者还评估了APLA在不同模型容量、架构和基础模型上的表现。最后,作者评估了其计算效率,并探讨了其他适应技术如何从作者对投影层
重要性的研究中受益。
5.1 选择APLA的组件
识别需要调整的组件
先前的研究表明,某些类型的层在迁移学习中扮演着更重要的角色[38, 47, 50, 55, 65]。为了确定APLA的最佳组件,作者系统地研究了单独调整不同ViT组件的影响,同时保持所有其他层冻结。
识别需要调整的参数
受低秩自适应方法有效性的启发,作者探索了通过选择
中的特定参数来经济化APLA的自适应策略。作者评估了各种策略,包括选择具有最大梯度、激活和权重幅度的列,以及随机选择列。
作者在表2中报告了作者的研究结果。令人惊讶的是,调整
中随机子集的列的表现与更复杂的选择方法相当。这表明,在投影层
中,可调整列的具体选择不太关键。对于APLA,作者选择随机选择方法,因为它可能更好地利用注意力头之间的特征冗余,并在不增加计算成本的情况下获得轻微的性能优势。
5.2. APLA的基准测试
主流分类任务
作者将APLA与其他方法在21个不同的图像分类任务中进行基准测试,包括上位分类、细粒度分类、场景识别、卫星图像和医学图像分析。表3展示了结果。平均而言,APLA优于所有其他方法,比第二好的方法ADAPTFoRMER提高了0.6%。在21个数据集中,有18个数据集APLA排名第一或第二,这表明它在不同的分类任务中表现出色。
在低数据设置下的APLA 基础模型适配在低数据场景中尤其有价值,因为重用预训练特征至关重要,而随机初始化的模型往往表现不佳 [18, 37, 48]。作者使用包含19个数据集的VTAB-1k基准测试来评估APLA在此环境下的表现,每个数据集仅有1,000个样本。作者使用在IMAGENET-21K上预训练的ViT-B和Swin-B,并报告了三个领域的平均性能:自然、专业和结构化。如表4所示,APLA优于所有其他方法,在这些领域实现了至少1%的性能提升。附录中的图9提供了这些实验中不同适配方法的[CLS]嵌入的可视化。
分布外鲁棒性尽管APLA在各种设置中表现出强大的性能,但其针对领域迁移和对抗样本的鲁棒性仍有待评估。作者使用在ImageNet-21K上预训练的基础模型,通过多种适应方法在ImageNet-1K上进行微调,并在ImageNet-A [27]、ImageNet-R [26]和ImageNet-C [25]上进行了评估。如表5所示,APLA在整体上优于其他方法,在ImageNet-C上平均损坏误差(mCE)提高了8.6%。值得注意的是,APLA和大多数其他适应方法在所有OOD数据集上都优于全微调,突显了高效适应方法在OOD任务中的潜力。
语义分割、检测任务作者评估了APLA在语义分割、目标检测和实例分割任务上的表现。对于语义分割,作者使用SETRPUP [7O],其背骨网络使用在IMAGENET-21K上预训练的ViT-Large,报告了在ADE20K上的单尺度(SS)和多尺度(MS)评估的平均交并比(mIoU),与[23, 31]中的方法相同。对于目标检测和实例分割,作者使用Mask R-CNN [24],其背骨网络使用在IMAGENET-1K上预训练的Swin-Tiny,遵循[42, 44]的方法,并报告了在MS COCO [43]上的边界框预测的平均精度(AP)和 Mask 预测的平均精度(AP)。更多细节见附录A。如表6所示,APLA超越了所有其他自适应方法,在语义分割上尤其表现出色。
不同的基础模型类型和容量。作者评估了APL在不同基础模型训练策略、容量和架构上的适应性,使用了监督式IMAGENET-21K和半监督式OPENCLIP ViT-B模型,以及Swin Transformer [44]。为了评估可扩展性,作者测试了不同尺寸的ViT模型(ViT-S、ViTB、ViT-L和ViT-g)。
如表4、7和8所示,APLA在预训练、模型大小或架构方面均优于其他方法,即使在其他方法表现不稳定的情况下,APLA仍能保持强大的性能。
在5.1节中,作者展示了
是适应性调整中最具影响力的组件——超越了全微调——而在5.2节中,作者表明,当在APLA中进行针对性调整时,它优于其他适应性调整方法。现在,作者探讨如果将其他适应性调整方法应用于
会发生什么。它们在针对这一层时是否会提高性能?作者为APLA提出的低秩适应性调整策略是否能在针对同一层的其他适应性调整方法中占优?使用在DINoV2上预训练的ViT-B,作者对
应用了LoRA[29]、FACT[32]和ADAPTFORMER[6],并在Birds、Cars、AID、ISIC和VTAB-1k上进行比较。
如表9所示,应用其他适应方法到
通常能提升性能,从而巩固了
层的重要性。关键的是,当其他领先方法应用于
时,APLA仍然优于它们,这表明作者使用随机部分梯度的简单低秩适应策略具有优势。
计算成本
作者通过测量训练和推理过程中的GPU内存占用、参数数量和吞吐量来分析自适应方法的计算成本。训练结果如图3所示,更多结果和细节见附录B。APLA展示了显著的效率提升,减少了内存使用并提高了训练吞吐量,而不会增加额外的推理成本。
图1进一步说明,APLA的内存节省随着模型大小的增加而增加,甚至超过了仅调整偏置参数的BitFit。附录中的图5报告了参数数量,显示根据这一指标,APLA似乎比许多方法成本更高。然而,如先前工作[4, 13]所指出,参数数量在评估计算效率时具有误导性。实际上,APLA仍然是效率最高的方法,在训练和推理过程中,其在GPU内存使用和吞吐量方面始终优于其他方法。
作者还在附录B.3中探讨了增加秩
如何影响APLA和其他低秩方法的计算需求。在存在显著领域迁移的任务中,可能需要更高的
来重新加权特征并弥合预训练与目标领域之间的差距。通过利用现有的模型参数,APLA即使在更高的秩下也能保持内存和吞吐量成本几乎不变,而其他方法随着
的增加会变得越来越昂贵。
- 讨论
APLA在广泛的分类、分割和检测任务中建立了高效模型适应的新标杆,展现出在低数据量和分布外场景下的韧性。它在模型类型、容量和预训练方法上均取得了顶级性能——这种适应性是其他适应方法在如此多样的条件下无法维持的。此外,APLA在计算效率方面表现出色,显著降低了内存和处理需求。
APLA除了卓越的性能外,还具有多项实际优势。它易于实现,无需进行架构更改或添加可能对初始化敏感的参数。它消除了搜索需要更新的参数的需求。APLA的简单性使其易于使用。此外,APLA还支持灵活的层自适应,根据需要允许部分或全部层更新,且计算开销最小。最后,如第5.2节所示,APLA的核心洞察力可以用来增强其他自适应方法,例如,仅对
应用ADAPTFORMER可以提升1%的性能。
APLA之所以如此有效?尽管作者还没有一个确切的答案,但作者提供了两种可能的解释。一种是对
的定位。基础模型编码了一组丰富的特征,这些特征对各种任务都具有鲁棒性。然而,每个任务都从这些特征的独特组合中受益,因此特征重新加权变得至关重要。这正是
的作用,它重新加权了所有注意力头中特征的贡献。图2揭示了其他表现优异的ViT组件也具有类似的功能:
重新加权了每个头内部的注意力输出,而
则作用于所有头。鉴于这一点,人们可能会预期MLP块中的
和
扮演更关键的角色,但它们位于更下游的位置,
和归一化层在它们到达MLP块之前修改了特征。
APLA有效性的第二个解释在于其使用随机选择的梯度更新进行低秩适配的简单性。其他采用启发式方法选择参数的方法,例如基于大权重、激活或梯度,可能对高度过参数化和特征冗余的基础模型来说并不理想。基于大梯度或权重的选择可能无法捕捉到最相关的特征,可能导致适配偏向于冗余或过于特定的特征,并导致过拟合。通过重新加权更广泛范围的特征,随机选择使得APLA在高特征冗余的情境中同样甚至更有效,如表2所示。
为什么APLA往往优于全量微调?作者推测,在低数据集环境下,全量微调可能会扭曲预训练特征以适应有限的训练集,从而导致过拟合——这一问题在部分微调
时不太明显。
局限性
未来工作 虽然作者的实验范围广泛,但仍有一些方面未被探索。作者的研究重点是确定单个最重要的ViT组件以进行适应,而不是多个组件。全面搜索在计算上是不切实际的,而类似于NAS的约束搜索可能会产生不理想的任务特定组合[68]。此外,作者也没有考察
的选择如何随着数据可用性或信息密度而变化;更丰富的数据可能支持更大的
并增强适应性。最后,APLA对灾难性遗忘的敏感性尚未得到测试——与可以单独存储的基于 Adapter 的方法不同,APLA直接修改基础模型,可能会影响先前知识的保留。
- 结论
作者引入了APLA,这是一种简单而有效的通过仅调整随机选择的投影层列子集来适应ViT的方法。大量实验表明,APLA在降低计算成本的同时实现了最先进的性能,使其非常实用。作者的结果表明,在过参数化模型中,效率并不需要额外的复杂性——对现有特征的简单针对性重新加权甚至可能更强大。
参考
[1]. APLA: A Simple Adaptation Method for Vision Transformers
扫码加入👉「集智书童」交流群
(备注:方向+学校/公司+昵称)