连续学习入门(一):Continual Learning / Incremental Learning / Life Long Learning 问题背景及研究挑战

说明:本系列文章若无特别说明,则在技术上将 Continual Learning(连续学习)等同于 Incremental Learning(增量学习)、Lifelong Learning(终身学习),关于 Continual Learning、Incremental Learning 和 Lifelong Learning 更细节的区别参见 VALSE Seminar【20211215 - 深度连续学习】

本文内容:

  • 连续学习的问题背景,研究意义
  • 连续学习研究中的关键技术挑战

关于连续学习的英文名称,有以下比较常见的叫法(从搜集的相关论文题目来看,前两种出现的频率最高):

  • Incremental Learning
  • Continual Learning
  • Life Long Learning
  • Never Ending Learning

1. 问题背景

机器学习 / 深度学习:机器学习/深度学习虽然在很多单项任务上取得了相当或超过人类水平的成绩,但这些模型都是为固定的任务所设计,无法动态地根据环境而更新。它们需要有一个预先准备好的数据集,在模型训练之前,先随机打乱数据,使训练数据的数据分布近似为独立同分布(IID.),然后在有限的时间内一次性完成模型的训练。机器学习/深度学习这种学习方式属于 batch learning mode

人类学习方式:相反,人类的学习是一个逐渐的过程,并且人几乎终生都在接受新的信息并学习。新知识的学习通常能从已有经验中获益,同时也能补充已有的知识(比如大学学习的线性代数能够帮助我们学习机器学习,学习机器学习也能加深对线性代数本质的理解)。人类大脑这种学习方式属于 continual learning mode。但是在真实世界里,要学什么任务,任务中会有哪些数据是无法一次性得到的,我们也无法预测未来会有怎样的任务和数据,因此无法用常规手段将训练数据变成独立同分布的。也就是说,在时间轴上,每个任务的数据都是非独立同分布的(Non-IID.)。

Batch learning mode 最大的劣势就是无法在动态环境中学习,但 Continual learning mode 则是智能系统普遍具备的特性。因此,研究连续学习就是为了让深度学习模型能够像人一样进行学习,即模型在连续序列任务上学习的能力,该序列中的新任务通常与旧任务相关联。连续学习是一个模型适应快速变化的现实情景的关键,对于实现真正的人工智能十分重要。

Q:传统深度学习模型要实现连续学习的难点在哪?

  • 深度学习模型需要根据训练数据一次性完成训练的特性,就意味着每当有来自新的分布的数据时,模型都需要在整个历史数据加新的数据这个混合数据集上重新训练。显然,在持续变化的现实情境中,不论从资源成本还是从数据可见性角度考虑,都是不现实的。从资源成本看,每到来一个新任务,就要把之前所有任务的数据加进来从头训练,浪费时间和计算成本;从数据可见性角度看,很多数据有隐私保护或者在访问时间上有限制,而且存储资源限制,我们无法要求所有数据对我们都一直保持可见。
  • 如果不考虑历史数据,只在新数据上进行训练,的确能节约时间和资源成本,但这样就会发生连续学习的最大问题:“灾难性遗忘”(Catastrophic Forgetting),灾难性遗忘的意思是说,模型学习了新任务以后,对旧任务的表现严重下降。

Q:为什么要模型学习多种任务,按照传统的深度学习方式:一个模型做一个特定的任务,有什么问题?

  • 对于一类任务,随着源源不断的新数据的到来,模型应能够不断提高自己的“能力”。举个例子:任意品种的猫和狗的分类,假如模型在一个已有的猫狗分类数据集上完成了学习,但这个数据集里没有虹猫蓝兔七侠传里的虹猫!未来我们获得了一些虹猫的数据,我们希望模型能直接学习辨认虹猫是猫,而不是要将他再次加入猫狗数据集中进行重新训练。
  • 对于多类但相关的任务,模型应能够进行知识的“融会贯通”,即旧能力能帮助新知识的学习,新知识也能提高旧能力。举个例子:线性代数和机器学习,如果用两个模型分别进行学习,虽然没有了灾难性遗忘问题,但也无法实现 knowledge 的 transfer,即两个模型无法进行知识互通。实际情况是,线性代数能够帮助对机器学习的学习,机器学习也能提升对线性代数的理解。

对比传统深度学习和连续学习,连续学习具有以下优势:

  • 空间:不需要保存旧任务的训练数据,节约内存,同时解决了隐私保护的限制(比如数据不能被长期访问)
  • 时间:模型能够保存之前任务所学习的知识,并能够将旧知识运用到未来的学习任务中,提高学习效率

连续学习的研究意义:

  • 提升模型在动态环境的学习能力:通过缓解连续学习过程中的灾难性遗忘问题,让智能系统自适应地在新环境中进行学习
  • 提高学习效率:高效地转化和利用已学过的知识(old knowledge)来完成新任务的学习(new knowledge)

连续学习相关研究领域:

  • 多任务学习:目的是结合所有任务的共同知识,同时改进所有单个任务的学习性能。
  • 迁移学习:使用源域帮助模型完成目标域学习的一种学习方式。

2. 重要挑战

研究连续学习所面临的重要挑战(参考 life long learning-终身学习):

  • Catastrophic Forgetting
  • Knowledge Retention but NOT Intransigence
  • Knowledge Transfer
  • Model Expansion but Parameter Efficiency

2.1 Catastrophic Forgetting

Catastrophic Forgetting 1 2:灾难性遗忘问题是指模型学习新任务后忘记旧任务。解决灾难性遗忘问题就是要模型在学习新知识的同时,还要保持在旧任务上的表现

摘论文中对灾难性遗忘的描述:This means the performance of the model on previously learned categories often decreases sharply after the model parameters are updated from the data of the new category.

这里必须提一下深度学习模型所面临的一个基本问题:stability-plasticity dilemma

  • plasticity 意为“可塑性”,指模型融合新知识的能力
  • stability 意为“稳定性”,指模型在学习新知识的同时保持旧知识的能力

连续学习相关工作基本上都在解决同一个问题:stability-plasticity dilemmarequires the neural networks to prevent forgetting previously learned knowledge, while maintaining the capability of learning new knowledge

Catastrophic Forgetting 的原因主要有两点

  1. 基于 Gradient Descent fine-tune 的网络模型会朝着当前训练数据最优解的方向更新,因此在面临动态的增量式任务时,会导致模型对旧任务性能的迅速下降
  2. 出于标注成本,新数据集中往往仅有对 new classes 的标注,而将 old classes 作为背景类,因此直接根据新数据集更新模型会导致对 old classes 的性能下降

再啰嗦一下,batch learning mode 学习方式会打乱训练数据,使得数据分布近似为独立同分布(IID.),而现实环境中未来的任务和数据是无法预测的,在时间轴上每个任务的数据其实是非独立同分布(Non-IID.)的。连续学习本质上属于 Sequential Learning。在 Sequential Learning 中,没有多余的内存存储旧数据,且未来的数据是未知的,因此难以用类似的策略将数据集转化为 IID.。若仍采取原有的训练策略,新数据就会对模型造成干扰,便会发生灾难性遗忘问题。

Q:为什么说连续学习环境下,模型的遗忘是“灾难性”的?

  • 关于模型的遗忘问题,我们可以有两种假设(先说结论,是第二种情况):
    • 假设一:模型能力有限,只能学习这么多,不可避免地出现了遗忘
    • 假设二:模型能学多种任务,但不知什么原因把旧任务都忘记了
  • 有相关论文做了实验,假设有 5 个任务,相同结构的模型
    • 实验一:直接把 5 个任务的数据混合起来,让模型进行 multi-task learning
    • 实验二:让模型在 5 个任务上进行连续学习
  • 实验结果是,进行 multi-task learning 的模型在 5 个任务上的表现虽然参差,但都学到了一些东西;而进行连续学习的模型只能在当前学习的任务上表现良好,对旧任务的表现极差。这个实验说明模型的 capacity 是够的,但却遗忘了旧知识,这种遗忘方式和人类不同,属于 “是不为也,非不能也”,因此说这种不正常的遗忘是 “灾难性的”。

P.S. Multi-task Learning 实际上是 Continual Learning 算法性能的上限(upperbound),这也是为什么很多论文都用 Multi-task Learning 的结果和连续学习模型结果进行比较的原因。

2.2 Knowledge Retention but NOT Intransigence

Knowledge Retention but NOT Intransigence:Knowledge Retention 意思是 “保留知识”,Intransigence 意思是 “固执的”,Knowledge Retention but NOT Intransigence 的意思就是让模型学过的知识保留下来(解决灾难性遗忘问题),但不能因此就拒绝接受新的知识,也就保留旧知识的同时有效学习新的知识

P.S. 这个问题和 Catastrophic Forgetting 实际上属于一个问题,只是阐述的角度不同罢了。

2.3 Knowledge Transfer

Knowledge Transfer:不同任务间 knowledge 的 transfer,就是上面提到过的 “融会贯通”。新任务的学习不仅能从旧知识中获益,同时还能提高模型对旧任务的表现。

Knowledge Transfer 包含了两个要求:

  1. 知识的正向迁移:模型能够利用旧知识帮助新任务的学习,提高新任务的学习效率和质量
  2. 知识的反向迁移:模型学习新任务后,对旧任务的表现也能有所提升

Knowledge Transfer 和 Transfer Learning(迁移学习)的区别:

  1. Transfer Learning 不是连续的,它仅使用源域来帮助完成目标域的学习
  2. Transfer Learning 仅关注单向迁移能力,也就是我们仅关注对目标域的迁移效果,至于目标域的学习是否会提高在源域的效果我们并不care,而连续学习中的 Knowledge Transfer 则关注双向迁移能力
  3. Transfer Learning 假设源域和目标域非常相似,而 Continual Learning 没有这样的限制性假设

2.4 Model Expansion but Parameter Efficiency

解决 Catastrophic Forgetting 的前提是模型有能力学但没有学,属于 “是不为也,非不能也”。现在假设任务真的非常多,模型的 capacity 确实不够了,我们就要考虑扩大模型。

Model Expansion but Parameter Efficiency:模型的可伸缩性或扩展能力,指的是模型能够动态地伸缩实现小规模或大规模任务的学习。特别是模型的扩展,需要在参数高效的情况下进行扩展,即找到一种最优的扩展方案。


  1. McCloskey, Michael, and Neal J. Cohen. “Catastrophic interference in connectionist networks: The sequential learning problem.” Psychology of learning and motivation. Vol. 24. Academic Press, 1989. 109-165. ↩︎

  2. French, Robert M. “Catastrophic forgetting in connectionist networks.” Trends in cognitive sciences 3.4 (1999): 128-135. ↩︎

猜你喜欢

转载自blog.csdn.net/qq_31347869/article/details/128038751