DualPrompt
DualPrompt: Complementary Prompting for Rehearsal-free Continual Learning (opens new window)
Code (opens new window) | ECCV 2022
大模型译 ⬇️
0. 摘要
连续学习的目标是使单个模型能够无需灾难性遗忘地学习一系列任务。顶尖的方法通常需要一个复习缓冲区来存储过去的原始样本以进行经验重放,然而,由于隐私和内存限制,这限制了它们的实际价值。在这项工作中,我们提出了一个简单而有效的框架,DualPrompt,它学习一组微小的参数,称为提示(prompts),以正确指导预训练模型顺序学习任务,而不需要缓冲过去的样本。DualPrompt 提出了一种新的方法,将补充提示附加到预训练的主干上,并将目标制定为学习任务不变和任务特定的“指令”。通过广泛的实验验证,DualPrompt 在具有挑战性的类增量设置下持续设定了最先进的性能。特别是,DualPrompt 超越了最近具有相对较大缓冲区的先进连续学习方法。我们还引入了一个更具挑战性的基准,Split ImageNet-R,以帮助推广无复习的连续学习研究。源代码可在 https://github.com/google-research/l2p (opens new window) 上找到。
1. 引言
连续学习(CL)的核心目标是使用单个模型学习一系列任务,而不会因灾难性遗忘 [40]——在先前看到的数据上性能显著恶化。许多现有方法旨在在连续学习过程中保留和扩展所获得的知识 [13,35]。基于架构的方法分配孤立的参数来编码不同任务学到的知识 [27,32,37,54,59]。然而,它们通常引入了大量的额外参数,有时涉及简化的假设,如已知的测试时间任务身份 [12,37,36],这属于任务增量学习的设置。然而,任务增量设置通常被认为是过于简化的 [4,35,38],因为在现实世界中测试时任务身份是未知的。我们的工作集中在更困难的类增量设置上,测试时任务身份未知。另一类工作,复习型 CL 方法,通过在复习缓冲区中保留先前任务的数据直接保留过去知识 [4,5,45]。由于它们的概念简单性、对各种设置的泛化能力以及减轻灾难性遗忘的优越能力,复习型方法已被广泛认为是在具有挑战性的类增量设置中的最先进的 [6,4]。尽管如此,对复习缓冲区的依赖一直受到社区的批评 [54,13,47,31]。虽然这些方法的性能对缓冲区的大小很敏感,GDumb[47] 认为直接在相对较大的缓冲区上进行监督训练已经超过了大多数最近的 CL 方法。至关重要的是,这些方法不能用于有隐私担忧的应用 [55] 或者当内存预算高度受限 [56] 时。因此,开发一种节俭的、无需复习的连续学习方法,能够达到类似或更高的性能水平是可取的。
最近的方法,Learning to Prompt (L2P)[60],从全新的视角解决这个问题——它提出利用可学习的提示参数以比缓冲区更简洁的方式(即提示池)编码知识,因此不再需要复习缓冲区。提示技术最初在自然语言处理(NLP)中引入,用于通过附加固定或可学习的“指令”对大规模预训练模型进行任务适应 [29],因为提示旨在指导模型适当地重用已学习的表示,而不是从头开始学习新的表示。L2P 成功地将学习新任务的问题制定为训练附加到预训练冻结模型的小提示参数。L2P 朝着无复习连续学习迈出了激动人心的一步,尽管性能仍然低于基于复习的方法。在 L2P 中,设计了一个单一的提示池,以在不同任务之间转移知识,而没有区分所有任务之间的共同特征与每个任务独有的特征。我们认为,从补充学习系统(CLS)的理论角度来看,这种设计可能是次优的 [39,23],许多最近的先进 CL 方法都是基于此 [8,45,4,2]。CLS 表明,人类通过两个学习系统之间的协同作用不断学习:海马体专注于学习特定经验上的模式分离表示,而新皮层专注于从过去经验序列中学习更通用和可转移的表示。因此,它们能够在不干扰的情况下分别学习任务特定知识,同时利用任务不变知识以更大的学习能力更好地学习未来任务。然而,以前的基于 CLS 的方法仍然解耦或扩展主干参数来学习这两种知识 [12,45,46]。因此,它们仍然依赖于构建复习缓冲区来巩固解耦的知识,以防止灾难性遗忘。在本文中,我们提出了 DualPrompt,这是一种无需复习的连续学习方法,明确学习两组不相交的提示空间,G(eneral)-Prompt 和 E(xpert)-Prompt,分别编码任务不变和任务特定的指令。DualPrompt 直接解耦了更高层次的提示空间,结果证明比传统方法更有效、更节省内存,传统方法侧重于低层次的潜在表示空间。我们进一步探索在哪里以及如何附加这两种类型的提示至关重要,以指导主干模型学习,减少遗忘,并实现有效的知识共享,从而显著提高连续学习的有效性。此外,我们引入了一个新的 CL 基准,Split ImageNet-R,以帮助验证该方法。DualPrompt 在多个基准测试中设定了新的最先进性能,并在具有挑战性的类增量设置下击败了具有相对较大缓冲区的复习型方法。
2. 相关工作
连续学习。我们讨论了三类相关的连续学习方法:基于正则化的方法、基于复习的方法和基于架构的方法。基于正则化的方法 [20,67,28,1] 通过为学习任务的重要参数制定规则来解决灾难性遗忘。尽管这些方法在更简单的任务增量设置下减轻了遗忘 [35],但在更具挑战性的类增量设置 [35] 或更复杂的数据集 [62] 下的性能并不令人满意。基于架构的方法为每个任务分配孤立的参数。这些方法可以进一步细分为扩展模型 [53,65,27,32,69] 或划分模型 [37,54,59,18,12]。然而,大部分工作限于任务增量设置 [54,37,36,18],而其他工作只考虑特定的卷积架构 [61,46,12]。然而,DualPrompt 旨在更具挑战性的类增量设置,并专注于预训练的基于变换器的模型。此外,基于架构的方法通常需要大量的额外参数来协助模型分离 [59,18,64]。相反,DualPrompt 要轻量得多,只需要微不足道的参数(0.2% - 0.6% 的完整模型大小)。基于复习的方法在复习缓冲区中保存已学习任务的数据以与当前任务一起训练。尽管这些方法共享一个相当简单的概念,但它们即使在类增量设置中也非常有效。几个先进的基于复习的方法实现了最先进的性能 [4,5]。然而,当缓冲区大小 [5] 减小时,基于复习的方法会恶化,并且最终不适用于数据隐私敏感的场景 [55]。一些最近的方法是受到补充学习系统(CLS)的启发。然而,ACL[12] 限于任务增量设置,DualNet[45] 需要特定的架构设计,这两种方法仍然依赖于复习缓冲区才能很好地工作。DualPrompt 从无需复习的角度解决连续学习,站在明智利用预训练模型的基础上,因此摆脱了基于复习方法的缺点。基于提示的学习。作为一种新兴的自然语言处理(NLP)中的迁移学习技术,基于提示的学习(或提示)应用固定函数来调节模型,以便语言模型获得额外的指令以执行下游任务。然而,提示函数的设计具有挑战性,需要启发式方法。为此,最近的工作提出将提示作为可学习的参数,以在迁移学习中取得出色的性能 [25,26]。提示使用比其竞争对手更小的额外参数捕获任务特定知识,例如 Adapter[58,44] 和 LoRA[17]。如上所述,L2P[60] 是唯一将提示和连续学习联系起来的工作。不同地,DualPrompt 从 CLS 中汲取灵感,提出了一种不同的方法来附加补充提示到预训练的主干上,以学习任务不变和任务特定的指令。我们展示了 DualPrompt 在各个方面都优于 L2P。
3. 先决条件
3.1 连续学习问题设置
连续学习被定义为在一系列任务的数据连续体上训练机器学习模型。我们将任务序列表示为
3.2 基于提示的学习
基于提示的学习(或提示)最初在 NLP 中提出,用于迁移学习。提示的主要思想是为预训练模型添加额外的指令以有条件地执行下游任务 [29]。提示调整 [25],最近出现的一项技术,提出将一组提示参数附加到冻结的基于变换器的语言模型上,以执行下游 NLP 任务。提示通常被添加到输入序列中以指导模型预测。我们简要说明提示调整的想法如下。由于我们主要关注与视觉相关的连续学习设置,这里我们使用基于视觉变换器(ViT)的序列模型 [11,57] 来介绍提示调整的定义。在 ViT 中,输入嵌入层将输入图像转换为类似序列的输出特征
4. DualPrompt
我们提出的方法 DualPrompt 在图 2 中进行了说明。我们首先在第 4.1 节中介绍补充学习组件 G- 和 E-Prompt,通过展示它们如何与单个多头自注意力(MSA)层一起工作。然后我们在第 4.2 节中探索将提示附加到主干的设计选择。最后,我们在第 4.3 节中提出了 DualPrompt 的总体目标。

4.1 互为补充的 G-Prompt和 E-Prompt
给定一个预训练的 ViT
其中
此外,我们通过匹配损失
对于测试样本
4.2 提示附加:在哪里和如何附加?
G- 和 E-Prompt在训练期间与主干一起编码各自的指令,并在推理期间合作指导模型进行预测。我们已经展示了如何在第 4.1 节中将它们附加到单个 MSA 层。大多数现有的与提示相关的工作简单地将提示仅放置在第一个 MSA[60,25],或在每个 MSA 层 [26,30]。然而,我们认为,探索在哪里以及如何附加这两种类型的提示至关重要。
在哪里:解耦的提示位置。直观地说,主干的不同层具有不同级别的特征抽象 [49]。因此,在学习任务序列时,某些层的表示可能对任务特定知识有更高的响应,反之亦然,对于任务不变的知识。这激发了我们给予这两种类型的提示更多的灵活性,以以解耦的方式附加到最合适的位置,从而使不同的指令能够更有效地与相应的表示进行交互。
稍微滥用符号,我们引入了两种类型的提示的多层扩展:
如何:可配置的提示函数。提示函数
具体来说,应用提示函数可以被视为修改 MSA 层的输入 [57]。设 MSA 层的输入为
其中 ,
其中
与 Pro-T 相比,输出序列长度保持与输入
4.3 DualPrompt 的总体目标
DualPrompt 在训练和测试时的全貌分别在附录 A 中的算法 1 和算法 2 中描述。按照第 4.2 节中讨论的设计模式,我们将附加提示的架构表示为
其中
5. 实验
5.1 评估基准
Split ImageNet-R。Split ImageNet-R 基准是基于 ImageNet-R[16] 构建的,通过将 200 个类别随机分成 10 个任务,每个任务有 20 个类别。我们将数据集分为训练集和测试集,分别为 24,000 和 6,000 张图像。我们进一步从训练集中抽取 20% 作为验证数据,用于提示附加设计搜索。原始的 ImageNet-R 包括收集到的不同风格的新数据,如卡通、涂鸦和折纸,以及标准模型,例如 ResNet[15],无法分类的困难样本。我们认为 Split ImageNet-R 对连续学习社区至关重要,原因如下:1)Split ImageNet-R 包含具有不同风格的类别,这更接近复杂的现实世界问题。2)显著的类内多样性(见附录 E)对基于复习的方法提出了巨大挑战,即使缓冲区很小(见图 1),也能有效工作,从而鼓励开发更实用、无需复习的方法。3)预训练的视觉模型在许多领域 [52,21] 中都很有用,包括连续学习。然而,它们的训练集通常包括 ImageNet。因此,Split ImageNet-R 作为一个相对公平且具有挑战性的基准,并且是使用预训练模型的连续学习基准 [51,62] 的替代品。
Split CIFAR-100。Split CIFAR-100 是连续学习文献中广泛使用的基准。它将原始的 CIFAR-100[22] 分成 10 个不相交的任务,每个任务有 10 个类别。尽管在 i.i.d.设置下的图像分类任务相对简单,但它足以使先进的 CL 方法在类增量学习中暴露出大量的遗忘率。
我们使用 Split ImageNet-R 和 Split CIFAR-100 在第 5.2 节中展示我们的主要结果,并在附录 H 中对 5 个数据集进行额外的实验以完整展示。
5.2 与最先进方法的比较
我们将 DualPrompt 与代表性的基线和最先进方法进行比较。有关实验细节,请参阅附录 B。我们使用广泛使用的评估指标:平均准确率(越高越好)和遗忘(越低越好)[33,7,35]。这两个指标的定义在附录 C 中。

为了进行公平和精确的比较,我们首先将 DualPrompt 与基于变换器的模型兼容的正则化、复习和基于提示的方法进行比较,如表 1 所示。然后我们将 DualPrompt 与基于架构的方法进行比较,这些方法大多与 ConvNets 兼容,使用不同的协议,如表 2 所示。
比较方法。我们选择了 EWC[20]、LwF[28]、ER[8,14]、GDumb[47]、BiC[62]、DER++[4] 和 Co2L[5] 等代表性方法,涵盖所有类别。请参见附录 D 了解更多细节。
朴素基线。为了更好地展示所有方法的相对有效性,我们还包括了:FT-seq,朴素顺序训练,和 Upper-bound,通常在 i.i.d.数据上进行监督微调。
表 1 报告了所有比较方法在 Split CIFAR100 和 Split ImageNet-R 上的性能。我们提出的方法 DualPrompt 一致地超越了所有方法,包括非复习型方法和具有大缓冲区的复习型方法。当缓冲区大小为 5000(CIFAR100 训练集的 10% 和 ImageNet-R 训练集的>20%)时,所有基于复习的方法都与 GDumb 相当,表明执行基于复习的连续学习可能不会比 GDumb 在缓冲数据上进行监督训练获得性能提升。DualPrompt 在没有任何缓冲数据的情况下实现了更好的性能。此外,从表 1 和图 1 我们可以观察到,当缓冲区尺寸缩小时,基于预演的方法的性能急剧下降。这再次表明了 DualPrompt 作为一种无需复习的方法的明显优势。对于非复习型方法,只有 L2P 的性能接近我们的方法。然而,DualPrompt 仍然在平均准确率上显著超越 L2P,差距在 3%-7% 之间,这得益于我们新颖的两种补充提示的设计,成功减少了灾难性遗忘。
基于架构的方法。我们与代表性的类增量学习方法进行比较,包括 DualNet[45]、SupSup[61]、DynaER[64] 和 RPSNet[50]。请参见附录 D 了解更多细节。
以前的基于架构的方法,基于 ConvNet,不容易迁移到基于变换器的模型。此外,不同的基于架构的方法通常添加不同数量的额外参数。为了使这些方法之间的比较相对公平,我们引入了一个指标来衡量某种方法的性能与给定架构的上界性能有多接近,即在 i.i.d.设置下训练。表 2 显示了 Split-CIFAR100 上的结果。DualPrompt 实现了最佳准确性,与上界的差异仅为 4.34%,并且额外参数最少,不需要缓冲区。最强大的竞争对手 DynaER 在 ResNet 上,相比之下,需要 2,000 个图像的缓冲区,并包含 43.8% 的额外参数。
表 2:与基于架构的方法在 Split CIFAR-100 上的比较。我们使用 Diff = Upper-Bound Acc - Method Acc(越低越好),来衡量性能与所使用的主干的上界性能有多接近。

†由原始论文报告。‡使用他们原始的代码库复制。
5.3 更强大的主干是否简单地提高了CL?
我们的方法建立在比许多先前方法更先进但更大的主干之上。我们认为理解这个问题对于公平比较和未来研究非常重要。尽管预训练的 ViT 是比普通 ConvNets 更强大的主干,但这并不一定转化为连续学习性能。我们在这里展示的观察结果与最近一项关于大型架构如何帮助连续学习的研究 [42] 相似。首先,这个事实可以从表 1 中看到,其中众所周知的通用方法仍然在给定这个主干的情况下遭受大量的遗忘。我们尝试使用 ImageNet 预训练的 ResNet 与表 2 中的比较方法竞争,但没有改善表 2 中报告的数字。这进一步表明,没有被适当利用,预训练模型不是连续学习的“灵丹妙药”。我们还为表现最好的 DynaER[64] 配备了 ImageNet 预训练的 ResNet152(60M 参数),其上界性能接近 ViT-B/16(86M)。DynaER 学习权重掩码,这是基于架构的方法中流行的策略 [61],以动态扩展架构。然而,表 2 中的结果表明性能更差(我们扫掠了他们建议的超参数以报告最佳性能),在他们原始论文中,当将 DynaER 扩展到 ResNet32 时,也展示了类似的观察结果。也就是说,如何有效地利用大型模型在传统的基于架构的方法下仍然是一个开放的问题。DualPrompt 在明智地利用最先进的视觉主干来解决连续学习的挑战方面是新颖的。
5.4 探索在哪里和如何附加提示
我们已经在第 5.2 节中展示了 DualPrompt 的最佳性能模型。在这一节中,我们探索了在哪里和如何附加提示,并增强了它们对整体性能的影响。我们还提出了关键的实证观察,这些观察导致了有趣的未来研究。
提示的位置。为了探索插入 G-Prompt和 E-Prompt最合适的位置,我们使用启发式搜索策略在 Split ImageNet-R 的验证集上。我们首先设置
有趣的是,图 3 的上线显示,在第 2 个 MSA 层放置 G-Prompt可以获得最佳性能。我们也将其扩展到多层,并进行搜索实验,发现最佳选择是


提示函数:提示与前缀。我们进一步研究了提示函数在 Split CIFAR-100 和 Split ImageNet-R 上的作用。在先前的基于提示的 CL 工作中,L2P 只应用了 Pro-T,没有进一步的调查。在表 3 中,我们观察到 Pre-T 版本在两个数据集上都取得了更好的性能。除了它的经验性更好性能外,Pre-T 实际上在附加到多层时更可扩展和高效,因为它导致不变的序列长度。然而,提示函数是我们方法的灵活组件,设计更好的提示函数也是开放的研究问题,因此我们可以轻松地将任何新提出的提示函数插入 DualPrompt 并评估其在给定连续学习任务上的有效性。

5.5 消融研究
基于上一节中搜索到的最佳参数,我们在表 4 中展示了消融研究结果,以显示 DualPrompt 的每个组件在 Split ImageNet-R 上的重要性。请注意,G-P(G-Prompt)和 E-P(E-Prompt)单独表示每种类型的提示的最佳单层版本(

5.6 G- 和 E-Prompt的可视化
为了进一步理解 G- 和 E-Prompt中学到的不同类型的指令,我们使用 t-SNE[34] 在图 4 中对这两种类型的提示进行了可视化。对于形状为

6. 结论
在这篇论文中,我们提出了一种新的方法 DualPrompt,它在具有挑战性的类增量设置下实现了无需复习的连续学习。DualPrompt 提出了一种新的方法来附加补充提示到预训练模型以学习解耦的知识。为了全面验证所提出的方法,我们提出了一个新的连续学习基准 Split ImageNet-R,并在广泛使用的基准上进行了研究。DualPrompt 在所有指标上设定了最先进的性能,并且与以前的基于架构和基于复习的方法相比,需要的额外内存少得多。进行了实证调查以了解内部工作。由于大规模预训练模型在实践中因其出色的表示能力而被广泛使用,我们认为 DualPrompt 为现实世界中无需复习的连续学习系统提供了一个起点。此外,我们推荐 DualPrompt 作为一个统一的框架,用于未来的基于提示的连续学习研究,因为它的简单性、灵活性和强大的性能。
A 算法:DualPrompt
这部分提供了 DualPrompt 算法在训练和测试时的具体步骤。
算法 1:训练时的 DualPrompt
算法 2:测试时的 DualPrompt
以上是 DualPrompt 算法在训练和测试阶段的具体步骤,这些步骤详细说明了如何使用 G-Prompt和 E-Prompt来指导模型在连续学习任务中的表现。通过这种方法,DualPrompt 能够有效地在没有额外复习数据的情况下学习新任务,同时保留以前任务的知识。
B 实验细节
对于我们的方法 DualPrompt,我们使用恒定的学习率 0.005,使用 Adam[19] 优化器,其中
C 评估指标
设
注意,平均准确率是连续学习的整体评估指标,包括两个方面:更大的学习能力和更少的灾难性遗忘,而遗忘仅作为灾难性遗忘的度量。
D 比较方法的细节
- 基于正则化的方法:EWC[20] 和 LwF[28] 是广泛比较的代表性基于正则化的方法。
- 基于复习的方法:ER[8,14]、GDumb[47]、BiC[62]、DER++[4] 和 Co2L[5]。作为早期的方法,ER 和 GDumb 不仅在他们自己的工作中表现出色,而且在后来的文献 [35,4] 中也表现出色。BiC 也是类增量学习设置中的一个强大的方法。DER++ 和 Co2L 是最新的 SOTA 方法。我们为这些基于复习的方法选择了中等和大的缓冲区大小,基于先前工作的推荐 [4,41,5,60]。
- 基于提示的方法:L2P[60] 是当前最先进的基于提示的方法,我们配置 DualPrompt 以拥有与 L2P 相似的额外参数量,以便进行公平比较。
- 基于架构的方法:所有这些方法都基于 ResNet-18,正如原始工作所建议的。我们要么直接采用他们原始工作中报告的结果,要么严格遵循这些方法的原始实现和超参数设置来重现结果。其他一些知名的方法 [18,12,46] 没有在这里比较,因为它们要么已经被我们比较的方法超越,要么只在更简单的任务增量设置中得到验证。
E Split ImageNet-R:大类内多样性
图 5 显示了 Split ImageNet-R 中三个不同类别的一些代表性示例。我们可以观察到,尽管同一行的图像共享相同的标签,但实际上它们之间差异很大。这一观察结果与图 1 和表 1 中的结果一致,即由于 Split ImageNet-R 中大的类内多样性,基于复习的方法需要大的缓冲区才能表现良好。
F 搜索多层提示
基于 4.2 节中的策略,我们首先在 Split ImageNet-R 的验证集上搜索多层 E-Prompt。由于搜索空间很大,我们做了一个简化的假设,即附加提示的 MSA 层应该是连续的。此外,由于
表 5:多层 E-Prompt的搜索结果。
平均准确率 | ||
---|---|---|
5 | 5 | 65.55 |
3 | 4 | 65.76 |
4 | 5 | 66.59 |
5 | 6 | 66.12 |
3 | 5 | 67.12 |
4 | 6 | 66.41 |
5 | 7 | 64.53 |
1 | 12 | 67.09 |
表 6:多层 G-Prompt的搜索结果。
平均准确率 | ||
---|---|---|
2 | 2 | 67.70 |
1 | 2 | 68.46 |
1 | 3 | 67.79 |
1 | 5 | 67.73 |
6 | 8 | 65.10 |
1 | 12 | 63.13 |
我们发现
G 搜索提示长度
根据 [60] 中的提示,我们将提示的基础长度设置为 5,并在
图 6:提示长度的网格搜索。
G-Prompt长度 | 5 | 10 | 20 | 40 |
---|---|---|---|---|
5 | 67.68 | 67.38 | 67.54 | 67.41 |
10 | 67.67 | 67.67 | 67.47 | 67.38 |
20 | 68.23 | 67.82 | 67.46 | 67.43 |
40 | 67.96 | 67.99 | 68.03 | 67.69 |
H 5-datasets 上的额外结果
为了完整性,我们还在 5-datasets[12] 上展示了我们方法的有效性,这是五个不同图像分类数据集的集合,包括 CIFAR-10[22]、MNIST[24]、Fashion-MNIST[63]、SVHN[43] 和 notMNIST[3]。
表 7:5-datasets[12] 上的额外结果。
方法 | 缓冲区大小 | 5-datasets |
---|---|---|
平均准确率(↑) | 遗忘(↓) | |
ER | 250 | 80.32±0.55 |
BiC | 78.74±1.41 | |
DER++ | 80.81±0.07 | |
Co2L | 82.25±1.17 | |
ER | 500 | 84.26±0.84 |
BiC | 85.53±2.06 | |
DER++ | 84.88±0.57 | |
Co2L | 86.05±1.03 | |
FT-seq | 0 | 20.12±0.42 |
EWC | 50.93±0.09 | |
LwF | 47.91±0.33 | |
L2P | 81.14±0.93 | |
DualPrompt | 88.08±0.36 | |
上限 | 93.93±0.18 |
尽管 5-datasets 中的每个任务相对简单,但该基准模仿了任务多样性大的真实世界设置,因此为 CL 方法提供了更全面的评估。由于 5-datasets 中的每个任务比 Split CIFAR-100 和 ImageNet-R 的任务相对容易,基于复习的方法通常需要较小的缓冲区大小就能表现良好。然而,500 的缓冲区大小已经被认为是 5-datasets 的大尺寸 [12,41]。尽管 DualPrompt 仍然一致地超越了竞争方法,我们认为在现实世界连续学习场景中,任务过于多样化的情况是罕见的:例如,我们不期望一个数字分类器连续学习对动物进行分类。因此,我们仅将 5-datasets 上的表现作为概念验证,展示了我们的方法在任务多样性大时的有效性。
I 查询准确率与性能之间的关系
为了展示查询准确率与性能之间的关系,我们将第 4.1 节中引入的查询策略的 DualPrompt 与已知测试时任务身份的 DualPrompt(完美匹配)进行比较。结果如表 8 所示。有趣的是,尽管匹配准确率不是很高,DualPrompt 对它相当鲁棒,并且仍然实现了非常接近完美匹配的准确性。我们将其鲁棒性归因于我们方法的设计。首先,G-Prompt中捕获的任务不变的指令即使 E-Prompt有噪声,对预测仍然有用。其次,查询策略基于输入特征,因此隐含地考虑了任务相似性。即使发生不匹配,我们的方法也倾向于从最相似的任务中选择 E-Prompt。我们还注意到,即使使用真实的任务身份来选择相应的任务特定 E-Prompt,也仍然存在遗忘。这部分遗忘来自于最终 softmax 分类头部的偏差 [35,47,68],这是类增量学习中常见的问题,可以并行缓解。
表 8:Split ImageNet-R 上使用查询策略的 DualPrompt 与完美匹配的 DualPrompt 的比较。