Lifelong Learning.

终身学习(lifelong learning)也叫持续学习(Continuous Learning, Never Ending Learning)增量学习(Incremental Learning);是指把之前任务训练的模型应用到新任务中,在这些任务上都能获得不错的表现。

终身学习与迁移学习的区别在于:

1. 终身学习算法的性能评估

在评估终身学习算法的性能时,通常的做法是:

记录上述表现,可以列出矩阵:

其中$R_{i,j}$表示模型依次在前$i$个任务上训练后在第$j$个任务上的表现。

衡量算法性能的指标包括:

\[accuracy = \frac{1}{T}\sum_{i=1}^{T} {R_{T,i}}\] \[BWT = \frac{1}{T-1}\sum_{i=1}^{T-1} {R_{T,i}-R_{i,i}}\] \[FWT = \frac{1}{T-1}\sum_{i=2}^{T} {R_{i-1,i}-R_{0,i}}\]

2. 一些终身学习算法

⚪ Multi-task training

多任务学习(Multi-task training)可以用来解决终身学习问题。每当要解决一个新任务时,模型在所有之前的任务数据和新任务数据上进行学习;多任务学习的结果常作为终身学习的上界(upper bound)

多任务学习的主要问题在于:

一些解决方法:

⚪ Elastic Weight Consolidation

Elastic Weight Consolidation (EWC)是指在一个任务上训练得到参数$θ^b$后,对于一个新的任务,在损失函数上加上正则化项:

\[L'(θ) = L(θ) + λ\sum_{i}^{} {b_i(θ_i-θ_i^b)^2}\]

其中参数$b_i$用来衡量$θ_i^b$对上一个任务的重要性,

参数$b$的选择可以使用上一个任务损失函数的二阶微分。

相关阅读:

⚪ Gradient Episodic Memory

Gradient Episodic Memory (GEM)是指每次训练一个新的任务时,用之前的任务在模型当前参数下的梯度$g^1$、$g^2$…来修正参数$θ$的梯度更新方向$g$:

该方法也需要存储之前的数据。

⚪ Progressive Neural Networks

Progressive Neural Networks的思想是,每处理一个新的任务,就训练一个新的神经网络,且固定之前的神经网络模型使其可以处理之前的任务;新的神经网络使用之前的网络特征进行训练。

⚪ Net2Net

Net2Net是训练一个神经网络;每当处理一个新的任务,当前网络表现不够好时,就为网络增加神经元,使其当前参数等效于之前的网络,再在这个更大的模型上训练。

如下图,左边隐藏层具有两个神经元,右图为隐藏层增加了一个神经元,通过分配参数使其与左边等效。为参数加上一些噪声,再进行训练。

⚪ Curriculum Learning

Curriculum Learning旨在为终身学习选择一个合适的学习顺序。taskonomy为计算机视觉的各项任务分析了合适的学习顺序。

⚪ SupSup

训练过程supermask:随机初始化一个网络,网络的参数值$W$在训练中并不改变。引入一个mask矩阵$M$,随机对网络的每个连接赋予$0/1$值,从而构造一个子网络$W \otimes M$。模型在训练时针对某一特定任务上的数据集训练一个对应的mask。因此对于所有任务共享一个主网络,在解决每一个任务时根据其相应的mask使用一个子网络。

推断过程superposition:若已知测试图像$x$所属的数据集$i$,便可以直接选用对应任务的子网络$W \otimes M^i$进行测试:

\[p=f(x,W \otimes M^i)\]

当测试图像所述任务未知时,为每一个子网络$i$引入一个系数$\alpha_i \in [0,1]$,表示该网络对于该图像的适合程度。若共有$k$个任务,则初始化为$\alpha_i =\frac{1}{k}$。则此时模型的预测结果为:

\[p(\alpha)=f(x,W \otimes (\sum_{i=1}^{k} \alpha_i M^i))\]

期望预测结果的熵$\mathcal{H}$最小,通过梯度下降算法实现:

\[\alpha ← \alpha - \eta \nabla_{\alpha} \mathcal{H}(p(\alpha))\]