【博士每天一篇文献-算法】On tiny episodic memories in continual learning

简介: 本文研究了在连续学习环境中使用小型情节记忆来解决灾难性遗忘问题,通过实证分析发现经验重播(ER)方法在连续学习中的表现优于现有最先进方法,并且重复训练对过去任务的小型记忆可以提升泛化性能。

阅读时间:2023-10-22

1 介绍

在连续学习中,智能体通过利用先前的经验从一系列任务中学习,并将知识传递给未来的任务。为了成功执行先前的任务,学习者需要记住如何执行它们。一种使学习者具备这种能力的方法是通过存储一个小的记忆,称为情节记忆,该记忆存储了来自先前任务的一些示例,并在训练未来任务时重播这些示例。作者通过实证分析了在每个训练样本仅出现一次的连续学习设置中,小型情节记忆的有效性。他们发现一种称为经验重播(ER)的简单基准方法,它在当前任务的示例和存储在情节记忆中的示例上进行训练,明显优于用于连续学习的现有最先进方法,无论是否使用情节记忆。此外,对过去任务的小型记忆进行重复训练不会损害泛化性能,反而会提高泛化性能。

2 创新点

引入了一个小型的情节性记忆,通过将之前的任务的示例存储在这个记忆中,并在训练后续任务时重新播放这些示例,从而解决了连续学习中的灾难性遗忘问题。

3 算法

存储一个称为情节记忆的小型记忆,它存储了来自之前任务的几个示例,并在训练未来任务时重放这些示例。
存储的来自之前任务的几个示例可以通过两种方式进行:

  1. 经验回放-蓄水池采样(Reservoir Sampling): 这种方法在整个数据流中随机选择一些数据点来存储在记忆中。通过这种方法,可以保持对之前任务的一些样本进行回放,以供未来任务的训练使用。经验表明,水塘采样在记忆容量较大时效果最好。
  2. 环形缓冲区(Ring Buffer): 这种方法为每个任务分配了一组FIFO(First-In-First-Out)缓冲区,每个类别有一个缓冲区。缓冲区的大小是预先设定的,它保留了每个类别最近的若干观察样本。与水塘采样不同,环形缓冲区不会在训练过程中更改来自早期任务的样本,这可能导致更强的过拟合。然而,在训练的早期阶段,由于每个类别的缓冲区大小保持不变,存储器不能充分利用。然而,这种简单的抽样策略保证了记忆中所有类别的平等表示,这在记忆很小时特别重要。

4 实验分析和结果

四个常用的基准数据集。Permuted MNIST 、Split CIFAR 、Split miniImageNet、Split CUB。
采用的模型有FINETUN、EWC、A-GEM、MER
在这里插入图片描述

  • FINETUNE是一种模型,它在没有任何正则化和情节记忆的情况下进行持续训练,并且使用上一个任务的参数初始化新任务的参数。
  • EWC是一种基于正则化的方法,通过限制对于过去任务性能至关重要的参数的学习来避免灾难性遗忘。
  • A-GEM是一种使用情节记忆作为优化约束的模型。
  • MER是一种利用情节记忆并使用近似当前任务梯度和先前任务梯度点积的损失来避免遗忘的模型。

根据实验结果,当任务之间相关度较小时,即旋转角度差小于20度时,即使没有记忆,通过在T2上的训练也可以改善对T1的泛化性能。然而,当在D2和M1上进行训练时,无论两个任务之间的相关性如何,T1的泛化性能都优于FINETUNE方法,即仅使用D2进行训练。
实验还比较了不同的记忆更新策略,其中经验表明对于小型情节性记忆,基于样本均衡的采样方法效果最好,而对于更大的记忆,基于蓄水池采样(Reservoir Sampling)的方法效果最好。此外,综合使用蓄水池采样和基于环形缓冲区的方法可以在记忆中保留充足的样本的同时实现良好的随机性。

5 待研究问题

什么样的最佳输入最能减轻预期遗忘,并寻找在记忆完全填满时从记忆中删除样本的最佳策略。

6 代码

https://github.com/firehose-dataset/congrad?utm_source=catalyzex.com

目录
相关文章
|
1月前
|
人工智能 算法 安全
【博士论文】基于局部中心量度的聚类算法研究(Matlab代码实现)
【博士论文】基于局部中心量度的聚类算法研究(Matlab代码实现)
|
机器学习/深度学习 人工智能 资源调度
【博士每天一篇文献-算法】连续学习算法之HAT: Overcoming catastrophic forgetting with hard attention to the task
本文介绍了一种名为Hard Attention to the Task (HAT)的连续学习算法,通过学习几乎二值的注意力向量来克服灾难性遗忘问题,同时不影响当前任务的学习,并通过实验验证了其在减少遗忘方面的有效性。
256 12
|
机器学习/深度学习 算法 计算机视觉
【博士每天一篇文献-算法】持续学习经典算法之LwF: Learning without forgetting
LwF(Learning without Forgetting)是一种机器学习方法,通过知识蒸馏损失来在训练新任务时保留旧任务的知识,无需旧任务数据,有效解决了神经网络学习新任务时可能发生的灾难性遗忘问题。
907 9
|
存储 机器学习/深度学习 算法
【博士每天一篇文献-算法】连续学习算法之RWalk:Riemannian Walk for Incremental Learning Understanding
RWalk算法是一种增量学习框架,通过结合EWC++和修改版的Path Integral算法,并采用不同的采样策略存储先前任务的代表性子集,以量化和平衡遗忘和固执,实现在学习新任务的同时保留旧任务的知识。
317 3
|
6天前
|
传感器 机器学习/深度学习 算法
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
|
9天前
|
机器学习/深度学习 算法 调度
基于NSGA-III算法求解微电网多目标优化调度研究(Matlab代码实现)
基于NSGA-III算法求解微电网多目标优化调度研究(Matlab代码实现)
|
7天前
|
传感器 算法 数据挖掘
基于协方差交叉(CI)的多传感器融合算法matlab仿真,对比单传感器和SCC融合
基于协方差交叉(CI)的多传感器融合算法,通过MATLAB仿真对比单传感器、SCC与CI融合在位置/速度估计误差(RMSE)及等概率椭圆上的性能。采用MATLAB2022A实现,结果表明CI融合在未知相关性下仍具鲁棒性,有效降低估计误差。
|
9天前
|
负载均衡 算法 调度
基于遗传算法的新的异构分布式系统任务调度算法研究(Matlab代码实现)
基于遗传算法的新的异构分布式系统任务调度算法研究(Matlab代码实现)
79 11
|
9天前
|
机器学习/深度学习 传感器 算法
基于全局路径的无人地面车辆的横向避让路径规划研究[蚂蚁算法求解](Matlab代码实现)
基于全局路径的无人地面车辆的横向避让路径规划研究[蚂蚁算法求解](Matlab代码实现)
|
9天前
|
算法 安全 BI
基于粒子群算法的多码头连续泊位分配优化研究(Matlab代码实现)
基于粒子群算法的多码头连续泊位分配优化研究(Matlab代码实现)

热门文章

最新文章