FA
Memory-Efficient Incremental Learning Through Feature Adaptation (opens new window)
0. 摘要
我们提出了一种增量学习的方法,该方法保存了来自先前学习类别的训练图像的特征描述符,而非图像本身,这与大多数现有方法不同。通过保存低维的特征嵌入,可以显著减少内存占用。假设模型会随着新的类别逐步更新,每次仅有新数据可用。这需要在无法访问相应原始训练图像的情况下,将先前存储的特征向量适配到更新后的特征空间。特征适配是通过多层感知机(MLP)学习的,该模型以训练图像上原始网络与更新网络的输出特征对作为训练数据。实验验证表明,这种变换对先前类别的特征具有良好的泛化能力,并将特征映射到特征空间中的一个判别性子空间。因此,分类器可以在没有旧类别图像的情况下联合优化新旧类别的分类任务。实验结果表明,我们的方法在增量学习基准测试中达到了最先进的分类准确性,同时与保存图像的方法相比,内存占用降低了至少一个数量级。
1. 引言
深度神经网络在许多计算机视觉问题上表现出色,例如图像分类【15,22,37】和目标检测【14,31】。然而,大多数常见模型需要大量标注数据进行训练,并假设所有可能类别的数据在训练时可同时获取。
与此不同的是,类别增量学习【30】处理一种场景:训练数据是按顺序接收的,先前类别的数据会随着新类别数据的到来被丢弃。因此,所有类别不会一次性学习。理想情况下,模型应该能够在学习新类别的同时保留从先前类别中学到的知识。然而,这会引发一个重要问题,因为神经网络已知会快速遗忘过去学到的知识——这种现象被称为灾难性遗忘(catastrophic forgetting)【27】。最近的方法通过增加正则化项【20,23】鼓励网络保持与其先前状态相似,或者通过保存先前类别的一部分数据【30】来缓解神经网络的灾难性遗忘问题。
Rebuffi 等人【30】提出了一种成功增量学习系统的一个重要标准:“计算需求和内存占用应保持有界,或者至少随着已经见过的类别数量缓慢增长。”在我们的工作中,我们显著改进了增量学习系统的内存占用。我们提出保存一部分特征描述符而非图像的策略。这使得我们能够通过低维嵌入压缩来自先前类别的信息。例如,在使用 ResNet-18 进行 ImageNet 分类时,保存一个 512 维的特征向量所需的存储仅为 256×256×3 图像存储需求的约 1%(详见 5.3 节)。实验表明,与现有方法相比,我们的方法在增量学习基准测试中实现了更好的分类准确性,同时内存占用至少降低了一个数量级。
我们保存特征描述符而不是图像的策略面临一个严重潜在问题:随着模型对更多类别进行训练,特征提取器会发生变化,使得先前特征提取器生成的特征描述符变得不再适用。为了解决这一问题,我们提出了一种特征适配方法,可以学习两个特征空间之间的映射。如图 1 所示,我们的新方法可以学习特征空间的变化,并将保存的特征描述符适配到新特征空间。在所有图像特征位于相同特征空间后,我们可以训练一个特征分类器,对已见类别的特征进行正确分类。
本文贡献
本文的主要贡献如下:
- 我们提出了一种增量学习框架,其中保存的是先前特征描述符,而非先前图像。
- 我们提出了一种特征适配方法,用于在模型更新时将先前的特征描述符映射到其正确值。
- 我们在流行的类别增量学习基准测试上验证了我们的方法,并表明其在 ImageNet 上相较于其他最新方法实现了最优的准确性,同时显著降低了内存占用。
2. 相关工作
深度学习时代之前的增量学习文献包括增量训练的支持向量机【5】、随机森林【32】以及能够推广到新类别的度量学习方法【28】。本文的重点主要放在更近期的基于深度学习的方法上。这些方法的核心通常是“重放”(rehearsal)的概念,即在用新类别数据更新模型时,保存并重用先前类别数据【33】。
2.1 非重放方法
非重放方法不保存先前类别的任何数据。常见方法包括:
- 为新类别集增加网络容量【35,38】;
- 权重合并(Weight Consolidation),即识别对先前类别重要的权重,并减缓这些权重的学习速率【20】。
Chaudhry 等人【6】通过加入基于 KL 散度的正则化项改进了权重合并方法。Liu 等人【24】通过旋转网络的参数空间,展示了权重合并在旋转参数空间中更为有效。Aljundi 等人【1】无需标注数据,以无监督的方式计算每个参数的重要性。
Learning without Forgetting (LwF)【23】(将在第 3 节中详细讨论)通过在损失函数中加入知识蒸馏【16】项,缓解了灾难性遗忘。该蒸馏项鼓励新类别的网络输出接近原始网络输出。Learning without Memorizing【8】通过增加基于注意力图的蒸馏项扩展了 LwF 方法。Zhang 等人【45】指出,LwF 生成的模型通常对旧类别或新类别存在偏向性。他们为新类别训练一个单独的模型,并通过无标注辅助数据整合两个模型。Yu 等人【44】通过使用新类别质心估计特征表示漂移,更新了旧类别的质心以进行 NME 分类【30】。
2.2 基于重放的样本保存
Lopez-Paz 和 Ranzato【25】在梯度更新中加入约束,同时在学习新类别时将信息传递到先前类别。Rebuffi 等人提出的增量分类器与表示学习(iCARL)【30】保存了一部分图像(称为“样本”),并在更新新类别的网络时包含这些样本。样本选择通过一种高效算法“herding”实现【39】。研究表明,当使用均值类向量【28】而非网络的学习分类器进行分类时,分类准确性更高。iCARL 是文献中最有效的方法之一,将作为我们的主要基线。Castro 等人【4】通过端到端的方式学习网络和分类器,扩展了 iCARL 方法。类似地,Javed 和 Shafait【18】通过提出动态阈值移动算法,端到端学习分类器。最近的研究还包括通过纠正偏差和在损失函数中引入附加约束【2,17,41】扩展 iCARL。
2.3 基于生成图像的重放
这些方法使用生成模型(如 GANs【10】)生成伪造图像以模拟过去的数据,并在学习新类别时使用生成的图像更新网络【36,40】。He 等人【13】使用多个生成器增加容量,以适应新类别。然而,这些方法的主要缺点是它们通常仅适用于低分辨率图像的数据集,或者其成功依赖于将生成的图像与真实图像结合使用。
2.4 基于特征的方法
早期的基于特征生成的工作主要关注零样本学习【3,42】。Kemker 等人【19】使用双记忆系统,包括快速学习新类别的短期记忆和存储旧类别的长期记忆。他们在内存中存储特征向量的统计信息,例如均值向量和协方差矩阵。Xiang 等人【43】也存储特征向量的统计信息,并学习一个特征生成器生成旧类别的特征向量。这些方法的缺点在于它们依赖于预训练的网络。这与其他方法(如 LwF 和 iCARL)不同,后者从零开始学习网络。
本文提出了一种基于特征的重放方法。与现有基于特征的方法不同,我们不从类别统计中生成特征描述符,而是将保存的特征描述符适配到新的特征空间。我们的方法允许从头开始训练网络,不依赖预训练模型(如【19,43】)。与现有的重放方法相比,我们的方法通过保存特征而非图像显著降低了内存占用。
我们的方法受 Hariharan 和 Girshick 提出的特征生成器【12】启发。他们的方法通过学习类内特征变换作为少样本学习问题中的数据增强手段。我们的方法有所不同,我们在网络的两个不同增量状态下学习同一图像的特征对之间的变换函数。最后,尽管 Yu 等人【44】通过插值估计特征质心的变化,但我们的方法学习了适用于所有保存特征的通用变换函数。
3. 增量学习背景
本节介绍了增量学习任务,并总结了用于训练网络和应对灾难性遗忘的常见策略,包括知识蒸馏和旧数据的保存方法。
3.1 问题定义
我们给定一组图像
3.2 分类器
学习的分类器通常是一个卷积神经网络(CNN),记作
通过某种损失函数(如交叉熵损失)来训练网络参数
其中
在增量学习中,随着任务的增加,模型输出的类别数量不断增长。在任务
3.3 知识蒸馏
增量学习中的主要挑战之一是灾难性遗忘【11,27】。在任务
Learning without Forgetting (LwF)【23】通过引入知识蒸馏损失【16】来缓解该问题。这种损失是一种改进的交叉熵损失,鼓励当前任务模型
其中
其中
3.4 旧类别数据的保存
一种常见的方法是保存一些旧类别的图像,并在训练新任务时使用它们【30】。在任务
对旧类别数据的训练可以有效缓解先前任务类别的灾难性遗忘。在 iCARL【30】中,样本选择算法“herding”被用于生成
4. 高效内存增量学习
我们的目标是保存紧凑的特征描述符(即
为了解决这一问题,我们提出了一种特征适配方法,该方法通过特征适配网络
- 使用分类和蒸馏损失训练主干卷积神经网络(CNN);
- 学习特征适配网络以适配存储的特征到当前任务的特征空间;
- 使用当前任务的特征和已适配的旧任务特征训练特征分类器。
特征分类器

4.1 网络训练
这一部分描述了主干卷积神经网络
余弦归一化:在多个学习任务中提出过【23,26】,包括增量学习【17】。网络预测(公式 (1))基于余弦相似性,而非简单的点积。这等价于
特征蒸馏:特征描述符上的附加蒸馏项。类似于公式 (3),在损失函数中增加一个约束,鼓励新特征提取器
其中
其中
特征蒸馏已经被用于增量学习中,替代知识蒸馏损失【17】,但仅用于保存图像的特征向量。它也与注意力蒸馏【8】在理念上相似,后者对两个模型生成的注意力图增加约束。 余弦归一化和特征蒸馏提高了我们方法和基线的准确性。其实际影响将在 5 节中详细研究。
4.2 特征适配
概述 特征适配在每个任务的 CNN 训练完成后进行。以下我们首先描述针对前两个任务的特征适配过程,然后将其扩展到后续任务。
在任务
此时我们有两个特征集合:来自任务 1 的
一旦特征适配网络训练完成,我们使用
特征适配网络的训练 在任务
其中
- 第一项
鼓励适配特征 与目标特征 相似。这与特征蒸馏损失(公式 (5))相同。 - 第二项
是交叉熵损失, 是固定的网络分类器。该项鼓励适配后的特征属于正确的类别 。
减少
4.3 特征分类器的训练
我们的目标是分类属于
我们通过利用来自先前任务的适配特征描述符训练一个更准确的特征分类器来解决这个问题。
在任务
5. 实验
我们描述了实验设置,然后在每个数据集上报告分类准确性的结果。此外,我们测量了特征适配方法的质量,这是独立于分类任务的性能指标。最后,我们详细研究了关键实现选择和参数的影响。
5.1 实验设置
数据集
我们在 CIFAR-100【21】、ImageNet-100 和 ImageNet-1000 上进行了实验。ImageNet-100【30】是 ImageNet-1000 数据集【34】的一个子集,包含从原始 1000 个类别中随机抽样的 100 个类别。我们的实验设置与 iCARL【30】一致。网络以类别增量的方式进行训练,每次仅考虑当前任务可用的数据。我们用
评价指标
我们报告两个评价指标:
- 随任务增加的所有类别分类准确性曲线;
- 平均增量准确性(average incremental accuracy),即第一项曲线中的点的平均值。CIFAR-100 使用 Top-1 准确性,ImageNet 使用 Top-5 准确性。
基线方法
我们的主要基线是文献中扩展的两种方法:Learning Without Forgetting (LwF)【23】和 iCARL【30】。
- LwF 不保存先前任务的数据,通过分类和蒸馏损失(公式 (4))进行训练。我们使用 Rebuffi 等人【30】提出的多分类版本(LwF.MC)。
- iCARL 在先前任务中保存代表性训练图像作为样本集,并在更新网络时包含这些样本。我们在实现时将 iCARL 中每类样本数量
固定,与原始方法不同(原始方法中总样本数固定,随类别数量变化调整每类样本数)。
我们还对 iCARL 和 LwF 进行了扩展,添加了余弦归一化和特征蒸馏损失(详见第 4.1 节),这些改进已被证明可以提高准确性。改进后的方法分别称为
实现细节
- 特征提取网络
为 ResNet-32【15】(CIFAR-100)和 ResNet-18【15】(ImageNet-100 和 ImageNet-1000)。 - 特征分类器
使用线性 SVM【7,29】。 - 特征适配网络
是一个两层多层感知机(MLP),带有 ReLU 激活【9】,输入/输出维度为 ,隐藏层维度为 。 - 损失函数(公式 (4))中的知识蒸馏权重
设置为 1,因此激活函数 为 sigmoid。
其他超参数与 Rebuffi 等人【30】一致:
- 批大小为 128,权重衰减为
,学习率为 2.0。 - CIFAR-100 的每个任务训练 70 个 epoch,在第 50 和 64 个 epoch 将学习率降低 5 倍;
- ImageNet 训练 60 个 epoch,在第 20、30、40 和 50 个 epoch 将学习率降低 5 倍。
5.2 内存占用的影响
我们的主要目标是改进增量学习框架的内存需求。我们首先在内存占用和平均增量准确性之间比较我们的方法与基线方法。内存占用是指为数据集的所有类别保存的数据(特征或图像)的大小。
图 2 显示了不同方法在 CIFAR-100、ImageNet-100 和 ImageNet-1000 上的内存占用与平均增量准确性的关系。对于
从图 2 可以看出,在 CIFAR-100 上,我们的方法依然可以实现较高的准确性,但内存节省相对有限。这是因为 CIFAR-100 图像分辨率较低(32×32×3,3.072 KB),而保存特征描述符(
即使忽略特征相较于图像的内存节省,我们的方法在大多数情况下仍然优于
图 3 显示了 ImageNet-1000 上保存的特征数量(我们的方法)和图像数量(
5.3 与现有方法的比较
表 1 显示了我们的方法与文献中现有方法在内存总占用和平均增量准确性方面的对比。图 4 展示了每个任务的分类准确性曲线。我们报告了在每类保存
表 1:ImageNet-100 和 ImageNet-1000 的平均增量准确性和内存占用
方法 | ImageNet-100 内存(MB) | ImageNet-100 准确性 | ImageNet-1000 内存(MB) | ImageNet-1000 准确性 |
---|---|---|---|---|
原始 LwF【23】†* | - | 0.642 | - | 0.566 |
原始 iCARL【30】†* | 375 | 0.836 | 3750 | 0.637 |
EEIL【4】† | 375 | 0.904 | 3750 | 0.694 |
重平衡(Rebalancing)【17】 | 375 | 0.681 | 3750 | 0.643 |
BiC(不校正)【41】† | 375 | 0.872 | 3750 | 0.776 |
BiC【41】† | 375 | 0.906 | 3750 | 0.840 |
- | 0.891 | - | 0.804 | |
375 | 0.914 | 3750 | 0.802 | |
Ours | 48.8 | 0.913 | 488.3 | 0.843 |
Ours-hybrid | 236.3 | 0.927 | 2863.3 | 0.846 |
注释:
- † 表示结果来自原文。
- 表示数字从原文图表中估计得出。
从结果可以看出,与保存图像的方法相比,我们的方法(基于特征保存和适配)在内存占用方面显著降低,同时在准确性上与最先进的方法持平或更优。此外,Ours-hybrid 通过结合图像和特征保存进一步提升了准确性。
5.4 参数的影响
我们分析了方法中关键超参数的影响。本节所有实验均在 CIFAR-100 数据集上进行,其中 10% 的原始训练数据被保留作为验证集。
余弦分类器的影响
我们在基础网络(即 LwF.MC)上评估了余弦分类器的效果。当使用余弦分类器时,平均增量准确性为 48.7%,而不使用时为 45.2%。因此,我们在所有基线和方法中都包含了余弦分类器。
参数
参数
隐藏层维度
我们评估了特征适配网络
网络深度的影响
我们研究了特征适配网络
特征蒸馏的影响
我们对特征蒸馏(公式 (5))的超参数
特征适配质量
我们通过测量适配特征与其真实值之间的平均相似性,评估特征适配过程的质量。给定图像
这衡量了适配特征相对于真实特征的准确性。我们重复验证实验,测量所有特征的平均
平衡特征分类器的影响
Wu 等人【41】指出,基于类别不平衡的训练会导致对新类别的偏置。我们在附录 C 中研究了这一问题。实验表明,当使用平衡的类别样本数训练特征分类器
6. 结论
我们提出了一种新颖的增量学习方法,该方法保存特征描述符而非图像。我们的方法引入了特征适配函数,该函数可以在模型更新新类别时准确地更新保存的特征描述符。通过对分类准确性和特征适配质量的全面评估,实验结果表明:在显著降低内存占用的同时,我们的方法能够实现最先进的分类准确性。
此外,我们的方法与现有工作【23,30】是正交的,可以结合使用以进一步提高准确性,同时保持低内存需求。