人类是卓越的终身学习者。我们可以掌握一门新语言或一款新电子游戏,而不会忘记如何骑自行车或弹奏旧乐器。这种在保留旧技能的同时不断学习新技能的能力,是智慧的象征。然而,对于人工智能而言,这一直是一个巨大的挑战。

当一个标准的神经网络学习新任务时,它常常会遭受灾难性遗忘——即覆盖先前学习到的信息的倾向。这就像一位音乐家学会弹吉他,却忘记了钢琴。这种问题限制了人工智能在现实世界的开放环境中“生活”和学习的能力。

2019 年,一篇题为《为实现无遗忘的持续学习而压缩、挑选和增长》的论文提出了一个优雅的解决方案。作者提出了 CPG (Compacting, Picking, and Growing,即压缩、挑选和增长) ——一个动态学习循环,使模型能够在掌握无限任务序列的同时不遗忘,并保持结构出奇地紧凑高效。

让我们深入了解它的工作原理。


持续学习的现有方法

在探讨 CPG 之前,先了解其他方法如何应对灾难性遗忘及其局限性,会很有帮助。

  1. 基于正则化的方法: 在训练过程中添加惩罚项,以阻止模型改变从旧任务中学到的重要权重。这就像在网络关键参数上挂上“请勿打扰”标志。虽然有一定帮助,但随着任务数量的增长,由于无法访问旧任务数据,这些方法通常会逐渐退化,难以长期保持记忆。

  2. 记忆回放方法: 受人类记忆的启发,这类方法会保留旧数据的短期缓存,或训练独立的生成模型 (如 GAN) 以回放早期任务的合成样本。这样有助于强化遗忘的模式,但需要额外的存储和复杂的再训练,随着任务增加会变得难以维持。

  3. 动态架构方法: 像 ProgressiveNet 这样的开创性方案通过冻结已学任务的权重并为每个新任务扩展网络结构,能够完美保留旧知识。但代价是——模型膨胀。在完成 20 个任务后,网络规模几乎是原始模型的 20 倍,虽然有效,却极其低效。

CPG 巧妙地融合了这些方法的优点: 动态扩展的完美记忆、压缩的高效性和共享学习的可迁移性——全部在一个可持续的循环中实现。


核心思想: CPG 学习循环

在每个新任务中,CPG 过程通过三个迭代阶段展开: 压缩挑选增长 。 这一循环构成了可持续终身学习的基础。

CPG 工作流程的示意图。任务 1 从密集权重开始,然后逐渐被剪枝。任务 2 中,一个二元掩码从任务 1 中挑选有用的权重,网络仅在需要时扩展。剪枝、挑选和选择性增长的循环在后续任务中持续进行。

图 1: CPG (压缩、挑选和增长) 持续学习过程的概念概览。每个新任务都构建在一个高效的基础上,通过剪除冗余、重用先验知识和审慎扩展来完成。

第一步: 压缩 —— 奠定基础

一切从第一个任务开始。模型从零开始训练,然后通过渐进式剪枝进行压缩——在保持性能不变的前提下,逐步去除冗余权重。

渐进式剪枝的过程并非一次性剪掉大量权重,而是反复进行:

  1. 移除少量低幅度权重;
  2. 重新训练剩余权重以恢复准确率;
  3. 重复“剪枝–重训”的迭代,直到达到最佳稀疏度。

压缩后,形成两组不同的权重:

  • 保留权重 (\(W_1^P\)) —— 对任务 1 至关重要的参数,现在被冻结防止遗忘。
  • 释放权重 (\(W_1^E\)) —— 冗余的参数,被释放以供下一个任务使用。

第二步: 挑选 —— 选择性知识重用

当任务 2 来临时,网络智能地重用已有知识。它不是从头开始,而是通过一个二元掩码 \(M\) 应用于保留权重 \(W_1^P\),从中挑选仍然有用的部分。

掩码中的每个元素决定某个旧权重的贡献:

  • \(M_i = 1\): 重用该特征;
  • \(M_i = 0\): 忽略该特征。

这些保留权重保持固定——就像任务 1 的只读记忆一样——掩码则学习应激活哪些权重。同时,释放的权重 \(W_1^E\) 可自由调整以学习新任务。

因此,在任务 2 中训练时,仅更新:

  1. 掩码 \(M\),学习如何挑选有用特征;
  2. 新权重 \(W_1^E\),学习任务特定的模式。

任务 2 的总权重为:

\[ W_2 = M \odot W_1^P \cup W_1^E \]

——一个重用旧知识与新知识的无缝融合。

第三步: 增长 —— 按需扩展

若任务 2 比任务 1 更复杂或完全不同,而挑选与释放权重的组合无法达到预设的准确率目标时,网络将增长——有针对性地新增滤波器或神经元,以刚好满足性能需求。

与 ProgressiveNet 每遇新任务就扩展不同,CPG 仅在必要时扩展。这种“极简式增长”避免了结构膨胀,同时确保持续的适应力。

完成循环

完成任务 2 训练后,新的权重再通过剪枝进行压缩,生成新保留权重 \(W_2^P\) 和一组释放权重 \(W_2^E\)。模型的累计记忆为 \(W_{1:2}^P = W_1^P \cup W_2^P\)。

这一压缩–挑选–增长循环会在每个后续任务中重复,使模型在学习过程中不断变得更聪明、更精简。


实验: CPG 的效果如何?

作者在多种场景下对 CPG 进行了严格测试——从基准图像数据集到真实的人脸识别流程。

实验一: CIFAR-100 —— 顺序学习 20 个任务

CIFAR-100 数据集被划分为 20 个任务,每个任务包含 5 个类别。模型使用 VGG16-BN 架构按顺序学习所有任务。

四张图表显示任务 1、5、10 和 15 在 20 个顺序任务中的准确率变化。红色的 CPG 线保持平稳,而绿色的 DEN 线急剧下降。

图 2: 随着已学习任务的增多,任务 1、5、10 和 15 的准确率变化趋势。CPG 保持了稳定表现 (红线平直) ,体现出零遗忘;而 DEN 则出现灾难性的性能下降。

结果十分显著——即使经过 20 轮训练,CPG 仍能对早期任务保持近乎恒定的表现,而像 DEN 等竞争方法则出现显著的准确率下降。微调方法表现尚可,但也会随着时间逐渐遗忘之前的任务。

此外,后续任务从已有经验中获益。CPG 的初始准确率高于微调方法,体现出其紧凑历史所带来的正向知识迁移。


“挑选”的力量

为测试“挑选”机制的影响,作者将 CPG 与以下方法进行比较:

  • PackNet: 只做压缩,不扩展。
  • PAE (Pack-and-Expand): 进行压缩和扩展,但不加选择地重用所有旧权重。

一个结果表,比较 PackNet、PAE 和 CPG 在 20 个任务中的表现。CPG 获得最高平均准确率,模型仅扩展至 1.5 倍。

表 1: CPG 始终获得最高平均准确率,并保持最紧凑的模型。选择性挑选有用权重比完全重用所有旧权重更有效。

结果清晰: 当权重被选择性地挑选,而非全部重用时,性能更佳。PAE 的无差别重用带来惯性,阻碍模型适应;PackNet 最终则空间不足。CPG 以优雅方式解决了两者的问题。


模型效率

与训练 20 个独立模型 (需 20× 参数) 相比,CPG 将所有任务压缩进一个仅 1.5× 原始大小的模型中——极大提升了效率。

总模型大小对比。单独模型需 20× 空间,而 CPG 包括所有开销后仅约 2.4×。

图/表: CPG 将 20 个任务的知识压缩进约为单一模型 2.4 倍大小的网络,而非存储单独模型所需的 20 倍空间。


实验二: 细粒度分类

随后,研究者在六个细粒度数据集上验证了 CPG 的性能——从 ImageNet 起步,利用 ResNet50 主干网络顺序学习鸟类 (CUBS) 、汽车、花卉、艺术绘画和素描等任务。

一个表格比较六个细粒度数据集的准确率。任务一之后,CPG 几乎在所有任务上取得最佳结果。

表 6: 在细粒度图像分类基准中,CPG 超越了强基准方法 (如基于 ImageNet 微调) ,同时保持高精度与紧凑性。

在此,CPG 依然表现卓越。压缩大型 ResNet 后,逐步学习各子任务,其性能超过微调和其他持续学习方法 (如 Piggyback、ProgressiveNet) ,且占用的内存最小。ProgressiveNet 的无限扩展导致每任务增加数百 MB,而 CPG 保持精简,仅约其五分之一。


实验三: 真实世界的人脸学习

在多领域应用的真实场景中,CPG 顺序学习了四个人脸相关任务: 人脸验证、性别分类、表情识别和年龄估计。模型从 SphereFace CNN 起步,每个任务重用并压缩已有知识。

一个人脸任务比较表,显示 CPG 在仅 1 倍模型扩展的情况下达到与微调相当或更优的结果。

表 7: CPG 将多个人脸任务整合为一个统一模型,几乎未扩展 (1×) ,同时实现与微调相当甚至更好的表现。

即便面对四个截然不同的任务,CPG 的总体扩展仍保持在 , 意味着同一个网络即可容纳所有任务且无遗忘——充分体现其现实可用性。


为何它如此重要

CPG 不只是又一个学术实验;它代表着迈向真正的终身 AI的重要一步。通过结合剪枝 (压缩) 、掩码 (重用) 与选择性扩展 (适应) :

  1. 消除灾难性遗忘——旧知识被准确保留;
  2. 高效增长——网络随时间以最小方式扩展;
  3. 实现正向迁移——已有经验助力新技能的学习。

这使得 CPG 非常适合用于不断进化的系统——从机器人、自动驾驶,到需要持续学习而不重置记忆的个人助理。

正如人类通过精炼旧知并吸收新经验来成长,CPG 展示了一个洞见: 要让 AI 变得更智能,它或许需要先变得更紧凑。