Comment: Accepted at ICCV2023
面向可泛化的视觉语言模型的梯度调节的提示元学习
摘要
提示微调是最近一种新兴的范式,通过学习“软提示”来调节冻结的预训练模型,使强大的视觉-语言预训练模型以参数和数据高效的方式适应下游任务。
尽管提示微调表现出有效性,但是在few-shot场景中提示微调的性能对初始化非常敏感,需要很耗时的过程才能收敛到一个好的解,从而限制了预训练模型快速适应的能力。此时,提示微调可能会破坏预训练模型的泛化能力,因为可学习的提示标记很容易对有限的训练样本产生过拟合。
为了解决以上问题,本文引入了GRAM(梯度可调节的元提示学习),本文的框架结合了元学习(一种实现更好地适应的有效软提示初始化方法)和轻量级的梯度调节函数(在元学习中实现强大的域泛化能力,并且仅仅使用未标记的图像文本预训练数据)。
与特定设计的提示微调方法不同,GRAM可以以与模型无关的方式集成到各种提示微调方法中。并且综合实验证明GRAM在11个数据集上的多个设置中(few-shot、跨领域泛化、跨数据集泛化)表现出一致性的改进。实验表明,GRAM使文本提示微调和视觉提示微调这两种独立的方法相互增强,从而超出单模态提示调优的泛化能力。
Introduction
最近,视觉语言预训练模型在大量的图像-文本对中进行预训练,这些图像文本对几乎覆盖了现实世界中无限范围的概念,在各种下游任务中表现出不错的泛化能力。通过向提示模板(A photo of <class>)中填充类名称,预训练模型就可以实现zero-shot图像分类。在有效的情况下,提示模板中一个轻微的改动就可能导致性能的巨大差异。因此,为不同的下游任务提供一个合适的提示模板就需要在一个额外大的验证集上进行非常耗时的尝试。最近提出一些提示调优方法不使用手工设计的硬性提示,而是使用少量标注数据学习一组软提示(连续嵌入)。
尽管在下游任务中存在明显的改进,但针对小目标泛化的提示微调仍然存在两个限制:
(1)初始化敏感问题:性能对提示的初始化非常敏感。解释图1(a):由于初始化方式的不同,少样本性能差异很大。每次遇到新的任务,就需要仔细微调不同的提示,这就限制了预训练模型对新任务的快速适应。
(2)泛化性退化:由于所有的提示令牌都是在有限的样本上进行微调的,所以它们很容易学习到一些偶然或者无关紧要的关联性或特定的数据分布,从而破坏了预训练模型的通用性。解释图1(b):CoOp在早期阶段取得了最好的结果,然而随着训练的继续,其泛化性显著降低。
本文提出了一种新的GRAM框架,用于联合元学习和梯度调节函数。元学习是一种高效的软提示初始化方法,可以更好地适应新的提示任务。梯度调节函数是一种轻量级的函数,学习将原始的微调梯度转换为跨域的一致方向,以防止提示调优破坏预训练模型的泛化性。
元学习,也被称为学习“学习的过程”。它通过在一组训练任务中积累知识,然后将这些知识转移到新任务上,使得模型能够使用很少的样本就能学会新任务。典型的元学习算法通常假设可以获得一组已经很好标注过的训练任务用来训练和学习。不同的是,本文使用互联网中大规模的图像文本对,这些图像文本对很容易获得并且包含更加广泛的视觉概念集。
具体来说,本文设计了一个跨模态分层次聚类算法,将大规模的图像文本数据组织成一个层次结构,先根据文本描述将图像文本数据分组为不同的语义主题,然后再根据图像内容进一步将每个数据主题分为多个领域。
在不同的语义主题中进行子采样,就能得出一组多样化的元训练分类任务。对于每个元训练任务,然后从不同的域中抽样样本来模拟支持集和查询集之间的域偏移。元优化目标定义为:在几个支持集样本(训练数据)上使用调节的梯度对提示初始化进行一步或者几步微调之后,更新提示的预训练模型直接在查询集(测试数据)上表现良好。
软提示初始化和梯度调节函数根据查询集样本(测试数据)上的元梯度方向共同更新,因此能够更好地适应新任务,避免过拟合特定的域内偏差。
本文的提出的梯度调节函数通过将梯度调节一个跨多个领域都一致的方向,来避免模型过拟合到某个特定领域中的虚假相关性,从而使得模型能够在不同的领域中表现更加稳定。本文方法与模型无关。
综合实验表明,GRAM对不同的提示调优方法具有可推广性,显著提高了所有模型的性能泛化性。GRAM实现了两种正交方法的高效的集成-文本提示调优CoOp和视觉提示调优VPT。通过共同元学习视觉提示和文本提示的初始化,GRAM确保文本和视觉都能得到优化,以便以互补的方式更好的适应新任务。
本文贡献
(1)本文提出了GRAM(梯度调节的元提示学习)框架,该框架在双层仅使用未被标记的图像本文对预训练数据,在双层元学习范式中明确提升了对新提示任务的适应能力和对新领域的泛化能力。
(2)GRAM可以很容易地以一种即插即用的方式融入到各种不同的提示微调方法中,在11个数据集中进行的实验证明了GRAM的泛化性。
(3)GRAM使文本和视觉提示微调之间的正交方法能够以相互增强的方式工作,从而增强泛化性。
Method
3.1 Preliminaries
Contrastive Language-Image Pre-training:
CLIP通过对比语言-图像预训练范式在巨大的图像文本对上学习图像编码器fI和文本编码器fT,其中匹配的图像文本对经过优化在联合的语义空间中更接近。经过预训练之后,CLIP可以通过将分类问题表述为图像文本匹配问题来推广到Zero-shot。具体来说,就是将具体的类别名称填充到“A Photo of [CLASS]”提示模板中的[CLASS],填充后输入到文本编码器。
fT(Ti)代表第i个类别的类扩展文本特征。第i个类的概率定义为(其中sim表示余弦相似度,J表示类别的个数):
Textual Prompt Tuning:
为了避免针对不同任务制定提示耗时的过程,CoOp提出学习一组M个连续的提示向量{t1, t2, ..., tM }来代替手工制作提示模板。第i个类别的提示语句是通过将提示向量和类名ci的单词嵌入构造起来的。
在下游任务中,由于预训练模型是冻结的,因此可以通过仅使用小样本最小胡交叉熵来有效优化可学习向量的提示向量。
Visual Prompt Tuning:
最近已经针对ViT提出了类似的提示微调的思想,将一组可学习的提示向量与输入图像patch相连接,从而提取更对的可转移的视觉特征。
3.2 Cross-Modal Hierarchical Clustering
由于大规模的文本图像对能够在互联网上容易获得,并且比现有的人工标记的数据集都涵盖了更全面的语义信息,因此本文提出了一种跨模态分层聚类(Cross-Modal Hierarchical Clustering,CHC ),用于在图像文本对中构建一组多样化和结构化的元训练任务。
介绍图2左:CHC通过两个步骤将图像文本对组织成一个层次结构:语义主题聚类和视觉域聚类。语义主题聚类首先根据其文本描述将图像文本对分组为不同的聚类,其中每个聚类对应一个语义主题,例如汽车、动物等主题。然后视觉域聚类根据其图像特征将每一个语义主题中的数据划分为一致且不同的子集。
Semantic Topic Clustering
为了根据底层语义对图像文本对进行分组,本文采用BERTopic对文本描述进行聚类。具体来说,对于每个图像文本对,首先使用Sentence-BERT将文本句子编码为密集句子嵌入。为了避免语义空间崩塌的问题(即高维空间中,空间局部性变得模糊),本文采用UMAP来降低句子的维度,同时保留高维数据的局部和全局特征。然后,使用标准的聚类算法HDBSCAN对降维后的嵌入进行聚类。
在得到图像文本对的L个聚类之后,根据TF-IDF提取每个聚类的语义主题词,并且衡量一个词对该聚类的重要性。具体来说,将每个聚类中的所有句子通过拼接的方式组合成单一的文档,这样将同一聚类中的句子视为一个整体,以便统一处理。对于聚类Cl的类别主题词w的TF-IDF分数定义为
(其中Nw,l表示在聚类Cl中单词w出现的次数,Nl表示聚类Cl中的单词总数,L是聚类的数目,Lw是包含单词w的聚类的数目),第一项对单词w在聚类Cl中频率进行建模,第二项衡量单词w提供的信息量。选择TF-IDF得分最高的单词作为每个聚类的语义主题词。
Visual Domain Clustring
在将图像文本对分组为多个语义主题之后,进行视觉域聚类,根据视觉特征将每个语义主题的数据划分为几个一致且不同的域。具体来说就是先使用预训练的图像编码器提取图像特征。然后运行K-means聚类,将图像文本对的每一个主题分组为几个域
。
这里忽略了图像Ii的成对文本,Yl是聚类Cl的语义主题词。
因此,我们得到了图像文本的层次结构,有利于构建多样化的元训练任务,并模拟元训练过程中的域迁移。
3.3 Gradient-Regulated Meta-Prompt Learing
介绍图2:GRAM是一种双层次元学习范式,它联合高效的软提示初始化θ来获得更好的适应,并结合轻量级的梯度调节函数Rφ来防止提示调优破坏预训练模型的泛化性。由于GRAM是一种与模型无关的方法,所以θ可以表示任何类型的提示调优方法的参数。
(1)Automatic Meta-Training Task Generation.
为了构建Kt-way的图像分类任务τt,首先从(P为全集合,共有L个聚类或者簇)中抽取Kt个聚类。每个采样的聚类对应于类标签Yl的一类图像。然后,从采样的聚类中抽取几个图像实例构造支持集和查询集,用于元训练任务τt。对于支持集,本文仅从抽取的聚类中的单个域中采样;对于查询集,从每个抽取的聚类中的所有域中统一抽取更多的图像。通过这种方式,模拟了元训练任务期间的训练/测试域偏移。支持集是特定区域的,查询集更具有代表性。根据上述的过程,就构建了一组多样化的元训练任务:
(2)Meta-Training Overview.
本文的双层元学习范式包含两个优化步骤。在内循环过程中,Rφ在几个支持集样本上调节梯度,提示初始化θ根据其调节的梯度适配到每个元训练任务中;在外循环过程中,元学习目标评估子适应模型在不同的查询集上的泛化和适应能力。
提示初始化θ和梯度调节函数Rφ根据自适应模型在各种元训练任务中的查询集上的性能进行联合优化。
(3)Inner-Loop.
内循环将提示初始化θ适应到新的元训练任务τt中。在内循环中,提示的参数首先通过梯度下降在支持集上更新:其中L表示损失函数,α表示内循环的学习率。
虽然简单明了,但是这种在有限的样本上更新的步骤可能会过度拟合到某些特定领域的模式,从而破坏了预训练模型在其他领域的通用性。因此本文提出一种有效且高效的梯度调节函数进行元学习,该函数可以将原始梯度在各个领域转化为更一致的方向,同时忽略掉虚假的关联关系。
具体来说,由φ参数化的梯度调节函数Rφ执行线性变换来调整原始梯度,来实现泛化微调。
(4)Outer-Loop.
根据支持集对软提示参数进行适配元训练任务τt后,对初始化参数θ和梯度调节参数φ进行优化,以优化适配参数在查询集上的性能。
其中λ表示外循环学习率,总体而言,元优化目标可以表述为:
元优化是在广泛的元训练任务中执行的。因此,初始化θ被优化用来更好地适应新任务,而Rφ被优化以转换原始梯度,以便模型可以泛化到查询集看不到的域。
解释算法1:
首先随机初始化θ和φ,后续进入循环,直到满足收敛条件。先从任务集合中随机抽取一批任务,然后对每个元训练任务中的支持集和查询集进行处理,在支持集上计算损失函数的梯度,然后通过梯度调节函数对梯度进行调节,然后更新初始化提示的参数。然后使用查询集的损失更新全局参数θ和φ。
(5)Testing.
测试过程中,优化的θ被部署为软提示初始化,并适用于使用调节梯度对少数样本进行测试的任务。
(6)Universal Gradient-Regulated Meta-Prompt.
作为一种与模型无关的方法,本文的实验结果表明,GRAM可以分别显著提高文本和视觉的提示微调。基于这一观察,本文进一步提出了UNIGRAM来试探GRAM是否使视觉和文本提示能够以互补的方式进行合作。在不进行任务框架修改的情况下,本文元学习了一个有效的初始化和相应的梯度调节函数,其中θT和θV 分别代表文本提示向量和视觉提示向量。
Conclusion
本文指出了小样本泛化中提示微调方法的初始化敏感问题和泛化性退化问题。
本文引入了一种与模型无关的元提示方法GRAM,该方法仅使用未被标记的图像文本对,联合学习了一种高效的软提示初始化方法和一种轻量级的梯度调节函数。
在11个数据集上对多种设置(跨域泛化、跨数据集泛化)的广泛实验表明,GRAM可以以即插即用的形式提升方法。进一步实验证明,GRAM可以使视觉提示和文本提示以正交方法工作,表现更强的小样本泛化能力。
---------------------------八好意西,初学者先不解析实验啦,需要PPT可以私信哦---------------------------