
InPK:将先验知识注入视觉语言模型提示的技术思路
电子科技大学研究人员的论文《InPK: Infusing Prior Knowledge into Prompt for Vision-Language Models》提出了一种新颖的方法,即通过将先验知识融入到视觉语言模型(VLM)的提示中,以提升模型在零样本和少样本视觉识别任务中的性能。本文将结合论文详细介绍 InPK 的技术原理、实现方法、实验结果及其在视觉语言模型领域中的意义。
背景
近年来,在大型图像文本数据集上预训练的视觉语言模型(VLM),例如 CLIP,已经在各种下游任务中展现出了强大的泛化能力。CLIP 等模型通过学习图像和文本之间的关联,能够理解图像的内容并将其与相应的文本描述联系起来。这种能力使得 VLM 在各种视觉识别任务中表现出色,尤其是在那些缺乏大量标注数据的场景中。
为了使这些模型能够更好地适应特定的任务或数据集,特别是在零样本或少样本的场景下,研究人员提出了多种解决方案。零样本学习指的是模型在没有见过任何目标类别样本的情况下识别这些类别的能力;而少样本学习则是指模型仅见过目标类别的少量样本,需要从中快速学习并泛化到更多的样本。这两种场景都对模型的泛化能力提出了更高的要求。
在众多的解决方案中,提示调整(prompt tuning)是一种通过优化文本提示来引导视觉语言模型执行特定任务的技术,作为一种有效的策略脱颖而出。提示调整的核心思想是通过调整文本提示来引导 VLM,使其更好地执行特定的任务。VLM 通常使用文本提示来指导其行为,例如,在图像分类任务中,模型可能会收到“这是一张[类别]的图片”这样的提示。通过调整提示中的“[类别]”部分,我们可以引导模型识别不同的对象。
提示调整的优势在于其简单性和高效性。与传统的微调方法相比,提示调整只需要调整少量的文本提示,而不需要修改模型的其他部分。这大大降低了计算成本,并提高了模型的泛化能力。
然而,现有的提示调整方法在处理未见过的类别时,往往存在过拟合于已见类别的问题,从而导致泛化能力下降。这是因为,这些方法通常依赖于手工设计的提示模板,这些模板可能包含了过多关于已见类别的信息,而缺乏对未见类别的泛化能力。此外,一些方法尝试引入先验知识来缓解这个问题,希望通过将更多的信息融入到提示中来提高模型的性能。
先验知识指的是模型在训练之前已经具备的关于世界的知识。例如,关于“猫”的先验知识可能包括“猫有四条腿”、“猫有胡须”等等。将这些先验知识融入到提示中,可以帮助模型更好地理解图像的内容,并提高其识别能力。
然而,由于可学习的标记 (learnable tokens) 是指在提示调整过程中,模型可以学习和优化的向量表示,用于更好地适应特定任务。是随机初始化的,并且与先验知识缺乏联系,模型仍然难以提取出具有区分性和泛化性的特征。可学习的标记是提示调整方法中用于调整提示的关键部分。这些标记通常是随机初始化的向量,模型通过训练来学习这些向量的最佳值。但是,由于这些标记是随机初始化的,它们可能无法有效地捕捉到先验知识中的关键信息,从而导致模型在处理未见过的类别时表现不佳。
为了解决上述问题,本文介绍的 InPK 模型提出了一种新的框架。该框架在初始化阶段将类别特定的先验知识注入到可学习的标记中,从而使模型能够明确地关注类别相关的信息。通过在初始化阶段引入先验知识,InPK 模型为可学习的标记提供了一个更好的起点,使它们能够更快地学习到有用的信息。
此外,为了缓解类别信息在多层编码器中减弱的问题,InPK 模型在多个特征层级上持续强化可学习标记与先验知识之间的交互。通过在多个层级上进行交互,模型能够逐步地提炼和整合先验知识,从而更好地捕捉到细粒度的差异和通用的视觉概念。
这种方法使得模型能够更有效地关注类别相关的信息,即使对于未见过的类别,模型也能够捕捉到它们共同的表示,并在已有的语义结构中推断出它们合适的位置。更重要的是,InPK 模型引入了一个可学习的文本到视觉的投影层,以更好地对齐视觉和文本语义,进一步提升了模型的性能。
大量的实验结果表明,InPK 模型在多个图像分类数据集上均取得了显著优于现有方法的性能,展示了其强大的泛化能力和鲁棒性。
InPK 方法详解
1. 整体框架
InPK 的核心思想是,在提示调整过程中,通过融入先验知识来改善 VLM 的性能。其整体框架如图 2 所示。该方法主要包括以下几个关键组成部分:
- 先验知识生成:使用大型语言模型(LLM)生成包含类别名称和类别特定属性词的先验知识。
- 先验知识注入的文本编码器(PKi):将先验知识融入到可学习的标记中,并在多个特征层级上强化二者之间的交互。
- 文本到视觉的投影层:引入一个可学习的投影层,以更好地对齐视觉和文本语义。
- 训练目标:设计一个结合交叉熵损失和正则化约束的训练目标,以优化模型性能。
2. 先验知识生成
高质量的先验知识对于提升 VLM 的识别能力至关重要。InPK 方法利用 LLM 的丰富世界知识,通过预定义的指令模板生成全面的类别描述。具体来说,对于每个类别,生成的先验知识包括类别名称和多个描述该类别特征的属性词。
LLM 是一种经过大规模文本数据训练的语言模型,它具备丰富的世界知识和强大的语言生成能力。InPK 方法利用 LLM 来生成先验知识,可以有效地获取关于类别的准确和全面的描述。
例如,对于“猫”这个类别,生成的属性词可能包括“有胡须”、“长尾巴”、“灵活”等。这些属性词提供了关于猫的更细粒度的信息,有助于模型更好地区分猫和其他动物。与仅仅使用类别名称“猫”相比,这些属性词能够提供更丰富的上下文信息,帮助模型更好地理解“猫”的概念。
先验知识的生成过程可以形式化地描述为:给定一个类别名称 c,LLM 被用来生成一个包含 n 个属性词的集合 A = {a_1, a_2, ..., a_n},其中每个属性词 a_i 描述了类别 c 的一个特征。最终,类别 c 的先验知识表示为包含类别名称和属性词的组合,例如,“猫,有胡须,长尾巴,灵活”。
通过使用 LLM 生成先验知识,InPK 方法可以获得以下优势:
- 准确性:LLM 具备强大的语言理解能力,可以生成准确描述类别特征的属性词。
- 全面性:LLM 包含丰富的世界知识,可以生成涵盖类别多个方面的属性词,提供全面的类别描述。
- 多样性:LLM 可以生成多种不同的属性词,避免模型过分依赖于特定的属性,提高模型的泛化能力。
3. 先验知识注入的文本编码器 (PKi)
InPK 方法没有简单地将可学习的标记与先验知识拼接起来,而是设计了一个先验知识注入的文本编码器(PKi)。在 PKi 中,先验知识以更紧密的方式融入到可学习的标记中。
PKi 的核心是“属性感知注意力机制”(attribute-aware attention mechanism)。在该机制中,可学习的标记作为查询(Query),类别特定的先验知识嵌入作为键(Key)和值(Value),从而生成融合了先验知识的标记嵌入。
传统的自注意力机制允许模型在处理序列数据时,动态地关注序列中不同位置的信息。例如,在句子“猫坐在垫子上”中,自注意力机制可以帮助模型识别出“猫”和“坐”之间的关系,以及“坐”和“垫子”之间的关系。
然而,在 InPK 方法中,属性感知注意力机制的目标是将先验知识融入到可学习的标记中,使其能够更好地表示类别相关的信息。具体来说,对于每个可学习的标记,属性感知注意力机制会计算它与每个属性词之间的相关性,并根据这些相关性来加权属性词的信息,最终得到融合了先验知识的标记嵌入。
属性感知注意力机制的计算过程可以描述如下:
通过这种方式,每个可学习的标记都能够根据其与不同属性词之间的相关性,自适应地获取先验知识中的相关信息,从而生成更具区分性的表示。
为了防止类别信息在多层编码器中稀释,PKi 在多个 Transformer 层中都引入了属性感知注意力机制。Transformer 模型通常由多个层组成,每一层都会对输入序列进行一次变换。如果没有特殊的机制,输入序列中的信息可能会在多层的处理过程中逐渐丢失,这就是信息稀释问题。
在 InPK 方法中,通过在多个 Transformer 层中引入属性感知注意力机制,可学习的标记可以在每一层都与先验知识进行交互,从而不断地强化它们之间的联系。这种多层次的交互方式使得模型能够在不同的抽象层级上逐步地建模类别信息,更好地捕捉到细粒度的差异和通用的视觉概念。
4. 文本到视觉的投影层
由于文本分支引入了额外的先验知识,这可能会导致视觉和文本语义之间的不对齐。为了解决这个问题,InPK 方法引入了一个可学习的文本到视觉的投影层。
在传统的 VLM 中,图像和文本通常被编码成不同维度的特征向量。例如,CLIP 模型使用两个独立的编码器,一个处理图像,一个处理文本,最终得到两个不同维度的特征向量。为了比较图像和文本之间的相似度,需要将它们映射到同一个共享的嵌入空间中。
然而,在 InPK 方法中,由于文本分支引入了额外的先验知识,这使得文本特征的维度和语义空间发生了变化,从而导致与视觉特征之间的不对齐。为了解决这个问题,InPK 方法引入了一个可学习的投影层。
投影层的作用是将文本分支中的可学习标记转换为视觉分支中的可学习标记,从而动态地调整文本和视觉分支,确保二者之间的一致性。这个投影层可以是一个简单的线性变换,也可以是一个更复杂的非线性变换,例如多层感知机(MLP)。
通过训练,投影层可以学习到如何最好地将文本特征转换为视觉特征,从而实现跨模态的对齐。这种动态调整机制使得 InPK 模型能够更好地处理文本和视觉模态之间的差异,提高模型的性能。
5. 训练目标
InPK 方法的训练目标包括两部分:
- 交叉熵损失:用于衡量模型的预测结果与真实标签之间的差异。
- 正则化约束:为了防止模型过拟合于属性词,并保留通用的知识,InPK 方法引入了一个正则化约束,它通过最小化文本特征与其在预训练 CLIP 模型中的对应特征之间的 L1 损失来实现。
交叉熵损失是一种常用的分类损失函数,它衡量的是模型预测的概率分布与真实标签之间的差异。在 InPK 方法中,交叉熵损失被用来训练模型,使其能够准确地预测图像的类别。
然而,仅仅使用交叉熵损失可能会导致模型过拟合于属性词,而忽略了更通用的知识。例如,如果模型在训练数据中看到的大多数猫都有“有胡须”这个属性,模型可能会错误地认为“有胡须”是猫的必要属性,而忽略了其他可能没有胡须的猫。
为了防止模型过拟合于属性词,并保留通用的知识,InPK 方法引入了一个正则化约束。正则化约束通过对模型的参数或输出进行约束,来防止模型学习到过于 специфичные 的特征,从而提高模型的泛化能力。
在 InPK 方法中,正则化约束的具体形式为 L1 损失,它被应用于文本特征和预训练 CLIP 模型中的对应特征之间。CLIP 模型通过在大规模图像文本数据上进行预训练,已经学习到了丰富的通用知识。通过将文本特征约束在 CLIP 模型的特征附近,InPK 模型可以保留这些通用的知识,同时学习到类别特定的信息。
L1 损失的计算公式如下:
通过结合交叉熵损失和正则化约束,InPK 方法能够有效地训练模型,使其既能够准确地识别已见类别,又能够很好地泛化到未见类别。
实验结果
为了验证 InPK 方法的有效性,作者在 11 个图像分类数据集上进行了大量的实验,涵盖了多种不同的任务。实验结果表明,InPK 在零样本和少样本的图像分类任务中均取得了显著优于现有方法的性能。
1. 基类到新类的泛化
在该实验设置中,模型在基类(seen classes)的少量样本上进行训练,然后在基类和新类(unseen classes)上评估其性能。基类指的是模型在训练过程中已经见过的类别,而新类指的是模型在训练过程中没有见过的类别。这种实验设置旨在评估模型将从已见类别中学到的知识泛化到未见类别的能力。
InPK 方法在 11 个数据集上的平均结果显示,其在新类上的准确率比现有最优方法提高了 3.43%,在基类上的准确率提高了 1.04%。这个结果表明,InPK 方法不仅能够很好地识别已见类别,还能够有效地泛化到未见类别。
为了综合衡量模型在已见类别和未见类别上的性能,作者使用了调和平均数(HM)指标。调和平均数是一种综合考虑模型在不同类别上性能的指标,它能够更好地反映模型在已见类别和未见类别之间的平衡。
InPK 在调和平均数(HM)指标上比现有最优方法高出 2.34%,这表明 InPK 能够有效地平衡模型在已见类别和未见类别上的性能,在提高泛化能力的同时,没有牺牲在已见类别上的准确率。
2. 少样本学习
在该实验设置中,模型在每个类别的极少量标记图像(4-shot)上进行训练。4-shot 学习指的是模型在每个类别仅见过 4 个标记样本的情况下进行学习。这种实验设置旨在评估模型在数据极度匮乏的情况下进行学习的能力。
实验结果表明,InPK 方法在少样本学习中仍然表现出色,在 11 个数据集中的 7 个上取得了最高的准确率,平均性能比现有最优方法提高了 0.92%。这个结果表明,InPK 方法能够有效地利用先验知识来弥补少量样本带来的信息不足,从而提升模型在数据有限场景下的性能。
少样本学习是机器学习中一个重要的研究领域,它旨在解决如何利用极少量的标注数据来训练模型的问题。InPK 方法在少样本学习任务中的出色表现,进一步证明了其有效性和优越性。
3. 跨数据集评估
为了进一步验证模型的泛化能力,作者还在跨数据集的设置中评估了 InPK 方法。在该设置中,模型在 ImageNet-1K 数据集上进行少样本训练,然后在其他 10 个数据集上进行零样本评估。这种实验设置旨在评估模型在面对不同数据分布时的泛化能力。
ImageNet-1K 是一个大规模的图像数据集,包含了 1000 个类别的大量图像。通过在 ImageNet-1K 上进行训练,模型可以学习到丰富的视觉知识。然后在其他 10 个数据集上进行零样本评估,可以检验模型是否能够将这些知识迁移到新的数据集上。
实验结果表明,InPK 方法在 10 个数据集中的 8 个上取得了优异的泛化性能,平均准确率达到了 69.90%。这个结果表明,InPK 方法对于不同的数据分布具有很强的鲁棒性,能够有效地泛化到新的数据集上。
跨数据集评估是检验模型泛化能力的重要手段。InPK 方法在跨数据集评估中的出色表现,进一步证明了其强大的泛化能力和鲁棒性。
4. 消融实验
为了更深入地理解 InPK 方法中各个组成部分的作用,作者进行了一系列消融实验。消融实验是一种常用的实验方法,它通过逐步移除模型中的某些组成部分,来分析这些组成部分对模型性能的影响。
在本研究中,作者设计了一系列消融实验,以评估以下几个因素对模型性能的影响:
- 提示长度:提示长度指的是输入到模型中的文本提示的长度。作者通过改变提示的长度,来评估提示长度对模型性能的影响。
- 属性词的数量:属性词的数量指的是在先验知识中使用的属性词的数量。作者通过改变属性词的数量,来评估属性词的数量对模型性能的影响。
- 属性感知注意力机制的插入位置:属性感知注意力机制是 InPK 方法中的一个关键组成部分。作者通过改变该机制在 Transformer 模型中的插入位置,来评估其对模型性能的影响。
- 模型组成部分分析:作者通过逐步移除 InPK 模型中的不同组成部分,例如先验知识注入、属性感知注意力机制和文本到视觉的投影层,来评估每个组成部分对模型性能的影响。
- 先验知识注入的有效性:作者通过比较将先验知识注入到可学习的标记中和不注入的情况,来验证先验知识注入的有效性。
消融实验的结果提供了关于 InPK 方法的大量有价值的信息。例如,实验结果表明,适当增加提示长度可以提高模型在新类上的性能,但对基类性能影响不大。这可能是因为更长的提示包含了更多的上下文信息,从而帮助模型更好地区分不同的类别。
又例如,实验结果表明,增加属性词的数量可以提供更全面的类别描述,从而提高模型的整体性能。然而,属性词的数量并不是越多越好,过多的属性词可能会引入噪声,反而降低模型的性能。
消融实验还表明,属性感知注意力机制的插入位置对模型性能有很大的影响。将该机制插入到 Transformer 的前几层可以有效地提高模型性能,但插入过深可能会干扰模型对高级特征的捕获。
模型组成部分分析的结果表明,先验知识的引入和属性感知注意力机制的使用均能提高模型性能,而文本到视觉的投影层能够进一步提升跨模态对齐,从而提高整体性能。
最后,消融实验验证了先验知识注入的有效性。将先验知识注入到可学习的标记中可以显著提高现有提示调整方法的性能,这表明 InPK 方法的核心思想是有效的。
结论
InPK 方法通过在提示调整过程中融入先验知识,有效地提升了视觉语言模型在零样本和少样本视觉识别任务中的性能。该方法的主要创新之处在于:
- 在初始化阶段将类别特定的先验知识注入到可学习的标记中,使得模型能够更有效地关注类别相关的信息。
- 在多个特征层级上持续强化可学习标记与先验知识之间的交互,使得模型能够更好地捕获细粒度的差异和通用的视觉概念。
- 引入可学习的文本到视觉的投影层,以更好地对齐视觉和文本语义。
大量的实验结果表明,InPK 方法在多个图像分类数据集上均取得了显著优于现有方法的性能,展示了其强大的泛化能力和鲁棒性。
总结
InPK 方法为视觉语言模型的提示调整提供了一个新的思路。它通过有效地融入先验知识,提高了模型在零样本和少样本视觉识别任务中的性能。该方法在多个数据集上取得了显著的成果,展示了其在实际应用中的巨大潜力。未来的研究可以探索如何自动地生成更丰富和更准确的先验知识,以及如何将 InPK 方法应用到其他视觉语言任务中,例如图像描述和视觉问答等等。
参考论文:
arXiv:2502.19777v1 [cs.CV] 27 Feb 2025
本文转载自上堵吟,作者:一路到底的孟子敬
