想象一下,你每天都教一个智能助手一项新技能。周一,你教它识别狗的品种;周二,教它识别猫的品种;周三,教它识别鸟的物种。然而,当你在周四让它识别一只金毛寻回犬时,它却完全忘记了狗是什么,只记得鸟类。这种令人沮丧的现象被称为 灾难性遗忘 , 它是构建真正智能、可适应的 AI 系统所面临的最大障碍之一。

持续学习 (Continual Learning, CL) 的目标正是为了解决这个问题——让模型能够从连续的新信息流中学习,而不会覆盖已经掌握的知识。多年来,研究人员一直在努力破解这一难题,但成效有限。然而,随着 Vision Transformers (ViT) 和 CLIP 等大规模预训练 基础模型 的出现,情况发生了变化。这些模型在庞大的通用数据集上训练,能够充当强大的特征提取器。于是关键问题变成了: 我们该如何充分利用这些强大的预训练模型来实现持续学习?

2023 年 NeurIPS 的论文 “RanPAC: Random Projections and Pre-trained Models for Continual Learning” 提出了一个出乎意料地简单却极其有效的解决方案。作者指出,预训练模型在持续学习中的潜力尚未被充分挖掘。他们的方法没有采用复杂的再训练机制,而是巧妙地在模型特征与分类器头之间插入一个冻结的随机数层,从而在很大程度上 绕过 了遗忘问题。

这听起来几乎太简单了,但结果证明非常有效: 与此前最先进的无重放方法相比,RanPAC 将错误率最多降低了 62%

在本文中,我们将探讨:

  • 持续学习的基本原理及灾难性遗忘的挑战;
  • 为什么简单的“类原型”策略会失效;
  • 随机投影提升特征可分性的惊人效果;
  • RanPAC 如何将这些思想结合,构建出一种“永不遗忘”的先进持续学习方法。

理解持续学习

持续学习场景通常被组织为一系列任务:

  • 任务 1: 学习分类 10 个类别 (例如动物) ;
  • 任务 2: 学习 10 个新类别 (车辆) ;
  • 任务 3: 再学习 10 个类别 (植物) 。

在训练过程中,模型只能看到当前任务的数据——进入下一个任务后,将无法访问旧数据。这导致两个主要问题:

  1. 灾难性遗忘: 为新任务更新参数会覆盖旧知识,从而降低以往任务的性能。
  2. 任务近因偏见: 模型会过度偏向最近学习的任务。

持续学习主要有两种类型:

  • 类增量学习 (Class-Incremental Learning, CIL): 每个新任务都会引入 新类别。在测试阶段,模型必须能识别迄今为止所有出现过的类别的样本,而不会提前知道其任务归属。
  • 域增量学习 (Domain-Incremental Learning, DIL): 类别保持不变,但 领域 变化——例如在照片、绘画和素描中识别同一类别的物体。

传统的持续学习方法通常依赖于从零训练或保留旧任务样本 (“重放缓冲区”) 。但有了像 ViT 和 CLIP 这样的预训练模型,我们可以构建利用其稳定表示的策略。这些方法大致分为三类:

  1. 提示学习 (Prompting): 向冻结的主干网络添加小的可学习提示,仅为新任务更新这些提示部分。
  2. 选择性微调: 有选择地微调预训练网络参数中的少量子集。
  3. 类原型 (Class Prototypes, CP): 为每个类别存储一个代表性特征向量——即其平均值——然后基于与这些原型的相似性进行分类。

类原型策略简单且节省内存。如果特征提取器是冻结的,理论上应能避免遗忘。但正如 RanPAC 所揭示的,这种简化背后隐藏着一个关键缺陷。


简单类原型的问题

在基本的类原型 (CP) 方法中,每个类别 \( y \) 都有一个原型向量 \( \bar{\mathbf{c}}_y \),通过对训练样本的特征向量取平均值来计算。要对特征为 \( \mathbf{f}_{\text{test}} \) 的测试样本进行分类,需找到原型余弦相似度最高的类别:

\[ y_{\text{test}} = \arg \max_{y' \in \{1, \dots, K\}} \frac{\mathbf{f}_{\text{test}}^\top \bar{\mathbf{c}}_{y'}}{||\mathbf{f}_{\text{test}}|| \cdot ||\bar{\mathbf{c}}_{y'}||} \]

图 2: 相似度直方图 (左) 与类原型的皮尔逊相关系数 (右) 。顶行显示,对于简单的 NCM 分类器,原型之间高度相关,正确类别与错误类别的相似度得分显著重叠。

显示类原型之间相关性的直方图和相关矩阵。

直觉似乎合理,但实际上,预训练模型提取的特征往往 高度相关。对于外观相似的类别 (如“波斯猫”和“暹罗猫”) ,其原型在特征空间中十分接近,容易引起混淆。如图 2 所示,不同类别的原型呈现较高的非对角相关性,相似度分布重叠严重,从而导致分类性能下降。


步骤 1: 用二阶统计量去相关原型

我们如何让这些原型远离彼此?

RanPAC 引入了基于 二阶统计量 的修正方法,用于考虑特征维度间的相关性。具体而言,它使用 格拉姆矩阵 (Gram matrix) \( \mathbf{G} \)—特征的内积矩阵—并据此计算去相关的相似度得分:

\[ s_y := \mathbf{f}_{\text{test}}^{\top} \mathbf{G}^{-1} \mathbf{c}_y \]

这一去相关步骤将特征空间进行“白化”——减少特征间依赖性,增强线性可分性。

显示基于格拉姆矩阵的相似度公式。

应用该技术后,原型之间的相关性显著降低。如图 2 (第三行) 所示,非对角线相关性消失,相似度分布重叠减小,准确率从 64% 提升至 75%。

可见,考虑特征间的关系 (而不只是平均) 是一项强有力的改进。


步骤 2: 随机投影的魔力

去相关确实有效,但 RanPAC 又增加了一层——随机投影 (Random Projection, RP)——进一步提升特征可分性。

其原理非常简单: 扩展特征空间。 给定特征向量 \( \mathbf{f} \in \mathbb{R}^L \),应用一个随机生成的矩阵 \( \mathbf{W} \in \mathbb{R}^{L \times M} \),再施加非线性激活函数 \( \phi(\cdot) \):

\[ \mathbf{h} = \phi(\mathbf{f}^{\top} \mathbf{W}) \]

当 \( M > L \) 时,该转换扩大维度并引入特征间非线性交互,使类别在新空间中更加可分。

图 1: 随机投影扩展特征空间,提升类别分离度。彩色簇展示经 RP 转换后的不同类别特征。

展示随机投影与原型分离的示意图。

为什么这样有帮助?

  1. 维度扩展: 提升到更高维空间后,特征更稀疏,分类边界更易分离。
  2. 非线性交互: 通过 \( \phi(\cdot) \) (如 ReLU) 引入特征组合,从而捕捉原特征空间中遗漏的交互信息。
  3. 零遗忘: 随机权重 \( \mathbf{W} \) 只生成一次并 保持冻结 , 永不更新,因此不会遗忘。

论文结果 (图 2 底行) 显示,加入 RP 层能显著提高可分性,训练准确率达到 87%,甚至超过联合训练 (即同时训练全部任务) 的效果。

图 3: 当使用非线性激活函数 \( \phi \) 时,平均准确率随投影维度 \( M \) 增大而显著提高。

显示随机投影与非线性带来的准确率提升。

若缺乏非线性,仅靠 RP 几乎无效——即便在 \( M = 15{,}000 \) 时也是如此。正是 高维扩展与非线性混合 的结合,创造出线性可分的表示。


RanPAC 算法: 整体整合

RanPAC 将这些洞见融合为优雅的两阶段训练流程。

图 A1: RanPAC 两阶段流程概览——第一阶段 PETL 适配 (可选) 和第二阶段随机投影持续学习。

显示 RanPAC 两阶段的示意图。

阶段 1: 可选的首任务适配

在开始持续学习之前,RanPAC 可选择性地采用 参数高效迁移学习 (Parameter-Efficient Transfer Learning, PETL) , 仅利用第一个任务的数据调整少量参数,以弥合预训练 (如 ImageNet) 与目标数据集的领域差距。之后,所有参数——包括预训练主干与 PETL 适配器——均被冻结。

阶段 2: 随机投影持续学习

对于每个任务 \( t = 1, \dots, T \):

  1. 生成并冻结随机投影矩阵 \( \mathbf{W} \)。
  2. 从冻结模型中提取特征 \( \mathbf{f}_{t,n} \)。
  3. 计算随机投影后的特征 \( \mathbf{h}_{t,n} = \phi(\mathbf{f}_{t,n}^{\top}\mathbf{W}) \)。
  4. 增量更新两个矩阵: \[ \mathbf{G} = \sum_{t,n} \mathbf{h}_{t,n} \otimes \mathbf{h}_{t,n}, \quad \mathbf{C} = \sum_{t,n} \mathbf{h}_{t,n} \otimes \mathbf{y}_{t,n} \] 更新可按样本或任务进行,与任务顺序无关,适合持续学习。
  5. 推理阶段计算最终得分: \[ s_y = \phi(\mathbf{f}_{\text{test}}^{\top} \mathbf{W}) (\mathbf{G} + \lambda \mathbf{I})^{-1} \mathbf{c}_y \]

显示格拉姆矩阵与原型更新过程的公式。 RanPAC 的最终得分计算公式。

该形式类似正则化最小二乘回归,但无需迭代更新。最终结果是一个简单而优雅、不会遗忘的学习算法。


实验结果: 突破业界新高度

RanPAC 在八个主流持续学习基准数据集上进行了评测,涵盖 CIL 与 DIL 场景。主干网络使用 ViT-B/16,并与 L2PDualPromptCODA-PromptADaMSLCA 等方法进行了比较。

类增量学习 (CIL)

表 1: RanPAC 在七个 CIL 基准上全面超越所有提示与 CP 方法。

表 1 显示 RanPAC 优越的 CIL 结果。

亮点:

  • 错误率显著下降: 在 CIFAR100 上下降 36% , ImageNet-R 上下降 20% , Cars 数据集上更达到 62%
  • 消融实验验证:
  • 省略 RP 层或阶段 1 PETL 会造成明显性能下降;
  • 简单的 NCM 方法效果最差,揭示了朴素原型策略的不足。
  • 超越上限: RanPAC 甚至超越了在全部数据上联合训练的“线性探针”基线,说明非线性随机投影可解锁额外性能提升。

表 2: RanPAC 与微调方法比较——RanPAC 以更低的计算量、无遗忘地实现了接近联合训练的准确度。

表 2 比较 RanPAC 与微调方法的结果。

域增量学习 (DIL)

即使任务领域随时间变化,RanPAC 仍保持领先优势。

表 3: RanPAC 在 DomainNet 与 CDDB-Hard 上实现了领先的 DIL 性能。

表 3 显示域增量学习结果。

在 DomainNet (含六个领域、345 个类别) 上,RanPAC 将准确率从约 50% 提升至 66.6% 。 消融分析表明,RP 对性能提升贡献最大,而 PETL 的价值相对较低——与领域变化任务的特性一致。


RanPAC 成效的关键因素

  1. 冻结的预训练基础防止遗忘 预训练模型已具备丰富通用特征,保持冻结可彻底避免灾难性遗忘,使持续学习更容易。

  2. 随机性增强表示能力 通过非线性随机投影提升维度,可在无需额外训练的情况下增强特征的多样性与可分性。

  3. 二阶统计量至关重要 使用逆格拉姆矩阵进行去相关,使原型更符合实际数据分布,从而显著提高准确率。

  4. 简单与强大的完美结合 RanPAC 的流程——特征提取、随机变换、统计更新——无需迭代调优,无需重放内存,却超越复杂替代方案。


更广泛的意义与未来方向

RanPAC 挑战了“持续学习必须依赖复杂机制或存储旧数据”的假设。它基于经典线性代数与概率理论,并结合现代深度特征,开拓出多个令人期待的研究方向:

  • 任务无关学习: 已验证即使任务边界消失也能工作。
  • 多模态模型: 可扩展至同时处理视觉与语言特征 (如 CLIP) 。
  • 回归与表示学习: 通过改变目标原型定义,RanPAC 可以适用于分类以外的任务。

结论

RanPAC 框架传递了一个强烈的信息: 有时,最强大的解决方案往往是最简单的。 将冻结的预训练模型与随机投影层及去相关原型结合,我们即可构建出 快速、节省内存、且不遗忘的持续学习者

在复杂架构主导的时代,RanPAC 展示出随机性与数学优雅的力量,胜过无休止的微调。它在无重放的持续学习领域树立了新标杆——证明对于 AI 来说,永不遗忘的能力或许终于触手可及。