持续学习(Continual Learning,CL),也称为终身学习(Lifelong Learning),指的是模型能够从持续不断的数据流中学习,并随着时间的推移不断适应和获得新知识,而不会遗忘先前学习的内容。持续学习面临的一个主要挑战是灾难性遗忘(Catastrophic Forgetting),即在学习新任务时,模型容易遗忘之前学习的任务。

为了应对这些挑战,提出了多种方法,这些方法可以根据它们如何处理遗忘、如何存储知识以及如何使用新数据进行分类。

下面是主要的持续学习方法,按它们所采用的主要策略进行组织:

1. 基于正则化的方法

这些方法通过在损失函数中添加正则化项,来防止模型在学习新任务时改变对先前任务至关重要的权重。

  • 弹性权重约束(EWC)

    • 关键特性:通过基于费舍尔信息矩阵对重要的权重进行二次惩罚,正则化先前任务的重要权重。
    • 目的:通过惩罚关键权重的变化,减少灾难性遗忘。
  • 突触智能(SI)

    • 关键特性:在训练过程中动态跟踪网络权重对先前任务的重要性。
    • 目的:类似于EWC,通过在训练时添加惩罚项,防止权重发生剧烈变化。
  • 记忆感知突触(MAS)

    • 关键特性:通过评估网络参数对先前任务的影响来衡量权重的重要性。
    • 目的:与EWC相似,但更加动态地计算权重的重要性。
  • 渐进神经网络(PNN)

    • 关键特性:学习新任务时,添加新的神经网络模块,旧模块保持不变。
    • 目的:通过为每个新任务分配额外的模块,避免任务之间的干扰,同时保持对先前任务的记忆。

2. 基于回放的方法

这些方法通过存储部分先前的数据(或合成数据),并在学习新任务时回放这些数据,以保持对旧任务的记忆。

  • 经验回放(ER)

    • 关键特性:存储先前的样本,并在学习新任务时回放这些样本。
    • 目的:通过重新学习过去任务的数据来减轻遗忘。
  • 聚类和优先经验回放

    • 关键特性:这些方法优先选择一些最可能帮助保持先前知识的样本进行回放。
    • 目的:通过优先回放最重要的样本来提高回放策略的效率。
  • 生成回放

    • 关键特性:使用生成模型(如GAN或VAE)生成先前任务的数据,而不是直接存储实际样本。
    • 目的:避免存储大量数据,同时通过生成与原始数据相似的样本来回顾旧任务。
  • 记忆回放(Memory Replay)

    • 关键特性:与存储原始数据不同,这些方法存储的是先前经验的抽象表示或特征。
    • 目的:通过回放压缩版本的数据来减少内存需求。

3. 动态架构方法

这些方法在网络架构上进行修改,随着新任务的学习,增加新的神经元或层,使模型能够适应新任务,而不会忘记旧任务。

  • 渐进神经网络(PNN)

    • 关键特性:随着新任务的到来,增加新的列(即新的神经网络模块)。
    • 目的:通过为每个任务分配不同的网络部分来避免任务之间的干扰。
  • PathNet

    • 关键特性:学习在共享神经网络中优化路径,使每个新任务可以使用不同的路径。
    • 目的:在保持共享知识的同时,为每个任务分配专用路径。
  • 网络扩展

    • 关键特性:随着新任务的到来,动态扩展模型,增加新的层或神经元。
    • 目的:通过增加网络的容量来适应新任务,而不会影响旧任务。

4. 元学习方法

元学习,也叫学习如何学习,帮助模型更快适应新任务,通常通过学习如何在学习过程中防止遗忘。

  • 元经验回放(MER)

    • 关键特性:将元学习技术与经验回放结合,用于解决持续学习问题。
    • 目的:不仅帮助模型记住先前的任务,还帮助它快速适应新任务。
  • 模型无关元学习(MAML)

    • 关键特性:训练模型以便从少量示例中快速学习,通过优化使模型能够快速适应新任务。
    • 目的:使模型在结合特定任务的微调后,更能快速适应新任务,从而减少灾难性遗忘。
  • Reptile

    • 关键特性:MAML的简化替代方法,它通过反复抽样任务来调整模型权重,使其更适应新任务。
    • 目的:改善模型对新任务的快速学习能力,减少遗忘。

5. 知识蒸馏方法

这些方法将知识从旧模型转移到新模型(或同一模型),以防止灾难性遗忘。

  • 知识蒸馏

    • 关键特性:通过最小化旧模型和新模型输出之间的差异,将先前任务的知识转移到当前模型。
    • 目的:在学习新任务的同时帮助保持对旧任务的知识。
  • 自我蒸馏

    • 关键特性:使用模型本身将知识蒸馏成更紧凑的形式,帮助模型保持有用的先前知识。
    • 目的:作为一种附加的正则化策略,防止遗忘。

6. 贝叶斯方法

这些方法在学习过程中引入不确定性,以在学习新任务的同时保持对旧任务的知识。

  • 贝叶斯神经网络

    • 关键特性:采用概率方法来建模不确定性,帮助避免灾难性遗忘,通过将参数视为分布来处理任务。
    • 目的:鼓励模型在学习新任务时对已学权重做出更保守的调整,减少遗忘。
  • 变分持续学习(VCL)

    • 关键特性:使用变分推断来学习特定任务的参数,同时保持先前任务的知识。
    • 目的:通过将旧知识视为分布并将其纳入学习过程,防止灾难性遗忘。

7. 双重记忆模型

这些模型保持两种类型的记忆:一种用于当前任务学习,另一种用于存储重要的旧知识。

  • 双重记忆网络

    • 关键特性:维护一个用于当前任务的快速访问记忆和一个用于长期存储旧任务知识的记忆。
    • 目的:使模型能够在学习新任务的同时保持对旧任务的记忆。
  • 认知模型(例如,层次记忆网络)

    • 关键特性:以更生物启发的方式建模记忆,使用层次结构或结构化记忆来存储和访问知识。
    • 目的:帮助模型以更有组织和长期的方式存储知识,类似于人类如何保持记忆。

8. 其他混合方法

这些方法结合了上述方法中的多种策略,以进一步改善持续学习过程。

  • 课程学习与持续学习结合

    • 关键特性:使用任务的课程,从简单的任务开始,逐渐增加任务的复杂性,帮助模型更有效地学习。
    • 目的:帮助模型在先前知识的基础上进行学习,减少过渡到更复杂任务时的遗忘。
  • 任务增量学习(TIL)

    • 关键特性:通过保持特定任务的知识,在不需要大量重训练的情况下,增量地学习多个任务。
    • 目的:保持多个任务的知识,同时避免任务之间的干扰。

主要方法总结:

  1. 正则化方法(EWC、SI、MAS)
  2. 回放方法(经验回放、生成回放、记忆回放)
  3. 动态架构方法(PNN、PathNet、网络扩展)
  4. 元学习方法(MAML、MER、Reptile)
  5. 知识蒸馏方法(自我蒸馏、迁移学习)
  6. 贝叶斯方法(VCL、贝叶斯神经网络)
  7. 双重记忆模型(层次记忆网络)
  8. 混合方法(课程学习、任务增量学习)

总结:

这些方法通过不同的策略解决持续学习中的各种挑战,如灾难性遗忘、模型适应性、内存需求等。每种方法都有其独特的优点,适用于不同的任务和场景。某些方法侧重于通过正则化防止过度更新旧任务的知识,另一些方法则通过存储旧任务的数据或生成旧任务的数据来保持知识,还有一些方法通过动态扩展网络架构或引入元学习来增强模型的适应性。

结合不同方法,通常可以进一步改善持续学习的效果,帮助模型在面对多个任务时保持高效学习能力,同时不遗忘已学的知识。

论文

Loss of Plasticity in Continual Deep Reinforcement Learning (23/03)

论文地址
核心思想:连续学习的能力在复杂和不断变化的世界中至关重要。本文描述了规范的基于值的深度强化学习(RL)方法在不同程度的非平稳性下的行为。特别是,我们证明了当深度RL学习代理在一系列Atari 2600游戏中循环时,它们会失去学习良好策略的能力。先前的研究以各种形式提及了这种现象——例如,可塑性丧失、隐性参数化不足、首因偏差和容量损失。我们在规模上密切研究了这一现象,并在几个具有不同维度(例如,游戏之间的相似性、游戏数量、每个游戏的帧数)的实验中分析了权重、梯度和激活如何随时间变化,其中一些实验跨越了 50 天和 20 亿次环境交互。我们的分析表明,网络的激活足迹变得更稀疏,导致梯度减小。我们研究了一种非常简单的缓解策略:串联 ReLU(CReLU)激活函数,并证明了它在促进不断变化的环境中持续学习方面的有效性。