Life Long Learning(LLL)

Life Long Learning(LLL)

引入

先学任务一再学任务二不如同时学任务一二的性能表现。

模型有学习的能力但核心问题是机器会遗忘依序学的任务(Catastrophic Forgetting)。

目前一个模型的多任务学习存在以下问题: (1)不可能同时保存多个任务的训练资料(Storage issue,当任务多了以后根本存不下)

(2)多任务数据集训练训练的时间长(Computation issue)

  • 对比Life-Long Learning和Transfer Learning?

两者都是利用了多个任务,但是Transfer Learning只在意当前任务,而Life-Long Learning在意过去的任务。

评估

$R_{i,j}$代表在训练了任务i后在任务j上的表现,指标:

$Accuracy = \frac{1}{T} \sum_{i=1}^T R_{T,i}$

$Backward\ Transfer =\frac{1}{T-1}\sum_{i=1}^{T-1} R_{T,i} - R_{i,i}$判断新学任务之后精度的变化(结果通常是负数)

$Forward\ Transfer = \frac{1}{T-1} \sum_{i=2}^T R_{i-1,i}-R_{0,i}$

解决方法

Selective Synaptic Plasticity

Catastrophic Forgetting的原因:多个任务具有不同的error suface,从而导致灾难性遗忘。

模型中的一些参数对之前的任务很重要,因此之后训练任务中只更改不重要的参数。当$L(\theta)$是当前任务的损失时,就会发生遗忘。因此我们要minimize的损失需要得到改变。$\theta^b$是从之前任务中学习的参数,$\theta_i^b$指模型的每个参数,而$b_i$是对应的重要性程度。

$L’(\boldsymbol{\theta}) = L(\boldsymbol{\theta}) + \lambda \sum_i b_i \left( \theta_i - \theta_i^b \right)^2$

我们期待的是$\theta_i - \theta_i^b$尽量越接近越好,同时我们要利用$b_i$确定接近的程度($b_i$越大说明两者要越接近)。我们不要求每个参数都一摸一样,而是某些参数接近即可:当$b_i=0$说明肯定会遗忘;当$b_i=\infty$表示不妥协,一定会相同。

Gradient Episodic Memory(GEM)

刻意改变梯度下降的方向

但记住$g^b$要求需要存储之前训练的资料。

Progressive Neural Networks

Generating Data