论文笔记:Gradient Episodic Memory for Continual Learning

news2024/9/30 0:44:02

1. Contribution

  1. 提出了一组指标来评估模型在连续数据上的学习情况。这些指标不仅通过测试准确性来表征模型,还通过其跨任务迁移知识的能力来表征模型。
  2. 针对持续学习任务,提出了GEM模型(Gradient Episodic Memory),它可以减少遗忘,同时允许将知识有益地迁移到以前的任务中。
  3. MNISTCIFAR-100数据集上做了实验

2. Challenge/ Issues

独立且同分布的(iid假设),意思是:每张图片都是随机挑选的,彼此独立,没有关联

  1. 非独立同分布的数据(Non-iid input data)监督学习通过多次重复数据来让模型记住东西(不断地让模型重复学习一些图片:苹果、香蕉、橘子等很多水果),而人类学习是通过一次性有顺序地学习。(比如教一个小朋友时,可能不会重复展示同样的苹果或香蕉图片,你是按顺序给他看新的例子。小朋友也不会记住每一张图片,只能记住一部分。更重要的是,现实中的学习任务会不断变化——今天你可能在教水果,明天可能就开始教动物。)
  2. 灾难性遗忘(Catastrophic forgetting):如果直接用监督学习的方法去解决类似人类的学习任务(比如教不同的东西、不断变化的任务),那问题就来了。因为监督学习依赖于iid假设,认为所有数据都是来自同一分布,并且可以重复多次学习。但是在人类学习的场景中,iid假设不成立,数据不是独立的,也不是来自相同的任务分布。这样一来,监督学习的模型可能会因为新数据而“遗忘”旧的数据和知识,这就是所谓的“灾难性遗忘”。
  3. 知识迁移:当连续的任务相关时,存在迁移学习的机会,这可以转化为更快地学习新任务以及在旧任务上的性能提升。

3. 论文设定的scenario

在训练时,仅以三元组 (xi, ti, yi) 的形式向模型提供一个示例,model 永远不会两次经历相同的示例,并且任务按顺序流式传输。不需要对任务强加任何顺序,因为未来的任务可能与过去的任务同时发生。

3.1 数据三元组的构成:

每个数据样本由三部分组成:

x:特征向量,比如一张图片。
t:任务描述符,告诉我们当前任务是什么(例如“识别水果”或者“识别动物”)。
y:目标向量,即标签,表示图片的具体内容(如“苹果”或者“猫”)。
模型的目标是学会如何根据给定的图片 x 和任务描述符 t,预测出正确的标签 y。

3.2 局部iid(locally iid):

“局部iid”是指在某个特定的任务中(比如在任务 t 中),数据是独立同分布(iid)的,也就是说,在某个任务的学习阶段内,数据可以随机地、不相关地抽取出来。简单来说,局部iid意味着:

  • 对于某一个任务 t 来说,图片和标签的关系是随机的,没有顺序影响。例如,如果任务是“识别水果”,那么苹果和香蕉图片的顺序是随机的,彼此之间没有相关性。

虽然在每个任务中,数据是随机独立的(iid),但在不同任务之间,数据不是随机的。例如,模型可能会先连续看到许多水果图片,然后才切换到动物识别任务,这使得任务间数据的顺序不是随机的。

3.3 学习目标

目标是学习一个预测模型 f,这个模型可以根据任意的图片 x 和任务描述符 t,预测出图片的标签 y。关键是,模型不仅需要识别当前任务的数据(如正在学习中的任务),还要记住以前学过的任务,甚至能够处理未来可能遇到的新任务。

例如:

  • 如果模型已经学过了识别水果(任务 t1)和识别动物(任务 t2),那么即使任务结束后,模型仍然能够根据给定的任务描述符 t1 识别苹果,或者根据 t2 识别猫。
  • 而且,模型还应该能处理未来可能出现的新任务。

4. Technical contribution

4.1 introduce a set of metrics

  • Average Accuracy:这个指标是模型在所有任务上的平均表现。你教完机器人识别水果和动物后,测试它在所有任务上的表现,看它识别每个任务(如水果或动物)的正确率,然后取平均值。
  • Backward transfer (BWT):这是评估模型在学习新任务后,对之前任务表现的影响。具体来说,如果学完了任务2,测试它在任务1上的表现,看有没有提高或下降。
  • Forward transfer (FWT):这是评估模型在学习新任务时,之前学到的任务对新任务的影响。具体来说,在学任务2时,看看任务1是否帮助了任务2的学习。

Ri,j 表示模型在学完任务 ti 后,在任务 tj 上的测试准确率。

在这里插入图片描述

4.2 key point of GEM model

  • 记忆分配策略: GEM 有一个总的记忆空间 M,用于存储多个任务的样本。如果任务总数 T 是已知的,那么每个任务可以分配 m = M / T 个记忆位置。如果任务数量不确定,GEM 可以随着新任务的到来动态减少每个任务的分配空间。
  • 损失函数和约束条件:每当模型学习一个新任务时,GEM 会通过一个损失函数来调整模型的参数。然而,与传统方法不同的是,GEM 在更新参数时会限制过去任务的损失不增加,即:模型在新任务上的学习不能损害它对旧任务的表现。
  • 使用梯度约束来防止遗忘:GEM 的一个核心思想是通过梯度投影来避免遗忘。当模型更新参数时,它会计算一个梯度。如果这个梯度方向会导致旧任务的损失增加,GEM 就会通过调整这个梯度方向,保证不会增加旧任务的损失。
  • 解决梯度约束问题:如果梯度违反了约束,GEM 会通过求解一个二次规划问题(Quadratic Programming来找到一个新的梯度,使得在满足约束的前提下尽可能接近原始梯度。
    在这里插入图片描述

4.3 GEM的训练伪代码

训练过程

  1. 初始化:
  • Mt:每个任务的记忆被初始化为空集,之后会逐步添加样本。
  • R:用于记录每个任务的测试准确率,初始化为全零矩阵。
  1. 任务循环:
  • 对每个任务 t
    • 遍历训练数据集中的每个样本 (x, y)
      • 将样本加入到记忆中:将当前样本加入任务 t 的记忆中。
      • 计算梯度:
        • g:计算当前任务的损失函数梯度,表示当前任务在当前样本下的梯度。
        • gk:对所有以前的任务 k < t,计算其在记忆中的梯度。
      • 梯度投影:使用梯度投影方法(公式 11),将当前梯度 g 调整为满足所有之前任务的约束条件,生成新的梯度 ̃g
      • 更新参数: 根据投影后的梯度 ̃g 更新模型参数
    • 评估任务:在每次任务学习完成后,评估模型在所有任务上的表现,并记录在矩阵 R 中
  1. 返回训练结果:最终返回更新后的模型和记录的任务表现矩阵 R。

评估过程

  1. 任务循环:对每个任务 k,计算其测试准确率:
  • 遍历任务 k 的所有测试样本 (x, y)。
  • 计算准确率:累积预测结果的准确率。
  • 平均准确率:最终将累积的准确率除以该任务的测试样本数量,得到任务 k 的准确率。
  1. 返回准确率向量:最终返回每个任务的测试准确率 r。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2178240.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【预备理论知识——1】深度学习:概率论概述

简单地说&#xff0c;机器学习就是做出预测。 概率论 掷骰子 假设我们掷骰子&#xff0c;想知道看到1的几率有多大&#xff0c;而不是看到另一个数字。 如果骰子是公平的&#xff0c;那么所有六个结果{1,…, 6}都有相同的可能发生&#xff0c; 因此我们可以说 1 发生的概率为1…

Linux date命令(用于显示和设置系统的日期和时间,不仅可以显示时间,还能进行复杂的时间计算和格式化)

文章目录 深入探讨 Linux Date 命令1. Date 命令详细功能解析1.1 命令概述1.2 命令语法 2. 时间显示与格式化2.1 标准时间输出2.2 自定义格式输出 3. 设置系统日期和时间3.1 基本用法3.2 注意事项 4. 实用示例与脚本应用4.1 生成时间戳秒级时间戳毫秒时间戳 4.2 时间戳转换4.3 …

什么是后仿

什么是后仿 参考 查了一圈发现网上对post netlist simulation 介绍的比较少&#xff0c;今天和大家聊聊post netlist simulation。 首先什么是post netlist simulation(后面简称 postsim )&#xff1f; Netlist simulation 有些公司也叫gate level simulation&#xff0c;是指将…

问:全国产业园数量增长,对中小企业意味着什么?

随着全国产业园数量的持续增长&#xff0c;这一趋势无疑为中小企业带来了前所未有的机遇与可能。产业园作为产业集聚的重要载体&#xff0c;不仅为中小企业提供了更广阔的发展空间&#xff0c;还通过资源共享、成本降低、创新协同等方式&#xff0c;助力企业快速成长。 对于中…

高效的视频压缩标准H.264介绍,以及H.264在视频监控系统中的应用

目录 一、概述 二、 工作原理 三、技术特点与优势 1、高效压缩率 2、高质量视频 3、错误恢复能力 4、灵活性 四、编解码过程 1、编码过程 2、解码过程 五、帧类型与结构 1、I帧 2、P帧 3、B帧 六、应用与优势 1、节省存储空间和带宽 2、提高视频质量 3、适应…

中间件技术

在Java开发中&#xff0c;中间件技术是一种非常关键且广泛使用的技术。中间件通常被定义为位于操作系统、网络和数据库之上的软件层&#xff0c;用于简化分布式系统的开发、部署和管理。它们提供了一系列服务&#xff0c;如消息传递、事务管理、安全控制等&#xff0c;以帮助开…

Eth-trunk的介绍以及实验配置

目录 技术背景 Eth-Trunk概念 LACP模式下优先级 LACP的抢占机制 Eth-Trunk 配置 LACP模式 手工模式 Eth-Trunk接口负载分担 技术背景 随着网络中部署的业务量不断增长&#xff0c;单条物理链路的带宽已不能满足正常的业务流量需求。这时可以选择使用更高带宽的接口板或…

招联金融内推-2025校招

【投递方式】 直接扫下方二维码&#xff0c;或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus&#xff0c;使用内推码 igcefb 投递&#xff09; 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策…

yolov8/9/10模型在安全帽、安全衣检测中的应用【代码+数据集+python环境+GUI系统】

yolov8910模型安全帽、安全衣检测中的应用【代码数据集python环境GUI系统】 yolov8/9/10模型在安全帽、安全衣检测中的应用【代码数据集python环境GUI系统】 背景意义 安全帽和安全衣在工业生产、建筑施工等高风险作业环境中是保护工人免受意外伤害的重要装备。然而&#xff0…

推荐一款良心的视频去水印在线工具!!!

推荐一款良心的视频去水印在线工具!!! 去水印工具是专门设计来处理图像和视频中不需要的水印、标志、文字或其他元素的软件或在线服务。这些工具通过智能算法识别并移除特定元素&#xff0c;同时尽量保持原始内容的画质和细节。 应用场景 版权清理&#xff1a;去除网络上获取…

SpringBoot项目请求不中断动态更新代码

在开发中&#xff0c;有时候不停机动态更新代码热部署是一项至关重要的功能&#xff0c;它可以在请求不中断的情况下下更新代码。这种方式不仅提高了开发效率&#xff0c;还能加速测试和调试过程。本文将详细介绍如何在 Spring Boot 项目在Linux系统中实现热部署&#xff0c;特…

GPT与大模型行业落地实践探索

简介 本课程探讨GPT和大模型技术在行业中的实际应用和发展。课程将涵盖GPT的基础知识、原理、及其在行业中的应用案例&#xff0c;如财报分析和客服机器人。重点在于结合实际案例中的使用效果&#xff0c;讲解如何利用GPT的API开发企业级应用以及利用更高级的功能构造AI Agent。…

根据给定的相机和镜头参数,估算相机的内参。

1. 相机分辨率和传感器尺寸 最高分辨率&#xff1a;6000 4000 像素传感器尺寸&#xff1a;22.3 mm 14.9 mm 2. 计算像素大小 需要计算每个像素对应的实际尺寸&#xff08;mm/pixel&#xff09;&#xff1a; 水平方向像素大小&#xff1a; 垂直方向像素大小&#xff1a; …

TypeScript 基本使用指南【前端 26】

TypeScript 基本使用指南 引言 TypeScript 是 JavaScript 的一个超集&#xff0c;它添加了类型系统和一些其他特性&#xff0c;使得开发大型应用时更加高效和可靠。TypeScript 代码最终会被编译成普通的 JavaScript 代码&#xff0c;这意味着你可以在任何支持 JavaScript 的环…

作家依靠AI一年内创作120部作品

近期&#xff0c;Tim Boucher因声称自己依托人工智能&#xff08;AI&#xff09;完成了逾120部作品而在社交网络上引起广泛关注。 Boucher的这种创作手法引发了众多讨论和争议。一些批评者对他依靠AI写作表示不满&#xff0c;认为这种做法缺乏诚实性&#xff0c;甚至涉嫌抄袭。…

区间预测 | Matlab实现ARIMA-KDE的时间序列结合核密度估计区间预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现ARIMA-KDE的时间序列结合核密度估计区间预测&#xff0c;ARIMA的核密度估计下置信区间预测。 2.含点预测图、置信区间预测图、核密度估计图&#xff0c;区间预测(区间覆盖率PICP、区间平均宽度百分比PIN…

Mac电脑快速回复的神器-快捷短语

我在使用Mac的时候&#xff0c;很多常用的句子、词语或者一些代码都需要手动输入&#xff0c;拷贝粘贴总是会被新内容覆盖&#xff0c;在需要高频输入的时候这样效率太低了&#xff0c;然后我就找到一个可以快速输入的神器——快捷短语 快捷短语是Mac上的一款非常强大的快速回…

Java_TestNg

TestNg 前言支持特性 使用步骤1.引入库 常用注解Test注解BeforeSuite AfterSuiteAfterClass BeforeClassAfterTest BeforeTestAfterGroups BeforeGroupsBeforeMethod AfterMethodDataProviderFactoryListenersPatameters断言相等 不相等true/falsenull / !nullequals / !equals…

CUDA 参考文章

CUDA&#xff1a;NVCC编译过程和兼容性详解_nvcc把cuda代码转换成什么-CSDN博客https://blog.csdn.net/fb_help/article/details/80462853 1、CUDA&#xff1a;NVCC编译过程和兼容性详解 CUDA&#xff1a;NVCC编译过程和兼容性详解 https://codeyarns.com/2014/03/03/how-to-sp…

Appinventor2 多屏幕之间如何共享过程?

先说结论&#xff1a;不能共享&#xff0c;但可以变通&#xff0c;这个问题上没有完美方案&#xff01; Appinventor2 多屏幕之间如何共享过程&#xff1f;或者说如何跨屏幕调用其他屏幕的过程&#xff1f; 相信有很多人有过这样的问题&#xff0c;但是目前来看每个屏幕都是独…