Continual Learning 经典方法 — Gradient Episodic Memory (GEM)

1. 终身学习目标:

缓解灾难性遗忘问题:当数据以online stream的方式训练模型时,训练完 Task 1 之后的模型,在学习 Task 2 的数据时往往会将 Task 1 的知识遗忘,导致在之前训练过的 Task 1 上性能急剧下降。

2. Gradient of Episodic Memory

2.1 什么叫 Episodic Memory

最直观的解决遗忘性问题的方法,就是保存之前训练过任务的数据 (考虑到数据隐私性和计算存储开销的问题,保存的数据量不宜过大) —— 因此将保存好的之前训练过任务的数据称为 Episodic Memory。
Tips: 很 tricky 的是在 continual learning 这个领域中,文章很多时候都是 motivated from 人脑生理结构。在脑生理中这些之前的学习到的知识片段也叫做 episodic memory (情景记忆)。

2.2 算法流程

首先定义 episodic memory M k \mathcal{M}_{k} Mk,其中 k k k 表示之前训练的第 k k k 个任务。由此,可以定义在 M k \mathcal{M}_{k} Mk 上的损失函数:
ℓ ( f θ , M k ) = 1 ∣ M k ∣ ∑ ( x i , k , y i ) ∈ M k ℓ ( f θ ( x i , k ) , y i ) \ell\left(f_{\theta}, \mathcal{M}_{k}\right)=\frac{1}{\left|\mathcal{M}_{k}\right|} \sum_{\left(x_{i}, k, y_{i}\right) \in \mathcal{M}_{k}} \ell\left(f_{\theta}\left(x_{i}, k\right), y_{i}\right) (fθ,Mk)=Mk1(xi,k,yi)Mk(fθ(xi,k),yi)
但是直接最小化上述损失函数容易造成模型对 M k \mathcal{M}_{k} Mk 中的样本过拟合。所以,考虑一个不等式约束,即允许上述损失函数减少即可。正式地,我们定义下面的整体优化目标:
minimize ⁡ g ˉ 1 2 ∥ g − g ~ ∥ 2 2  subject to  ⟨ g ~ , g k ⟩ ≥ 0  for all  k < t \begin{aligned} \operatorname{minimize}_{\bar{g}} \frac{1}{2} &\|g-\tilde{g}\|_{2}^{2} \\ \text { subject to } &\left\langle\tilde{g}, g_{k}\right\rangle \geq 0 \text { for all } kminimizegˉ21 subject to gg~22g~,gk0 for all k<t
其中 g g g 表示当前任务 t t t 对应的梯度,而 g ~ \tilde{g} g~ 表示在 L2 范数条件下 g g g 的投影。上式可以通过二次规划解决。

2.3 总结
  • 从实验结果角度来看,采用 Naive Rehearal 方法时,当 M k \mathcal{M}_{k} Mk 中样本数量很小时,确实网络容易对其产生严重过拟合,甚至结果还不如 regularization-based 方法如 EWC,SI。
  • 本文从方法上提出了很 elgant 的策略 —— 并不直接优化 M k \mathcal{M}_{k} Mk 上的结果,而将其作为不等式约束,可以理解成用之前训练的任务对当前训练任务进行正则化,继而修正当前模型更新的梯度方向 (即获得投影结果 g ~ \tilde{g} g~)

你可能感兴趣的:(深度学习,机器学习,终身学习,GEM,Episodic,Memory)