首页 > 其他分享 >Gradient-based Editing of Memory Examples for Online Task-free Continual Learning---阅读笔记

Gradient-based Editing of Memory Examples for Online Task-free Continual Learning---阅读笔记

时间:2023-03-13 19:56:04浏览次数:33  
标签:Task based 示例 Gradient GMED 编辑 内存 theta ER

摘要:

在缺少明确的任务边界和任务标识的情况下,本文探索了task-free continual learning(任务具有独立的数据标签空间,在训练和测试的过程中不提供任务识别符), 在这个场景中需要一个可以避免灾难性遗忘的模型。在众多针对task-free CL的方法中,一个著名的方法家族是基于内存的方法,即存储和重放训练样本的子集。但是这种方法的效用会随着CL模型的更新越来越弱。所以本文提出了一个基于内存编辑的梯度更新(GMED)的方法,该方法是通过一个在持续输入中通过梯度更新来编辑存储样本的框架,目的是为了创造一个对于重放来说更加具有”挑战“的样本。GMED编辑的示例与未编辑的形式保持相似,但可以在即将到来的模型更新中产生增加的损失,从而使未来的回放更有效地克服灾难性遗忘。进一步,GMED可以与其它基于内存的CL算法无缝链接运用,可以给实验带来进一步的改进。

1 Introduction

背景:最近看到了兴趣的激增,许多研究已经提出了减轻CL模型对以前学习过的知识的灾难性遗忘的方法

持续学习:Learning from a continuous stream of data(从连续的数据流中学习)

task-free CL: task identififiers and boundaries are absent from the data stream(数据流中没有任务标识符和边界)这个设定在真实世界中大量存在也对持续学习的研究带来了挑战。

基于内存的方法是一类用于无任务连续学习的突出的方法,它在内存中存储少量的训练示例,并在以后的训练迭代中重放它们。现存的方法在数据流的原始数据上操作,专注于识别样例去填充内存,在内存中找到样例去重放。

缺点:对于不断更新的模型,使用原始形式的存储示例,可能会随着时间的推移导致效用下降——也就是说,随着内存刷新,模型可能会缓慢地逐渐记忆存储的示例。

解决方法:另一种方法是使用生成模型来创建更容易被遗忘的样本。

缺点:在实践中,用有限的数据训练生成器网络是很难得,并且可能会导致生成低质量的示例。更进一步,在在线学习的设置中,生成模型本身也会遭受遗忘。

解决办法:本文提出了一个新的基于内存的CL框架,基于梯度的内存编辑(GMED),它直接“编辑”(通过一个小的梯度更新)存储在重放内存中的样例。这些编辑过的示例被存储(替换未编辑的示例)、重放并进一步编辑,从而使未来的回放更有效地克服灾难性遗忘。

由于不涉及显式生成模型,GMED方法保留了基于记忆的方法的优点,并且可以直接训练,只产生较小的计算开销。

允许通过梯度更新进行“编辑”的主要考虑因素是优化目标的选择。在最近设计替代重放策略方面的工作中,我们假设“干扰”的例子(即,过去遭受损失增加的例子)应该优先考虑重放。对于一个特定的存储样例,GMED会在样例中找到一个小的更新信息(编辑),这样结果编辑的示例在重放时产生的损失增加最多。GMED另外惩罚编辑示例中增加的损失,以强制编辑的示例与原始示例接近,以便编辑的示例保持在分布中。因此,重放这些编辑过的例子可以更有效地克服灾难性的遗忘。由于GMED只关注于编辑存储的示例,因此通过构建,GMED是模块化的,因此它可以与其他最先进的基于内存的重放方法无缝集成。

本文的贡献有两点:

(1)引入GMED,一个模块化框架在线持续学习,编辑存储的例子,使它们更有效地减轻灾难性遗忘

(2)执行密集的实验测试GMED的性能在各种数据集,参数设置(如内存大小)和竞争基线目标。

2 Related Work

Continual Learning:持续学习研究了从随时间变化的数据分布的数据流中学习的问题。持续学习的瓶颈就是灾难性遗忘,目前减轻灾难性遗忘的方法主要有:adding regularization , separating parameters for previous and new data ,replaying examples from memory or a generative model , meta-learning

Online Task-free Continual Learning: 在线无任务持续学习是持续学习的一个具体公式,其中任务边界和身份是不可用的模型。由于其对现实世界数据流的更广泛的适用性,许多算法已经适应于无任务设置。特别是,基于内存的CL算法存储了一个样例子集,然后在训练中重放它们,在无任务设置中得到了更高的成功。这个领域的改进主要集中在:storing diverse examples(存储不同的例子),如Gradient-based Sample Selection (GSS)replaying examples with larger estimated “interference”(用较大的估计“干扰”重播例子),如 Maximally Interfered Retrieval (MIR),相比之下,GMED与基于内存的方法一起使用,并显式地搜索一个编辑过的例子,以优化为更“有效”的回放。

Replay Example ConstructionMoving away from replaying real examples(不重放真实的例子),使用深度生成模型去生成合成的例子,然后去重放。但是训练一个生成网络是很难的,甚至在在线持续学习设置中,流样例只遇到一次,导致生成很差。此外对生成式网络本身的遗忘并不能完全得到缓解。这些方法的性能通常比基于内存的对抗器要差。GMED不是通过生成器网络生成一个新的示例,而是使用梯度更新来直接编辑存储的示例,从而在创建新的示例时保留了基于内存的技术的优势。

3 Method

3.1 Problem Formulation

在持续学习中,我们考虑了一个标签样本\((x,y)\)的数据流\(D\),它有一个非稳态数据分布,即数据分布会随着时间的变化而变化。让\((x_t,y_t)\) 表示在时间步骤\(t\)时接收的样本。为了简化,假设\((x_t,y_t)\) 是由第一个采样了一个”task“ \(z~~p(z;t)\)产生的样本,接下来的样本来自条件数据分布\(p(x,y|z)\)采样的. 这里的\(p(z;t)\)是非独立同分布的,且是依赖时间的。在\(task-free\) CL设置中,任务z没有显示在模型中。最终,我们强调,虽然任务感知设置中的模型只有在当前任务上收敛后才能进行下一个任务,但这项工作的重点是在线无任务CL设置。它模拟了一个实际的设置,其中模型必须对每个传入的示例执行在线更新,而不是在任务中积累示例。

根据上述定义,我们的目标是在数据流D上学习一个分类模型\(f(x;θ)\),该模型可以保持其在\(D\)中的所有任务上的性能。

3.2 Gradient based Memory Editing (GMED)

在在线无任务持续学习中,之前访问的例子无法被访问(重新访问),因此不可能计算所有访问的例子(在D中)的损失。为了应对这一挑战,基于内存的CL算法存储一组访问过的示例,并在未来的训练步骤中将它们用于重放或正则化。然而,这些算法只对从一个原始形式的小回放内存中提取的样本进行训练。因此,如果内存示例以缓慢的速度刷新,模型可能会记住这些示例导致存储的示例的效用可能会随着时间的推移而减少。

本文提出了GMED来解决以上的限制,该方法允许存储在内存中的样本能够被编辑。如图一

image-20230309151334204

编辑步骤是被优化对象所指引而不是被预定义所指引,涉及到从内存中选取样本,编辑选取的样本,重放编辑过的样本,同时要把编辑过的样本写入内存。

Editing Objective

GMED中涉及的最关键的步骤是确定“如何”编辑内存中存储的示例,以减少早期示例的灾难性遗忘。如果\((x_m,y_m)\) 表示从内存M中选取的样本,目标就是设计一个合适的面积函数产生这个编辑样本\(\hat{x}_{m}\) ,\(\hat{x}_{m}\mathrm{=}\bar{\phi(x_{m})}.\)

在持续学习的背景下,我们采用了可能被模型遗忘的例子应该优先进行重放假设。因此,我们编辑示例,以便它们更有可能在未来的更新中被遗忘。有了编辑的目标,我们详细介绍了将GMED与经验回放(ER)合并的过程。

3.3 The GMED Algorithm with ER

在步骤t时,这个模型接收了来自训练集D流样本\((x_D,y_D)\) 的mini-batch,并且随机的从内存M中选取相同数量的内存样本\((x_m^k,y_m)\) ,样本已经被重放了\(k\)次.

首先当这个模型使用样本\((x_D,y_D)\)执行一次梯度更新参数时会计算在内存样本上的”干扰“---增加的损失:

\[\theta'_t=\theta_t-\nabla_\theta\ell(x_D,y_D;\theta_t); \tag{1} \]

\[d_{t:t+1}(x_m^k,y_m)=\ell(x_m^k,y_m;\theta_t^\prime)-\ell(x_m^k,y_m;\theta_t),\tag 2 \]

其中,\(\theta_t\)和 \(\theta'_t\) 分别是梯度更新前后的模型参数。然后我们在\((x_m^k,y_m^k)\) 上执行一次梯度更新,在下一步的训练中最大化它的增加损失,与此同时采用正则化项\(\ell(x_{m},y_{m};\theta_{t})\) 去惩罚增加损失。迭代如下:

\[x^{k+1}_m\leftarrow x^k_m+\gamma^k\alpha\nabla_x[d_{t:t+1}(x^k_m,y_m)-\beta\ell(x^k_m,y_m;\theta_t)],\tag 3 \]

超参数\(α\)控制着编辑的整体步幅,并与前三个任务和正则化强度β一起进行调整.。 \(γ\)是对模型进行的编辑的衰减因子。

请遵循公式3、我们对\(x\)执行一个梯度更新增加了它的“干扰”。.然后,该算法丢弃\(\theta'_t\),并使用编辑后的内存示例\((x_m^{k+1},y_m)\)更新模型参数\(θ_t\) :

\[\theta_{t+1}=\theta_t-\nabla_\theta\ell(\{(x_m^{k+1},y_m),(x_D,y_D)\};\theta_t). \tag 4 \]

我们用编辑过的示例替换内存中的原始示例。通过这种方式,我们在训练中不断编辑存储在内存中的例子

3.4 Applying GMED with Data Augmentation, MIR and GEM

由于在GMED中编辑原始示例的过程是模块化的,因此我们可以将GMED与一系列现有的基于内存的CL算法集成起来。除了ER,本文还探索了\(ER_{aug}\) ,ER-MIR,GEM

\(ER_{aug}\) 把标准的数据增强应用到从内存中选取的样本\((x_m,y_m)\) 中,该样本在每个时间步骤时都会被重放,在\(ERaug\)+GMED中,我们编辑原始的样本\(x_m\) ,重放增强的样本\(\mathcal{T}(x_{m})\) 和编辑过的样本\(\hat{x}_{m}\) 。为了保持重放的示例的数量相同,对于\(ERaug\)方法,我们还重放了编辑过的示例\(\mathcal{T}(x_{m})\) 和原始示例\(x_m\)。最后,我们将编辑过的示例\(\hat{x}_{m}\) 写入到内存中。

为了与ER-MIR集成,记住MIR在每个时间步检索并回放内存中最“干扰”的例子。因此,对mir检索的示例进行GMED编辑可能会导致进一步增加“干扰”的“干扰”的循环。相反,在我们的MIR+GMED实现中,我们编辑了从内存中随机采样的一小批示例一个独立于MIR重放操作的过程。这种随机抽样可能有助于防止GMED编辑加剧MIR检索过程中产生的潜在偏差。类似地,对于GEM+GMED,我们也应用GMED来编辑一小批随机抽样的示例.

4 Experiments

4.1 Datasets

本文使用了六个公开的CL数据集。

Split / Permuted / Rotated MNIST都是由MNIST数据集构建的。

Split MNIST 根据类标签创建5个不相交的子集,并将每个子集视为一个单独的任务。我们的目标是在训练结束时对所有10位数字进行分类。

Permuted MNIST由10个任务组成,其中对于一个特定的任务,选择像素空间中的随机排列并应用于该任务中的所有图像。然后,该模型必须对10位数字进行分类,而不知道应用了哪种随机排列。

Rotated MNIST 将MNIST中的每个样品旋转到0到180之间的固定角度。与之前的数据集类似,其目标是在不知道旋转角度的情况下对超过10位数字进行分类

对于所有的MNIST实验,每个任务由1000个训练示例组成。

本文还采用了Split CIFAR-10 and Split CIFAR-100 他们基于它们的类标签分别构成了5个和20个独立的子集,然后,该模型对所有类标签的空间进行分类。

Split mini-ImageNet 根据其标签将分割的mini-ImageNet数据集分成20个不相交的子集。这些模型对所有100个类进行了分类。

Split MNIST、Split CIFAR-10、Split CIFAR-100和Split mini-ImageNet 属于类增量设置,而Permuted / Rotated MNIST实验属于域增量设置。

不同设置上的相同数据集不具有可比性!

4.2 Compared Methods

我们与几种基于无任务记忆的持续学习方法进行了比较,即经验回放(ER)、平均梯度情景记忆(AGEM)、基于梯度的样本选择(GSS)和最大干扰检索(MIR)。

我们还与数据增强[5]进行了比较,如随机旋转、缩放和水平翻转

我们还包括基于正则化、基于模型扩展和任务感知的方法,即贝叶斯重力下降(BGD),神经狄利克雷过程混合模型(CNDPM),渐进网络(Prog.NN) ,组合终身学习(CLL),严肃情景记忆(GEM)和事后锚学习(HAL)

最后,我们选择了三个基线模型

(i) Fine Tuning,其中没有连续学习算法用于在线更新模型参数

(ii)iid Online,其中我们随机打乱数据流,以便模型访问一个i.i.d.“实例流”

(iii)iid Offline,其中允许多次传递数据集。

4.3 Performance Across Datasets

我们总结了将GMED与不同的CL算法集成得到的结果。在表1中,我们报告了最终的准确性和标准偏差,并进行了以下关键的观察结果。

image-20230311172936017

Effectiveness of Memory Editing

当GMED分别基于ER和MIR构建时,GMED显著提高了在5个数据集的性能。MIR+GMED的改进表明了GMED连续输入空间的优化是对MIR中在真实样例的样本选择的补充。我们还注意到\(ERaug\)在5个数据集上比GMED有了显著的改进。这表明,GMED所产生的好处超过了用于缓解过拟合的正则化效应。

Comparison across CL methods

从表1中,我们发现MIR+GMED在Split MNIST、Permuted MNIST和Split CIFAR-100数据集上取得了最好的性能;而在Rotated MNIST、Split CIFAR-10和Split mini-ImageNet数据集上,ERaug+GMED取得了最好的性能。在5个数据集上,性能最好的GMED方法的性能可以显著提高到之前的SOTA上。

我们进一步比较了一种基于非记忆的CL方法,CN-DPM ,该方法采用了一个生成模型、一个动态扩展的分类器,并利用了一个短期记忆(STM)。我们为GMED设置了内存大小,以便有两种方法可以引入相同数量的开销。表2为ER、ER+GMED和CN-DPM报告结果。有趣的是,ER本身就实现了与模型扩展方法相当的性能。与ER相比,ER+GMED的性能进一步优于CN-DPM,而没有任何额外的内存开销。类似地,GMED也优于Prog等任务感知模型扩展方法。神经网络和最近提出的组合模型扩展(CompCL)具有较小的内存开销。

Performance under Various Memory Sizes

图2显示了ER、ER+GMED、MIR和MIR+GMED在不同内存大小下的性能。在所有内存大小设置上,\(p\) < 0.05对Split MNIST和Split mini-ImageNet的改进是显著的。在Rotated MNSIT和Split CIFAR-10上,改进也最显著。对Split CIFAR-100的改进竞争力较差,可能是因为数据集对于类增量学习过于困难,因为所有设置的准确率都在大约或低于20%左右。

image-20230311174548069

Performance on Data Streams with Fuzzy Task Boundaries

表1中的实验假设了一个明确的任务边界。在表3中,我们报告了在四个数据集上使用具有模糊任务边界的数据流的结果。在这种设置中,一个新任务的概率密度从50%的例子开始线性增长

Effectiveness of GMED in Task-Aware Setting

此外,我们还在附录中比较了其他任务感知方法(HAL、GEM、GEM+GMED)的性能

4.4 Ablation to Study the Effect of Memory-Editing

我们提出了一组实验来验证通过GMED的记忆编辑步骤获得的收益确实有助于减轻灾难性遗忘。进一步,我们表明,这些增益是不同于那些通过随机扰动或简单的正则化效应获得的

Comparison to Optimal Editing Direction

在步骤t,GMED使用流样例\((x_D,y_D)\) 和内存样例\((x_m,y_m)\) 辨别编辑方向。为了验证由GMED提出的编辑是否有用,本文比较了GMED-edit和”Optimal Edit“-----在未来的一个时间步长中,最小化所有早期训练例子的损失增加。

为了计算”Optimal Edit“,采取在整个以前的的样本上计算总的损失增加量:

\[d_{t:t+1}^{\mathrm{1:t}}=\sum_{i=1}^t d_{t:t+1}(x_i,y_i)=\sum_{i=1}^{t}[\ell(x_{i},y_{i};\theta_{t+1})-\ell(x_i,y_{i};\theta_t)], \]

其中\(\theta_{t+1}=\theta_t-\nabla_\theta\ell(x_m,y_m;\theta_t)-\bar{\nabla}_\theta\bar{\ell}(x_D,y_D;\theta_t)\) 是在流样例\((x_D,y_D)\) 和内存样例\((x_m,y_m)\)上训练更新后的模型参数。这个对于内存样例\(x_m\) ”Optimal Edit“的方向是\(d_{t:t+1}^{\mathrm{1:t}}\) 在\(x_m\) 上的梯度的方向。计算这种最佳编辑需要访问早期训练的例子,并且在在线持续学习设置中无法允许这种操作;我们提出它只是为了消融的目的。

图3显示了GMED与在Split MNIST和Rotated MNIST数据集上的最优编辑策略之间的更新方向(即\(x_m\)的梯度)的余弦相似性。在两个数据集上,平均运行10轮,随着时间的推移平均相似度分别为\(0.523\pm0.014\)和 \(0.035\pm0.009\) 而随机编辑的期望是相似度为零。在Split MNIST数据集上,我们注意到GMED的更新方向与最优编辑之间有很高的相似性。在改善不那么显著的Rotated MNIST上,相似性平均仍为正,但低于Split MNIST。这意味着GMED-编辑通常与明确地减少遗忘相一致,但仍有改进的空间。结果还表明,GMED的编辑是否与编辑相一致,高度依赖于数据集的某些属性。

Comparison with alternative Editing Objectives

虽然GMED目标编辑与最优编辑相关,但我们进一步验证了目标函数的选择,并考虑了两种替代所提出的编辑目标: (i) Random Edit:内存示例以固定的步幅以随机方向更新;(ii)Adversarial Edit:根据对抗示例构造的文献,编辑通过遵循梯度sgn \(\nabla_x\ell(x_m,y_m;\theta)\) 增加内存损失。

我们注意到ER+Random Edit在Split mini-ImageNet上优于ER,这表明在内存中添加随机噪声有助于正则化。

由图可以看出, GMED-edits在多个数据集和模型上一样好或优于random和adversarial edit

这验证了本文对编辑目标的选择。

Comparison to Increasing the Number of Replayed Examples

在MIR-GMED中,采样了两个独立的内存示例子集来执行编辑和重放. 为了进行更公平的比较,我们重放一个(或多个)额外的示例子集。表4显示,当重放更多的示例时,性能并没有得到改善。我们假设性能是由内存的大小,而不是重放的例子的数量。

Case study on Edited Memory Examples

在图4中,我们展示了编辑内存示例的可视化过程。这些示例是使用ER+GMED从Split MNIST数据集中的前两个任务(0/1,2/3)中提取的。第一行和第二行显示原始和编辑的示例,分别标注为\(x_{before}\)和\(x_{after}\).第三行显示了两个∆x=\(x_{after}\)−\(x_{before}\)之间的差异。虽然原始和编辑的例子之间没有显著的视觉差异,但在差异∆x中,我们发现了轮廓夸张的例子(例如例(1)和(12))和模糊的例子(例如例(2)、(3)、(5)和(6))。直观地看,模糊的例子被夸大了,而典型的例子是模糊的。我们的可视化支持这种直觉:示例(1)和(12)通常不是所写的数字,而示例(2)、(3)、(5)和(6)则是典型的数字。

image-20230312142603055

4.5 Analysis on the GMED Framework

在这里,我们分析和消除了在GMED框架中使用的各种组件及其对最终性能的影响。

Hyper-parameter Sensitivity

在图5中,我们绘制了GMED对两个超参数的性能的敏感性:编辑步幅\(α\)和正则化强度\(β\) . 显然,ER+GMED在广泛的\(α\)和\(β\)设置上都优于ER。此外,在图5(d,e,f)中,非零\(β\)的更好的性能证实了正则化项的好处。回想一下,在我们的主要实验中,我们只用前三个任务来调整超参数\(α\)和\(β\);我们注意到所选择的超参数可以提高性能,尽管它们并不总是最优的。

image-20230312142850099

Computational Effificiency

我们分析了ER+GMED和MIR所需的额外的正向和反向计算。与ER相比,ER+GMED增加3个正向和1个后通过来估计损失增加,1个后通来更新示例。相比之下,MIR添加了3个正向传球和1个后向传球,其中2个正向传递在更大的检索候选集合上。在我们的实验中,我们发现GMED具有与MIR相似的训练时间成本。

Increasing Steps of Editing

对于表1中的实验,我们在时间步长t时对采样的内存示例\(x_m\)执行了一个编辑步骤。一般来说,我们可以增加编辑步骤的数量。编辑的方向在每一步计算,这使得该方法不同于增加编辑步幅(α)。表5表明,3步和5步编辑通常不会导致性能的显著提高,同时也会带来额外的计算成本。因此,我们在所有的实验中只使用了1个编辑步骤。

5 Conclusion

在本文中,我们提出了基于梯度的内存编辑(GMED),这是一个基于内存的无任务持续学习的模块化框架,其中存储在内存中的例子可以被编辑。重要的是,由GMED编辑的内存示例被保持在分布中,但在即将到来的模型更新中产生增加的损失,因此在减轻灾难性遗忘方面更有效。我们发现,将GMED与现有的基于内存的CL方法相结合,可以在多个基准数据集上实现一致的改进,这只会导致很小的计算开销。最后,我们进行了彻底的消融研究,以验证GMED获得的收益确实可以归因于其编辑操作和编辑目标的仔细选择。

标签:Task,based,示例,Gradient,GMED,编辑,内存,theta,ER
From: https://www.cnblogs.com/ZLey/p/17212616.html

相关文章