想象一下,你有一个训练有素的机器人助手。它非常擅长识别你家中的日常物品——椅子、桌子、杯子,应有尽有。某天,你带回一株稀有奇特的植物,想让你的机器人学会识别它。但问题来了: 让机器人变得如此聪明的原始训练数据——数百万张对象图像——早已存储在一台被弃用的服务器上。

你该如何教给它这项新技能,又不破坏它已有的知识?如果你仅用植物图像重新训练模型,就可能触发灾难性遗忘 (catastrophic forgetting) ——神经网络在学习新任务时会遗忘旧任务。结果,你的机器人可能完美识别植物,却不再知道椅子是什么。

这个困境——如何在不断扩展神经网络能力的同时保持已有知识——是机器学习领域的核心挑战之一。Zhizhong Li 和 Derek Hoiem 在 2016 年提出的论文 “无遗忘学习” (Learning without Forgetting, LwF) , 提供了一种优雅而简洁的解决方案。它让神经网络只用新数据学习新任务,同时保持在旧任务上的性能。更令人赞叹的是,有时它还能让模型在新任务上的表现超过标准微调方法。


更新神经网络的传统方案

在深入探讨 LwF 之前,我们先看看研究人员通常是如何为一个已有的、预训练好的卷积神经网络 (CNN) 添加新任务的。想象一个在 ImageNet 上训练的 CNN——这个庞大的数据集包含 1000 类物体和数百万张照片。该网络主要由两个部分组成:

  • 学习通用视觉特征的共享层 (记为 \( \theta_s \))
  • 做出预测的任务特定输出层 (记为 \( \theta_o \))

当我们要添加一个新任务——比如识别鸟类——就需要新的输出节点及其参数 (\( \theta_n \)) 。难点在于如何训练这个新部分而不破坏已有的知识。研究人员提出了几种方案:

一张示意图,展示了神经网络的五种持续学习策略: 原始模型、微调、特征提取、联合训练和无遗忘学习。

图 1: 为神经网络添加新任务的五种策略。关键区别在于数据的使用方式以及模型中被更新的部分 (取自论文图 2) 。

1. 特征提取 (Feature Extraction)

在这种方法中,旧网络的参数 (\( \theta_s, \theta_o \)) 被冻结。其最后一个隐藏层的激活值作为新任务的固定“特征”,只训练新的分类器 (\( \theta_n \)) 。

  • 优点: 保持旧任务性能不变。
  • 缺点: 新任务表现往往受限,因为共享特征可能无法捕捉新领域的独特信息。

2. 微调 (Fine-tuning)

给网络添加新任务层,并用新任务的图像同时训练共享层和新层 (\( \theta_s, \theta_n \)) 。通常会采用较小的学习率以避免参数剧烈变化。

  • 优点: 新任务性能通常很高。
  • 缺点: 容易出现灾难性遗忘——共享权重发生漂移,旧任务性能急剧下降。

3. 联合训练 (Joint Training)

理想但难以实现的方案。网络用旧任务和新任务的数据同时进行训练。

  • 优点: 学习更平衡,通常能获得最佳的整体性能。
  • 缺点: 需要访问所有原始数据,而这些数据可能无法获得或过于庞大难以处理。

下表来自论文,比较了这些方法并展示了 LwF 的优势。

一张表格,从六个维度比较了微调、复制并微调、特征提取、联合训练和无遗忘学习。

图 2: 常见策略与无遗忘学习的对比。目标是在两个任务上都保持高性能,同时兼顾训练速度与存储消耗。


核心思想: 无遗忘学习 (LwF)

如果旧的训练数据已经丢失,我们还剩下什么?答案是: 训练好的模型本身。LwF 把原模型视为“老师”,把更新后的模型视作“学生”。

其目标是让模型学习新的参数,使其在新任务上表现出色,同时对旧任务保持相似的输出——而这一切仅依赖新任务的图像。

一张流程图,展示了无遗忘学习的过程。

图 3: LwF 算法流程。它同时优化新任务准确率与旧任务输出的保留度 (取自论文图 3) 。

步骤 1: 记录旧任务输出

将每张新任务图像输入旧网络 (权重冻结) ,记录其在旧任务上的概率分布——例如,一张鸟的照片可能被判断为 7% 雀、2% 山雀、0.5% 松鼠。这些概率即为软目标,表示旧网络对新数据的“看法”。

步骤 2: 使用两种损失训练

在训练过程中,LwF 同步优化两个目标:

  • 新任务损失: 标准分类损失,用于衡量预测输出与真实标签的匹配情况。

新任务损失的公式 \\( L_{new}(y_n, \\hat{y}_n) = -y_n \\log \\hat{y}_n \\)。

图 4: 新任务的标准交叉熵损失。

  • 旧任务损失: 促使网络在旧任务上的输出接近记录下的软目标。该过程使用了知识蒸馏 (Knowledge Distillation) 。

快速了解: 什么是知识蒸馏

知识蒸馏由 Hinton 等人 (2014) 提出,用于将“知识”从一个模型迁移到另一个模型。它不是简单匹配标签,而是尽量匹配完整的输出概率分布。一个温度参数 \( T > 1 \) 用来软化分布,使小概率的差异更明显。

使用知识蒸馏的旧任务损失公式。 展示如何使用温度参数 T 修改概率的公式。

图 5: 知识蒸馏通过温度 \( T \) 软化概率,保留类别之间的细微关系。

较高的 \( T \) 值能突出低概率类别,帮助学生模型学习更细致的类间关系——这对保持旧模型的细微知识至关重要。

最终的 LwF 目标函数将两种损失结合为一体:

\[ \mathcal{L} = \lambda_o \, \mathcal{L}_{old} + \mathcal{L}_{new} \]

其中 \( \lambda_o \) 用于在“记住旧任务”和“学习新任务”之间取得平衡。


实验: 检验 LwF 的效果

为验证 LwF,研究人员使用了预训练网络 (例如用于物体识别的 ImageNet,以及用于场景分类的 Places365) ,再添加新的分类任务,如 PASCAL VOCCUB Birds-200MIT Indoor Scenes——这些都是相对较小的数据集。

单一新任务

实验结果如下:

表格展示了使用 AlexNet 架构在单个新任务场景下的性能。

图 6: 基于 AlexNet 的实验结果。其他方法的性能差异相对于 LwF 显示 (摘自论文表 1) 。

主要发现:

  1. 旧任务保持: LwF 相比微调显著减少遗忘。在 ImageNet→CUB 的任务中,微调导致旧任务准确率下降多个百分点,而 LwF 能很好地保持原性能。
  2. 新任务提升: 出乎意料地,LwF 在新任务上的准确率常常高于微调。因为保留旧任务响应在训练中起到了正则化作用 , 避免过拟合并提升泛化能力。

这类新旧任务性能的权衡关系可通过下图看到:

散点图,比较了不同方法在旧任务 (x 轴) 和新任务 (y 轴) 上的性能。LwF 在两个任务上都取得了高分。

图 7: 新旧任务性能的平衡。LwF (蓝色) 始终位于最佳的右上角区域 (取自论文图 7) 。


累积学习: 连续添加任务

如果我们持续一个接一个地添加新任务会怎样?这种情形模拟了真正的终身学习

折线图,展示了随着新任务的顺序添加,各项任务的性能变化。

图 8: 顺序学习的性能变化。与微调 (红色) 相比,LwF 的旧任务准确率下降缓慢。

如图 8 所示,每次用微调训练新任务时,模型都会大量遗忘旧任务;而 LwF 在新任务不断增加的情况下,依然能在所有任务上保持高性能——这是对现实世界中需持续学习系统的关键能力。


数据规模的影响

研究人员还考察了新任务数据量对 LwF 效果的影响。他们使用了 CUB 数据集的不同子集 (3%、10%、30%、100%) ,结果表现一致。

折线图,展示了新任务数据集大小对性能的影响。

图 9: 在不同数据规模下 LwF 始终优于微调,即使数据量有限也保持稳定 (取自论文图 5) 。

即便训练数据极少,LwF 依然具有优势——这在新任务缺乏充分标注样本时尤为重要。


为什么它奏效?

从本质上来说,LwF 是一种双重正则化方法:

  • 结构正则化: 避免共享表示过度拟合新任务的数据分布。
  • 功能正则化: 约束网络功能,使其与旧任务的行为保持兼容。

因此,LwF 不仅能防止遗忘,还经常能提升泛化性能——它的效果可媲美联合训练,但无需访问原始数据


结论: 迈向终身学习的 AI

“无遗忘学习”是持续学习研究的重要里程碑。它在特征提取 (稳定但灵活性差) 与微调 (适应性强但易遗忘) 之间架起桥梁,在无需旧数据的前提下实现接近联合训练的性能。

核心要点

  1. 保留已有知识。 LwF 在扩展神经网络时有效缓解灾难性遗忘。
  2. 提升新任务能力。 令人惊喜的是,LwF 在新任务上的准确率甚至可能超过微调。
  3. 高效简洁。 训练速度快于联合训练,不需保存旧数据集。

对于实践者而言,这让更新已部署的 AI 系统变得更简单——比如机器人可以持续学习新技能而不丢失旧本领。对整个 AI 领域来说,LwF 是向终身学习迈出的坚实一步: 让机器像人类一样,随着时间积累知识,而不必重头再来。