当前位置:   article > 正文

Visual Tuning【2023年5月】视觉大模型微调综述,建议慢慢品读。。。。_视觉语言模型 visual tuning

视觉语言模型 visual tuning

创作不易,点赞收藏,谢谢!如有交流需要,请关注微信公众号“笔名二十七画生”!

摘要

微调视觉模型在许多下游视觉任务中已被广泛证明具有很好的性能。随着预训练视觉基础模型的惊人发展,视觉微调跳出了标准的操作方式,即对整个预训练模型或仅对全连接层进行微调(目前绝大多数网络的操作是这样的,比如先在ImageNet数据集进行训练获得参数,然后去除全连接层迁移到下游任务比如目标检测与分割等进行微调)。相反,最近的进展通过更新较少的参数能够实现比对整个预训练参数进行微调更出色的性能,使边缘设备和下游应用能够重复使用部署在云上的日益庞大的基础模型。为了帮助研究人员全面了解视觉微调的整体情况和未来发展方向,本综述对最近的研究工作进行了大量而深入的选择,提供了对现有工作和模型的系统和全面的概述。具体而言,它提供了视觉微调的详细背景,并将最近的视觉微调技术分为五组:提示微调、适配器微调、参数微调和重新映射微调(咋只有四个???看了正文发现还有一个微调)。与此同时,它为未来的预训练和视觉微调中各种交互提供了一些引人注目的研究方向。

1.引言

由于Transformer模型的广泛使用和大型基础模型的出现,视觉智能深度学习范式一直在经历将下游任务适应基础模型的高潮。最近Visual ChatGPT(不好意思,买不起会员,没用过)的惊人性能是通过预训练过程中的大量计算资源和调整过程中的人工反馈实现的。预训练的基础模型(例如GPT-3,几乎人人必备,反正我在用)显示出强大的能力,但需要大约800GB的存储空间来存储1750亿个参数,这使得重新训练独立的模型副本以用于不同的下游任务变得昂贵。基础模型有望继续扩大规模,如何通过参数高效的迁移学习方法(例如提示、前缀(第一次听说)、适配器(还不知道啥意思。。。读完了还不知道啥意思)等)重复使用基础模型迅速成为一个研究热点。在过去的两年里,受到自然语言处理(NLP)中参数高效迁移学习方法的启发,已经提出了许多用于将下游任务调整到预训练视觉或视觉语言模型的技术。

在日益增长的大型模型时代,视觉模型已经从基于EfficientNet的模型(480M参数)扩展到基于Transformer的模型(2100M(接近两个GB)参数),最近的模型规模甚至达到了22B参数和562B参数。对于这样大型的模型,参数高效的迁移学习(PETL,parameter-efficient transfer learning)方法的目标是很好地重复使用在云端部署的共享参数权重(通常被解释为大型模型的知识),以节省存储开销并为计算和电池资源密集型的边缘设备(如自动驾驶车辆、无人机和机器人)提供支持。这种做法与传统的迁移学习方式不同,后者要么完全微调整个模型,要么只微调任务头部(例如,最后的全连接层,目前用于下游任务比如目标检测与实例分割、语义分割反正是这么干)。

图1 展示了视觉调整的示意图。一个预训练的基础模型可以通过各种预训练技术积累知识,通过在模型大小、数据模态、任务等方面进行扩展。在给定预训练模型的情况下,本调查的重点是视觉调整,展示如何通过关注调整参数、泛化能力、数据效果、训练内存、推理内存等重要方面,有效地重用预训练模型的知识。

随着越来越大的模型(即基础模型)的出现,我们进入了一个超越调整整个模型或任务头部的新的视觉调整范式。如何通过PETL方法有效地重复使用这些知识,从而减少内存使用并提高推理速度,是各种视觉任务中的热门话题。

(告诉你接下来这篇文章怎么讲,文章结构是什么样子的)本文从第2节提供了详细的背景开始,深入审查了视觉领域最新调整的进展,将其分类为五种常见类型,并在第3节详细阐述了它们当前的技术状态。最后,我们在第4节提供了对未来研究方向的深刻见解,并进行了总结。据我们所知,这是关于视觉调整的第一份全面调查,对于研究人员理解这一实践的机制和趋势具有重要意义。

2.背景

(这段说卷积的前世今生)在早期,机器学习方法依赖于特征工程,如SIFT [18]、BRIEF [19]和ORB [20]来处理特定任务,后来由深度学习范 paradigm [21]主导,自从引入ImageNet [22]以来。在ImageNet上预训练的深度学习模型 [23{25]能够通过微调受益于各种下游视觉任务,如图像识别、目标检测和图像分割。微调是典型迁移学习的第二步,利用从源域获得的知识来促进目标域的学习过程 [14, 26](有个方向叫零样本学习貌似定义也差不多)。

根据迁移学习的原则 [27],通过预训练模型学到的知识可以极大地受益于下游任务。例如,大多数大规模视觉基准数据集(如ImageNet [22]和Kinetics [28](这个数据集没用过,查了一下是个视频数据集))上的最先进基线都依赖于额外的数据。早期的预训练模型,如基于CNN的 [25] 和基于Transformer的 [29] 模型,可以通过监督或自监督学习进行预训练。最近,为了统一自然语言和视觉理解任务,提出了先进的预训练范 paradigm [30]、ALIGN [31]、GATO [32]、CoCa [10]、FLAVA [33]、Flamingo [34]和SWAG [35]等,被称为基础模型 [3](这些论文我目前一个也没有看过)。鉴于大规模预训练模型的潜力,超越微调的视觉调整技术引起了越来越多的研究兴趣,导致了如图1所示的视觉调整范式。本节将从理论、定义、模型架构、模型预训练和模型调整五个方面详细阐述视觉调整的背景。

2.1理论

在20世纪90年代,机器学习领域在很大程度上忽视了神经网络和反向传播,原因是担心过拟合和潜在的局部最小值问题。然而,在深度学习的当前时代,通过理论和经验的进步,这些担忧已经得到了很大程度的缓解 [21](是通过什么缓解的呢?我猜是数据占主要作用)。在本节中,我们提出了支撑当前视觉调整状态的基本理论,从三个不同的角度探讨这些理论(生物学视角、模型视角以及统计视角)。

2.1.1 生物学视角 (下面这段话说神经科学与计算机视觉相辅相成,但是人类目前更牛逼)

就像最初的卷积神经网络(CNN)架构受到视觉皮层中感受野的启发一样[36],学习模型可以受到生物学和神经科学的发现的启发或激励。与此同时,许多计算机视觉问题的定义在某种程度上受到人类感知能力的启发。神经科学和计算机视觉的发展为彼此带来了相互的见解。例如,最近的实证神经科学研究表明,反向传播与人脑的突触更新机制相关,为理解皮层中确切的学习机制提供了可能的见解[37]。然而,在研究人员朝着更可解释和可解释的人工智能努力的过程中,对人脑学习机制的理解仍然远未充分。例如,Ullman等人[38]进行了实验证明,调查了人类和计算机视觉中的识别基元,提出现有的深度学习模型在人类水平上无法学习最小的图像变化(例如,减小图像分辨率和裁剪图像的一部分)。

特别是,研究人员正在努力使计算机视觉具有类似于人类视觉的能力。首先,人类视觉可以高效处理大量连续的视觉流。关于这种能力的内在机制,经典的生物学发现表明,人类通过将来自局部部分的信息(如小边缘)整体化(即主观轮廓)来感知现实世界场景,这些场景由皮层区域V1和V2分别处理[39]。还有人提出,人类视觉是在交互式生态环境中具体化和发展的[40]。这激发了研究人员致力于解决准确性和效率等方面的有效解决方案。

其次,人类擅长将对视觉理解的泛化应用到未见过的全新场景,通过推理它们的物理和几何属性[41]。这激发了新兴的基础模型通过越来越具有挑战性的设置进行测试,如零样本学习、持续学习、多任务学习等。

2.1.2 模型视角

(模型越大,效果越好。个人认为神经网络就是一个解方程过程,参数量越多,越能拟合目标函数,我记得之前还有一篇文章从泰勒展开角度去解释他自己提出的模型为什么好?) 从人类视觉中汲取灵感,最近出现的调整大型视觉模型的范式旨在以高效的方式有效地重用大型预训练模型中的知识,涉及计算和数据。生成式预训练大型语言模型,如GPT-3,显示出当模型规模从0.1B扩展到175B参数时,性能显著持续改善[6]。这一观察被称为扩展定律:更大的预训练模型将有益于下游任务,这表明从更大的知识库中进行调整可以导致下游任务的更好性能。这种扩展定律也在最近的文献中得到证明[11, 42]。Sung等人[17]从反向传播的角度详细阐述了PETL技术在训练内存方面的降低原因,并通过跳过冻结的骨干网络中的梯度遍历进一步降低了它们的训练内存,这进一步推进了对现有PETL技术在训练和推理内存方面的分析。

2.1.3 统计视角

机器学习模型受到一些统计假设的限制,如独立同分布、大数定律、中心极限定理等[43],使得机器学习实践者需要进行正则化技术、收集大规模数据集以及规范化输入数据。在大模型时代,打破这些统计边界变得可以想象,鼓舞人心的最近进展(在第3节中进行了调查),从根本上提高了模型对分布之外或长尾数据(貌似长尾数据是一个专门的研究领域)的泛化能力,而使用的训练数据较少(从少样本到零样本学习)和可调参数。为了以统计规则指导调整,有一些基于可测域界的提出的工作。例如,叶等人[44]提出了扩展函数的概念,将正则化或界限限制量化为源域和目标域之间的“变化”,以及特征的“信息性”。刘和张[45]也试图通过使用测试错误来衡量域差距。张等人[46]建议使用边缘损失来替代域自适应的0-1损失。期望通过边缘损失放宽限制,提供更具信息性的泛化界限。Nilesh等人[47]从统计的角度定义了任务多样性,为多任务迁移学习的样本复杂性提供了泛化上界。

2.2 符号与定义 (对概率论不感兴趣的可以跳过)

为了理解高效微调,让我们首先定义域、任务、迁移学习以及其他符号。联合分布X × Y 可以表示为 P(X; Y )(即 PXY ),其中 X 和 Y 分别表示其对应的特征空间和标签空间。 (X 和 Y 分别表示观察到的实例集和其对应的标签集。) 给定 PXY,我们将 P(X)(即 PX)称为 X 上的边缘分布,PY |X 是 Y 的后验分布,PX |Y 是在给定 Y 的条件下 X 的类条件分布。

定义1(域):域D = fX; P(X)g由其特征空间X和边缘分布P(X)定义,其中X表示实例集,定义为X = fxjxi 2 X; i = 1; :::; ng。一个域可以有或没有标签信息。

定义2(任务):任务可以表示为T = fY; fg,其中Y和f分别表示标签空间和决策函数。对于源域TS的分类任务,目标通常是预测实例的条件分布,可以表示为f(xj) = fP(ykjxj)jyk 2 Y; k = 1; :::; jYjg。在这种情况下,任务TS可以被看作是形成具有标签信息的典型源域DS,表示为(DS; TS) = f(x; y)jxi 2 XS; yi 2 YS; i = 1; :::; nSg。

定义3(迁移学习):给定mS 2 N+个源域和mT 2 N+个目标域,它们对应的任务可以表示为f(DSi; TSi)ji = 1; :::; mSg和f(DTj; T Tj )jj = 1; :::; mT g,分别。迁移学习旨在通过充分利用从源域学到的知识,提高目标域上决策函数fTj的性能。

定义4(参数高效微调):给定在迁移学习中定义的mS 2 N+个源域f(DSi; TSi)ji = 1; :::; mSg和mT 2 N+个目标域f(DTj; T Tj )jj = 1; :::; mT g,高效微调的目标f(DTj; YTj; fTj; fSi)ji = 1; :::; mS; j = 1; :::; mT g是通过重用从相应任务PXY 学到的fSiji = 1; :::; mS来提高fTj的性能。特别地,fSi的参数需要被冻结或调整一小部分。而fTj表示额外的一小部分模型参数,可以轻松部署在边缘设备上。在实践中,对于监督或自监督的预训练,fSi可以分别从PY |X和PX中学到。这个定义是典型迁移学习[14]的扩展,涵盖了多源高效微调。

2.3 模型架构

关于视觉的预训练基础模型已在[4]中进行了调查,从基于CNN和GAN的模型发展到最近的基于Transformer的模型。我们建议读者参考[4]以获取详细的预训练策略。本节简要介绍这些代表性模型的基本结构:基于CNN的模型、基于Transformer的模型以及CNN+Transformer的模型。

CNN是最流行的深度学习模型之一,如AlexNet [25]、VGGNet [48]、Inception [49]、ResNet [24]、EfficientNet [50]等,这些模型已经在[51, 52]中进行了多次调查。EfficientNet虽然轻量化,但通过在各种视觉任务(如图像分类[53]和视频理解[54])上进行预训练初始化,可以达到与基于Transformer的模型相媲美的性能。除了2D CNN,还引入了一些用于视频理解任务的3D CNN模型,如C3D [55]、I3D [56]、S3D [57]和X3D [58]。此外,还提出了用于分割任务 [60] 和姿态估计 [61, 62] 的时序卷积网络 [59]。值得注意的是,时序卷积网络的基本层采用了2D卷积,而Transformer则通过1D卷积实现,除了注意机制。

Transformer模型的典型架构由多个基本的Transformer层组成。每个层可以由多个Transformer块组成,其中包括一个多头自注意(Attention)模块和一个由2层多层感知机(MLP)实现的全连接前馈网络(FFN)。在FFN和Attention模块之前和之后分别执行层归一化(LN)和残差连接。这样的一个Transformer块可以表示为:

Z^l = Attention(LN(Zl−1)) + Zl−1;

Zl = FFN(LN(Z^l)) + Z^l;

(1) 其中Z^l和Zl分别表示Attention和FNN模块的输出,Zl−1表示前一个FNN模块的输出。在基本的Transformer模型基础上,Transformer已经在越来越多的任务中占据主导地位[1, 2]。早期用于视觉的Transformer模型有Vision Transformer(ViT)[63]、Data-efficient image transformer(DeiT)[64],而它们的代表性变体有TNT [65]、T2T [66]、PVT [67](PVTv2性能更好)、Swin-Vit [68]、Video Swin Transformer [69]、CPVT [70]等。

Transformer模型以其捕捉输入数据的长程依赖性的能力而闻名,而CNN可能更擅长表示局部特征。(我觉得这句话是最有用,写论文可以用的着,设计网络也用的着)结合Transformer和CNN的模型可以实现更好的性能。Twins-SVT [71]使用2D卷积计算注意模块,以在基于图像的任务上取得更好的性能,模型参数更多。结合CNN和Transformer的代表性方法有Shuffle [72]、CMT [73]、VOLO [74]等。尽管它们可以取得卓越的性能,但它们如何用于视觉微调似乎尚未得到深入研究。

2.4 模型预训练

预训练方法大致可分为监督和自监督两类。早期的视觉模型是通过在大规模数据集(如ImageNet [22]、JFT-300M [75]、Kinetics [28]等)上进行监督学习进行预训练的。由于最近使用监督学习进行预训练的模型微调,因此近年来进行了更大规模的预训练。例如,Gato [32]使用多任务学习,通过对各种任务进行监督,使大型模型能够获得更多知识,以适应下游任务的需求。多标签学习被用于预训练一个纯粹的视觉模型,其参数达到22B [11],在下游视觉任务中表现出色。 在监督预训练的情况下,显著的注释成本对扩大迁移学习的益处构成了实际障碍。作为替代方案,对未注释数据进行的自监督学习也可以使模型更加丰富并潜在地更有用[3]。通过自监督学习进行预训练的模型微调的范式带来了从未注释的数据中学习知识的可能性,这得益于先进的计算能力、Transformer模型和更多的数据。通过自监督学习进行预训练的模型被Bommasani等人称为“基础模型” [3]。近期的显著例子包括MAE [76, 77](大神之作,必属精品)在视觉领域;CLIP [30]、ALIGN [31]、Florence [78]、BEiT [79]、GATO [32]、CoCa [10]、SWAG [35]等在视觉语言模型领域。在NLP的初步成功基础上,这一范式已经开始在视觉领域和诸如气候科学 [80]、蛋白质设计 [81](器件设计也是一个方向,至于好不好用,能不能用,有待商榷)等其他领域取得成功。Bommasani等人 [3]确定了基础模型在能力和模型、模态、任务、领域的同质化方面的关键意义。

2.5 模型微调

通过预训练模型学到的知识,可以极大地受益于下游任务。早期的微调方式包括更新整个预训练模型的所有参数或仅调整任务头部(例如完全连接的层)。随着大型语言模型(如GPT-3 [6])通过元学习(没接触过,后面要学习,查了一下定义,元学习又称“学会学习“(Learning to learn), 即利用以往的知识经验来指导新任务的学习,使网络具备学会学习的能力)以无监督的方式进行预训练,使其能够处理广泛技能的模型(内循环被称为“上下文学习”),当前NLP领域的领先范式是将下游任务调整到大型语言模型,从“预训练、提示、预测”转变为“预训练、微调” [3] 的学习范式。 一方面,近期的一些工作 [122, 216] 通过微调视觉语言模型在视觉下游任务上取得了令人期待的性能。然而,根据 [216] 和 [166] 中的结果,微调视觉语言模型并未产生与微调监督预训练视觉模型一样好的结果。此外,纯粹的视觉模型也变得越来越大(达到22B参数) [11],并且最近通过各种预训练策略 [2, 4] 取得了巨大的进展。因此,需要进一步研究适用于视觉下游任务的适当预训练技术和微调技术。

3.视觉微调

据我们所知,目前没有一项系统总结视觉调整最新状态的调查,从技术角度来看。何等人[219]分析了不同的PETL调整方法,如提示调整、前缀调整和适配器调整在自然语言处理领域的应用,表明它们在本质上是相似的(即它们为适应性带来一定数量的可调参数)。考虑到自然语言处理中的参数高效迁移学习方法,我们将视觉调整方法分为五类:微调、提示调整、适配器调整、参数调整和重新映射调整(参见表2),根据它们的结构和动机。在本节的其余部分,我们介绍这五种调整技术,并讨论它们的优缺点。

表2 视觉微调方法的全面回顾和分类。红色和蓝色部分分别表示可微调参数和冻结参数。

3.1微调

(这段话的意思是目前常用,但是不好用。原因有二:1)消耗存储空间,费钱;2)依赖于高质量数据)我们使用“微调”来表示迁移学习的标准实践,即调整预训练模型的所有参数或仅调整任务头部。许多最先进的方法采用了这种实践,在视觉基准测试中取得了令人印象深刻的性能,如ImageNet [22]、Kinetics [28]、COCO [220]、NTU RGB+D 120 [221]、Human3.6M [222]等。调整整个预训练模型参数在本质上通过学到的模型权重启动了下游任务的学习过程。而调整任务头则将预训练模型视为特征提取器。全面微调策略在将大型模型适应下游任务方面面临一些障碍。首先,它要求为不同的下游任务更新和存储单独的模型参数,当基础模型变得越来越庞大时,这可能会变得昂贵且不可行。其次,它依赖于高质量的下游数据,几乎无法适应具有大分布偏移的未见场景[223],这与人类学习过程不同,人类可以从少量样本中学习,并在新情境中表现出色。这个问题已经在零样本学习、少样本学习和持续学习等方向进行了研究[224]。或者,微调下游任务头可以避免更新整个骨干模型,但通常导致实验性能不理想。

3.2 提示调整

提示式学习首次在自然语言处理中引入,以高效地将下游语言任务适应基础模型。与传统的“预训练,微调”范式不同,后者初始化预训练模型的权重参数,并在下游任务特定的损失函数指导下优化这些参数。而提示式学习利用文本提示重新构造各种下游任务,使其类似于原始的预训练任务。受自然语言处理中的提示技术启发,提示调整也被引入到计算机视觉领域。具体而言,视觉提示调整可以分为三组,即视觉驱动提示、语言驱动提示和视觉-语言提示。

图2 三种不同的提示方法。红色和蓝色分别代表可微调的和冻结参数

3.2.1 视觉驱动提示

(用于解决零样本或者少样本视觉下游任务问题,算法很多,后期选取几篇代表性的文章学习吧。。。)视觉驱动提示调整[85,89-93,97,98]已经成为一种受欢迎的参数高效的方式,将预训练视觉模型的显著泛化能力转移到各种下游任务中。视觉驱动提示策略的研究工作大致可分为两组,即直接修改输入和设计视觉提示子网络以生成视觉提示。第一组研究[82-84,86-88,225]通常倾向于直接修改输入,例如向输入图像添加一组可学习的参数,旨在修改输入分布并进一步使下游任务在原始预训练期间接近已解决的任务,如图2(b)所示。形式上,数学公式可以描述为:

PV=[T;a1​;…;ai​;…;an​],

其中PV表示视觉驱动提示,T表示由Transformer输出的局部图像或标记的嵌入,ai​是第i个可学习向量。

现有的大量工作利用上述原理设计视觉提示,指导冻结的视觉预训练模型执行各种下游任务。具体而言,VPT [82]仅插入少量可学习参数,并将这些参数视为Transformer输入标记的一部分,从而引导预训练视觉模型执行各种下游任务。与VPT类似,DePT [84]还将可学习的视觉提示引入视觉Transformer,仅在适应期间优化这些源初始化的提示,同时保持视觉Transformer在适应期间冻结。此外,PViT [87]通过引入一小组专门的参数,设计任务特定的提示,以采用共享的视频Transformer骨干执行合成场景任务和真实视频下游任务。此外,ZegCLIP [85]将可学习向量注入每个冻结的CLIP图像编码器层,以执行零样本语义分割任务。LPT [93]优化共享提示,探索整个长尾数据集的通用特征,并为冻结的预训练视觉模型赋予特定组的提示,以赋予细粒度的判别能力。

正如以上研究所证明的,提示学习使预训练视觉模型能够适应自然场景中的各种视觉任务。然而,提示学习在将在自然场景中训练的预训练视觉模型的视觉知识转移到具有大领域差异的下游任务方面仍然有很大潜力。最近的研究已将视觉提示从自然场景理解扩展到具有巨大领域差异的各种视觉任务,例如点云分析[94, 95]、图像生成[96],甚至语音理解[226]。具体而言,PointCLIP [94]通过将原始点投影到预定义的图像平面上,称为视觉提示,将其转换为散点深度图,从而有效地传递了CLIP模型的显著能力。此外,PointCLIP还缩小了无序点云与视觉图像之间的模态差异,从而利用提示技术处理具有显著领域差异的视觉任务,产生了独特的见解。P2P [95]提出了保持几何形状的投影和具有几何感知的着色操作,将点云数据转化为彩色图像,被视为视觉提示,并进一步使预训练视觉模型适应各种点云分析任务。PromptGen [96]通过有效地逼近基于能量的模型对图像进行采样,以转移其他现成的生成模型,并进一步控制预训练生成模型的分布。Kim等[226]设计了包含输入、特征和时间维度提示的三种不同提示,以引导冻结的预训练视觉模型执行视觉语音识别任务。这些工作表明,视觉驱动提示可以将预训练视觉模型从自然场景转移到各种下游任务,即使存在领域差异。

令人振奋的是,上述工作仅以简单的方式(例如,向输入添加额外的参数)构建视觉提示,但在转移预训练视觉模型显著的判别和泛化能力方面取得了巨大进展。为了进一步调查并深入了解视觉提示的有效性,另一组方法[97-102,227]也倾向于设计一个子网络来构建视觉提示,如图2(c)所示。具体而言,视觉驱动提示PV可以表示为:

PV=Φ(X,θ);

其中Φ(;Φ(;)表示设计的子网络,用于生成视觉提示PV,θ是Φ(;Φ(;)中的可学习参数,X是输入图像。例如,NOAH [97]通过神经体系结构搜索算法隐式学习适配器的特征维度和视觉提示的令牌长度。PGN [98]通过从一个共同学习的标记库中有选择地采样输入图像,学习生成依赖于输入的提示。FPTrans [99]使用预训练的ViT网络将输入图像分为前景和背景,并使用轻量级模块,该模块可以与前景和背景提示一起添加。FRPT [100]通过设计轻量级采样网络来明确缩放输入图像的判别性区域以获取视觉提示。RePro [101]利用轨迹检测器将视频中的对象定位为视觉提示,并根据学到的视觉提示进一步学习主体和对象之间的相关性。Gan等人[227]学习了特定领域的提示和领域无关的提示,这些提示捕捉了源领域的知识并在持续适应中保持领域共享的知识。ViLD [102]基于区域提案网络生成多个感兴趣的区域,被视为视觉提示,以使它们的视觉嵌入和文本嵌入对齐,用于开放词汇目标检测。这些工作可以根据下游任务生成适当的提示,从而有效地探索预训练视觉模型的显著泛化和判别能力。更重要的是,与直接引入可学习参数相比,它们可以提高这些视觉提示的可解释性,例如直接修改像素。

3.2.2 语言驱动提示

最近,大规模的视觉语言模型通过大量的图像文本对进行预训练,并专注于开放世界的视觉概念。遵循NLP中的提示学习理念,大多数现有工作倾向于通过设计适当的语言驱动提示[105,110-113,119-121,228]将大规模视觉语言模型转移到各种下游视觉任务。如图2(a)所示,大多数工作,例如CoOp [104],首先提取视觉图像的统一上下文或类别特定上下文作为语言驱动提示,以适应冻结的预训练视觉语言模型到不同的视觉任务。形式上,语言驱动提示可以如下表示:

PT=[a1​;…;ai​;…;an​;<class>],

其中PT表示语言驱动提示,ai表示第i个可学习向量,可学习向量的数量为n,< class >是类别嵌入。大量现有工作广泛关注了这一语言驱动提示的线路,并利用此提示类似于CoOp中设计的提示,以适应各种下游任务,例如领域自适应[106]、语义分割[107]、视频理解[108,229]和少样本学习[109]。此外,最近的方法[114-118,230]扩展了原始的语言驱动提示,并因此设计了多个互补的语言驱动提示,以更好地挖掘来自预训练视觉语言模型的任务特定知识。多个互补的语言驱动提示PMT可以表示为:

PMT=[PT1​;…;PTi​;…;PTM​], 例如,PLOT [116]学习多个综合提示来捕捉类别的不同属性,并通过优化多个提示之间的最优传输距离来对齐视觉嵌入和多个文本嵌入。

3.2.3 视觉-语言提示

已经探索了视觉驱动和语言驱动提示,以同时修改预训练视觉语言模型的视觉和文本输入,从而通过有效对齐视觉和文本嵌入来转移预训练视觉语言模型的判别和泛化能力[122-127]。例如,UPT [122]设计了一个共享提示网络,用于生成视觉提示和文本提示,从而缩小视觉表示和文本嵌入之间的差距。DPT [123]同时从视觉和文本输入的角度优化视觉和文本提示,旨在修改预训练视觉语言模型的文本分类器和视觉表示。MaPLe [124]通过直接将视觉提示注入语言提示中,建立了视觉和文本提示之间的交互,进一步改善了预训练视觉语言模型输出的视觉和语言表示的对齐。TPT [127]引入了可学习的文本提示,其中包括随机向量和类别名称,并设计了通过随机裁剪输入图像生成的视觉提示。这些方法可以从文本和视觉输入的角度将预训练的视觉语言模型转移到各种下游任务中。

3.2.4 讨论

众所周知,标记数据的数量很大程度上决定了视觉算法的上限。视觉提示学习通常侧重于解决少样本或零样本学习的问题,这使得模型即使在没有标记数据的情况下也能表现相对良好。此外,视觉提示学习通过设计特定的模板将所有下游任务统一为预训练任务。通过这种方式,从下游任务派生的数据被转化为新的输入。这样,这些输入可以充分利用预训练模型本身的能力。换句话说,视觉提示的核心机制旨在挖掘上游预训练模型的潜力,以便上游预训练模型能够在少量或更少的标记数据的情况下尽可能好地执行下游任务。正如上述所述,我们需要重新构造不同的下游任务,使它们适合预训练模型。

在审查了包括语言驱动提示、视觉驱动提示和视觉-语言提示在内的三种提示调整策略相关工作之后,可以清楚地看到它们各自具有独特的特点。对于语言驱动提示调整,尽管这些方法在视觉语言模型中在许多视觉任务上取得了令人印象深刻的性能,甚至没有任何微调,但是语言驱动提示方案是为多模态模型定制的,因此不适用于预训练的视觉模型。此外,语言驱动提示将输入图像的语义信息转化为类别特定的描述。通过这种方式,从输入图像中提取的知识倾向于解决原始的预训练任务而不是下游任务。因此,基于语言驱动提示策略的这些工作可能忽略输入的任务特定知识,从而降低下游任务的性能。对于视觉驱动提示调整,它们利用一种简单而有效的方式,即引入可学习参数,或者根据下游任务的特点设计轻量级子网络,为引导预训练视觉模型执行各种下游任务生成视觉提示。结合语言驱动和视觉驱动提示调整的优势,视觉-语言提示调整可以从修改文本和视觉输入的角度转移预训练视觉-语言模型的判别和泛化能力。

3.3 适配器调整

(看了这一段没明白怎么适配的。。。。)基于适配器的方法是一类技术,它将额外的可训练参数引入已冻结的预训练模型,以便为下游任务提供学习支持。在自然语言处理领域,适配器首次由Houlsby等人[231]引入,作为实现参数高效微调的一种手段。然而,在计算机视觉领域,特别是在实现高效适应的方面,适配器方法受到了相对较少的关注。早期为计算机视觉开发自适应方法的努力包括增量学习方法[130]和领域自适应方法[128, 129]。随后,适配器在不同领域引起了关注,并已成功应用于计算机视觉领域。适配器提供了对广泛模型微调的轻量级替代方案。

在本节中,我们整理了现有的与视觉相关的基于适配器的调整方法,可以大致分为三种思路,即顺序适配器、并行适配器和混合适配器,具体如下。

图3 三种不同的适配器方法。红色和蓝色分别代表可微调的参数与冻结的参数

3.3.1 顺序适配器

顺序适配器是指将参数插入顺序前向网络的技术,如图3(a)所示,该网络通常包括线性下投影、非线性激活函数、上投影和残差连接。通常在多头注意力层和/或前馈层之后应用此方法以增强模型性能。具体而言,给定一个d维输入特征图Zl,适配器的参数数量可以通过超参数dbottle进行调整。顺序适配器模块首先使用下投影(即降采样)与Wdown 2 Rd×dbottle将特征投影到较低维度的表示,然后通过ReLU激活函数和上投影(即上采样)与Wup 2 Rdbottle×d。上述公式可以写成:

Zl=ReLU(LN(Zl)Wdown​)Wup​;

其中Z^l表示顺序适配器输出的优化特征。 在顺序适配器策略中,研究工作可以大致分为两组:直接插入残差块和使用更多参数优化技术以最小化适配器的大小。第一类研究[17, 128, 130, 131]出现在较早阶段,没有大规模模型,Res-adapt的初步开发[128]涉及使用适配器残差模块的定制深度网络结构,以实时动态调整到不同的视觉域。在Res-adapt之后,DAN [130] 曾经在要求标准微调程序参数的一小部分(通常为13%)的情况下收敛到相当或甚至更高的性能水平。最近的研究[17]开发了LST,一种使用主干网络的中间激活通过快捷连接进行预测的独立梯度侧网络的技术。这种方法提高了模型的准确性同时减少了计算复杂性。此外,Conv-Adapter [131]系统地研究了学习任务特定知识的可行解决方案,使用四种不同的变体,包括下文讨论的并行适配器,调整预训练ConvNets中每个残差块的中间特征。 第二类方法[129, 132{137]专注于优化网络架构,以更好地理解顺序适配器的效率。作为替代,EPM [129]建议使用通用的参数化神经网络家族,但参数数量有限。它讨论了许多参数化方法,包括并行和串行残差适配器、联合适配器的压缩以及参数分配。Polyhistor [132]将一个超网络分解为两个单独的超网络,并将适配器权重矩阵分解为两个核,以在多任务架构中减少参数。Pro-tuning [133]利用来自不同层次的语义信息通过构建多个分阶段提示块来丰富特征空间,这些块可以简单地插入模型以快速适应新任务。通过生成没有令牌间相互作用的注意权重,AMixer [134]捕捉长期和短期的空间依赖关系而无需自注意。Shysheya等人[135]提出了一种称为Fit的新技术,该技术对激活进行缩放和移位,并利用朴素贝叶斯最终层分类器进行图像分类,具有自动配置功能并取得了令人期待的结果。Marouf等人[136]介绍了TINA,一种通过与神经元重要性进行比较的评分函数迭代减小每个适配器的大小的方法。这个过程使得每个适配器的自动估计成为可能,并提高了整体模型的效率。Luo等人[137]提出了RepAdapter,该方法使用稀疏结构的重新参数化来接近邻近投影权重,并在保持其有效性和轻量性的同时进一步减少模型的参数。

适配器已经成为计算机视觉中基础任务的热门技术,其中预训练任务通常是图像分类。然而,其他任务,如高级视觉任务[78, 138, 139, 141, 142, 232, 233]、低级视觉任务[140, 146]、视频理解[78, 143, 144]和机器人控制[145],都需要根据它们特定的架构设计,以便通过参数高效迁移学习实现良好的性能。除了这些任务差异外,最近的研究提出了创新的方法,以在不同应用中利用适配器。例如,BDTL和ViTDet [138, 139]仅在微调期间对普通骨干进行最小的调整,从而消除了目标检测任务中的层次约束。在Florence [78]中,表示从粗到细、从静态到动态以及从RGB到多种模态(字幕、深度)进行扩展。它可以通过将Web规模的图像文本数据中的通用视觉语言表示纳入进行广泛的视觉任务。SND [140]利用动态堆叠网络作为适配器,以插拔方式激活预训练模型进行图像恢复。MK-Adapter [141]引入了一个可学习的多知识适配器,以自适应地混合来自CLIP和DINO的预测,用于少样本分类。ADA [142]是一种使用预训练的变压器和适配器执行持续学习的方法,它在层归一化和前馈层(MLP)之前添加了适配器。AIM [143]单独引入了空间、时间和联合适配器,而ST-Adapter [144]提出了一个时空适配器,两者都旨在为视频理解装备图像模型以具备时空推理能力。PEA [145]通过利用在机器人操纵中广泛使用的图像分类中的经典瓶颈架构,以无损适应的方式解决了经典微调的局限性。CAOA [146]提出了一种用于图像压缩的内容自适应优化框架,通过在解码器中插入适配器进行速率失真的优化,同时额外传输适配器参数。 在多模态学习领域,随着大规模跨模态预训练模型的发展,例如CLIP [30](终于找到一篇看到过的文章了)和ALIGN [31],适配器技术已被广泛采用,使用类似上述提到的设计,以适应各种下游任务进行有效的微调 [15, 148{151, 153{157],并取得了出色的结果。HA [147]首次通过经验分析并推荐了用于高效多模态迁移学习的通用配方,包括LayerNorm调整。CLIPAdapter [148]结合了残差风格的特征融合和额外的瓶颈适配器,以在视觉或语言分支上学习新特征。在此基础上,Tip-Adapter [149]旨在增强few-shot能力,但在训练期间使用键值缓存而无需反向传播。MAGMA [151]结合了视觉和文本输入,通过适配器进行微调生成更复杂的生成语言模型。BALLAD [150]通过在长尾视觉语言学习中为平衡的训练样本增加一个额外的适配器层,增加了尾部类别的表示。在先前的工作基础上,后续方法更加注重参数效率和多模态效果。通过分层适配器模块结构,Hierarchical3D [152]将多模态内容整合到经过训练的文本摘要器中,同时仅调整了少量模型参数。VL-Adapter [15]通过为跨模态领域(即图像-文本和视频-文本)构建基准的顺序适配器层,调整了预训练模型。HyperPELT [153]是一种使用共享的超网络进行微调预训练语言模型中的小模块的方法,该超网络以可训练的超嵌入作为输入。然后,CrossModalAdapter和MV-Adapter [156, 157]都试图通过权重共享机制在训练过程的早期进行跨模态交互,以进一步改进。为了在具有挑战性的数据集上表现更好,SVL-Adapter [154]将视觉-语言预训练和自监督表示学习的互补优势汇集起来,用于极端场景,如few-shot学习。LAVISH [155]通过将适配器迁移到预训练的ViTs并将少量可训练参数注入到每个层中,首次将其用于音频-视觉任务。这些创新性的方法展示了适配器的多才多艺和在传统分类任务之外的各种应用中的潜力。

3.3.2 平行适配器

(还是觉得看一下具体网络才能明白什么是适配器,什么是平行适配器。。。。果然别人嚼烂的东西不好吃啊)平行适配器 [158{163, 234] 被提出作为经典顺序适配器架构的一种变体,如图3(b)所示。在这里,激活通过模块层并行传递到适应的子层(即前馈或注意力层),而不是按照已建立的、顺序的计算顺序。平行适配器模块还使用了一个下投影(即降采样)Wdown 2 Rd×dbottle将特征投影到较低维度的表示,然后通过ReLU激活函数进行激活,并且在并行中进行上投影(即上采样)Wup 2 Rdbottle×d。形式上,平行适配器的过程可以描述为:

Zl=ReLU(LN(Zl)Wdown)Wup+LN(Zl);

其中Zl 表示平行适配器输出的优化特征。

最简单的应用方法是在并行中插入一个适配器模块。例如,ViT-Adapter [158] 允许普通的ViT通过无预训练适配器引入与密集预测相关的图像先验信息,从而实现与专门用于视觉的变压器相媲美的性能。然后,PESF-KD [159] 首先在数学上将不匹配形式化为可以通过适当平滑的软标签的平滑度来缩小的尖锐差距。它引入了一个用于教师的适配器模块,并且仅更新适配器以获得适当平滑度的软标签。AdaptMLP [160] 将原始的MLP块替换为两个分支,包括并行适应大规模视频动作识别的冻结和可训练分支,从而避免彼此之间的灾难性干扰。Convpass [161] 认为当前的适配器具有弱归纳偏差,限制了它们的性能,并利用可训练的卷积块绕过这种弱点。在多模态社区的应用中,AMA [162] 假设来自不同模态的特征已经在空间上对齐,因此,在通道压缩后,它将每个模态的2D结构恢复为适配器以有效地聚合本地多模态特征。UniAdapter [163] 引用了并行结构以统一单模态和多模态适配器。具体而言,适配器分布到不同的模态,通过部分权重共享减少了可调参数的总数。 3.3.3 混合适配器

混合适配器 [164, 165, 168, 169, 235, 236] 在图3(c)中展示了不同位置引入新参数的混合架构,即每个Transformer层中的多头注意力块。 PATT [235] 提出了视频下游任务的前缀调整模块的变体,以不同的方式将可训练参数引入骨干网的不同位置,分析了下游领域的不同参数高效技术,例如数据规模和可训练参数的位置。在PATT之后,ETT [165] 使用最新的关注前缀调整(即生成新的键值对)和域剩余适配器(即控制域差距)的创新来进行少样本学习。PALT [236] 随机初始化了几个适配器,并确定了每个适配器模块的影响,以便可以根据著名的“中奖券”假设来修剪适配器。VQT [169] 聚合了Transformer的中间特征,实现了在视觉任务上的参数和内存高效的迁移学习。Consolidator [164] 通过对特征应用分组卷积技术,构建了用于大型视觉模型高效迁移学习的可调部分。TVG [168] 比较了流行的预训练模型与现有方法,以及测试不同的适配器,以便附加参数对视频定位社区的影响不会太大。

3.3.4 讨论

基于适配器的方法是近年来在计算机视觉研究中备受欢迎的一种迁移学习技术。适配器方法的思想是专注于使用冻结的主干网络和仅有少量参数来解决视觉下游任务。适配器方法相对于传统的迁移学习方法具有几个优势。首先,它们在计算上是高效的,因为它们只需要训练适配器模块而不是从头开始训练整个网络。其次,它们高度模块化,可以轻松地将预训练模型适应新任务,而无需对原始架构进行大规模修改。最后,它们通过将模型适应新任务而保留其学到的表示,可以提高预训练模型的泛化性能。

在审查与三种适配器架构(顺序、并行和混合)相关的工作之后,可以清楚地看到它们各自的独特优势。顺序适配器具有简单易用的优势,使其适应预训练模型的架构并获得更好的结果。这在各种任务中都取得了成功。另一方面,并行适配器架构在激活预训练模型的知识方面表现出色,从而实现了改进的网络表示和最佳性能。最后,混合适配器架构提供了灵活性,并对参数数量的依赖性较小,通常通过数学近似技术来实现。

未来,更多关于视觉适配器调整的相关工作将会涌现并得到更广泛的探索。我们认为以下两个方向具有一定的研究价值:首先,可以引入更高效的操作,并使更多社区从基于适配器的调整方法中受益。其次,可以研究更多的适配器架构。例如,在自然语言处理领域存在表现出色的适配器架构,可以利用并应用于计算机视觉。此外,新兴的整合技术可能会使适配器在实际应用中实现更好的性能。

3.4 参数调整

有效的基于参数的调整涉及以更积极的方式直接修改预训练模型的参数(权重或偏差)。对于特定的层,它的权重项可以乘以特征图,而偏置项可以加到特征图中。如图4所示,本节介绍了基于参数的方法,根据调整的参数部分可以分为:权重部分、偏置部分和两者都调整的情况(这个挺好玩哈)。这些技术可以分为加法和分解两类。现有的工作也将这种技术称为基于重新参数化的方法[137, 237]。

图4 三种不同的参数调整

考虑一个具有参数(k; d; K; G)的神经网络层,其中 k = Cin 是输入通道数,d = Cout 是输出通道数,K 是核大小,G 是组大小。当 G = 1 时,我们有 W 2 Rd×k×K 和 b 2 Rd。然后,典型的神经卷积操作可以表示为: Zl = Zl−1W + b; (8) 其中 Zl 和 Zl−1 分别表示第 l 层神经网络的输出和输入特征。组参数 G 可用于控制输入和输出之间的连接,使得权重变为 W 2 Rd× Gk ×K。为了方便解释,我们不考虑核大小和特征大小,而关注变量的大小。在本节的其余部分,我们将介绍基于三个组别的直接修改变量 W 和 b 的现有方法,即偏置部分、权重部分和两者都调整的情况。

3.4.1 偏置部分

Bitfit [170],也称为side-tuning,只调整预训练模型的偏置部分(见图4[a]),可以表示为:

Zl​=Zl−1​W+b;

其中权重参数 W 被冻结,偏置 b 包含在调整过程中进行优化的参数。

AdapterBias [172] 针对 MLP 层的偏置项,通过使用具有权重 α∈Rd 和可调向量v∈Rr 的线性层 L,可以计算为:

Zl​=Zl−1​W+b+v⊗α;

Xu 等人[171]将 side-tuning 引入为两个分支:一个用于预测掩膜提案,另一个用于预测应用于 CLIP 模型进行语义分割的注意力偏差。它在注意力模块的 Softmax 层的结果中添加了一个偏置项。差分隐私偏置项微调(DP-BiTFiT)[173]提出了偏置调整的差分隐私版本。DP-BiTFiT 使用 DP-SGD 优化器使偏置项保持私密性:首先汇总所有层上的偏置梯度范数,然后使用它来计算裁剪因子,在裁剪梯度的总和上添加高斯噪声,并对偏置项进行下降。DP-BiTFiT 基本上改变了优化偏置项的方式,取得了与偏置调整相当的性能。DP-BiTFiT 的实现值得注意,因为它不计算预训练权重的梯度,有助于节省超过60%的训练时间。 Namazifar 等人[238]研究了 NLP 任务中 Transformer 的偏置项的作用。从数学角度出发,通过实证验证,它得出结论:键线性变换的偏置项是多余的,可以在不影响注意力模块的情况下省略。此外,值线性变换的偏置项比查询线性变换的偏置项更为突出。 3.4.2 权重部分

(感觉回顾一下线性代数再看这一部分会比较好)图4(b)展示了调整某些层权重部分的模型。考虑一个神经网络层的参数,其中权重 W∈Rd×k,LoRA [174] 在 W 的基础上学习参数 Wdown​∈Rd×r 和 Wup​∈Rr×k,可以表示为:

.Zl​=Zl−1​+Zl−1​(W+Wdown​Wup​). LoRA 结构已应用于称为运动样式适配器(MoSA)[175]的编码器-解码器模型。MoSA 使用轻量级的 LoRA 结构来适应运动风格(例如,行人)从具有足够标记数据的源域到目标域(例如,骑自行车)。

DyLoRA [167] 提出将秩的参数截断为多个部分(即,秩),并依次对它们进行单独优化,而不依赖搜索机制。

分解与对齐(DnA)[176]使用 GreBsmo(在实现中替换为 SVD)将权重矩阵 W∈Rd×k 分解为低秩形式:W=UV+S;其中 U∈Rd×r 是“可对齐”的部分,V∈Rr×k 是来自预训练模型的“固定支持”,S∈Rd×k 是残差项。对分解的 W 的“可对齐”部分添加了两个附加变量 ΔU 和 ΔS,可以表示为: .Zl​=Zl−1​((U+ΔU)V+S+ΔS). DnA 仍需要使用 SVD 来实现 GreBsmo 算法,给迭代优化过程带来了额外的复杂性。

Compacter [177] 和 KAdaptation [166] 使用 Kronecker 乘积将权重参数分解为 W=∏i=1n​Ai​⊗Bi​;其中 Ai​∈Rn×n,Bi​∈Rn×k×n×d 并调整分解术语 B 的一部分,其中用低秩形式的参数 Bi​=ui​vi​,其中 ui​∈Rn×k×r,vi​∈Rr×n×d,可以表示为: Zl​=Zl−1​(∑i=1n​Ai​⊗ui​vi​).

使用 Kronecker 乘积的分解方法也称为参数化的超复数乘法/卷积(PHM/PHC)层 [178, 179],应用于视觉和音频任务等各种任务。PHM [178] 激发了 [239] 通过使用三个术语 zi​、si​ 和 Ai​ 形成可调权重,将其添加到用于 NLP 任务的预训练权重进行 PETL。FacT [181] 考虑了两种分解方法 Fact-TT 和 Fact-TK,分别使用 Kronecker 乘积和奇异值分解的多线性泛化(即 Trucker 模型)[240]。Fact-TK 在 19 个基于图像的任务中通常比 Fact-TT 执行得更好,其参数略多于 Fact-TT,但远少于基本的 LoRA 方法。Dynamic Linear Dimensionality Reduction(DLDR) [183] 声称只有优化大型模型的低维子空间才能实现可比较的性能。DLDR 使用 SVD 来分解权重以找到调整后的子空间,通过训练少量时期实现了可比较的性能。

RepAdapter [137] 是基于 LoRA 结构构建的,并引入了一种分组转换 [241] 方法来重新参数化权重项。RepAdapter 也解释了其分组划分的 LoRA 层为一种重新参数化过程。RepAdapter [137] 的目标是减少推理时间,并通过结构重新参数化无缝集成到大多数庞大的视觉模型中。

在自然语言处理领域,任务自适应重新参数化(TARP)[180] 使用 Kronecker 乘积作为 MLP 模块的动态低秩分解,用于域自适应。Kronecker Adapter(KronA)[182] 也引入了 Kronecker 乘积,以改善用于自然语言处理任务的有限表示能力低秩表示。 3.4.3权重和偏置

正如图 4(c) 所示,一些方法修改了权重和偏置两部分的参数。深层特征的缩放和偏移(SSF)[184] 通过使用两个向量 γ 2 Rd 和 β 2 Rd 来处理权重和偏置项,可以表示为:

Zl​=γ(WZl−1​+b)+β;

其中 γ 和 β 分别被解释为缩放和偏移因子。请注意,γ 和 β 都是可学习的向量,可以远小于 LoRA 或 DnA、Compacter 和 KAdaptation 的矩阵变量。

3.4.4讨论

与基于提示和适配器的方法不同,基于参数的调整可以使用更少的参数来实现类似的适应效果。在经过测试的基于图像的任务中,SSF [184] 甚至可以胜过适配器和 VPT。SSF [184] 引入了通过点乘调整权重变量的偏置调整技术。根据对 SSF 的分析,它从本质上修改了权重和偏置变量,解释如下:

Zl​=γ(WZl−1​+b)+γ=(γW)Zl−1​+γb+γ;

其中 γ 是点积。 从调整参数的角度来看,基于参数的调整可能在调整参数的角度较少的情况下有时表现优越。鉴于现有的各种技术,毛等人 [242] 使用了门控机制对这些方法进行了统一。[243] 使用修剪技术在反向传播过程中删除激活,导致稀疏激活。这些技术的一系列方法将在第 3.5 节中进一步介绍。除了基于 Transformer 的结构之外,LoRA Winograd 卷积 [244] 旨在使用 LoRA 机制来剪枝 3D CNN 主干模型(例如 C3D 和 R3D-18),以加速 Winograd 操作 [245] 并减少可训练参数。到目前为止,大多数方法都在基于 Transformer 的结构上进行了测试,它们在基于 CNN 的结构上的效果仍然需要进一步探讨。

3.5重新映射微调

与直接微调或处理预先存在的模型不同,重新映射调整是一类将预训练模型学到的知识转移到新的下游模型的技术。根据如何利用预训练模型,即输出、权重和网络架构(见图 5),我们将在以下类别中讨论三种知识传递形式:基于知识蒸馏的重新映射、基于权重的重新映射和基于架构的重新映射。

图 5 三种不同类型重新映射微调方法

3.5.1 知识蒸馏

知识蒸馏的目标是通过强制下游模型模仿预训练模型的输出来对其进行规范化。请注意,这里的输出通常指的是最终响应或中间特征。同时,知识蒸馏也是一种重要的模型压缩技术。在本节中,我们不涉及其他模型压缩技术,比如网络修剪[246{248],因为它们通常不是为了将知识从教师网络传递到学生网络而产生的。

知识蒸馏的基本思想是通过学习教师模型的网络输出或中间特征,将来自大型预训练教师模型的知识转移到小型学生模型。通常,知识是通过对每个情况使用软目标分布来从教师模型蒸馏到学生模型的。每个情况的概率qi可以表示为(我猜用这个的原因为因为参数可导):

qi=∑j​exp(zj/T)exp(zi/T)​

其中z是教师网络的输出对数,T是蒸馏过程的温度。

据我们所知,[249]的工作首次引入了知识蒸馏来从现有模型中提取知识。他们使用由一组浅层网络生成的伪数据训练了一个压缩模型,而性能几乎没有显著的损失。这个想法在[250]中得到了扩展,用于将深且宽的网络压缩成更浅的网络。Hinton等人[185]引入了师生知识蒸馏框架,其中学生网络基于教师网络的软化类分布输出而受到惩罚。

深度神经网络的一个特征是通过学习分层特征表示来获得越来越强大的表达能力,正如[251]中指出的那样。基于这一理论,教师网络的最终响应和中间特征图均可用作训练学生模型的目标。为了充分利用中间层的信息,Fitnets [186]引入了教师的中间层提示,以促进对学生的训练。它通过教师的中间特征图作为提示,强制在教师和学生网络之间进行中间特征对齐。随后,有大量的工作致力于间接对齐特征[64, 187{193]。具体而言,Kim等人[193]开发了一种因子转移方法,该方法使用教师的释义中间特征作为因子,使教师网络的知识对学生网络更容易理解。受神经架构搜索(NAS)[207]的启发,Guan等人[188]开发了一个两阶段的蒸馏方法,采用可微分搜索策略,同时提高知识蒸馏的效率和有效性。Xu等人[190]通过引入样本特定的校正因子,开发了一种特征标准化的蒸馏方法,以替代温度,目标是抑制由于独热标签产生的噪声的影响。Passalis等人[191]对教师的多个中间层的信息流进行建模,然后训练一个学生模型以匹配这个信息流。为了实现对视觉变换器的知识传递,Touvron等人[64]引入了一种基于令牌的蒸馏策略,称为DeiT,它强制学生变换器使用蒸馏令牌直接复制由预先训练的教师网络估计的标签。Hao等人[192]通过实质利用图像块级信息,引入了一种面向视觉变换器的流形蒸馏方法。

还有一些扩展可以进一步探索知识传递模式。Park等人[194]提出了一种关系知识蒸馏方案,用于输出的相互关系传递,而不是单个输出。作为普通知识蒸馏的推广,他们引入了距离和角度方面的蒸馏损失,以充分提取数据示例中的结构关系。Liu等人[195]提出了一种称为AKD的架构感知知识蒸馏方法,旨在找到用于提炼给定教师网络的最佳学生网络。Chen等人[196]研究了中间层的语义,并采用了一个注意机制,以自动分配教师和学生网络之间的软层关联,从而减小训练过程中的过度正则化的影响。Zhou等人[197]提出了一种基于图神经网络的整体知识蒸馏方法,其中整体知识包含个体知识和关系知识[252, 253]。为了整合这两种知识并优化它们的相关性,采用图神经网络学习整体知识,通过聚合来自相关数据示例的特征表示,为学生网络提供监督。Chen等人[198]提出了一种残差蒸馏框架,称为Review,以从教师网络的多层信息中有效学习信息特征。Review利用教师中的多个层来引导学生中的一个层的训练,取得了显著的性能提升。Zhao等人[199]将传统的知识蒸馏损失模拟为目标类知识蒸馏和非目标类知识蒸馏,然后深入研究它们的影响。基于观察,他们发现传统的知识蒸馏损失是一个高度纠缠的公式。为了解决这个问题,他们引入了一种解耦方法,以促进知识蒸馏的有效性和灵活性。

在应用方面,上述大多数方法侧重于图像分类。此外,知识蒸馏在更多的视觉任务中也表现出有希望的结果,如目标检测[254{257]、图像分割[258{261]、行人重识别[262, 263]、超分辨率[264, 265]、深度估计[266, 267]和人群计数[268]。

3.5.2权重重新映射 与依赖教师的输出作为监督以训练学生的方法不同,权重重映射直接将教师网络的模型权重转移到学生网络中。Net2Net [200]是一项开创性的工作,通过将预先存在的教师网络的权重重映射到学生网络中,迅速将存储在预先存在的网络中的知识转移到另一个网络中。其主要目的是为了在训练学生时提供实质性的加速。

随后,EAS [201]将权重重映射的概念引入了神经架构搜索。EAS提出了一个有效的架构搜索框架,通过按照预先存在的网络探索搜索空间并重用其权重来实现。通过利用强化学习策略作为元控制器,EAS可以自适应地生成网络转换操作,以确定具有函数保持变换的网络深度或宽度 [200]。为了解决可变长度的体系结构并考虑整个输入体系结构,EAS使用双向递归网络 [269] 作为编码器网络。通过这种方式,先前训练的网络可以进一步利用,以高效地探索体系结构空间并极大加速新网络的训练过程。为了有效地压缩教师网络以进行知识转移,Ashoket等人[202]提出了一种基于强化学习的方法,称为N2N学习,将从教师网络转换为学生网络的过程建模为马尔可夫决策过程(MDP)。N2N学习将知识转移的过程分为两个阶段的动作选择。在第一阶段,一个循环策略网络选择一系列动作,包括保留或删除大型教师网络的层。在第二阶段,另一个策略网络对每个剩余层进行进一步缩减,以匹配减弱的配置。然后,通过强化学习过程评估生成的学生网络,以获取学习策略的奖励。为此,N2N学习引入了一个压缩奖励项,建模线性约束内的有限计算预算。

此外,一些有趣的权重重映射方法考虑了网络路径拓扑,而不仅仅是添加或删除网络层。Elsken等人[203]引入了一种基于爬山算法的方法,名为NASH,可以自动搜索最佳的学生架构。通过使用一系列替代网络形态,NASH可以通过余弦退火的短优化过程训练子网络。在每个训练步骤中,NASH通过简单的爬山策略[270]搜索最佳体系结构。路径级EAS [204]强制元控制器改变网络连接路径的拓扑结构,同时使用保持函数的变换操作重新映射权重。因此,设计的学生网络可以具有复杂的路径拓扑结构。为实现这一点,路径级EAS开发了一个基于强化学习的双向树状结构的元控制器,以丰富架构空间以适应多分支结构的泛化。树状结构的架构包含边和节点,形成每个单元内丰富的路径,其中每个节点都有分配和合并方案。

先前的目标检测和语义分割方法使用在图像分类上预训练的网络权重以提高性能。然而,其中一个主要的挑战是ImageNet预训练通常需要非常大的计算成本。为了解决这个问题,Fang等人[205]引入了一种称为FNA的快速神经网络适应方法,通过修改网络的深度和卷积核使预训练网络适应新任务。这样,FNA可以在几乎没有计算成本的情况下将NAS技术扩展到目标检测和语义分割。在技术上,FNA首先通过选择一个在ImageNet上预训练的手动设计的网络(例如[271])来设计一个种子网络,然后将其扩大为一个超级网络。通过应用权重重映射技术,种子网络用于分配新的模型参数。值得注意的是,FNA将权重重映射扩展到了卷积核的层次,其中允许参数在映射过程中形成一个较小的网络,而不仅仅是像Net2Net那样更深更宽的网络。FNA通过充分利用预训练的ImageNet图像分类权重大大减少了网络适应的计算开销。后续工作FNA++ [206]将FNA的权重重映射扩展到了一个更多的任务(即人体姿态估计),并包括更多的网络架构,包括ResNet [24]和具有不同宽度、深度和卷积核大小的NAS网络。

3.5.3 架构重新映射

架构重映射指的是从预先存在的模型中转移关于网络架构的知识。据我们所知,这一领域的工作主要用于权重共享的神经网络搜索(NAS)。形式上,S表示架构,!表示S的权重。NAS的目标是找到在测试集上表现最好的最佳架构S∗:

S∗=argmaxS​Eval(fS;!​,Dtest​)

具体而言,这种类型的NAS将搜索空间建模为一个过度参数化的超级网络,例如,将搜索空间建模为多个可重复的单元。当将搜索到的架构转移到下游任务时,直接架构转移是当前的主流方案,即堆叠几个搜索到的单元以形成下游模型,然后在下游数据上对其进行重新训练。经典的例子包括DARTS及其变体。直接架构转移在下游任务上取得了令人印象深刻的结果。

3.5.4 讨论

基于重映射的调整是一类从预训练模型向学生下游模型传递知识的技术。与传统的迁移学习方法不同,这一领域的工作侧重于训练一个新的下游模型,该模型与预先存在模型的参数解耦。也就是说,预先存在的模型不参与推断。因此,重映射调整方法具有独特的优势。一方面,它们可以通过压缩下游模型(如知识蒸馏)实现显著的参数效率。另一方面,它们在下游模型的网络结构上具有很高的灵活性,因为其参数与预先存在的网络解耦。

对于三类重映射调整方法,未来的研究方向还有一些有趣的方向。知识蒸馏通常更注重效率,因此大大降低了计算成本。尽管它很有效,但知识蒸馏通常需要仔细平衡特定任务的损失和蒸馏损失,以确保微调性能,有时甚至需要工程经验。权重重映射是一种简单而有效的解决方案,无需手动添加约束。然而,与知识蒸馏相比,这类工作通常很难获得轻量级的学生网络,这限制了其应用。架构重映射擅长将现有的网络架构转移到下游模型,但其应用通常受到神经网络搜索的限制。

4.视觉微调特征

迄今为止,视觉智能的状态形成了一个预训练和调整的迁移学习范式,在许多基准测试中展现出了极具前景的性能。视觉在人类智能知识获取中占据了很大的比例。然而,由于视觉数据的高维度,与自然语言处理相比,机器视觉的智能受到相对较小的数据规模的影响,并且在普通人类视觉的智能水平上仍然远远落后。智能视觉的未来前景将超越竞争基准数据集,通过多学科共同演进的过程在更多领域实现转变性影响。一方面,我们期望未来的预训练技术在“集合-标注-训练-反馈”循环系统中扮演知识获取和存储的角色。而未来的调整将围绕如何通过更多样化的交互方式利用学到的知识,超越了对话系统周围的提示。在进一步了解深度神经网络模型甚至人脑机制的过程中,我们从预训练和调整技术的角度讨论了视觉未来的工作方向。

4.1 先进的预训练

先前的工作使用监督或自监督方法引导模型学习我们的视觉和视觉-文本世界的表示。监督预训练方法是传统迁移学习范式的主流实践[14, 26, 275],而自监督预训练将预训练模型扩展到基础模型(见第2.4节)。尽管已经取得了令人鼓舞的进展,随着数据的不断积累,我们期望未来的预训练技术能够不断扩大模型规模并改进基础模型的能力。在这里,我们从数据、模型和优化三个方面讨论模型预训练的未来方向。

4.1.1 数据

优质数据是基础模型的养料,被视为数据所有者的重要财产。为了实现未来基础模型的承诺,预期从具有以下特征的开放世界多模态数据中获取更多的基础知识:

• 不断增加的规模:在数据量方面,从大规模数据集中学习知识的大型视觉模型在通过调整技术适应下游任务方面经验上被证明是有效的。然而,与人类视觉相比,现有的大规模视觉数据集仍远远不及人类学到的数据量。相反,在自然语言处理中的情况可能会有所不同,因为大型语言模型可以被视为具有广泛的互联网知识,使它们在某些自然语言处理任务方面更有能力,例如ChatGPT。为了扩大数据量,可以考虑使用多模态数据(例如图像、视频、音频和文本)、多源数据(例如互联网、生成模型如Nerf [276]和Diffusion [277])以及多传感器数据(例如不同类型的摄像机、生物标志物和环境传感器)来训练大型模型。

• 高质量:在任意收集大规模数据之前,确定哪些数据以及多少数据是重要的关注点。新收集的数据可能是冗余的或嘈杂的,分别导致对模型的限制甚至负面影响。Chen等人[278]在特征表示的层面引入了多样性规则。然而,对于现有基准数据集的数据层面的质量仍然缺乏研究,引起了对诸如分布外泛化和对噪声的容忍性等主题的研究(见第2.1.3节)。进一步调查数据质量的可测因素(例如[279]总结的16个维度)及其对大型模型的影响可以对机器智能社区产生巨大影响。研究结果将指导基于证据的数据收集,并有效降低昂贵的标记成本。

• 安全性和隐私始终是数据生命周期中的优先考虑因素,特别是在与云上的大型模型进行交互的领域,如医疗保健和金融[280]。围绕云计算的问题可以分为四个方面:1)用户对数据的控制,2)授权复制,3)法律要求和4)云分包商的处理[281]。可以在数据层面采取保护措施,以防止攻击,如重新识别、数据集重建和追踪。

4.1.2 模型

鉴于多模态、多源、多传感器数据,预期视觉大型预训练模型将以一种可解释且安全的机制不断积累新数据的知识。

• 理论支持(统计学(感觉用的还是基础的统计知识),生物学以及神经科学):从统计和生物学的角度为模型提供理论支持,使它们更具可解释性、可解释性和可改进性。在大型模型的体系中,有一定数量的最近的研究受到了从统计角度提出的一些理论定义的启发[44{47],其中使用了泛化边界来保证有效的知识转移。除了统计方面,生物学和神经科学的发现也有益于深度神经网络的发展,可以为未来大型视觉模型提供更多的见解并激发新的思路。我们观察到第2.1.1节中的最近的研究主要是互相解释各自观察到的领域经验现实,而不是真正激发新的思想。基本的神经网络连接受到大脑神经元工作方式的启发,但我们还没有确切知道人脑如何学习新知识。因此,我们也不清楚通过反向传播获得的现有大型模型的知识是否有效。一方面,我们人类是有感知能力的存在,通过多种感觉获得知识:视觉、声音、触觉、味觉等。另一方面,人脑可以非常高效地激活只有很小一部分的神经元来完成任务,而现有的基础模型却没有这样做。到目前为止,我们正在构建与世界上最聪明、最高效的机器(即人脑)有所不同的东西。了解大脑可能是下一个转折点(即人工通用智能),这带来了严重的伦理问题。

• 持续更新:如第2.2节所介绍,模型可以具有其领域和任务,具有其特征空间和标签空间。我们期望基础模型不仅在参数方面扩大规模,而且在领域和任务方面也同步扩大规模。对于单一领域,它可以有多个任务。像GATO [32]和Flamingo [34]这样的模型是用多个任务进行预训练的,前者涵盖了视觉任务,而后者甚至涵盖了自然语言处理和视觉任务。对于单一任务,分类任务可以具有新颖的类别,该类别由主动学习范 paradigm(即终身学习或持续学习)定义。与一次性学习不同,其中所有训练数据一次性可用,持续学习代表一类方法,该方法累积知识并随着按顺序提供的数据而不断学习[283]。未来更强大的视觉和视觉-语言模型将通过多学科共同进化的过程对其他领域产生更深远的影响。

• 安全性:除了数据级别的隐私问题,大型基础模型(即在模型级别)还可能容易受到攻击。基础模型允许用户通过API轻松插拔,这引发了安全性和隐私方面的担忧,如对抗性攻击和模型反演。Kaissis等人[282]介绍了联邦学习的优势,并展望了未来的工作。尽管联邦学习可以缓解数据级隐私问题,但它可能容易受到对抗性攻击[284]。在围绕隐私保护的人工智能领域,对抗性攻击将在不久的将来引起更多的研究。

4.1.3 优化

目前的基础模型通常使用反向传播和强化学习结合人类反馈进行优化。优化本身可能依赖于硬件设备、超参数配置和算法,具体如下:

• 硬件:最近的大型模型通常使用GPU进行训练,这对于一般研究人员或小公司来说是难以承受的。幸运的是,最新发布的NVIDIA Hopper H100 GPU [285](买的起吗?)支持FP8格式,用于加速计算密集型的Transformer模型(比先前的A100 GPU训练速度快约9倍),使得万亿参数模型对所有研究人员都是可行的。虽然H100相对于A100的推理加速可以达到30倍,使调整成为一个有前途的方向。

• 超参数配置:在机器学习中,初始学习率、批大小和任务特定参数等超参数通常会显著影响性能。为了避免试错的手动过程,超参数优化是自动化机器学习的一个子领域,旨在自动识别性能良好的超参数组合。简单的技术有网格搜索或随机搜索。而近期在超参数优化方面的进展包括演化策略、贝叶斯优化、Hyperband等 [286]。

• 算法:反向传播和随机梯度下降的组合仍然是使基础模型朝着某些统计目标优化的主流算法(例如将图片识别为猫的概率)。与此同时,带有人类反馈的强化学习提供了更多原始的人类意见,这可以看作是一种将预训练的大型模型调整到更具体人类期望任务的人机交互。

4.2 优化技术

如第3节所介绍的,近期在视觉优化技术方面的发展可以看作是源于NLP领域的提示调整,并朝着PETL方向发展。随后提出了几种适配器方法,表现优于视觉提示方法但缺乏可解释性。偏置调整和LoRA方法进一步减少了参数数量,导致通过添加或分解的直接参数调整方法。更近期的作品被归为重新映射调整,其中NAS-based方法 [287, 288] 展现了更加激进的PETL方式。这些技术为未来提示的开发提供了激动人心的研究基础,通过引导和交互,分别引导更好地利用存储在大型模型中的语言和视觉知识。我们讨论了三个核心渐进交互方面:可解释的提示,对话引导和多样化交互,这些方面研究人员将会观察到爆炸性的发展,具体如下。

4.2.1 可解释的提示

提示工程将从直观设计发展到更容易理解和解释的方向。现有的文本或视觉提示更像是在高层次上的隐式引导,描述了下游视觉任务是什么。正如在第3.2节中介绍的,许多作品尝试学习提示以促进视觉下游任务。尽管取得了一些进展,但它们在可解释性方面存在问题,即仍然难以理解网络学到了什么提示。例如,一些作品(如VPT)学习了无序的基于令牌的提示,这无法可视化成一个可理解的提示。陈等人 [289]尝试学习可理解的提示。关于其他调整技术,如适配器、基于参数和重新映射技术,它们也面临可解释性问题,因为它们本质上旨在减少为适应下游任务而调整的参数数量,以适应大型模型。因此,未来的研究应该回答诸如什么是良好的文本和视觉提示,以及如何在整个学习流程中评估它们(从输入到输出);视觉和文本提示之间的关系,以及在什么情况下可以相互替代;如何设计明确、一致和逻辑的提示,使大型模型能够高效地适应。

4.2.2 会话引导

我们预计视觉调整的发展将导致新的工作,例如提示工程师,他们具有为大规模视觉语言模型提供指导的专业知识。多轮会话系统可以提供一个自然的平台,引导模型朝向期望的任务目标进行适应 [5]。通常期望视觉模型将与语言模型同质化 [5, 10, 30, 31, 33{35]。然而,由于“一图胜千言”的事实,视觉调整的发展在一定程度上落后于大型语言模型的成功(详见第2.1.2节)。具体来说,关于数据复杂性和场景多样性,视觉领域的工业应用(而非常见的应用场景,如自动驾驶车辆、交通推荐 [290]、天气预测 [80]、蛋白质设计 [81] 等)对根据具体任务要求进行定制的需求非常高。在进行肿瘤检测任务时,提示工程师将与大型模型进行多轮对话,选择或设计良好的分割样本,以改进任务的一些核心步骤,并最终实现对生产可接受的结果。

4.2.3 多样化的交互

除了在带有文本和视觉提示的会话系统中的交互之外,视觉中的交互可以更加多样化。人类可以逐渐建立自己的评估标准,然后朝着更高的标准进行实践(即,学习或为模型训练)。现有的自学习模型没有建立具有逐步改进目标的机制。我们期望,在长期内,通用AI或特定领域的强AI将以提示、指导和多样化的交互形式发展。在最近的研究中 [291, 292],分割样本也被用作提示,告诉模型将执行什么任务。目前,在图像合成中使用文本提示和草图图像的交互,使每个人都能成为视觉内容创作者。这些视觉交互可以被视为一种基于图像的视觉提示。图像可以代表视觉交互场景的有限部分,可以被视为具有静态视点的任务,但为更丰富的视觉交互提供了基本条件。目前基于图像的交互被称为上下文学习,旨在模拟人脑的高效视觉理解,并本质上缩小了基础模型的搜索空间 [291]。除了简单地导航大型模型到下游任务的方面外,还存在更多提供大量个人视觉交互的多样化交互场景,例如机器人、无人机和仿生机器狗 [12, 293]。这些视频数据提供了交互生态环境,促使了第2.1.1节中提到的人类视觉的发展。尽管通过自监督学习预训练的基础模型调整指向一个充满希望的未来方向,未来的视觉交互将依赖于先进的预训练技术(知识积累技术),这些技术超越了目前已测试的技术,这些技术基于生成屏蔽像素或对比学习。有望实现多样化交互的有望的长期方向可能涉及新兴技术,如脑机接口、量子计算、事件摄像头等。这将在未来的“收集-标记-训练-反馈”循环系统之上产生新的泛化能力。

5 结论

本综述总结了视觉调整技术,特别关注了即将到来的大型模型领域中视觉调整的最新状态。从微调开始,系统地调查和比较了现有的提示调整、适配器调整、参数调整和重映射调整的状态,基于对它们技术细节的全面理解。基于预期中的新兴大型模型,从提示、指导、交互和优化的角度讨论了未来的视觉调整方向。我们希望这份关于视觉调整最新状态的首次综述能够为大型模型时代的研究人员提供新的视角,有助于他们在更好地理解当前状态和把握未来核心研究挑战的基础上进行研究。(看完这篇文章的感觉就是看了,只是看了。。。。)

参考文献 【1】Yu B X B, Chang J, Wang H, et al. Visual Tuning[J]. arXiv preprint arXiv:2305.06061, 2023.

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/136279
推荐阅读
相关标签
  

闽ICP备14008679号