想象一下,你有一位训练有素的专家——一位精通意大利菜的大厨。现在,你让他去学习法餐。在机器学习中,典型的方法称为 微调 (fine-tuning),这就像让大厨覆盖掉部分意大利菜的知识,以便腾出空间学习法餐技巧。一段时间后,他或许能成为出色的法餐厨师,但他的拿手意面却不再那么美味了。这个问题被称为 灾难性遗忘 (catastrophic forgetting) , 它是构建能够持续学习新技能的人工智能系统时的一大挑战。

为了绕过这一限制,研究者通常会为每个任务创建一个独立的“专家”模型: 一个模型用于识别鸟类,另一个用于识别汽车,还有一个用于医学图像,依此类推。这种方式极其低效——尤其是在存储空间有限的设备 (如手机或传感器) 上部署 AI 时。

但如果有更好的方法呢?假设我们不重新训练这位专家大厨,而是给他一套新的指令——一个 掩码 (mask)——告诉他在做新菜系时该用哪些已有技能、忽略哪些技能,会怎样?这正是伊利诺伊大学厄巴纳-香槟分校的 Arun Mallya、Dillon Davis 和 Svetlana Lazebnik 提出的 Piggyback 方法的核心思想。他们的论文 《Piggyback: Adapting a Single Network to Multiple Tasks by Learning to Mask Weights》 提出了一种方法,通过学习选择性地开启或关闭权重,使单个预训练神经网络能够适应多个新任务。该方法完全避免灾难性遗忘,并以极小的内存开销实现任务扩展。


持续学习的挑战

在探讨 Piggyback 的工作原理前,先来看一下更广泛的背景。传统让模型适配新任务的方法是 微调 (fine-tuning)——即将一个在大型数据集 (如 ImageNet) 上预训练的网络,继续在新的 (通常更小的) 数据集上训练。此方法效果不错,但由于模型权重被覆盖,常常导致灾难性遗忘。

已有多种方法被提出以缓解这一问题:

  • 无遗忘学习 (Learning without Forgetting, LwF): 添加一个正则化项,鼓励网络在新数据上的输出与原始响应保持相似,从而保留先前知识。
  • 弹性权重巩固 (Elastic Weight Consolidation, EWC): 找出对旧任务至关重要的权重,并在新训练过程中惩罚这些权重的改变。
  • PackNet: 在完成每个任务后迭代修剪不重要的权重,以释放参数供后续任务使用。

尽管这些方法有所帮助,但仍存在权衡。旧任务性能可能退化,而且如 PackNet 这样的方案对任务添加顺序非常敏感——后学的任务可用参数更少,准确率下降。

Piggyback 模型提出了截然不同的思路: 如果我们根本不改变网络的权重呢?


核心思想: 学习掩码,而非修改权重

Piggyback 的关键洞察是保持原始预训练网络 (即 骨干网络) 完全不动。所有权重保持固定。为了学习新任务,方法会为每一层学习一个 二元掩码 (binary mask)——其形状与该层权重张量相同,元素仅由 0 和 1 组成。

在针对特定任务进行推理时,这个二元掩码会逐元素应用于骨干网络的权重。掩码为 1 时,使用原始权重;掩码为 0 时,该权重被“关闭”。结果是一个任务特定的子网络,复用了相同的骨干参数。

Piggyback 方法概览。在训练期间,实值掩码权重通过阈值处理生成二元掩码。该掩码应用于固定骨干权重,为新任务生成有效的滤波器。反向传播的梯度更新实值掩码权重。

图 1: Piggyback 掩码方法概览。实值掩码权重经阈值化生成二元掩码,从而在不修改骨干参数的情况下实现任务特定的适应。

这个概念很优雅,但挑战在于: 二元掩码是不可微的。由于掩码值仅为 0 或 1,没有平滑的梯度可用于反向传播指导学习。


可微的技巧

为克服这一问题,Piggyback 借鉴了二值化神经网络中的技术。作者不直接学习二元掩码 \( m \),而是学习一个形状相同的连续实值掩码 \( m^r \)。在前向传播过程中,这些实值掩码权重通过一个简单的阈值函数转换为二元值:

硬阈值函数将实值掩码权重转换为二元掩码。高于阈值 τ 的值变为 1,否则为 0。

二元阈值化使用固定的阈值参数 \( \tau \) 将实值掩码权重转化为二元形式。

形式化地,一个掩码元素的计算如下:

\[ m_{ji} = \begin{cases} 1, & \text{if } m^r_{ji} \geq \tau \\ 0, & \text{otherwise} \end{cases} \]

该层输出定义为:

\[ y = (W \odot m)x \]

其中 \( W \) 是固定的骨干权重,\( m \) 为二元掩码,\( \odot \) 表示逐元素乘法。

反向传播过程采用一个巧妙的 直通估计器 (straight-through estimator): 近似不可微阈值函数的梯度为 1。我们计算关于二元掩码 \( m \) 的梯度,并用同样的梯度更新实值掩码 \( m^r \)。

全连接层权重的标准反向传播方程,展示了梯度如何从输出激活传播到权重。

标准权重更新方程,用作 Piggyback 修改反向传播的参照。

在 Piggyback 的公式中,掩码的梯度为:

二元掩码的反向传播方程,说明梯度与输入激活及骨干权重的关系。

掩码梯度与原始权重成正比,使学习在各层间更稳定。

这在直觉上合理: 每个掩码元素的重要性与其控制的权重大小相关。尽管这种梯度是带噪声的近似值,但它能有效起到正则化作用。

训练完成后,实值掩码被弃用,只保留紧凑的二元掩码——每个任务 每个参数仅需 1 位比特 , 对于一个 32 位模型来说仅约 3% 的额外开销。


Piggyback 的实证测试

作者在多个数据集、架构和领域上进行了广泛实验,以验证 Piggyback 的有效性。

实验使用的数据集摘要,展示了训练样本数、测试样本数和类别数量。

表 1: 评估数据集范围涵盖大型 ImageNet、Places365,以及细粒度与领域偏移任务,如 WikiArt 和 Sketch。

WikiArt 与 Sketch 数据集中示例,展示相较自然图像的领域差异。

图 2: 来自领域偏移数据集的示例——WikiArt (绘画) 与 Sketch (素描) 。

研究对比了以下方法:

  • 仅分类器 (Classifier Only): 冻结骨干,仅训练新的分类器头。
  • 独立网络 (Individual Networks): 为每个任务分别微调完整网络。
  • PackNet: 通过迭代剪枝和重训练添加任务。

细粒度分类

首个评估将 ImageNet 训练的 VGG-16 网络应用于六个细粒度任务。

比较使用 VGG-16 骨干在不同细粒度分类任务上的 top-1 错误率。Piggyback 始终与独立训练网络性能相当。

表 2: Piggyback 掩码的细粒度分类结果。

受益于二元掩码的正则化效应,Piggyback 略优于逐任务微调的网络。与性能依赖任务顺序的 PackNet 不同,Piggyback 的结果与任务顺序无关且无遗忘。

添加大规模任务

随后,该方法在 ImageNet 训练的网络上测试添加大型数据集 Places365。

在 ImageNet 训练的 VGG-16 上添加 Places365 的错误率比较。Piggyback 几乎匹敌独立训练模型。

表 3: Piggyback 在扩展到大规模任务时保持与独立模型 0.36% 以内的差距。

Piggyback 成功同时学习两个任务,性能损失可忽略不计,展示了强大可扩展性。

现代架构

Piggyback 能否通用于现代架构,如具批量归一化和跳连的 ResNet 与 DenseNet?

VGG-16 BN、ResNet-50 和 DenseNet-121 上不同任务的错误率比较。Piggyback 在各种架构上表现稳定。

表 4: Piggyback 可平滑适配多种网络架构。

该方法可直接迁移,但更深的网络上会出现轻微性能差距 (约 2%) ,尤其针对与 ImageNet 域差距较大的任务。下一节将解释此现象。


解析 Piggyback 机制

1. 初始化的重要性

Piggyback 真在学习新特征吗?作者对 ResNet-50 骨干进行了三种初始化实验——ImageNet、Places365 与随机初始化——以探究其影响。

Piggyback 使用不同骨干初始化时的错误率。ImageNet 预训练提供了最佳特征复用。

表 5: 强大且多样的初始化对 Piggyback 性能至关重要。

结果表明,骨干初始化至关重要。随机权重表现很差,而 ImageNet 预训练的骨干因为视觉多样性更高,性能甚至超越 Places365。

2. 掩码学到了什么?

通过观察 掩码稀疏度 (mask sparsity)——即“关闭”权重所占比例,我们可以量化每个任务对骨干的调整程度。

Piggyback 掩码在不同数据集与架构下关闭的权重比例。领域偏移任务稀疏度更高。

表 6: 稀疏度反映每个数据集停用权重的比例。

较高稀疏度对应任务更困难或领域差异更大。与 ImageNet 相似的花卉任务仅关闭约 5% 权重;而像 WikiArt、Places365 这类跨域任务稀疏度高达 30–40%。

逐层分析进一步揭示了此趋势。

VGG-16 中不同任务下每层被掩盖权重的比例。前期层保持不变,后期层适应性更强。

图 3: 逐层稀疏模式显示,低层特征 (边缘、纹理) 常被重用,而高层则根据任务差异调整。

早期卷积层 (边缘与纹理) 被大量共享;深层 (物体部件与语义) 变化最多,尤其在领域偏移任务中。

3. 处理大域偏移: 批量归一化的作用

对于如 WikiArt 这样的数据集,从 ImageNet 继承的固定批量归一化 (BN) 参数可能导致激活统计失真。允许 BN 层针对每任务训练可有效缓解此问题。

学习任务特定的批量归一化参数可恢复领域偏移任务的准确率。

表 7: 训练任务专属 BN 参数提升领域偏移任务的表现。

自适应 BN 层的 Piggyback 在 WikiArt 上的 top-1 错误率改善高达 3%,显著缩小与独立网络的性能差距,同时内存开销极小。


超越分类: 更广泛的应用

Piggyback 的灵活性还延伸至多领域基准与密集预测任务。

视觉十项全能挑战赛

视觉十项全能挑战赛 (Visual Decathlon) 中——含十个分类任务,从数字识别到人物动作识别——模型评估同时考虑准确率与参数效率。

视觉十项全能挑战赛结果。Piggyback 以极小参数增加实现高准确率。

表 8: 视觉十项全能挑战赛结果显示,Piggyback 以 1.28× 的参数开销实现顶级成绩。

Piggyback 取得了竞争级准确率,同时参数开销仅为单网络的 1.28 倍 (其他方法则需 2–10 倍) 。

扩展到语义分割

作者还将 Piggyback 应用于 语义分割 (semantic segmentation) , 通过添加新层 (分类器与反卷积层) 从零训练,同时在骨干上使用掩码。

分类 (左) 与分割 (右) 设置示意图。两者中骨干网络均使用 Piggyback 掩码,分割的新层从零微调。

图 4: 将 Piggyback 掩码与传统微调结合用于分割任务。

该混合方案表现优异——平均交并比 (mIOU) 达到 61.41,与完全微调基线 (61.08) 相当,但所需存储仅为其一小部分。


结论: 迈向终身学习的一大步

Piggyback 方法以简洁而创新的方式解决了模型适应问题。通过保持骨干权重固定并学习轻量二元掩码,它为灾难性遗忘提供了切实可行的解决方案。

主要收获:

  • 无遗忘: 旧任务性能保持不变。
  • 顺序无关: 任务学习顺序不影响结果。
  • 参数高效: 每个新任务仅需每参数 1 位比特。
  • 高准确率: 达到或超越独立训练网络。
  • 高度灵活: 适用于不同架构与场景。

Piggyback 代表了一次范式转变——让我们更接近可扩展、低能耗的终身学习 AI。对于边缘计算和设备端学习而言,这种方法意味着可以通过无线方式更新 AI 技能,而无需替换整个模型,从而推动未来真正的持续学习系统。