Gradient Episodic Memory for Continual Learning

人工智能的一个主要障碍是模型在不忘记先前获得的知识的情况下,更快地解决新问题的能力很差。

首先,提出了一套度量标准来评估在数据连续体上学习的模型。这些度量不仅通过它们的测试准确性来表征模型,而且还根据它们在任务之间传输知识的能力来表征模型。

其次,提出了一个持续学习的模型,称为梯度情节记忆(GEM),它可以减轻遗忘,同时允许知识有益地转移到以前的任务中。

Intro

有监督学习的设置 $D{tr} = {(x_i,y_i)}{i=1}^n$ , 其中每个示例 $(x_i,y_i)$ 由特征向量 $x_i\in X$ 和目标向量 $y_i\in Y$组成。

大多数监督学习方法假设每个示例 $(x_i,y_i)$ 是来自描述单个学习任务的固定概率分布 $P$ 的独立同分布(IID)样本。目标是构造一个模型 $f:X \rightarrow Y$ ,用于预测目标向量 $y$ 与未见的特征向量 $x$ ,其中$(x,y) \sim P$

为了实现这一点,监督学习方法通常采用 经验风险最小化 (ERM) 原则 [Vapnik, 1998],其中 f 是通过最小化这个式子:

在实践中,ERM通常需要多次遍历训练集。经验风险最小化(Empirical Risk Minimization)

将逐个样本地观察数据的连续体:

$ti \in T$ 该任务描述符标识与 $(x_i,y_i)\sim P{t_i}$ 相关联的任务。

重要的是,样本不是从三元组 $(x,t,y)$上的固定概率分布中提取的,因为在切换到下一任务之前可以观察到来自当前任务的整个示例序列。

连续学习的目标是构造一个能够预测与测试对 $(x,t)$ 相关的目标 $y$ 的模型 $f: X\times T$,其中 $(x,y)\sim P_t$。

在这种情况下,ERM面临着未知的挑战:

  • Non-iid input data : 数据连续体相对于任何固定概率分布 $P(X,T,Y)$ 不是独立同分布的,因为一旦任务切换,就可以观察到来自新任务的整个样本序列。
  • Catastrophic forgetting : 学习新任务可能会损害学习者在以前解决的任务中的表现。
  • Transfer learning : 当连续体中的任务相关时,就存在迁移学习的机会。这将转化为更快地学习新任务,以及提高旧任务的性能。

A Framework for Continual Learning

连续体的数据三元组 $(xi,t_i,y_i)$ 由特征向量 $x_i\in X{ti}$ , 任务描述符 $t_i\in T$ , 目标向量 $y_i\in Y{t_i}$

为简单起见,我们假设连续体是局部 iid,即每个三元组 $(xi,t_i,y_i)$ 都满足 $(x_i,y_i) \sim^{iid} P{t_i}(X,Y)$

目标是学习一个预测器 $f:X\times T \to Y$,它可以在任何时候被查询以预测与测试对 $(x,t)$ 相关联的目标向量 $y$,其中$(x,y)\sim P_t$。这样的测试对可以属于我们在过去观察到的任务,可以属于当前的任务,也可以属于我们将在未来体验的任务。

Task descriptors

框架中的一个重要组成部分是任务描述符 $t_1, . . . , t_n \in T$ 。在最简单的情况下,任务描述符是整数 $t_i = i \in Z$,枚举出现在数据连续集中的不同任务。更一般地说,任务描述符 $t_i$ 可以是结构化对象,例如一段自然语言,解释如何解决第 $i$ 个任务。丰富的任务描述符为 zero-shot learning 提供了机会,因为可以单独使用新的任务描述符来推断任务之间的关系。此外,任务描述符消除了类似学习任务的歧义。特别是,相同的输入 $x_i$ 可能出现在两个不同的任务中,但需要不同的目标。任务描述符可以引用多个学习环境的存在,或提供有关每个示例的附加(可能是分层的)上下文信息。然而,在本文中,作者专注于减轻从连续数据中学习时的灾难性遗忘,并将 zero-shot learning 留给未来的研究。

Training Protocol and Evaluation Metrics

大多数关于学习一系列任务的文献描述了一种设置

  • i) 任务数量 很小
  • ii) 每个任务的示例数量很大
  • iii) 学习者对每个任务的样本执行多次传递
  • iv) 报告的唯一指标是所有任务的平均性能。

相比之下,本文:

  • i) 任务数量很大,
  • ii) 每个任务的训练样本数量很少
  • iii) 学习者只观察与每个任务相关的样本一次
  • iv) 报告了衡量转移和遗忘的指标。

除了监控其跨任务的表现外,评估模型传递知识的能力也很重要。更具体地说:

  • Backward transfer (BWT) :学习任务 t 对前一任务 k ≺ t 的性能的影响。当学习任务 t 时,提高了先前任务 k 的性能(存在正面的反向迁移)。当学习任务 t 会降低先前任务 k 的性能时(存在负面的反向迁移)。 越大意味着灾难性遗忘越严重。

  • Forwardtransfer(FWT) :学习任务t 对未来任务 k>t 的性能的影响。 $\hat b$是每个任务在随机初始化时的测试精度向量。

  • Retained Accuracy(RA) 是模型在训练结束时跨任务的平均准确率。

讨论第一个任务的向后转移或最后一个任务的正向转移是没有意义的。

考虑为每一个 $T$ 任务访问测试集。在模型学习完任务 $ti$之后,我们评估了它在所有 $T$ 个任务上的测试性能。通过这样做,我们构造了矩阵 $R \in R^{T\times T}$,其中 $R{i,j}$ 是在观察到来自任务 $t_i$ 的最后一个样本之后,模型对任务 $t_j$ 的测试分类精度。

Gradient of Episodic Memory (GEM)

梯度情景记忆(GEM),一种持续学习的模型。 GEM 的主要特征是情景记忆 $M_t$,它存储来自任务 t 的观察示例的子集。 为简单起见,我们假设整数任务描述符,并使用它们来索引情节记忆。 当使用整数任务描述符时,不能期望显着的正向转移(zero-shot learning)。 相反,我们专注于通过有效使用情景记忆来最小化负向后迁移(灾难性遗忘)。

实际上,学习者总共有 $M$ 个存储单元的预算。如果总任务数 $T$ 已知,我们可以为每个任务分配 $m=M/T$个存储器。如果总任务数 $T$ 未知,我们可以在观察新任务时逐渐减小 $m$ 值

为简单起见,假设内存中填充了来自每个任务的最后 $m$ 个示例,尽管可以采用更好的内存更新策略(例如为每个任务构建核心重置)。在下文中,我们考虑由 $\theta \in R^P$参数化的预测因子 $f_\theta$,并将第k个任务的记忆损失定义为:

显然,将当前示例中的损失与上式一起最小化会导致过度拟合存储在 $M_k$中的示例。作为另一种选择,我们可以通过蒸馏的方法来保持过去任务的预测不变 —— iCaRL: Incremental classifier and representation

然而,这将认为正向后向转移是不可能的。 相反,我们将使用 上面的损失 作为不等式约束,避免它们的增加但允许它们的减少。 与最先进的 [Kirkpatrick et al., 2017, Rebuffi et al., 2017] 相比,我们的模型允许正向后向转移。

更具体地说,在观察三元组 $(x,t,y)$时,我们解决了以下问题:

其中 $f_{\theta}^{t-1}$ 是任务 t−1学习结束时的预测器状态。

首先,在每次参数更新g之后,只要我们保证以前任务的损失不增加,就没有必要存储旧的预测值 $f_{\theta}^{t-1}$。

其次,假设函数是局部线性的(因为它发生在小优化步骤周围)并且memory代表过去任务的样本,我们可以通过计算它们的损失梯度向量之间的角度来 ,判断先前任务损失的增加 和建议的更新。在数学上,我们将上面式子的约束重新表述为:

如果满足上面的不等式,则参数更新 $g$ 不太可能增加先前任务的损失。

另一方面,如果违反了一个或多个不等式约束,那么至少有一个先前的任务在参数更新后损失会增加。 如果违反不等式,我们建议将梯度 g 投影到满足所有上式约束 的最近梯度 $\hat g$(以平方 $l2$ 范数表示)。 因此:

为了有效地解决上式,回想一下具有不等式约束的二次规划Quadratic Program (QP)的原始值:

凸优化笔记(3)Quadratic Programming简介

其中$C\in R^{p\times p}, p\in R^p,A\in R^{(t-1)\times p} ,b\in R^{t-1}$ , 上式的对偶问题是:

如果 $(u^⋆,v^⋆)$是上个式子的解,则存在解 $z^⋆$ 满足 $Cz^⋆=Cu^⋆$

有了这些符号,我们将原始GEM QP 写成:

其中 $G = -(g1,…,g{t-1})$ 并且去掉常数项 $g^Tg$ 。这是 p 个变量(神经网络的参数数量)上的 QP,可以以数百万计。 但是,我们可以将 GEM QP 的对偶假设为:

由于 $u = G^Tv + g$ 并且 $g^T g$ 是常数,这是在 $t − 1 ≪ p$ 个变量上的 QP,即目前观察到的任务数量。一旦我们解决了 $v^$ 的对偶问题(上式) ,我们就可以将投影梯度更新恢复为 $\hat g = G^Tv^ + g$。 在实践中,我们发现添加一个小的常数 $\gamma \ge 0 $ 到 $v^⋆$ 会使梯度投影偏向于有利于有益向后转移的更新。

实验