题目
基于提示的持续学习的层次分解:重新思考模糊的次优性
论文地址:https://arxiv.org/abs/2310.07234
项目地址:https://github.com/thu-ml/HiDe-Prompt
摘要
基于提示的持续学习利用预先训练的知识进行下游持续学习,并且在有监督的预训练下几乎达到了性能巅峰。然而,我们的实证研究表明,当前策略在更现实的自监督预训练下未能充分发挥其潜力,而自监督预训练对于在实践中处理大量未标记数据至关重要。这主要是因为任务特定知识很难通过提示参数合并到指导表示中,也无法在测试时由非指导表示预测。为了克服这种次优性,我们在预训练的背景下对持续学习目标进行了理论分析,并将其分解为分层组件:任务内预测、任务身份推断和任务自适应预测。基于这些经验和理论见解,我们提出了分层分解 (HiDe-)Prompt,这是一种创新方法,它使用一组特定于任务的提示和非指令和指令表示的统计数据明确优化分层组件,并进一步协调对比正则化策略。我们进行了广泛的实验,证明了 HiDe-Prompt 的卓越性能及其对持续学习中预训练范式的稳健性(例如,在 Split CIFAR-100 和 Split ImageNet-R 上分别领先 15.01% 和 9.61%)。我们的代码可在 https://github.com/thu-ml/HiDe-Prompt 上找到。
简介
在人工智能领域,持续学习已成为一个备受关注的领域。极大地促进这一领域发展的关键技术之一是预训练,它不仅可以实现积极的知识转移,还可以增强对灾难性遗忘的抵御能力。最近的一项创新是实施基于提示的方法,该方法冻结了预训练的 Transformer 主干并使用一些提示参数来引导表示学习。此类方法通常涉及为每个任务构建自适应提示,并在测试阶段推断适当的提示。通过探索提示架构以适应任务共享和特定于任务的知识,这一新兴方向表现出明显的优势,几乎达到了监督预训练下持续学习性能的上限。
尽管如此,鉴于强大的预训练模型通常需要以自监督的方式学习大量未标记数据,因此预训练范式的影响基于提示的持续学习的有效性是一个重要且尚未解决的问题。为了回答这个问题,我们首先进行了广泛的实证调查,它清楚地证明了在更现实的自监督预训练下,近期基于提示的方法的次优性。由于自监督表示往往更为通用,因此任务特定知识很难通过提示参数合并到指导表示中,也很难在测试时由非指导表示预测。因此,许多近期方法的性能受到严重损害,例如 L2P 、DualPrompt 、S-Prompt和 CODA-Prompt。我们进一步揭示了自适应预测对所有任务的重要性,这可以在一定程度上缓解上述缺点。
受这些观察的启发,我们对预训练背景下的持续学习目标进行了深入的理论分析,该目标可以分解为任务内预测、任务身份推理和任务自适应预测等层次化组件。由于充分的预训练产生了分布良好的表示,因此可以通过构建特定于任务的提示集合并利用保留的未指导和指导表示统计数据来明确优化层次化组件。进一步设计了一种新颖的对比正则化来协调这些层次化组件。我们将这种方法称为分层分解(HiDe-)Prompt,并通过广泛的持续学习实验证明了其优越性,尤其是在更现实的自监督预训练下。
我们的贡献包括:
- 我们在自监督预训练下进行了广泛的实证研究,以证明基于提示的持续学习当前进展的次优性;
- 为了克服这种次优性,我们从理论上分析了预训练的持续学习的目标,并将其分解为模型设计的分层组件;
- 通过特定于任务的提示和表示统计数据,我们提出了一种创新方法来明确优化分层组件;
- 在各种持续学习基准和预训练范式中,我们的方法以无需排练的方式实现了明显最先进的性能。
相关工作
持续学习:持续学习的能力对于人工神经网络适应现实世界的变化至关重要。人们在这个方向上做出了许多努力,以克服灾难性遗忘。根据最近的一项调查,代表性策略包括选择性稳定网络参数、重放一些旧训练样本、明确操纵优化程序、利用分布良好的表示、构建特定于任务的参数等。这些策略的性能因持续学习的特定设置而异。作为最具挑战性和代表性的设置之一,类增量学习 (CIL)需要一个持续学习模型来执行所有旧任务(或类),而无需任务身份的预言。强大的 CIL 方法通常依赖于旧训练样本的存储和排练,这会导致效率和隐私问题。
自监督学习和预训练:利用分布良好的表征,尤其是大规模预训练的成功,为下游持续学习带来了显著的好处。由于许多实际应用中明确标记的稀缺性和成本,自监督学习通常涉及预训练阶段以应对大量未标记数据。特别是,实例区分和对比学习已成为主导策略,旨在最大化同一实例的表征相似性并最小化不同实例的表征相似性。此外,自监督范式已被证明对上游持续学习中的灾难性遗忘不太敏感 [9],为丰富来自自然数据中的预训练知识提供了一种实用的方法。
基于提示的方法:受到 NLP 中参数高效微调技术的启发,最近开发了基于提示的方法,以自适应地利用预训练知识进行下游持续学习。基本思想包括为每个任务构建和推理自适应提示,以指导冻结的 Transformer 主干。前者主要侧重于探索提示架构,以指导具有任务共享和任务特定知识的表示,与持续学习中模型架构的讨论密切相关,而后者则尝试预测具有非指导表示的适当提示(组合)。虽然此类方法在有监督的预训练下取得了非常强劲的性能,但这些优势在更现实的自我-学习模型下是否一致?有监督的预训练还有待探索。一项同期研究[43]观察到,对于需要对主干进行微调的持续学习方法来说,自监督预训练更具挑战性,这意味着预训练范式对下游持续学习有着不小的影响。
初步分析
在本节中,我们首先介绍基于提示的持续学习的问题表述,然后通过广泛的实证研究评估预训练范式的影响。基于提示的持续学习的表述持续学习旨在在各自的训练集D1,…,DT上学习一系列任务,并在相应的测试集上表现出色。任务t的训练集通常由各种数据标签对Dt = {(xt,n, yt,n)} Nt n=1组成,其中xt,n∈Xt和yt,n∈Yt分别表示样本和标签元素。我们将使用 | · | 来表示集合的基数,使用 [N] = {1, 2, · · · , N} 表示从 1 到 N 的整数集合。考虑一个神经网络模型,其主干函数 fθ 由 θ 参数化,输出层 hψ 由 ψ 参数化。该模型试图学习从 X = 龜T t=1 Xt 到 Y = 龜T t=1 Yt 的投影,旨在预测从之前的任务中抽取的未见测试样本 x 的标签 y = hψ(fθ(x)) ∈ Y。
假设主干函数 fθ 已使用每个 Dt 外部的大量额外训练样本进行预训练。持续学习通常有三种不同的设置 [31]:任务、领域和类增量学习(TIL、DIL 和 CIL)。具体而言,Y1, …,YT 对于 DIL 是相同的,而对于 TIL 和 CIL 则是不相交的。任务标识在测试时为 TIL 提供,但不适用于 DIL 和 CIL。因此,CIL 被认为更具代表性和挑战性。值得注意的是,持续学习过程无需排练 [30]——Dt 的所有元素仅在学习任务 t 时可用。
基于提示的视觉任务方法进一步将主干 fθ 指定为预训练的视觉转换器 (ViT),其中多个连续的多头自注意 (MSA) 层可以将输入样本转换为序列长度为 Lh 和嵌入维度为 D 的序列状输出表示 h ∈ R Lh×D。主干参数 θ 通常会被冻结以获得可泛化的表示。一些提示参数 p ∈ R Lp×D,序列长度为 Lp,嵌入维度为 D 被添加到 h 以自适应地利用预训练知识。这里我们将第 l 个 MSA 层的输入表示为 h l ∈ R Lhl×D,它由查询 h l Q、键 h l K 和值 h l V 组成,并将提示表示为 p l ∈ R Lpl×D。为了符号清晰,我们以一个 MSA 层为例,并在不需要时省略层标签 l。然后,该 MSA 层的输出为
其中 WO、WQ,i、WK,i 和 WV,i 是投影矩阵,m 是 head 的数量,ViT 中的 hQ = hK = hV。基于提示的方法有两种主要实现 [40],即提示调整 (ProT) [18] 和前缀调整 (PreT) [19]。具体来说,ProT 在 hQ、hK 和 hV 前面添加一个相同的 p:其中 [· ; ·] 表示沿序列长度维度的串联操作,R (Lh+Lp)×D 中的输出增加了维度。相比之下,PreT 仅对 hK 和 hV 将 p 拆分为 pK ∈ R Lp/2×D 和 pV ∈ R Lp/2×D,分别为:
其中输出维度与输入 h ∈ R Lh×D 保持不变。由于每个任务的训练样本是按顺序引入的,基于提示的持续学习需要将特定于任务的知识纳入提示参数,同时克服其灾难性遗忘。
主流思想是为每个任务构建自适应提示,然后在测试时推断适当的提示(组合)。这里我们从这两个方面比较了最先进的方法,如图 1 所示:L2P [41] 构建一个可能由所有任务共享的提示池 P = {p1 , …, pM},其中 M 是提示的总数,然后以 ProT 方式指示最后的 MSA 层。每个提示 pi 都与一个可学习的键 ki ∈ R D 相关联,通过前 N 个键与查询函数 q(x) = fθ(x)[0] 的余弦距离 γ(q(x), ki) 进行优化,以纳入知识。因此,可以使用非指导表示来选择最相关的键和相应的提示进行推理。
DualPrompt [40] 构建任务共享提示 g l 和任务特定提示 e l t,以 PreT 方式指示不同的 MSA 层。所有属于同一任务的 e l t 都与一个任务特定键 kt ∈ R D 相关联,该键由 γ(q(x),kt) 优化,并选择最佳匹配键的索引进行推理。S-Prompt [39] 仅为每项任务构建任务特定提示 et,并采用与 L2P 类似的 ProT 策略来指示最后的 MSA 层。任务身份的推断是通过针对最近任务质心的简单 KNN 策略实现的。与其他方法不同,S-Prompt 将独占输出头 ψt 关联到每个任务 t = 1, …, T。CODA-Prompt [30] 通过加权求和利用提示池 P,即 p = 滑M i=1 αipi,其中 αi = γ(q(x), ki) 是权重因子,并采用与 DualPrompt 类似的 PreT 策略来指导多个 MSA 层。αi 的推断使得构建自适应提示成为可能。
预训练范式的实证研究 上述基于提示的方法都将每个任务的知识显式或隐式地纳入提示参数中,并从未指导的表示中预测它们的身份。为了评估预训练范式的影响,我们使用广泛使用的 CIL 基准(如 Split CIFAR-100 和 Split ImageNet-R [41, 40])进行了实证研究。除了对 ImageNet-21K [29](表示为 Sup-21K)进行监督预训练之外,我们还考虑了几种发布 ViT 检查点2 的强大自监督模型,例如 iBOT [44]、DINO [2] 和 MoCo v3 [5]。
为了公平比较,我们仔细评估了所有基线的官方实现。我们主要遵循 L2P [41] 和 DualPrompt [40] 的训