想象一下,你教一个聪明的学生一项新技能。你从微积分开始,他掌握得很好。然后你教他化学,他也学得很出色。但当你问他一个微积分问题时,他却茫然地看着你。在学习化学的过程中,他完全忘记了微积分。
这种令人沮丧的现象,被称为灾难性遗忘 (catastrophic forgetting) , 是人工智能——尤其是深度神经网络——面临的一大障碍。
当我们在一个新任务上微调一个预训练网络时,它会调整其内部参数 (权重) 以在该任务上取得更好的表现。不幸的是,这通常会覆盖掉先前任务所需的关键信息。结果呢?在新任务上表现出色,在旧任务上表现糟糕。这个限制阻碍了通用的、能够持续学习的新型 AI 系统的发展——此类系统可以不断获取新技能,而不需要为每个任务都建立一个独立而庞大的模型。
但是,如果我们不去覆盖旧的知识,而能在网络中找到未被使用的空间,并巧妙地将新技能“打包”进去呢?
这就是 PackNet 背后的核心思想。它由伊利诺伊大学厄巴纳-香槟分校的 Arun Mallya 和 Svetlana Lazebnik 提出。PackNet 的灵感并非来自终身学习,而是来自网络压缩 。 它巧妙地剪枝并再训练网络,使一个单一模型能够承担多个复杂任务——同时完美地保留在旧任务上的性能。
有限大脑的问题: 灾难性遗忘
让我们来正式描述这个挑战。深度神经网络是大量相互连接的神经元集合,每个神经元都有可调节的权重。训练过程会调整这些权重,以最小化特定任务的误差。当我们让网络学习第二个任务时,通常会使用新领域的数据来进行微调。
网络渴望学习,会修改其权重以掌握任务 B。不幸的是,其中一些权重对任务 A 至关重要,这导致了灾难性遗忘: 任务 B 表现出色,任务 A 却一塌糊涂。
有几种方法试图通过“软性”约束来解决这个问题:
- 无遗忘学习 (Learning without Forgetting, LwF) : 在任务 B 的训练过程中添加一个蒸馏损失,鼓励网络的输出与原始网络在任务 A 数据上的响应保持相似。这相当于提醒网络: “学习化学,但要尽量保持数学家的思考方式。”
- 弹性权重巩固 (Elastic Weight Consolidation, EWC) : 计算哪些权重对任务 A 最重要,并在任务 B 的训练过程中惩罚对这些权重的重大改动。重要的参数被弹性地“拉住”,允许微调,但会被拉回原来的位置。
尽管这些方法很巧妙,但当任务差异过大时,它们仍会遇到困难。PackNet 的方法更为直接: 它不是温和地鼓励网络不要忘记,而是锁定那些关键权重。
PackNet 方法: 剪枝、再训练和再利用
PackNet 的策略是一个简单而强大的三步循环——剪枝、再训练和再利用——对于每个新任务重复执行。该方法利用了深度网络中的冗余性: 它们通常包含的参数远超解决单个任务所需。那些不必要的权重就成为了新任务的可用资源。
为了理解这个过程,让我们看看 PackNet 如何依次将多个任务添加到一个模型中。

图 1: 一个滤波器在连续学习三个任务时的演变。灰色、橙色和绿色权重分别对应任务 I、II 和 III。白色圆圈表示被剪枝后可用于新学习的权重。
第 1 步: 学习任务 I 并剪枝
从一个在首个任务上训练好的密集网络开始——例如 ImageNet 分类 (图 1a) 。训练完成后,对每层权重按其绝对值排序,并将一定比例 (如 60%) 的最小权重置为零,这就是权重大小剪枝。低幅值权重通常对输出贡献较小。
这种突然的移除会降低性能,所以我们在任务 I 上进行再训练以恢复准确率。剩余权重调整后会补偿被移除的部分。此时我们得到一个稀疏但强大的网络 (图 1b) ,其性能几乎与原始密集网络相同。
第 2 步: 锁定并学习任务 II
这就是 PackNet 的关键所在。再训练后,我们冻结任务 I 的所有保留权重 (灰色) ,它们不再被修改,从而完美保留原任务的性能。
然后我们开始训练任务 II——例如鸟类物种分类——只允许之前剪枝掉的权重 (白色) 进行更新。这些新释放的参数变为橙色权重 (图 1c) ,它们在学习新任务的同时,复用灰色权重作为通用特征提取器。
第 3 步: 重复此过程
任务 II 训练完成后,再次剪枝其新权重 (橙色) 一定比例,重新训练以恢复准确率 (图 1d) ,然后冻结它们。再开始任务 III,使用剩余空闲位置 (绿色权重,图 1e) 。
这一迭代过程持续进行,直到没有可用的剪枝权重,或所有预期任务都已经添加完毕。
推理与开销
在测试阶段,每个任务都会使用一个二进制掩码,只激活对应的权重。以任务 II 为例,掩码仅激活灰色 (任务 I) 和橙色 (任务 II) 的权重,其他权重均关闭。这一操作计算代价低廉,几乎不增加额外开销。
总体开销极小——只需存储这些小型的二进制掩码。PackNet 不必保存完整的新网络,而是保存轻量化的任务掩码,显著节省内存空间。
对 PackNet 进行测试
研究人员通过在多样化且富有挑战的数据集上进行大量实验验证了 PackNet 的有效性。

图 2: PackNet 实验所用的数据集,涵盖从大规模场景识别到细粒度对象分类的范围。
他们同多个基线方法进行了比较:
- 独立网络 — 每个任务独立训练对应的网络 (准确率最高,效率最低) 。
- 仅分类器 — 冻结整个网络,仅为每个任务训练一个新的分类头。
- LwF — 无遗忘学习,通过蒸馏损失保持旧知识。
- 联合训练 — 在所有任务数据的联合集合上训练一个单一网络 (在数据集差异较大时往往不切实际) 。
实验 1: 在细粒度分类任务中进行打包
从一个在 ImageNet 上训练的 VGG-16 网络出发,作者依次添加三个细粒度分类任务: CUBS Birds、Stanford Cars 和 Oxford Flowers 。

图 3: PackNet 在各任务上的性能几乎与独立网络相同,而仅使用少量存储空间。
性能: PackNet 的错误率与独立网络相比仅相差 1–2%,在 Flowers 数据集上仅差 1.1%,Cars 上差 1.78%。
与 LwF 比较: LwF 在 ImageNet 上的错误率激增了 10%,而 PackNet 在初始剪枝后性能保持稳定。
效率: 一个 595 MB 的 PackNet 可同时处理四个任务,而独立网络总共需要超过 2 GB 存储。
这种稳定性让 PackNet 与众不同。下面的图展示了随着任务增加时错误率的变化。

图 4: 在使用 LwF (左) 时,随着新任务学习,旧任务性能下降;而在使用 PackNet (右) 时,旧任务性能被锁定保持稳定。
实验 2: 添加另一个大型任务——ImageNet + Places365
PackNet 能处理同样规模庞大的数据集吗?作者将大型 Places365 场景分类任务添加至同一个在 ImageNet 上训练的网络。

图 5: PackNet 避免了联合训练的陷阱,在 ImageNet 上维持优异表现,并在 Places365 上取得有竞争力的准确率。
PackNet 相较专用 Places 网络仅高出 0.64% 的错误率,而在 ImageNet 上超越联合训练模型近 3%。 联合训练受到数据集失衡及优化冲突的影响,而 PackNet 顺序训练的方式有效避免了这些问题。
实验 3: 它可在现代架构上奏效吗?
VGG-16 体积庞大且冗余——非常适合剪枝。但 PackNet 能否在更高效的现代架构如 ResNet 或 DenseNet 上取得成功?

图 6: PackNet 能泛化到不同架构,即使在紧凑网络上也能保持接近最优的性能。
答案是肯定的。即便在 ResNet-50 和 DenseNet-121 上,性能也仅比独立训练模型差 1–2%。 更有趣的是,在 Flowers 数据集上,PackNet 的表现超过了专用网络,这可能是因为剪枝减少了过拟合——这是一个意外但令人欢迎的额外收益。
深入探究: PackNet 的原理
除了验证效果,研究人员还进一步探究了其工作机制。
任务顺序重要吗?
随着任务不断加入,可用参数会减少。任务引入得越晚,可用容量越小,误差也略有上升。

图 7: 任务添加得越晚,错误率越高。较早学习的任务能享受更多可用参数的优势。
若任务顺序可规划,应优先安排复杂或重要的任务在前。
剪枝多少才算过度?
剪枝更多是否总是坏事?不一定——前提是之后要进行再训练。

图 8: 激进剪枝会短暂提高错误率,但再训练能恢复性能——彰显了深度网络的冗余和韧性。
即便高达 90% 的大幅剪枝,只要进行再训练,其准确率损失也很小,这表明深度网络存在巨大的可重利用冗余。
需要修改整个网络吗?
有人可能会问,只微调最后几层是否足够?作者对此做了测试。

图 9: 深层适应非常关键。微调所有再利用层能得到最佳效果,尤其在复杂视觉任务中。
微调所有可用层比仅调整分类器或全连接层能显著降低错误率。简而言之: 功效在于深度适应。
为什么不剪整个滤波器?
剪整个滤波器 (而非单个权重) 能简化结构,甚至允许同时进行多任务推理,但代价昂贵。

图 10: 细粒度的权重级剪枝表现远胜于滤波器级剪枝,后者限制容量同时损害旧任务准确率。
滤波器剪枝难以激进执行否则性能急剧下降。它还常常移除最后几层的神经元,导致早期卷积阶段容量不足——而这些阶段对学习新视觉模式至关重要。权重级剪枝提供更细粒的控制并取得更佳结果。
结论: 迈向终身神经学习
PackNet 为“灾难性遗忘”问题提供了一个优雅且高效的解决方案。通过迭代的剪枝、再训练和再利用 , 它让一个固定大小的网络能够依次学习多个任务——几乎不会丧失先前任务的能力。
它具有高效的内存利用率、架构无关性,并且易于实现。通过充分利用深度模型的天然冗余,PackNet 将曾被认为浪费的过参数化转变为持续学习的可重用资源。
想象一个智能体,可以识别物体、在环境中导航、并理解语音——所有这些能力都在同一个神经“脑”中完成,每新增一个技能都不会忘记其他技能。
PackNet 是迈向 AI 终身学习 这一愿景的重要一步。
](https://deep-paper.org/en/paper/1711.05769/images/cover.png)