人类是天生的终身学习者。从学习走路、骑自行车到掌握一门新语言,我们不断获取新技能,而不会抹去旧技能。这种按顺序累积学习的能力是智力的基础。
然而,人工神经网络 (ANN) 尽管取得了巨大成功,记忆力却出了名的差。当你用一个新任务训练标准神经网络时,它往往会覆盖之前学到的知识。这种现象被称为灾难性遗忘或灾难性干扰 , 是创造真正自适应人工智能的最大障碍之一。想象一下,一个智能助手学会了你新同事的名字,却因此忘记了你的名字——这可不太智能!
持续学习 (Continual Learning, CL) 领域致力于解决这一挑战。研究人员提出了许多策略: 为每个新任务扩展网络、重放旧数据,或惩罚剧烈的参数变化。然而,这些方法通常伴随显著的权衡——模型规模不断膨胀、内存消耗剧增,或数据隐私被牺牲。
普渡大学最近的一篇论文 “Gradient Projection Memory for Continual Learning” 提出了一种新颖而优雅的解决方案。作者没有保存旧数据或扩展网络,而是设计了一种方法来识别网络梯度空间中的“关键方向”——这些方向对记住过去的任务至关重要。当新任务到来时,模型仅允许在与这些受保护子空间正交的方向上学习,从而确保已有知识保持完好。
在本文中,我们将详细解析他们的方法——梯度投影记忆 (Gradient Projection Memory, GPM) ——其工作原理、有效原因以及与其他先进方法的对比。让我们开始吧。
持续学习策略速览
在探索 GPM 之前,先了解一下整个领域。多数持续学习方法可归为三类:
基于扩展的方法: 这类方法为每个新任务动态扩展网络——例如,当新数据到来时增加神经元或层。虽然这种策略通过参数隔离防止遗忘,但很快变得不切实际: 网络规模无止境增长,资源浪费严重。
基于正则化的方法: 这类方法向损失函数添加惩罚项,防止改变对旧任务重要的权重。一个经典例子是*弹性权重巩固 (Elastic Weight Consolidation, EWC) *,它通过费舍尔信息矩阵来估计参数的重要性。困难在于如何准确识别哪些权重真正重要。
基于记忆 (重放) 的方法: 这类方法在内存中保存旧任务的一小部分样本,并在训练时与新数据交替使用。这样的重放帮助模型“记住”旧知识,但也涉及存储原始甚至敏感数据,引发隐私风险。内存容量限制也会制约可扩展性。
GPM 可以看作是基于记忆的方法,但关键区别在于: 它存储的是几何结构,而不是数据 。 它不保存样本,而记录任务的紧凑几何表示——从而完全规避隐私问题。
核心思想: 输入与梯度的联系
GPM 方法基于一个简单而深刻的洞见: 梯度更新位于输入数据所张成的子空间内。
为直观理解这一点,考虑一个全连接层,其输入向量为 \( \boldsymbol{x} \),目标为 \( \boldsymbol{y} \),权重矩阵为 \( \boldsymbol{W} \)。使用均方误差损失函数:
\[ L = \frac{1}{2} \|\boldsymbol{W}\boldsymbol{x} - \boldsymbol{y}\|_2^2 \]该损失相对于权重的梯度为:
\[ \nabla_{\boldsymbol{W}} L = (\boldsymbol{W}\boldsymbol{x} - \boldsymbol{y})\boldsymbol{x}^T = \boldsymbol{\delta}\boldsymbol{x}^T \]其中,\( \boldsymbol{\delta} \) 是误差向量。关键在于 \( \boldsymbol{x}^T \): 梯度方向由输入定义。因此,优化器的更新只能存在于输入空间的线性张成空间中。在小批量训练中亦如此——梯度位于该批次输入所张成的子空间里。
这一关系同样适用于卷积层。卷积操作可以通过展开输入补丁 (patch) 重新表示为矩阵乘法,如下图所示。

图 1: 卷积运算在 (a) 前向传播和 (b) 反向传播过程中以矩阵乘法形式的示意图。
在反向传播中,损失相对于滤波器权重的梯度为:
\[ \nabla_{\boldsymbol{W}} L = \boldsymbol{X}^T \boldsymbol{\Delta} \]由于 \( \boldsymbol{X}^T \) 包含输入补丁向量,梯度也位于这些补丁所张成的空间中。
这一洞见构成了 GPM 的理论基础: 若重要的输入方向对应于重要的梯度方向,保护这些方向即可在任务间保留已学知识。
梯度投影记忆 (GPM) 介绍
GPM 算法利用输入与梯度之间的关系,在学习新任务时尽量减少干扰。
第 1 步 – 学习第一个任务
对于第一个任务,网络使用随机梯度下降 (SGD) 正常训练。参数 \( \mathbb{W}_1 \) 在无约束条件下自由优化。
第 2 步 – 识别核心梯度空间 (Core Gradient Space, CGS)
完成任务 1 后,GPM 识别哪些梯度方向对于记住该任务至关重要。这一步通过分析激活值——即网络形成的内部表示——实现。
收集表示: 将任务 1 的训练样本输入网络。对于每一层 \( l \),将输出的激活值堆叠成一个表示矩阵 \( \boldsymbol{R}_1^l \)。
使用 SVD 提取关键方向: 通过奇异值分解 (Singular Value Decomposition, SVD) , 将矩阵 \( \boldsymbol{R}_1^l \) 分解为按“重要性”排序的正交基。最大的奇异值对应变化最显著的主方向。
选择前 k 个基向量: 仅保留重构矩阵所需的前若干基向量,以保持足够的保真度。保真度由阈值参数 \( \epsilon_{th} \) 控制:
这些 k 个基向量所张成的空间定义为每层的核心梯度空间 (CGS) , 即对任务 1 至关重要的子空间。它的正交补空间称为残差梯度空间 (Residual Gradient Space, RGS) , 在该空间中的更新仅造成最小干扰。基向量存储在梯度投影记忆 (Gradient Projection Memory, GPM) 中,表示为 \( \boldsymbol{M}^l = [u^l_{1}, ..., u^l_{k}] \)。

图 2: 利用弗罗贝尼乌斯范数近似阈值 \( \epsilon_{th} \) 选择前 k 个基向量的标准。
第 3 步 – 通过正交投影学习新任务
当任务 2 到来时,梯度将被调整以避免干扰任务 1。 计算每个小批量的原始梯度 \( \nabla L_2 \) 后,将其投影到 CGS 上,并将投影部分从中减去:
[ \nabla_{\boldsymbol{W}{2}^{l}} L{2} = \nabla_{\boldsymbol{W}{2}^{l}} L{2}
- (\nabla_{\boldsymbol{W}{2}^{l}} L{2}) \boldsymbol{M}^{l} (\boldsymbol{M}^{l})^{T} ]

图 3: 全连接层的梯度更新规则——将梯度投影到 CGS 并减去对应分量,产生正交更新。
此时,权重更新仅发生在与受保护子空间正交的方向上,确保新知识不会覆盖旧任务。
第 4 步 – 更新 GPM
完成任务 2 的训练后,GPM 会相应更新以保护它。任务 2 的表示形成 \( \boldsymbol{R}_2^l \),其中与现有 CGS 重叠的方向被移除:
[ \hat{\boldsymbol{R}}{2}^{l} = \boldsymbol{R}{2}^{l}
- \boldsymbol{M}^{l}(\boldsymbol{M}^{l})^{T}(\boldsymbol{R}_{2}^{l}) ]

图 4: 移除已在 GPM 中捕获的表示分量,确保新的基向量唯一且正交。
对 \( \hat{\boldsymbol{R}}_{2}^{l} \) 执行 SVD,提取满足相同 \( \epsilon_{th} \) 标准的新基向量,并追加至现有记忆中。CGS 随任务逐步扩展,而 RGS 相应缩小。后续任务均按此流程顺序学习。
对 GPM 的性能测试
为评估性能,作者在标准持续学习基准上对 GPM 进行了测试,使用两个指标:
- 平均准确率 (ACC) : 各任务测试准确率的平均值。
- 反向迁移 (BWT) : 衡量学习新任务对旧任务的影响 (负 BWT 表示遗忘) 。
关键基准测试结果

图 5: 在 PMNIST、CIFAR‑100、miniImageNet 和 5‑Datasets 基准上的持续学习性能比较。
- 置换 MNIST (PMNIST) : GPM 达到最高准确率 (93.9%) ,几乎没有遗忘。
- 分割 CIFAR‑100 和 miniImageNet: GPM 的表现与 HAT 等正则化方法相当或更好,同时实现了零遗忘 (BWT = 0.00) 。
- 在所有数据集上,GPM 均以显著更少的内存维持卓越成绩。
内存与时间效率

图 6: GPM 与其他持续学习方法的相对内存占用 (左) 和每轮训练时间 (右) 比较。
在 PMNIST 上,GPM 以比正交梯度下降 (OGD) 少 400 倍的内存实现更高准确率。其每轮训练时间也比 GEM 更快,因为投影矩阵在每个任务开始时仅预计算一次。SVD 步骤的额外开销较小、且仅在任务之间发生。

图 7: 所有任务的总墙钟训练时间。GPM 的训练速度始终快于或与基线相当。
长任务序列稳定性
在长任务序列中保持稳定是有效持续学习的标志。miniImageNet 实验 (图 8) 追踪了在学习了 19 个新任务后任务 1 的准确率。

图 8: 在 20 个任务的增量学习过程中任务 1 的准确率变化。GPM 性能几乎保持不变,显示出极低干扰。
GPM 的平坦曲线表明学得的知识几乎未退化,而其他方法则出现明显下降。
稳定性与可塑性困境
持续学习的关键挑战之一是平衡稳定性 (保留旧知识) 与可塑性 (学习新任务) 。 GPM 通过阈值 \( \epsilon_{th} \) 来直接调节这一平衡:
- 高 \( \epsilon_{th} \) (≈ 1): 保留更多基向量 → 稳定性更强、灵活性降低。
- 低 \( \epsilon_{th} \) (≈ 0): 保留更少基向量 → 灵活性更高、可能遗忘。
为量化该平衡,作者定义了干扰激活——即学习新任务后旧输入在层输出上的变化幅度。理想情况下干扰 = 0。图 9 展示了不同 \( \epsilon_{th} \) 值下干扰激活分布的变化。

图 9: 不同阈值 \( \epsilon_{th} \) 下的干扰激活分布。随着阈值增加,方差收缩趋近 0,遗忘减少、准确率提升。
较高的阈值使分布更集中、更接近零,并带来更佳的 ACC 与 BWT 效果。该单一超参数为稳定性‑可塑性间的权衡提供了直观而有效的调节方式。
结论与启示
Gradient Projection Memory for Continual Learning 提出了一种强大的、无需保存原始数据的抗灾难性遗忘方法。 通过利用梯度空间的几何结构,GPM 将更新限制在与旧任务重要方向正交的区域内,在稳定性与适应性之间实现了优雅平衡。
核心启示:
- 正交梯度更新: 通过将新梯度投影到远离旧任务的受保护子空间,防止干扰。
- 无数据记忆: 仅存储来自激活的紧凑基向量,而非原始样本,兼顾隐私与效率。
- 先进性能: 以极小的遗忘率达到或超越 HAT、EWC 等主流持续学习方法。
- 轻量且可扩展: 在深度网络与长任务序列中高效运行。
通过从几何视角重新定义持续学习,GPM 不仅提供了实用的算法解决方案,更揭示了神经网络在获取与保持知识过程中的深层结构性洞见——向真正实现人工系统的终身学习迈出了坚实一步。
](https://deep-paper.org/en/paper/2103.09762/images/cover.png)