Geeks_Z の Blog Geeks_Z の Blog
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)

Geeks_Z

AI小学生
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)
  • Python

  • MLTutorials

  • 卷积神经网络

  • 循环神经网络

  • Transformer

  • VisionTransformer

  • 扩散模型

  • 计算机视觉

  • PTM

  • MoE

  • LoRAMoE

  • LongTailed

  • 多模态

  • 知识蒸馏

  • PEFT

  • 对比学习

  • 小样本学习

  • 迁移学习

  • 零样本学习

  • 集成学习

  • Mamba

  • PyTorch

  • CL

    • 增量学习
    • LoP
      • Loss of Plasticity in Deep Continual Learning
      • 0. 摘要
      • 1. 引言
      • 2. 可塑性在监督学习中的损失
      • 3. 强化学习中的可塑性损失
      • 4. 维持可塑性
      • 5. 讨论
      • 6. 在线内容
      • 7. 方法
        • 7.1. 持续反向传播的细节
      • 7.2. 持续 ImageNet 的细节
      • 7.3. 类增量 CIFAR-100
      • 10. 排列 MNIST 中稳健的可塑性损失
      • 11. 不同激活函数在缓慢变化回归问题中的可塑性损失
      • 12. 理解可塑性损失
    • Theory on Mixture-of-Experts in Continual Learning
  • CIL

  • 小样本类增量学习FSCIL

  • UCIL

  • 多模态增量学习MMCL

  • LTCIL

  • DIL

  • 论文阅读与写作

  • 分布外检测

  • GPU

  • 深度学习调参指南

  • AINotes
  • CL
Geeks_Z
2024-12-01
目录

LoP

Loss of Plasticity in Deep Continual Learning

0. 摘要

人工神经网络、深度学习方法和反向传播算法构成了现代机器学习和人工智能的基础。这些方法几乎总是在两个阶段中使用,一个阶段是更新网络的权重,另一个阶段是保持权重不变,同时使用或评估网络。这与自然学习以及许多需要持续学习的应用程序形成对比。目前尚不清楚深度学习方法是否适用于持续学习环境。在这里,我们展示了它们并不适用——标准的深度学习方法在持续学习环境中逐渐失去可塑性,直到它们的学习能力不再优于浅层网络。我们使用经典的 ImageNet 数据集和跨多种网络和学习算法变化的强化学习问题来展示这种可塑性损失。只有通过持续向网络注入多样性的算法才能无限期地维持可塑性,例如我们的持续反向传播算法,这是一种反向传播的变化,其中一小部分使用较少的单元会持续随机重新初始化。我们的结果表明,基于梯度下降的方法是不够的——持续的深度学习需要一个随机的、非梯度的组成部分来维持多样性和可塑性。

1. 引言

机器学习和人工智能在过去十年中取得了显著进展,在自然语言处理、生物学、游戏玩法和机器人技术等方面取得了里程碑式的成功。所有这些系统都使用人工神经网络,其计算受到人类和动物大脑运作的启发。这些网络中的学习指的是用于改变其连接权重(计算突触)强度的计算算法。最重要的现代学习方法基于随机梯度下降(SGD)和反向传播算法,这些想法至少起源于四十年前,但由于现在拥有更强大的计算机能力,它们变得更加强大。这些成功还归功于学习和训练技术的改进,这些技术共同使早期的想法在更大、更深层次的网络中变得有效。这些方法统称为深度学习。

尽管取得了成功,但深度学习在适应变化的数据方面存在困难。因此,在几乎所有应用中,深度学习被限制在一个特殊的训练阶段,然后在网络实际使用时关闭。例如,像 ChatGPT 这样的大型语言模型是在大型通用训练集上训练的,然后在特定于应用程序的较小数据集上进行微调,或者为了满足政策和安全目标,但在网络发布使用前它们的权重被冻结。目前的方法通常不建议在新数据可用时简单地继续在新数据上训练。新数据的影响要么太大,要么太小,与旧数据的平衡不当。这些原因尚不清楚,也没有明确的解决方案。在实践中,整合大量新数据的最常见策略是简单地丢弃旧网络,并在旧数据和新数据上一起从头开始训练新网络。当网络是一个大型语言模型,数据是互联网的很大一部分时,每次重新训练可能需要数百万美元的计算成本。此外,许多现实世界的应用程序需要适应变化。变化在预测市场和人类偏好的学习中无处不在,也存在于游戏、物流和控制系统中。如果深度学习系统能够像自然学习系统一样进行持续学习,它们将更加强大。

在这里,我们系统地展示了标准的深度学习方法在新数据的扩展训练中失去了学习能力,这种现象我们称之为可塑性损失。我们使用像 ImageNet 和 CIFAR-100 这样的经典数据集,为持续学习进行了修改,并使用了各种标准的前馈和残差网络以及各种标准的学习算法。在现代方法出现之前,人工神经网络中可塑性损失首次在心理学文献中展示。随着现代方法的出现,可塑性损失在一些最近的研究中变得可见,并且最近开始被明确探索。可塑性损失与灾难性遗忘不同,后者关注的是在不再呈现旧示例的情况下旧示例的不良表现。

尽管标准的深度学习方法在扩展学习中失去了可塑性,但我们展示了一个简单的变化使它们能够在监督学习和强化学习中无限期地保持可塑性。我们的新算法,持续反向传播,与经典反向传播完全相同,只是在每一步中,一小部分使用较少的单元会被重新初始化,就像它们在训练开始时被初始化一样。持续反向传播的灵感来自于自动生成和测试特征的悠久历史,从 1959 年的 Selfridge 的 Pandemonium 开始。

2. 可塑性在监督学习中的损失

本文的主要目的是展示标准深度学习系统中的可塑性损失。为了使展示具有说服力,它必须是系统的和广泛的。它必须考虑广泛的标准深度学习网络、学习算法和参数设置。对于这些中的每一个,实验必须运行足够长的时间以暴露长期的可塑性损失,并且必须重复足够多的次数以获得统计上显著的结果。总的来说,与训练单个网络相比,需要多三到四个数量级的计算。例如,使用大型语言模型进行系统研究在今天是不可能的,因为仅其中一个网络的单一训练运行就需要数百万美元的计算成本。幸运的是,自从深度学习发展以来,计算机硬件的进步一直在持续,系统研究已经成为可能,这些研究使用了早期的深度学习网络和一些寿命更长的测试问题。在这里,我们使用 ImageNet,这是一个经典的对象识别测试平台,在深度学习的兴起中发挥了关键作用,并且在今天仍然具有影响力。

ImageNet 数据库包含数百万张按名词(类别)标记的图像,例如动物类型和日常对象。典型的 ImageNet 任务是根据图像猜测标签。使用这个数据集的标准方式是将其划分为训练集和测试集。学习系统首先在一组图像及其标签上进行训练,然后训练停止,并在来自相同类别的单独测试集上测量性能。为了在最小化所有其他变化的同时使 ImageNet 适应持续学习,我们通过成对地取类别来构建一系列二元分类任务。例如,第一个任务可能是区分猫和房子,第二个任务可能是区分停车标志和校车。在我们的数据集中有 1,000 个类别,我们可以通过这种方式形成五十万个二元分类任务。对于每个任务,深度学习网络首先在两个类别的子集图像上进行训练,然后其性能在类别的单独测试集上进行测量。在一个任务的训练和测试之后,下一个任务以不同的类别对开始。我们称这个问题为“持续 ImageNet”。在持续 ImageNet 中,任务的难度随着时间的推移保持不变。性能的下降意味着网络正在失去其学习能力,这是可塑性损失的直接证明。

我们将各种标准深度学习网络应用于持续 ImageNet,并测试了许多学习算法和参数设置。为了评估网络在任务上的性能,我们测量了正确分类的测试图像的百分比。图 1b 中显示的结果具有代表性;它们是针对前几个任务表现良好的前馈卷积网络和训练过程,使用未修改的反向传播。

尽管这些网络在早期任务的测试集上学习了高达 88% 的正确率(图 1b,左面板),但在第 2,000 个任务时,它们对所有步长参数值都失去了大量的可塑性(右面板)。一些步长在前两个任务上表现良好,但随后在后续任务上表现更差,最终达到低于线性网络的性能水平。对于其他步长,性能最初上升然后下降,在 2,000 个任务后仅略高于线性网络。我们发现这是我们实验中的常见模式:对于一个调整良好的网络,性能首先提高然后大幅下降,最终接近或低于线性基线。我们观察到这种模式出现在许多网络架构、参数选择和优化器中。特定的网络架构选择、算法参数和优化器影响了性能开始下降的时间,但严重的性能下降发生在广泛的选择中。标准深度学习方法未能在后续任务中比线性网络学得更好,这直接证明了这些方法在持续学习问题中效果不佳。

明确保持网络权重小的算法是一个例外,并且通常能够维持可塑性甚至在许多任务中提高性能,如图 1c 所示。L2 正则化增加了大权重的惩罚;通过增加这种正则化,网络能够在至少 5,000 个任务中继续提高其学习性能。Shrink 和 Perturb 算法也表现良好。最好的是我们稍后讨论的持续反向传播算法。对于所有算法,我们测试了广泛的参数设置,并进行了多次独立运行以获得统计显著性。所呈现的曲线是每个算法的最佳代表。

作为第二个演示,我们选择使用残差网络、类增量持续学习和 CIFAR-100 数据集。残差网络包括层间跳跃连接以及常规卷积网络的层到层连接。今天的残差网络比严格分层的网络更广泛使用,并且产生更好的结果。类增量持续学习涉及顺序添加新类别,同时测试迄今为止看到的所有类别。

在我们的演示中,我们从训练五个类别开始,然后逐步增加更多,每次增加五个,直到所有 100 个类别都可用。每次添加后,网络在所有可用类别上进行训练和性能测量。我们继续在旧类别上训练(与大多数类别增量学习工作不同)以专注于可塑性而不是遗忘。

在这个演示中,我们使用了一个具有可变数量头的 18 层残差网络,随着新类别的添加而添加头。我们还使用了进一步的深度学习技术,包括批量归一化、数据增强、L2 正则化和学习率调度。这些技术通常与残差网络一起使用,并且对于良好的性能是必要的。我们称这为我们的基础深度学习系统。

随着添加更多类别,正确分类图像变得更加困难,即使网络保持其学习能力,分类准确性也会降低。为了排除这种影响,我们将增量训练的网络的准确性与在同一子集类别上重新训练的网络进行比较。例如,首先在五个类别上训练的网络,然后在所有十个类别上训练,与在所有十个类别上重新训练的网络进行比较。如果增量训练的网络比重新训练的网络表现更好,那么由于在以前的类别上训练,有益处;如果它表现更差,那么有真正的可塑性损失。

图 2b 中的红线显示,增量训练最初比重新训练更好,但在 40 个类别之后,增量训练的网络显示出可塑性损失,随着时间的推移变得越来越严重。到最后,当所有 100 个类别都可用时,增量训练的基础系统的准确性比重新训练的网络低 5%(性能下降相当于移除一个显著的算法进步,如批量归一化)。当在增量训练网络中添加 Shrink 和 Perturb 时,可塑性损失不那么严重,而当添加持续反向传播时(见“通过多样性和选择性保护维持可塑性”部分),可塑性损失完全被消除。这些补充也防止了网络单元变得不活跃或冗余,如图 2c、d 所示。

这次演示涉及更大的网络,需要更多的计算,但我们仍然能够进行广泛的系统测试。我们在结果中发现了一个稳健的模式,与我们在 ImageNet 中发现的模式相似。在这两种情况下,深度学习网络表现出显著的可塑性损失。总的来说,这些结果,连同方法中的其他广泛结果,构成了可塑性损失的有力证据。

3. 强化学习中的可塑性损失

持续学习在强化学习中的重要性超出了其在监督学习中的重要性。不仅可以环境发生变化,学习代理的行为也可以发生变化,从而影响代理接收的数据,即使环境是静止的。因此,在强化学习中,持续学习的需求通常更加明显,强化学习是展示深度学习倾向于可塑性损失的一个重要环境。

尽管如此,在系统和严格的方式上展示强化学习中的可塑性损失是具有挑战性的。部分原因是强化学习研究中常用的算法和实验设置的多样性。算法可能同时学习价值函数和行为,或涉及重放缓冲区、世界模型和学习潜在状态。实验可能是分段的、持续的或离线的。所有这些选择涉及几个嵌入的参数选择。更根本的是,强化学习算法影响代理看到的数据。因此,算法的学习能力与其生成信息数据的能力相混淆。最后,由于上述原因,强化学习结果往往比监督学习更具随机性和变化性。总的来说,展示强化学习能力,特别是负面结果,通常需要更多的运行和通常更多的实验工作,因此不可避免地不能像监督学习那样确定。

我们的第一个演示涉及一个应用于模拟类似蚂蚁的机器人的强化学习算法,任务是尽快尽可能高效地向前移动。代理 - 环境交互包括一系列剧集,每个剧集都从一个标准状态开始,持续最多 1,000 个时间步。在每个时间步,代理根据行驶的向前距离和其动作的大小(见方法部分的详细信息)获得奖励。在少于 1,000 步的情况下,如果蚂蚁跳得太高而不是向前移动,剧集就会终止,这种情况在早期学习中经常发生。在接下来的结果中,我们使用剧集期间的累积奖励作为我们的主要性能度量。为了使任务非静止(从而强调可塑性),蚂蚁脚和地板之间的摩擦系数在每 200 万时间步后改变(但仅在剧集边界;方法部分的详细信息)。为了快速行走,代理必须适应(重新学习)每次摩擦变化时的行走方式。在这个实验中,我们使用了近端策略优化(PPO)算法。PPO 是一种基于反向传播的标准深度强化学习算法,它被广泛使用,例如在机器人技术中,在玩实时战略游戏和在从人类反馈中对齐大型语言模型。

PPO 在最初的 200 万步中表现良好(见图 3c 中的红线),直到第一次摩擦变化,但随后表现越来越差。注意图 3c 中其他算法的性能如何在每次摩擦变化后下降,然后随着代理适应新摩擦而恢复,使图表呈现锯齿状。PPO 加上特别调整的 Adam 优化器表现更好,但即使在最初的两次变化之后,它在连续变化中的表现也差得多,表明可塑性大量损失。另一方面,加上 L2 正则化和持续反向传播的 PPO 在问题变化时基本上保持了它们的可塑性。

现在考虑相同的蚂蚁运动任务,但摩擦系数在 50 百万时间步中保持在中间值不变。图 4a 中的红线显示,PPO 的平均性能在大约 300 万步后增加了,但随后崩溃了。在 2000 万步后,蚂蚁在每个剧集中都失败了,无法学会有效地向前移动。图 4 中其他面板中的红线进一步洞察了 PPO 的可塑性损失。它们表明,网络可能以与我们监督学习结果相同的方式失去可塑性(见图 2 和扩展数据图 3c)。在这两种情况下,大多数网络单元在实验期间变得不活跃,网络显著失去了稳定秩。加上 L2 正则化可以防止性能下降,通过防止权重持续增长,但也导致非常小的权重(图 4d),这阻止了代理承诺良好的行为。加上持续反向传播的表现总体上更好。我们只展示了持续反向传播的结果,只加了(轻微的)L2 正则化,因为没有它,性能对参数设置非常敏感。这些结果表明,可塑性损失在深度强化学习和深度监督学习中都可能是灾难性的。

4. 维持可塑性

令人惊讶的是,像 Adam、Dropout 和归一化这样的流行方法实际上增加了可塑性损失(见扩展数据图 4a)。另一方面,L2 正则化在许多情况下减少了可塑性损失(图 1、3 和 4 中的紫色线)。L2 正则化通过在每一步将权重向零移动来阻止权重变得过大。小权重允许网络保持可塑性。另一种减少可塑性损失的现有方法是 Shrink 和 Perturb。Shrink 和 Perturb 是 L2 正则化加上在每一步对权重进行小的随机变化。向网络注入变异性可以减少休眠并增加表示的多样性(图 2 和 4)。我们的结果表明,非增长权重和网络中持续的变异性可能对维持可塑性很重要。

现在我们描述一种反向传播算法的变化,它专门设计用来向网络注入变异性并保持一些权重的小。传统的反向传播有两个主要部分:在训练前用小随机权重初始化,然后在每个训练步骤中进行梯度下降。初始化最初提供了变异性,但正如我们所看到的,随着训练的继续,变异性倾向于丧失,可塑性也随之丧失。为了维持变异性,我们的新算法,持续反向传播,重新初始化训练中的一小部分单元,通常每步少于一个。为了防止破坏网络已经学到的内容,只有使用最少的单元才考虑重新初始化。见方法部分了解详细信息。

图 1c 中的蓝线显示了持续反向传播在持续 ImageNet 上的表现。它在持续 ImageNet 中减轻了可塑性损失,同时优于现有方法。类似地,图 2 中的蓝线显示了持续反向传播在类增量 CIFAR-100 上的表现及其对休眠单元和稳定秩演变的影响。持续反向传播完全克服了可塑性损失,具有高稳定秩和几乎无死亡单元。

在强化学习中,持续反向传播与 L2 正则化一起应用(在强化学习实验中添加了少量正则化以防止对参数的过度敏感性)。图 3 中的蓝线显示了在变化摩擦的蚂蚁运动问题上使用持续反向传播的 PPO 的表现。使用持续反向传播的 PPO 比标准 PPO 表现得好得多,几乎没有可塑性损失。在恒定摩擦的蚂蚁运动问题上(图 4),使用持续反向传播的 PPO 在整个实验中持续改进。图 4b-d 中的蓝线显示了使用持续反向传播时可塑性损失的相关指标的演变。使用持续反向传播的 PPO 有很少的休眠单元,高稳定秩和几乎恒定的平均权重大小。

我们的结果与小权重减少可塑性损失的观点一致,持续注入变异性进一步减轻了可塑性损失。尽管 Shrink 和 Perturb 为所有权重增加了变异性,但持续反向传播有选择地这样做,这似乎使其能够更好地维持可塑性。持续反向传播涉及在神经元空间中的一种变异和选择形式,结合持续的梯度下降。这种变异和选择让人想起进化和行为中的试错过程,有许多历史先例,包括 Keifer-Wolfowitz 方法和工程中的重启方法以及机器学习中的特征搜索方法。持续反向传播为现代深度学习带来了这种旧思想的一种形式。然而,它只是这种思想的一种变体;其他变体是可能的,一些已经在最近的研究中探索过。我们期待未来的工作明确比较和进一步完善这些变体。

5. 讨论

深度学习在特定训练阶段发生学习且之后不再发生学习的设置中是一种有效和有价值的技术。然而,在必须继续学习的设置中,我们已经展示了深度学习不起作用。通过深度学习,我们指的是在多层人工神经网络中学习的现有标准算法;通过不起作用,我们指的是,随着时间的推移,它们未能比浅层网络学得更好。我们已经使用监督学习数据集和强化学习任务展示了这种可塑性损失,这些任务是深度学习以前擅长的,并且针对广泛的网络和标准学习算法。仔细观察,我们发现,在训练期间,许多网络的类神经元单元变得不活跃、过度承诺并且彼此相似,阻碍了网络学习新事物的能力。随着它们的学习,标准深度学习网络逐渐且不可逆地失去了它们的多样性,因此失去了继续学习的能力。可塑性损失通常在多个任务的学习中非常严重,但对于少量任务可能根本不会发生。

可塑性损失的问题并不是深度学习固有的。通过梯度下降训练的深度人工神经网络完全能够无限期地保持它们的可塑性,正如我们用 Shrink 和 Perturb 算法特别是新的持续反向传播算法所展示的。这两种算法通过向网络权重添加持续的变异性来扩展标准深度学习,持续反向传播将这种变异性限制在当前使用最少的网络单元,最小化对网络操作的损害。也就是说,持续反向传播涉及在类神经元单元空间中的一种变异和选择形式,结合持续的梯度下降。这个想法有许多历史先例,可能需要进一步开发才能达到最有效的形式。

6. 在线内容

任何方法、额外参考资料、Nature Portfolio 报告摘要、源数据、扩展数据、补充信息、致谢、同行评审信息;作者贡献和竞争利益的详细信息;以及数据和代码可用性声明可在以下链接找到:https://doi.org/10.1038/s41586-024-07711-7。

7. 方法

7.1. 持续反向传播的细节

持续反向传播有选择地重新初始化网络中的低效单元。我们的效用度量称为贡献效用,为每个连接或权重和每个单元定义。贡献效用背后的直觉是,单元激活和传出权重乘积的大小提供了关于该连接对其消费者有多重要的信息。如果隐藏单元对其消费者的贡献很小,其贡献可能会被其他隐藏单元的贡献所淹没。在这种情况下,隐藏单元对其消费者没有用。我们定义隐藏单元的贡献效用为其所有传出连接的效用之和。贡献效用是作为瞬时贡献的运行平均值来测量的,衰减率η设置为 0.99。在前馈神经网络中,第 l 层第 i 个隐藏单元在时间 t 的贡献效用 u[i] 更新如下:

u[i]=η⋅u[i]+(1−η)⋅∑k=1n+1|hl,it⋅wl,i,kt|

其中 hl,it 是第 l 层第 i 个隐藏单元在时间 t 的输出,wl,i,kt 是在时间 t 连接第 l 层第 i 个单元到第 l+1 层第 k 个单元的权重,n+1 是第 l+1 层的单元数。

当隐藏单元重新初始化时,其传出权重被初始化为零。将传出权重初始化为零确保新添加的隐藏单元不会影响已经学到的函数。然而,将传出权重初始化为零使得新单元容易立即重新初始化,因为它的效用为零。为了保护新单元免受立即重新初始化的影响,它们在成熟阈值 m 的更新次数内受到重新初始化的保护。我们称年龄超过 m 的单元为成熟单元。每一步中,称为替换率ρ的成熟单元的一部分被重新初始化。

替换率ρ通常设置为一个非常小的值,意味着在数百次更新后只替换一个单元。例如,在类增量 CIFAR-100(图 2)中,我们使用持续反向传播,替换率为 10^-5。在该问题的最后一个网络层中有 512 个单元。每一步中,大约有 512 × 10^-5 = 0.00512 个单元被替换。这相当于大约每 1/0.00512 ≈ 200 次更新或第一个五个类别的每八次周期后替换一个单元。

最终算法结合了传统的反向传播和选择性重新初始化,不断注入来自初始分布的随机单元。持续反向传播在每个更新中执行梯度下降和选择性重新初始化步骤。算法 1 指定了前馈神经网络的持续反向传播。如果学习系统使用小批量,可以通过在小批量上平均效用来使用瞬时贡献效用,而不是保持运行平均值来节省计算(见扩展数据图 5d 中的示例)。持续反向传播克服了先前工作 34,35 在选择性重新初始化上的局限性,并使其与现代深度学习兼容。

算法 1. 前馈网络的持续反向传播,具有 L 层 设置替换率ρ,衰减率η和成熟阈值 m 初始化权重 w0,…,wL−1,其中 w 从分布 dl 中采样 初始化效用 u1,…,uL−1,要替换的单元数 c1,…,cL−1,和年龄 a1,…,aL−1 为 0 对于每个输入 xt 执行以下操作:

  • 前向传递:将 xt 传递通过网络以获得预测 y^t
  • 评估:接收损失 l(xt,y^t)
  • 反向传递:使用 SGD 或其变体更新权重 对于第 l 层在 1:L-1 中执行以下操作:
  • 更新年龄:al=al+1
  • 更新单元效用:见方程(1)
  • 找到合格单元:neligible = 年龄大于 m 的单元数
  • 更新要替换的单元数:c=c+neligible×ρ 如果 c>1:
    • 找到效用最小的单元并记录其索引为 r
    • 重新初始化输入权重:从分布 d 中重新采样 wl−1[:,r]
    • 重新初始化输出权重:将 w[r,:] 设置为 0
    • 重新初始化效用和年龄:将 ul[r] 设置为 0,a[r] 设置为 0
    • 更新要替换的单元数:c=c−1 结束对于

7.2. 持续 ImageNet 的细节

我们使用的 ImageNet 数据库由 1,000 个类别组成,每个类别有 700 张图像。每个类别的 700 张图像被划分为 600 张用于训练集,100 张用于测试集。在每个二元分类任务中,深度学习网络首先在 1,200 张图像的训练集上进行训练,然后其分类准确性在 200 张图像的测试集上进行测量。训练包括多次通过训练集,称为周期。对于每个任务,所有学习算法执行 250 次通过训练集使用大小为 100 的小批量。所有任务都使用 ImageNet 数据集的下采样 32×32 版本,这样做通常是为了节省计算 51。

在持续 ImageNet 上的所有算法都使用卷积网络。网络有三层卷积加最大池化层,然后是三层全连接层,详细描述在扩展数据表 3 中。最后一层只包含两个单元,头部,对应于两个类别。在任务变化时,头部的输入权重被重置为零。以这种方式重置头部可以被视为为新任务引入新的头部。这种重置输出权重的做法对于研究可塑性并不理想,因为学习系统可以获得有关任务变化时间的特权信息(我们在本文的其他实验中不使用它)。我们在这里使用它,因为这是深度持续学习中这类问题的标凊做法,其中学习系统必须学习一系列独立任务 52。

在这个问题中,我们在每个任务开始时重置网络的头部。这意味着,对于线性网络,整个网络都被重置。这就是为什么线性网络的性能在持续 ImageNet 中不会下降。由于线性网络是基线,获得其性能的低方差估计值是可取的。这个平均值通过对数千个任务的测量获得,比对其他网络获得的性能估计要好得多。

网络使用 SGD 和动量在交叉熵损失上进行训练,并在第一个任务之前初始化一次。动量超参数为 0.9。我们测试了各种步长参数的反向传播,但只呈现了步长 0.01、0.001 和 0.0001 的性能,以便图 1b 清晰。我们为每个超参数值执行了 30 次运行,变化任务序列和其他随机性。在不同的超参数和算法中,使用了相同的类别对序列。

现在我们描述 L2 正则化、Shrink 和 Perturb 和持续反向传播的超参数选择。正文中展示了这些算法在持续 ImageNet 上的結果如图 1c。我们为所有算法执行了网格搜索,以找到在 5,000 个任务上平均分类准确性最高的超参数集。网格搜索使用的超参数值描述在扩展数据表 2 中。L2 正则化有两个超参数,步长和权重衰减。Shrink 和 Perturb 有三个超参数,步长、权重衰减和噪声方差。我们对持续反向传播的两个超参数进行了网格搜索:步长和替换率。持续反向传播中的成熟阈值设置为 100。对于反向传播和 L2 正则化,步长为 0.1 或 0.003 时性能较差。我们选择只使用 0.03 和 0.01 的步长进行持续反向传播和 Shrink 和 Perturb。我们对所有超参数集进行了十次独立运行。然后我们进行了另外 20 次运行,以完成 30 次运行,以获得在图 1c 中表现最佳的超参数集的结果。

7.3. 类增量 CIFAR-100

在类增量 CIFAR-100 中,学习系统随着时间的推移获得越来越多的类别。类别以五个的增量提供给学习系统。首先,它只访问五个类别,然后是十个,依此类推,直到它访问所有 100 个类别。学习系统根据其能够区分当前所有可用类别的表现进行评估。数据集由 100 个类别组成,每个类别有 600 张图像。每个类别的 600 张图像被划分为 450 张用于训练集,50 张用于验证集,100 张用于测试集。注意,网络训练时使用所有当前可用类别的数据。首先,它只训练五个类别的数据,然后是从所有十个类别,依此类推,直到最后同时从所有 100 个类别的数据进行训练。每个增量后,网络训练 200 个周期,所有 20 个增量总共 4,000 个周期。我们使用在每个增量开始时重置的学习率计划。在每个增量的前 60 个周期中,学习率设置为 0.1,然后在接下来的 60 个周期中设置为 0.02,然后在接下来的 40 个周期中设置为 0.004,最后在最后 40 个周期中设置为 0.0008;我们使用了文献报道中的初始学习率和学习率计划。在每个增量的 200 个周期训练中,我们跟踪了在验证集上准确性最好的网络。为了防止过拟合,在每个新增量开始时,我们将网络的权重重置为在前一个增量期间在验证集上表现最好的(表现最好的)网络的权重;这相当于每个不同增量的早停。我们对所有实验使用了 18 层深度残差网络。网络架构在扩展数据表 1 中有详细描述。卷积和线性层的权重使用 Kaiming 初始化,批量归一化层的权重初始化为 1,网络中的所有偏置项初始化为零。每次向网络提供五个新类别时,最终层的网络中会添加五个更多的输出单元。这些输出单元的权重和偏置使用相同的初始化方案。网络的权重使用 SGD 进行优化,动量为 0.9,权重衰减为 0.0005,小批量大小为 90。我们在图像呈现给网络之前进行了几个数据预处理步骤。首先,通过除以 255,将每个图像中的所有像素值重新缩放到 0 和 1 之间。然后,每个通道中的每个像素通过该通道的像素值的平均值和标准差分别进行居中和缩放。最后,我们在将图像输入网络之前对每个图像应用了三个随机数据转换:以 0.5 的概率随机水平翻转图像,通过在每边填充 4 个像素然后随机裁剪回原始大小来随机裁剪图像,以及随机旋转图像 0 到 15°。预处理的前两个步骤应用于训练集、验证集和测试集,但随机转换仅应用于训练集中的图像。我们测试了几个超参数,以确保每个不同算法在我们的特定架构中表现最佳。对于基础系统,我们测试了权重衰减参数的值{0.005, 0.0005, 0.00005}。权重衰减值为 0.0005 在测试集上的准确性曲线下面积方面表现最佳。对于 Shrink 和 Perturb,我们使用了基础系统的权重衰减值,并测试了高斯噪声的标准差值{10^-4, 10^-5, 10^-6};10^-5 表现最佳。对于持续反向传播,我们测试了成熟阈值{1,000, 10,000}和替换率{10^-4, 10^-5, 10^-6},使用方程(1)中描述的贡献效用。成熟阈值为 1,000 和替换率为 10^-5 表现最佳。最后,对于扩展数据图 1a 中的头部重置基线,我们使用了与基础系统相同的超参数,但在每个增量开始时重置输出层。图 2d 中,我们绘制了网络倒数第二层的稳定秩和完整网络中死亡单元的百分比。对于矩阵 Φ∈Rn×m,其奇异值 σk 按降序排列,对于 k=1,2,…,q 和 q=max(n,m),稳定秩定义为:

erank(Φ)=min{k:σk∥σ∥1>0.99}

作为参考,我们还实现了一个与基础系统具有相同超参数的网络,但在每个增量开始时重置。图 2b 显示了每个算法相对于重置网络的表现。完整的数据图 1a 显示了每个算法在每个不同增量中的测试准确性。持续反向传播在所有 100 个类别上的最终准确性为 76.13%,而扩展数据图 1b 显示了不同替换率下持续反向传播的表现,成熟阈值为 1,000。对于我们测试的所有算法,类别呈现的时间与该类别的准确性之间没有相关性,这意味着类别的时间顺序不影响表现。

10. 排列 MNIST 中稳健的可塑性损失

现在我们使用基于 MNIST 数据集的计算成本较低的问题来测试可塑性损失在各种条件下的普遍性。MNIST 是深度学习中最常用的监督学习数据集之一。它包含 60,000 张 28×28 的灰度手写数字图像,从 0 到 9,以及它们的正确标签。较小的类别数量和更简单的图像使得比在 ImageNet 或 CIFAR-100 上需要的网络小得多的网络就能在该数据集上表现良好。较小的网络反过来意味着需要较少的计算来执行实验,因此可以在更广泛的条件下进行更深入和更广泛的可塑性研究。我们通过创建排列的 MNIST 数据集来创建一个持续的监督学习问题,通过排列原始 MNIST 数据集中的像素来创建。扩展数据图 3a 中的右侧图像就是这样一个排列图像的例子。给定一种排列方式,所有 60,000 张图像以相同的方式排列,产生新的排列 MNIST 数据集。此外,我们通过除以 255 将像素值归一化到 0 和 1 之间。通过从大约 10^1,930 种可能的排列中随机选择,我们创建了一个由 800 个排列 MNIST 数据集和监督学习任务组成的序列。对于每个任务,我们逐个随机地向学习网络呈现其 60,000 张图像。然后我们移动到下一个排列的 MNIST 任务,并重复整个过程,依此类推,最多 800 个任务。在任务切换时,没有给网络任何指示。由于像素以完全无关的方式排列,我们可能期望分类性能在每个任务切换时大幅下降。尽管如此,在任务之间,可能会有一些节省,学习速度的提高,或者,相反,可能会有可塑性的损失——在任务之间学习的能力的损失。网络在数据上单次通过训练,没有使用小批量。我们称这个问题为在线排列 MNIST。我们将具有三个隐藏层的前馈神经网络应用于在线排列 MNIST。我们没有使用卷积层,因为在排列问题中它们可能没有帮助,因为空间信息丢失了;即使在标准非排列问题中,通常也不使用卷积层。对于每个示例,网络估计每个十个类别的概率,将它们与正确标签进行比较,并在交叉熵损失上执行 SGD。作为在线性能的度量,我们记录了网络在任务中的 60,000 张图像中正确分类的百分比。我们在扩展数据图 3b 中绘制了这个逐任务性能度量与任务数量的关系。权重根据 Kaiming 分布进行初始化。扩展数据图 3b 的左面板显示了具有 2,000 个单元每层的网络和不同步长参数值的在线性能跨任务的进展。注意,性能在任务中首先增加,然后在所有后续任务中开始稳定下降。这种性能下降意味着网络正在慢慢失去从新任务中学习的能力。这种可塑性损失与我们在 ImageNet 和 CIFAR-100 中观察到的可塑性损失一致。接下来,我们改变了网络大小。我们尝试了每层 100、1,000 和 10,000 个单元,而不是每层 2,000 个单元。我们只对 150 个任务运行了这个实验,主要是因为最大的网络运行时间要长得多。在扩展数据图 3b 的中间面板中显示了每个网络大小在良好步长下的性能。可塑性损失随着持续训练在较小的网络大小中最明显,但即使是最大的网络也显示出一些可塑性损失。接下来,我们研究了任务变化率的影响。回到原来的每层 2,000 单元的网络,我们不是在每个 60,000 个示例后改变排列,而是在每个 10,000、100,000 或 1,000,000 个示例后改变它,并在总共 48,000,000 个示例中运行,不管任务变化的频率如何,每个任务的示例都是随机选择的。作为网络在任务上的性能度量,我们使用了任务中所有图像的正确百分比。性能的进展在扩展数据图 3b 的右侧面板中显示。同样,即使变化非常不频繁,性能也会在任务中下降。总的来说,这些结果表明可塑性损失的现象在这种反向传播形式中稳健地出现。可塑性损失发生在广泛的步长、分布变化率和欠参数化和过参数化网络中。

11. 不同激活函数在缓慢变化回归问题中的可塑性损失

仍然存在网络激活函数的问题。到目前为止,我们的实验中使用了 ReLU,这是目前最受欢迎的选择,但还有其他几种可能性。对于这些实验,我们转向了一个更小、更理想化的问题。缓慢变化回归是一个计算成本较低的问题,我们可以在 15 分钟内在 CPU 核心上运行一个单一实验,这使我们能够进行广泛的研究。顾名思义,这个问题是一个回归问题——意味着标签是实数,有平方损失,而不是名义值和交叉熵损失——非静态性是缓慢和持续的,而不是像从一个任务突然切换到另一个任务那样。在缓慢变化的回归中,我们研究了具有六种流行激活函数的网络的可塑性损失:sigmoid、tanh、ELU、leaky ReLU、ReLU 和 Swish。在缓慢变化的回归中,学习者接收一系列示例。每个示例的输入是一个大小为 m+1 的二进制向量。输入有 f 个慢变化位,m-f 个随机位,然后是一个常数位 1。输入向量的第一个 f 位变化缓慢。在每 T 个示例之后,第一个 f 位中的一个被随机选择并翻转其值。这些前 f 位在接下来的 T 个示例中保持固定。参数 T 允许我们控制输入分布变化的速率。接下来的 m-f 位是为每个示例随机采样的。最后,(m+1) 位是一个偏置项,恒定值为 1。

目标输出是通过将输入向量传递给神经网络生成的,该网络在实验开始时设置并保持固定。由于这个网络生成目标输出并代表期望的解决方案,我们称它为目标网络。目标网络的权重随机选择为 +1 或 -1。目标网络有一个隐藏层,具有线性阈值单元(LTU)激活。第 i 个 LTU 的值如果输入高于阈值θi 并且否则为 0。阈值θi 设置为等于 (m+1)×β−S,其中β∈[0,1],S 是具有负值的输入权重的数量。输入和目标函数在缓慢变化回归问题中的详细信息也在扩展数据图 2a 中描述。我们在本文中使用的特定实例的缓慢变化回归问题和用于预测其输出的学习网络的详细信息列在扩展数据表 4 中。注意,目标网络比学习网络更复杂,因为目标网络更宽,有 100 个隐藏单元,而学习者只有五个隐藏单元。因此,由于输入分布每 T 个示例变化一次,目标函数比学习者可以表示的更复杂,需要跟踪最佳近似值。我们将具有不同激活函数的学习网络应用于缓慢变化的回归。学习者使用反向传播算法学习网络的权重。我们对学习网络的权重使用统一的 Kaiming 分布进行初始化。该分布是 U(−b, b),界限 b = gain × 3 num_inputs,其中 gain 被选择以使输入的幅度在层之间不变。对于 tanh、sigmoid、ReLU 和 leaky ReLU,gain 分别为 5/3、1、2 和 2/(1 + α)^2。对于 ELU 和 Swish,我们使用了 gain = 2,就像在原始论文中所做的那样。我们在 3,000,000 个示例上运行缓慢变化的回归问题的实验。对于每种激活和步长值,我们进行了 100 次独立运行。首先,我们为 100 次运行生成了 100 个示例序列(输入 - 输出对)。然后,这 100 个示例序列被用于所有激活和步长值的实验。我们使用相同的示例序列来控制数据流在激活和步长之间的随机性。实验结果在扩展数据图 2b 中显示。我们测量了平方误差,即真实目标和学习网络所做的预测之间的差异的平方。在扩展数据图 2b 中,平方误差以 40,000 个示例的 bin 显示。这意味着第一个数据点是前 40,000 个示例的平均平方误差,下一个是接下来 40,000 个示例的平均平方误差,依此类推。图中的阴影区域显示了 binned 误差的标准误差。扩展数据图 2b 显示,在缓慢变化的回归中,经过最初的良好表现后,误差对于所有步长和激活都会增加。对于某些激活,如 ReLU 和 tanh,可塑性损失是严重的,误差增加到线性基线的水平。尽管对于其他激活,如 ELU,可塑性损失不那么严重,但仍然有显著的可塑性损失。这些结果意味着可塑性损失不是通过使用常用的激活来解决的。本节的结果补充了文章中的其他结果,并增加了深度学习中可塑性损失的普遍性。

12. 理解可塑性损失

现在我们将注意力转向理解反向传播在持续学习问题中失去可塑性的原因。随着时间的推移,学习者唯一的区别是网络权重。起初,权重是小的随机数,因为它们是从初始分布中采样的;然而,在学了一些任务之后,权重被优化以适应最近的任务。因此,下一个任务的起始权重与第一个任务的起始权重在质量上不同。由于这是学习算法随时间变化的唯一区别,初始权重分布必须具有一些属性,使得学习算法在开始时具有可塑性。初始随机分布可能有许多属性,使反向传播具有可塑性,例如单元多样性、非饱和单元、小权重幅度等。随着我们目前的展示,这些优势的丧失与可塑性损失同时发生。然后我们提供了关于这些优势丧失如何导致可塑性损失的论点,并量化了每种现象的普遍性。我们对在线排列 MNIST 问题进行了深入研究,这将为几种可能减轻可塑性损失的解决方案提供动机。与可塑性损失同时发生的第一种显著现象是恒定单元的分数持续增加。当一个单元变得恒定时,从单元传回的梯度变为零或非常接近零。零梯度意味着进入单元的权重不会改变,这意味着这个单元失去了所有的可塑性。在 ReLU 激活的情况下,当激活的输出在所有示例中都为零时,就会发生这种情况;这种单元通常被称为死亡 64,65。在 sigmoid 激活函数的情况下,当一个单元的输出太接近激活函数的极端值时,就会发生这种现象;这种单元通常被称为饱和 66,67。为了测量具有 ReLU 激活的网络中死亡单元的数量,我们统计了在 2,000 个随机样本图像中的所有示例中值为零的单元数量,每个新任务开始时进行一次。在 sigmoid 激活的情况下,类似的测量是一些ε远离函数极端值的单元数量,对于某个小的正ε(参考文献 68)。我们只关注 ReLU 网络。在我们的在线排列 MNIST 问题实验中,在线性能的恶化伴随着死亡单元数量的大幅增加(扩展数据图 3c 的左面板)。对于步长 0.01,800 个任务后高达 25% 的单元死亡。在排列 MNIST 问题中,由于所有输入都是正的(因为它们在 0 和 1 之间归一化),一旦第一层的单元死亡,它就会永远死亡。因此,死亡单元数量的增加直接减少了网络的总容量。在下一节中,我们将看到阻止单元死亡的方法可以显著减少可塑性损失。这进一步支持了增加死亡单元是反向传播中可塑性损失的原因之一的观点。与可塑性损失同时发生的另一个现象是网络平均权重幅度的稳步增长。我们通过将它们的绝对值相加并除以网络中的总权重数来测量权重的平均幅度。在排列 MNIST 实验中,反向传播的在线分类准确性的退化(扩展数据图 3b)与权重平均幅度的增加(扩展数据图 3c 的中心面板)相关联。网络权重幅度的增长可能是一个问题,因为大权重幅度通常与更慢的学习相关。神经网络的权重直接与损失函数的二阶泰勒近似的 Hessian 矩阵的条件数相关。Hessian 的条件数已知会影响 SGD 算法的收敛速度(有关这种现象的说明,请参见参考文献 69 中的凸优化)。因此,权重幅度的增长可能导致条件不良的 Hessian 矩阵,导致收敛速度变慢。与可塑性损失同时发生的最后一个现象是表示的有效秩的下降。类似于矩阵的秩,它表示线性独立维度的数量,有效秩考虑到每个维度如何影响矩阵诱导的变换。高有效秩表明大多数维度对矩阵诱导的变换有类似的贡献。另一方面,低有效秩对应于大多数维度对变换几乎没有影响,意味着大多数维度中的信息接近冗余。正式地,考虑一个矩阵 Φ∈Rn×m,其奇异值 σk 对于 k=1,2,…,q 和 q=max(n,m)。设 pk=σk/∥σ∥1,其中 σ 是包含所有奇异值的向量,∥⋅∥1 是 ℓ1 范数。矩阵 Φ 的有效秩,或 erank(Φ),定义为:

erank(Φ)=∑k=1qexp⁡(−σk2∑i=1qσi2)

注意,有效秩是介于 1 和矩阵 Φ 秩之间的连续度量。在神经网络的情况下,隐藏层的有效秩测量了该层的单元数量,这些单元可以产生层的输出。如果隐藏层的有效秩低,那么只有少数单元可以产生层的输出,这意味着隐藏层中的许多单元没有提供任何有用信息。我们在每个任务之前对 2,000 个示例的随机样本近似有效秩。在我们的实验中,可塑性损失伴随着网络平均有效秩的下降(扩展数据图 3c 的右面板)。这个现象本身不一定是问题。毕竟,已经表明基于梯度的优化似乎通过损失函数的隐式正则化或隐式最小化秩本身来偏好低秩解 71,72。然而,低秩解可能是从新观测中学习的不良起点,因为大多数隐藏单元提供的信息很少或没有。有效秩的下降可能以以下方式解释我们在实验中观察到的可塑性损失。在每个任务之后,学习算法为当前

#CL
上次更新: 2025/06/25, 11:25:50
增量学习
Theory on Mixture-of-Experts in Continual Learning

← 增量学习 Theory on Mixture-of-Experts in Continual Learning→

最近更新
01
帮助信息查看
06-08
02
常用命令
06-08
03
学习资源
06-07
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Geeks_Z | MIT License
京公网安备 11010802040735号 | 京ICP备2022029989号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式