网站开发工程师题,没有公众号建微信网站,wordpress子分页,建筑安全员考试成绩查询官网系列论文研读目录 文章目录 系列论文研读目录题目#xff1a;《Maple#xff1a;多模态提示学习》摘要1.简介2.相关工作视觉语言模型#xff1a;提示学习#xff1a;视觉语言模型中的提示学习#xff1a; 3.方法3.1.回看CLIP编码图像#xff1a;编码文本#xff1a;Zero…系列论文研读目录 文章目录 系列论文研读目录题目《Maple多模态提示学习》摘要1.简介2.相关工作视觉语言模型提示学习视觉语言模型中的提示学习 3.方法3.1.回看CLIP编码图像编码文本Zero-shot分类 3.2.Maple多模态提示学习3.2.1深度语言提示3.2.2 深度视觉提示3.2.3视觉语言提示耦合 4.实验4.1.基准设定从基本类到新类的泛化跨数据集评价领域概括数据集:实现细节 4.2.用视觉语言提示CLIP4.3.“基础到新”的泛化4.4.跨数据集评价4.5.域泛化4.6.消融实验 5.结论 题目《Maple多模态提示学习》
摘要
预训练的视觉语言V-L模型如CLIP已经显示出对下游任务的出色泛化能力。然而它们对输入文本提示的选择很敏感需要仔细选择提示模板才能良好地执行。受自然语言处理NLP文献的启发最近的CLIP适应方法将提示作为文本输入来学习以微调CLIP用于下游任务。我们注意到使用提示来适应CLIP语言或视觉的单个分支中的表示是次优的因为它不允许在下游任务上动态调整两个表示空间的灵活性。在这项工作中我们提出了多模态提示学习Maple的视觉和语言分支以提高视觉和语言表征之间的一致性。我们的设计促进了视觉语言提示之间的强耦合以确保相互协同作用并阻止学习独立的单峰解决方案。此外我们在不同的早期阶段学习单独的提示以逐步对阶段特征关系进行建模从而实现丰富的上下文学习。我们评估了我们的方法在三个代表性的任务上的有效性推广到新的类新的目标数据集和看不见的域转移。与最先进的方法Co-CoOp相比Maple表现出良好的性能在11个不同的图像识别数据集上在新类别上实现了3.45%的平均绝对增益在整体谐波平均值上实现了2.72%的平均绝对增益。我们的代码和预培训模型可在https://github.com/muzairkhattak/multimodalprompt-learning上获得。
1.简介
基础视觉语言V-L模型如CLIP对比图像预训练[32]已经显示出对下游任务的出色泛化能力。这种模型经过训练以在网络规模的数据上对齐语言和视觉模态例如CLIP中有4亿个文本图像对。由于自然语言提供了丰富的监督这些模型可以推理开放词汇的视觉概念。在推断期间使用手工设计的文本提示比如’‘a photo of a 作为查询文本的编码器。将输出文本嵌入与来自图像编码器的视觉嵌入进行匹配以预测输出类。设计高质量的上下文提示已被证明可增强CLIP和其他V-L模型的性能[1742]。尽管CLIP在推广新概念方面有效但其庞大的规模和缺乏的训练数据例如few-shot设置使得不可能为下游任务微调完整模型。这种微调也可能忘记在大规模预训练阶段获得的有用知识并可能造成过度适应下游任务的风险。为了解决上述挑战现有的工作提出了语言提示学习以避免手动调整提示模板并提供了一种机制来在保持原始权重冻结的同时适应模型[1425294849]。受自然语言处理NLP的启发这些方法仅探索CLIP中文本编码器的即时学习图1a而自适应选择以及CLIP中同样重要的图像编码器仍然是文献中未探索的主题。我们的动机来自CLIP的多模态特性其中文本和图像编码器共存并且都有助于正确对齐V-L模态。我们认为任何提示技术应该完全适应模型因此学习提示只为文本编码器在CLIP中是不足以模拟图像编码器所需的适应的。为此我们开始在提示方法中实现完整性并提出多模态提示学习MaPLe来充分微调文本和图像编码器表示以便在下游任务中实现最佳对齐图1B。我们在三个关键的代表性设置上进行了广泛的实验包括基础到新的泛化跨数据集评估和域泛化证明了Maple的实力。在基于新的泛化方面我们提出的Maple在11个不同的图像识别数据集上优于现有的快速学习方法图1c并在最先进的方法Co-CoOp上实现了3.45%的绝对平均增益和2.72%的谐波平均值[48]。此外MaPLe在跨数据集传输和域泛化设置中表现出良好的泛化能力和鲁棒性与现有方法相比得到了一致的改进。由于其流线型的架构设计与Co-CoOp相比Maple在训练和推理过程中表现出更高的效率而没有太多的开销Co-CoOp由于其图像实例条件设计而缺乏效率。总之这项工作的主要贡献包括 1我们建议在CLIP中采用多模态提示学习以使其视觉语言表征更好地保持一致。据我们所知这是第一个用于微调CLIP的多模态提示方法. 2为了将在文本和图像编码器中学习到的提示联系起来我们提出了一个耦合函数以明确地将视觉提示条件化到它们的语言对应物上。它是两种模式之间的桥梁允许梯度的相互传播以促进协同作用。 3我们的多模态提示是在视觉和语言分支的多个Transformer模块中学习的以逐步学习两种模态的协同行为。这种深度提示策略允许独立地对上下文关系建模从而提供更大的灵活性来对齐视觉-语言表示。 Maple与标准快速学习方法的比较。(a)现有的方法采用单模态提示技术来微调CLIP表示因为提示仅在CLIP的单个分支语言或视觉中学习。(b)Maple引入了分支感知的分层提示同时适应语言和视觉分支以提高泛化能力。©Maple在11个不同的图像识别数据集上超越了最先进的方法用于新的类泛化任务。
2.相关工作
视觉语言模型
语言监督与自然图像的结合使用在计算机视觉领域具有重要意义。与仅使用图像监督学习的模型相比这些视觉语言V-L模型编码了丰富的多模态表示。最近像CLIP [32]ALIGN [15]LiT [45]FILIP [41]和佛罗伦萨[43]这样的V-L模型已经在广泛的任务中表现出卓越的性能包括few-shot和zero-shot视觉识别。这些模型使用来自网络的大量可用数据以自我监督的方式学习联合图像语言表示。例如CLIP和ALIGN分别使用10400 M和101 B图像-文本对来训练多模态网络。尽管这些预先训练的V-L模型学习了广义表示但有效地使其适应下游任务仍然是一个具有挑战性的问题。许多工作已经证明了通过使用定制的方法来适应V-L模型以用于few-shot图像识别[91946]对象检测[81027344450]和分割[5222633]下游任务的性能更好。在这项工作中我们提出了一种新的多模态提示学习技术以有效地适应CLIP的few-shot和zero-shot视觉识别任务。
提示学习
句子形式的指令称为文本提示通常被给予V-L模型的语言分支使其更好地理解任务。可以为下游任务手工制作脚本也可以在微调阶段自动学习脚本。后者被称为“提示学习”它首先用于NLP [212324]然后是V-L [484951]和仅视觉[16383947]模型中的适应。与[16]类似我们的设计也使用了深度“视觉”提示。然而我们是第一个多模态提示设计而[16]是单模态的。
视觉语言模型中的提示学习
完全微调和线性探测[9]是使V-L模型即CLIP适应下游任务的两种典型方法。完整的微调导致先前学习的联合V-L表示降级而线性探测限制了CLIP的零触发能力。为此受NLP中提示学习的启发许多工作提出通过在端到端训练中学习提示标记来适应V-L模型。CoOp [49]通过优化其语言分支的提示向量的连续集合来微调CLIP以进行少量传输。Co-CoOp [48]强调了CoOp在新类上的较差性能并通过显式地对图像实例进行条件提示来解决泛化问题。[25]提出了通过学习提示的分布来优化多组提示。[18]通过学习视频理解任务的提示来调整CLIP。[1]通过视觉分支上的提示对CLIP执行视觉提示调整。我们注意到现有的方法遵循独立的单峰解决方案并学习提示无论是在语言或视觉分支的CLIP从而适应CLIP部分。在本文中我们探讨了一个重要的问题鉴于CLIP的多模态性质完全提示即在语言和视觉分支更适合适应CLIP我们的工作是第一个回答这个问题通过调查的有效性多模态提示学习以提高视觉和语言表征之间的一致性。
3.方法
我们的方法涉及微调预训练的多模态CLIP以便通过提示进行上下文优化从而更好地泛化到下游任务。图2显示了我们提出的MaPLe多模态提示学习框架的整体架构。与之前仅在语言分支学习上下文提示的方法[4849]不同Maple提出了一种联合提示方法其中上下文提示在视觉和语言分支中都被学习。具体来说我们在语言分支中附加可学习的上下文标记并通过耦合函数显式地将视觉提示置于语言提示上以建立它们之间的交互。为了学习分层上下文表示我们在两个分支中引入了深度提示通过跨不同Transformer块的单独可学习上下文提示。在微调过程中只有上下文提示沿着其耦合函数被学习而模型的其余部分被冻结。下面我们首先概述预训练的CLIP架构然后介绍我们提出的微调方法。
3.1.回看CLIP 我们的方法建立在一个预先训练的视觉语言VL模型CLIP上该模型由文本和视觉编码器组成。与现有的提示方法[4849]一致我们使用基于CLIP模型的视觉TransformerViT[6]。CLIP对图像I ∈ RH×W×3和相应的文本描述进行编码如下所述。
编码图像 图像编码器V具有K个Transformer层将图像I分割成M个固定大小的块这些块被投影到块嵌入E0 ∈ RM×dv中。补丁嵌入Ei与可学习类CLS标记ci沿着被输入到第i 1个Transformer块Vi1并依次通过K个Transformer块进行处理 为了获得最终图像表示x最后一个Transformer层VK的类标记cK经由ImageProj被投影到公共V-L潜在嵌入空间
编码文本 CLIP文本编码器通过将词标记化并将它们投影到词嵌入W 0 [w1 0w2 0· · ·wN 0 ] ∈ RN×dl来生成用于文本描述的特征表示。在每一级Wi被输入到文本编码分支Li1的第i 1层Transformer层 通过将与最后一个Transformer块LK的最后一个令牌对应的文本嵌入经由TextProj投影到公共V-L潜在嵌入空间来获得最终文本表示z
Zero-shot分类 对于零镜头分类文本提示是手工制作的具有类标签y ∈ {12…C}例如‘a photo of a ’有C类的照片。利用温度参数τ计算对应于具有最高余弦相似性得分sim·的图像I的预测Hy
3.2.Maple多模态提示学习
为了有效地微调CLIP用于下游图像识别任务我们探索了多模式提示调整的潜力。我们的理由是先前的研究主要是探索单一模态的方法是不太合适的因为他们没有提供灵活性以动态适应语言和视觉表征空间。因此为了实现提示的完整性我们强调了多模态提示方法的重要性。在图3中我们将Maple的图像嵌入与最新的最先进的工作Co-CoOp进行了可视化和比较。请注意CLIP、CoOp和Co-CoOp的图像嵌入将是相同的因为它们不学习视觉分支中的提示。可视化结果显示Maple的图像嵌入更易分离表明除了语言提示外学习视觉提示可以更好地适应CLIP。除了多模态提示我们发现这是必不可少的学习提示更深的Transformer层逐步建模阶段式的功能表示。为此我们建议在视觉和语言分支的第一个J层其中J K中引入可学习的令牌。这些多模态分层提示利用嵌入在CLIP模型中的知识来有效地学习与任务相关的上下文表示见图4。 在MaPLe中按提示深度左侧和提示长度右侧进行消融。我们报告所有数据集的保留验证集的平均结果。
3.2.1深度语言提示 为了学习语言上下文提示我们在CLIP的语言分支中引入了b可学习标记{Pi ∈ Rdl }b i1。输入嵌入现在遵循形式[P1P2· · ·PbW 0]其中W 0 [w1w2· · ·wN]对应于固定的输入令牌。在语言编码器Li的每个Transformer块中进一步引入新的可学习令牌直到特定深度J 这里[··]指的是连接操作。在第J个Transformer层之后后续层处理先前层提示并计算最终文本表示z 当J 1时可学习标记P仅应用于第一层Transformer层的输入并且这种深度语言提示技术退化为CoOp [49]。
3.2.2 深度视觉提示 类似于深度语言提示我们在CLIP的视觉分支中与输入图像标记一起引入B可学习标记{RdPi ∈ Rdv }B i1。在图像编码器V的更深的Transformer层中进一步引入新的可学习令牌直到深度J。 我们的深度提示提供了跨ViT架构内不同功能层次结构学习提示的灵活性。我们发现跨阶段的共享提示比独立提示相比是更好的由于连续的Transformer块处理功能更相关。因此与早期阶段相比后期阶段不提供独立学习的补充提示。
3.2.3视觉语言提示耦合
我们的理由是在提示调整时它是必不可少的采取多模态的方法同时适应双方的视觉和语言的CLIP分支以实现完整的上下文优化。一种简单的方法是简单地将联合收割机和语言提示结合起来其中语言提示P和视觉提示P~都将在相同的训练计划中学习。我们将此设计命名为“独立V-L提示”。虽然这种方法满足了提示的完整性要求但这种设计缺乏视觉和语言分支之间的协同作用因为这两个分支在学习任务相关上下文提示时不交互。 为此我们提出了一个分支意识的多模态提示通过跨两种模态共享提示将CLIP的视觉和语言分支调谐在一起。语言提示令牌被引入到语言分支中直到第J个Transformer块类似于如等式1所示的深度语言提示。1-3.为了保证视觉-语言提示之间的相互协同作用视觉提示P是通过视觉-语言投射来投射语言提示P而得到的我们称之为视觉-语言耦合函数F·使得P k FkPk。耦合函数被实现为将dl维输入映射到dv的线性层。这在两种模态之间起到桥梁的作用从而促进梯度的相互传播。 与独立的V-L提示不同P的外显条件作用有助于在两个分支之间共享的嵌入空间中学习提示从而提高相互协同作用。
4.实验
4.1.基准设定
从基本类到新类的泛化
我们评估了MaPLe的可推广性并遵循zero-shot设置其中数据集被分为基础类和新类。该模型仅在少数镜头设置中的基本类别上训练并在基本类别和新颖类别上评估。
跨数据集评价
为了验证我们的方法在跨数据集传输中的潜力我们直接在其他数据集上评估了我们的ImageNet训练模型。与Co-CoOp一致我们的模型在所有1000个ImageNet类上以少镜头的方式进行训练。
领域概括
我们评估了我们的方法在分布外数据集上的鲁棒性。与跨数据集评估类似我们直接在包含各种类型的域转换的其他四个ImageNet数据集上测试ImageNet训练模型。
数据集:
为了从基础到新类别和跨数据集评估的推广我们遵循[4849]并评估了我们的方法在11个图像分类数据集上的性能这些数据集涵盖了广泛的识别任务。这包括两个通用对象数据集ImageNet [4]和Caltech 101 [7];五个细粒度数据集OxfordPets [31]、StanfordCars [20]、Flowers 102 [30]、Food 101 [2]和FGVCAircraft [28];场景识别数据集SUN 397 [40];动作识别数据集UCF 101 [36];纹理数据集DTD [3]和卫星图像数据集EuroSAT [11]。对于领域泛化我们使用ImageNet作为源数据集并使用其四个变体作为目标数据集包括ImageNetV 2 [35]、ImageNetSketch [37]、ImageNet-A [13]和ImageNet-R [12]。
实现细节
在所有实验中我们使用了少量的训练策略在16个镜头中每个类随机抽样。我们对预训练的ViT-B/16 CLIP模型应用即时调整其中dl 512dv 768和dvl 512。对于MaPLe我们将提示深度J设置为9并将语言和视觉提示长度设置为2。所有模型均在单个NVIDIA A100 GPU上通过SGD优化器进行了5个时期的训练批处理大小为4学习率为0.0035。我们报告基地和新的类精度和他们的谐波平均值HM平均超过3次运行。我们用模板“a photo of a”的预训练CLIP单词嵌入初始化第一层P0的语言提示而对于后续层它们是从正态分布随机初始化的。为了在ImageNet的所有1000个类上训练Maple作为源模型提示深度J设置为3模型训练了2个epoch学习率为0.0026。深度语言提示、深度视觉提示和独立V-L提示的超参数详见附录A。超参数在所有数据集上都是固定的。
4.2.用视觉语言提示CLIP
4.2.通过视觉语言提示识别变体识别CLIP我们首先评估不同可能的提示设计选择的性能作为对我们提出的分支感知多模态提示MaPLe的消融。这些变体包括浅层Maple、深层语言提示、深层视觉提示和独立的V-L提示。在表1中我们给出了11个图像识别数据集的平均结果。浅Maple第1行在泛化方面提供了对CoOp和Co-CoOp的持续改进。深度语言提示行3示出了相对于深度视觉提示行2的改进表明在语言分支学习的提示提供了CLIP的更好适应。虽然单独结合上述两种方法第4行进一步提高了性能但它很难从语言和视觉分支中获得综合优势。我们假设这是由于学习的视觉和语言提示之间缺乏协同作用因为它们在训练过程中不会相互作用。与此同时与深度提示第4行相结合的Maple结合了两个分支中提示的好处通过对语言提示的视觉提示的明确条件反射来加强交互。它提供了改进的新的和基本类的准确性导致最好的HM的78.55%。我们探索了其他可能的设计选择并在附录B中介绍了消融。 不同提示设计的MaPLe在基础到小说概括中的比较。结果是11个数据集的平均值。HM是指调和平均数。
4.3.“基础到新”的泛化
**对未知类别的泛化**表3显示了MaPLe在11个识别数据集上从基础到新的泛化设置中的性能。我们将其性能与CLIP zero-shot以及最近的即时学习作品包括CoOp [49]和Co-CoOp [48]进行了比较。在CLIP的情况下我们使用专门为每个数据集设计的手工提示。 与最先进的Co-CoOp相比Maple在所有11个数据集上的基础和新类别上都显示出改进的性能除了Caltech 101的基础类别性能的边际降低。通过分支感知多模态提示的相互协同与Co-CoOp相比MaPLe在所有11个数据集上更好地推广到新类别并获得了从71.69%到75.14%的总体增益。当同时考虑基础类和新类时Maple显示出比Co-CoOp高出2.72%的绝对平均增益。 与CLIP相比Co-CoOp仅在4/11的数据集上有所改善平均新准确率从74.22%下降到71.69%。MaPLe是一个强大的竞争对手它在6/11数据集上的新类上提高了CLIP的准确性平均增益从74.22%提高到75.14%。 基类的泛化和性能 CoCoOp通过对图像实例进行条件提示来解决CoOp中泛化能力差的问题并在新类别中显示出显着的收益。然而在基类上它仅在3/11的数据集上比CoOp有所改进平均性能从82.69%下降到80.47%。同时提示的完整性有助于MaPLe在6/11数据集中的基类上改进CoOp将平均基本准确率保持在82.28%左右此外还提高了对新类的泛化能力。 我们发现Co-CoOp的训练策略可用于大幅提高普通CoOp的泛化性能在新类中提高6.8%。因此我们将我们的方法与CoOp†进行比较后者在CoCoOp设置中训练CoOp更多详细信息请参见附录A。 与CoOp相比vanilla CoOp模型似乎在基类上过拟合。与CoOp†相比其平均碱基准确度为80.85%MaPLe显示出1.43%的改进平均碱基准确度为82.28%表2。
4.4.跨数据集评价
我们通过在所有1000个ImageNet类上学习多模态提示然后直接在剩余的10个数据集上传输来测试Maple的跨数据集泛化能力。表4显示了MaPLe、CoOp和Co-CoOp之间的性能比较。在ImageNet源数据集上MaPLe实现了与竞争方法相当的性能但通过在9/10数据集中超过CoOp和在8/10数据集中超过Co-CoOp表现出更强的泛化性能。总体而言Maple显示出具有竞争力的性能导致最高的平均准确率为66.30%。这表明在Maple中使用分支感知的V-L提示有助于更好的泛化。 Maple与现有跨数据集评估方法的比较。总体而言Maple实现了具有竞争力的性能提供了最高的平均精度表明更好的泛化能力。
4.5.域泛化
我们表明Maple推广有利的out-ofdistribution数据集相比CoOp和Co-CoOp。我们评估了ImageNet训练模型到各种域外数据集的直接可移植性并观察到它与所有现有方法相比都有持续改进如表5所示。这表明利用多模态分支感知提示有助于MaPLe增强CLIP等V-L模型的泛化和鲁棒性。 Maple与现有方法在领域泛化设置中的比较。Maple在所有目标数据集上显示出持续的改进。
4.6.消融实验
**提示深度**在图4左中我们分别说明了Maple和消融的提示深度J对语言和视觉分支深度的影响。一般来说性能随着提示深度的增加而提高。我们注意到当随机初始化提示插入到模型特征空间已经成熟的冻结模型的更深层时性能敏感度会增加。类似的趋势也被报道[16]。由于早期的方法利用浅层语言提示J 1我们比较我们的方法与深层语言提示。总体而言Maple实现了比深度语言提示更好的性能并在深度为9时实现了最大性能。 **提示长度**图4右显示了提示长度对Maple的影响。随着提示长度的增加基类的性能通常会保持不变而新类的准确性会降低。这表明过度拟合这本质上损害了对新类的泛化。 在MaPLe中按提示深度左侧和提示长度右侧进行消融。我们报告所有数据集的保留验证集的平均结果。
**多模式识别的有效性**图5显示了对所选数据集的每类准确度的分析以增加域偏移的顺序。它表明与Co-CoOp相比Maple的性能增益在不同的数据集上有所不同。对于与CLIP的预训练数据集相比具有较大分布变化的数据集以及通常罕见且不太通用的视觉概念Maple提供了比Co-CoOp显著的收益。进一步详细分析见附录C。 Maple表现出比Co-CoOp更高性能的类的百分比随着数据集域从通用类别转移的增加而增加→。
**计算复杂度**表6显示了与其他方法相比Maple的计算复杂度。虽然Maple使用多模式提示但其总体FLOPS浮点运算仅比CoOp和Co-CoOp高出0.1%。独立的V-L提示也提供了可比较的FLOP计数。就推理速度而言Co-CoOp明显较慢并且随着批量大小的增加FPS每秒帧数保持不变。相比之下Maple没有这样的开销并提供更好的推理和训练速度。此外与Co-CoOp相比Maple提供了更好的收敛性因为它只需要一半的训练时期5 vs 10个时期。Maple在CLIP的基础上增加了约2.85%的训练参数。为了研究性能增益是否主要归因于更多参数我们使用MaPLe†进行实验它对所有层提示使用统一的V-L耦合函数。参数比MaPLe少9倍的MaPLe也比现有方法有所改进。我们还在附录D中通过比较Maple与更重的CoCoOp进行了消融。 不同提示方法的计算复杂度比较。MaPLe†是一个MaPLe版本它对所有层都使用了一个通用的V-L耦合函数。
5.结论
大规模V-L模型的调整例如CLIP [32]到下游任务是一个具有挑战性的问题因为大量的可调参数和下游数据集的大小有限。提示学习是一种有效且可扩展的技术可以将V-L模型定制为新的下游任务。为此目前的提示学习方法要么只考虑视觉提示要么只考虑语言提示。我们的工作表明对视觉和语言分支进行提示以适当地调整V-L模型以适应下游任务至关重要。此外我们提出了一个策略以确保视觉语言模态之间的协同作用明确条件的视觉提示文本提示跨不同的Transformer阶段。我们的方法提高了对新类别跨数据集传输和数据集域转移的泛化能力。