Life-Long Learning

对于不同的机器学习问题,都会设计不同的网络、采用不同的数据集去处理,使得这个网络只能处理给定的任务,而一般难以完成其他任务。因此,需要设计一个网络,通过在不同的任务上分别训练,使该网络具有处理所有任务的能力,这种能力叫持续学习(continual learning/life-long learning)。**终身学习(Life-Long Learning,LLL)**相当于一种能够从连续的信息流中学习的自适应算法,随着时间的推移,这些信息逐渐可用。

终身学习(LLL)

1 什么是 Life-Long Learning

对于机器学习领域,大概可以分为以下几类:

  • 计算机视觉(CV)
  • 语音(Speech)
  • 自然语言处理(NLP)
  • 推荐系统

对于不同的机器学习问题,都会设计不同的网络、采用不同的数据集去处理,使得这个网络只能处理给定的任务,而一般难以完成其他任务。因此,需要设计一个网络,通过在不同的任务上分别训练,使该网络具有处理所有任务的能力,这种能力叫持续学习(continual learning/life-long learning)。**终身学习(Life-Long Learning,LLL)**相当于一种能够从连续的信息流中学习的自适应算法,随着时间的推移,这些信息逐渐可用。关键的是,新信息的容纳应该在没有灾难性遗忘或干扰的情况下发生。

2 Life-Long Learning 的过程

终身学习主要解决三个方面的问题:

  1. 知识保留(Knowledge Retention):如果只使用一个模型来不断的学习不同的任务,则需要让它在学习新任务的时候,不要忘记已经学习到的东西。
  2. 知识迁移(Knowledge Transfer):我们希望所设计的模型可以使用已经学习到的东西来帮助解决新的问题。
  3. 模型扩展(Model Expansion):如果模型比较简单,也许可以处理简单问题,但在处理复杂问题时结果不太满意。因此,希望模型可以自己根据问题的复杂度进行扩展,变为更加复杂的模型。

知识迁移的流程:

  1. 任务按顺序接收
  2. 从先前学习的任务中迁移知识
  3. 存储新知识以备将来使用
  4. 改善现有知识

3 Life-Long Learning 的方法

3.1 Regularization

  • 在网络参数更新的时候增加限制,使得网络在学习新任务的时候不影响之前的知识。
  • 典型算法:EWC。

3.2 Ensembling

  • 当模型学习新任务的时候,增加新的模型(可以是显式或者隐式的方式),使得多个任务实质还是对应多个模型,最后把多个模型的预测进行整合。增加子模型的方式固然好,但是每多一个新任务就多一个子模型,对学习效率和存储都是一个很大的挑战。
  • 典型算法:Google 的 PathNet。

3.3 Rehearsal

  • 我们害怕模型在学习新任务的时候可能会忘了旧任务,那么可以通过不断复习的方式来解决:在模型学习新任务时,混合原来任务的数据,让模型能够学习新任务的同时复习旧任务。但是,这种方式的缺点是需要一直保存所有旧任务的数据,并且同一个数据会出现多次重复学习的情况。
  • 典型算法:GeppNet。

3.4 Dual-memory

  • 这个方法结合了人类记忆的机制,设计了两个网络,**fast-memory(短时记忆)**和 slow-memory(长时记忆)。新学习的知识存储在 fast-memory 中,fast-memory 不断地将记忆整合迁移到 slow-memory 中。
  • GeppNet+STM 是 rehearsal 和 dual-memory 相结合的算法。

3.5 Sparse-coding

  • 灾难性遗忘是因为模型在学习新任务(参数更新)时,把对旧任务影响重大的参数进行了修改。如果在模型训练时,人为的让模型参数变得稀疏,即把知识存在少数的神经元上,就可以降低新知识记录对旧知识产生干扰的可能性。
  • 典型算法:Sensitivity-Driven。

4 Multi-task Learning,Transfer Learning,Life-Long Learning 之间的区别

4.1 Transfer Learning 和 Life-Long Learning

  • Transfer Learning 只考虑在当前任务上的效果
  • Life-Long Learning 需要考虑在所有任务上的效果

4.2 Multi-task Learning 和 Life-Long Learning

  • Life-Long Learning 训练时只用当前任务的数据
  • Multi-task Learning 会用到之前所有任务的数据,这带来了数据存储以及计算量不断增大的问题; Multi-task Learning 可以看作 Life-Long Learning 的 upper bound。

5 Life-Long Learning 的评价指标

Test on
Task 1
Task 2
...
Task T
Rand Init.
R0,1
R0,2
...
R0,T
After Traning
Task 1
R1,1
R1,2
...
R1,T
Task 2
R2,1
R2,2
...
R2,T
...
...
...
...
...
Task T-1
RT-1,1
RT-1,2
...
RT-1,T
Task T
RT,1
RT,2
...
RT,T
  • Ri,jR_{i,j} 表示在训练完任务 ii 后,在任务 jj 上的表现
  • 需要考虑的问题:
    • 如果 i>ji>j,在训练完任务 ii 后,任务 jj 能被遗忘吗?
    • 如果 i<ji<j,能将任务 ii 的训练结果迁移到任务 jj 上吗?
  • Accuracy=1Ti=1TRT,iAccuracy = \frac{1}{T} \sum^{T}_{i=1} R_{T,i}
  • Backward Transfer=1T1i=1T1RT,iRi,iBackward\ Transfer = \frac{1}{T-1} \sum^{T-1}_{i=1} R_{T,i} - R_{i,i}
  • Forward Transfer=1T1i=2TRi1,iR0,iForward\ Transfer = \frac{1}{T-1} \sum^{T}_{i=2} R_{i-1,i} - R_{0,i}