持续学习的综述: 理论、方法与应用
摘要
为了应对现实世界的动态,智能系统需要在其整个生命周期中增量地获取、更新、积累和利用知识。这种能力被称为持续学习,为人工智能系统自适应发展提供了基础。从一般意义上讲,持续学习明显受到灾难性遗忘的限制,在这种情况下,学习一项新任务通常会导致旧任务的表现急剧下降。除此之外,近年来出现了越来越多的进步,这些进步在很大程度上扩展了对持续学习的理解和应用。对这一方向日益增长和广泛的兴趣表明了它的现实意义和复杂性。在这项工作中,我们提出了一个全面的持续学习调查,寻求桥梁的基本设置,理论基础,代表性的方法,和实际应用。基于现有的理论和实证结果,我们总结了持续学习的一般目标,即在资源效率的背景下确保适当的稳定性-可塑性权衡和足够的任务内/任务间概泛性。然后,我们提供了一个最先进的和详细的分类,广泛分析了代表性方法如何解决持续学习问题,以及它们如何适应现实应用中的特定挑战。通过对有前途的方向的深入讨论,我们相信这种整体的视角可以极大地促进该领域乃至其他领域的后续探索。
Liyuan Wang, Xingxing Zhang, Hang Su, Jun Zhu, Fellow, IEEE
Tsinghua University
简介
学习是智能系统适应动态环境的基础。为了应对外部变化,进化赋予了人类和其他具有强适应性的生物不断获取、更新、积累和利用知识的能力[150],[229],[328]。自然,我们期望人工智能(AI)系统以类似的方式适应。这激发了对持续学习的研究,其中一个典型的设置是一个接一个地学习一系列内容,并表现得好像它们同时被观察到一样(见图1,a)。这些内容可以是新技能,旧技能的新例子,不同的环境,不同的背景等,并结合了特定的现实挑战[328],[423]。由于内容是在一生中不断增加的,因此在许多文献中,持续学习也被称为增量学习或终身学习,没有严格的区分[71],[229]。
与建立在捕获静态数据分布的前提下的传统机器学习模型不同,持续学习的特点是从动态数据分布中学习。一个主要的挑战被称为灾难性遗忘[296],[297],在这种情况下,对新分布的适应通常会导致捕捉旧分布的能力大大降低。这种困境是学习可塑性和记忆稳定性之间权衡的一个方面:前者过多会干扰后者,反之亦然。除了简单地平衡这两个方面的“比例”之外,持续学习的理想解决方案应该具有很强的泛化性,以适应任务内部和任务之间的分布差异(见图1,b)。重用所有旧的训练样本(如果允许的话)可以很容易地解决上述挑战,但会产生巨大的计算和存储开销,以及潜在的隐私问题。事实上,持续学习主要是为了保证模型更新的资源效率,最好接近于只学习新的训练样本。
图1所示。持续学习的概念框架。a,持续学习需要适应具有动态数据分布的增量任务(第2节)。b,理想的解决方案应确保在稳定性(红色箭头)和可塑性(绿色箭头)之间进行适当的权衡,以及对任务内(蓝色箭头)和任务间(橙色箭头)分布差异(第3节)具有足够的通用性。代表性的方法针对机器学习的各个方面(第4节)。d,持续学习适应实际应用,以解决特定的挑战,如场景复杂性和任务特异性(第5节)。
近年来,针对机器学习的各个方面提出了许多持续学习方法,从概念上可以分为五组(见图1,c):参考旧模型添加正则化项(基于正则化的方法); 近似和恢复旧的数据分布(基于重播的方法);显式操纵优化程序(基于优化的方法);学习鲁棒和分布良好的表示(基于表示的方法);用合理设计的体系结构(基于体系结构的方法)构造任务自适应参数。这种分类法扩展了常用的分类法和当前的进展,并为每个类别提供了细化的子方向。我们总结了这些方法如何实现持续学习的目标,并对它们的理论基础和具体实现进行了广泛的分析。具体来说,这些方法是紧密相连的,例如:、正则化和重放最终在优化中起到矫正梯度方向的作用,并且具有高度的协同性,例如;,重播的有效性可以通过从旧模型中提取知识来促进。
现实应用对持续学习提出了特殊的挑战,分为场景复杂性和任务特异性(见图1,d)。对于前者,例如在训练和测试中可能缺少任务识别,训练样本可能是小批量甚至一次引入。由于数据标记的成本和稀缺性,持续学习需要对少量、半监督甚至无监督的场景有效。对于后者,虽然目前的进展主要集中在视觉分类方面,但其他视觉领域,如物体检测和语义分割,以及其他相关领域,如条件生成、强化学习(RL)、自然语言处理(NLP)和伦理考虑,正以其各自的特点受到越来越多的关注。我们总结了他们所面临的特殊挑战,并分析了持续学习方法如何适应他们。
考虑到对持续学习的兴趣显著增长,我们相信这样一个最新和全面的调查可以为后续工作提供一个整体的视角。尽管有一些早期的关于持续学习的调查,覆盖范围相对较广[71],[328],但近年来的重要进展并没有被纳入其中。相比之下,最新的调查通常只捕获了持续学习的部分方面,包括其生物学基础[150],[157],[187],[229],视觉分类的专门设置[86],[215],[288],[294],[354],以及NLP[38],[209]或RL[214]的特定扩展。据我们所知,这是第一次系统地总结持续学习的最新进展的调查。在这些优势的基础上,我们提供了关于持续学习的深入讨论,包括当前的趋势、交叉方向的前景以及与神经科学的跨学科联系。
设置
持续学习的特点是从动态数据分布中学习。在实践中,不同分布的训练样本按顺序到达。用θ参数化的持续学习模型需要在没有或有限访问旧训练样本的情况下学习相应的任务,并在其测试集上表现良好。形式上,属于任务t的一批输入训练样本可以表示为Dt,b = {Xt,b, Yt,b},其中,Xt,b为输入数据,Yt,b为数据标签,t∈t ={1,···,k}为任务标识,b∈Bt为批索引(t和Bt分别表示它们的空间)。这里我们通过其训练样本Dt定义一个“任务”,其分布Dt:= p(Xt, Yt) (Dt表示省略批指标的整个训练集,对于Xt和Yt也是如此),并假设训练和测试之间的分布没有差异。在实际的约束条件下,数据标签Yt和任务标识t可能并不总是可用。在持续学习中,每个任务的训练样本可以分批增量到达(即{{Dt,b}b∈Bt}t∈t)或同时到达(即{Dt}t∈t)。
典型场景
根据增量批次的划分和任务身份的可用性,我们将典型的持续学习场景描述如下(形式比较见表1):
•实例增量学习(IIL):所有的训练样本都属于同一个任务,并且分批到达。
•Domain-Incremental Learning (DIL):任务具有相同的数据标签空间,但输入分布不同。任务标识不是必需的。
•任务增量学习(TIL):任务具有不相交的数据标签空间。在培训和测试中都提供了任务标识。
•类增量学习(CIL):任务具有不相交的数据标签空间。任务标识只在培训中提供。
•无任务持续学习(TFCL):任务具有不相交的数据标签空间。在培训或测试中都不提供任务标识。在线持续学习(OCL):任务具有不相交的数据标签空间。每个任务的训练样本作为一次通过的数据流到达。
•模糊边界持续学习(BBCL):任务边界是模糊的,其特征是不同但重叠的数据标签空间。
•连续预训练(CPT):预训练数据按顺序传递。目标是改善向下游任务的知识转移。
相关文章:

持续学习的综述: 理论、方法与应用
摘要 为了应对现实世界的动态,智能系统需要在其整个生命周期中增量地获取、更新、积累和利用知识。这种能力被称为持续学习,为人工智能系统自适应发展提供了基础。从一般意义上讲,持续学习明显受到灾难性遗忘的限制,在这种情况下…...
跨域资源共享(CORS)问题与解决方案
跨域资源共享(CORS,Cross-Origin Resource Sharing)是现代web开发中常见且重要的一个概念。它涉及到浏览器的同源策略(Same-Origin Policy),该策略用于防止恶意网站从不同来源窃取数据。然而,在…...

实用软件分享-----一款免费的人工智能替换face的神器
专栏介绍:本专栏主要分享一些实用的软件(Po Jie版); 声明1:软件不保证时效性;只能保证在写本文时,该软件是可用的;不保证后续时间该软件能一直正常运行;不保证没有bug;如果软件不可用了,我知道后会第一时间在题目上注明(已失效)。介意者请勿订阅。 声明2:本专栏的…...

不可思议!这款 Python 库竟然能自动生成GUI界面:MagicGUI
目录 什么是MagicGUI? 编辑 MagicGUI的工作原理 安装MagicGUI 创建你的第一个GUI 编辑 其他案例 输入值对话框 大家好,今天我们来聊一聊一个非常有趣且实用的Python库——MagicGUI。这个库可以让你用最少的代码,快速创建图形用户…...

论文发表CN期刊《高考》是什么级别的刊物?
论文发表CN期刊《高考》是什么级别的刊物? 《高考》是由吉林省长春出版社主管并主办的省级教育类期刊,期刊以科教兴国战略为服务宗旨,专门反映和探索国内外教育教学和科研实践的最新成果。该期刊致力于为广大教育工作者提供一个高质量的学术…...

离散数学复习
1.关系的介绍和性质 (1)序偶和笛卡尔积 两个元素按照一定的顺序组成的二元组就是序偶,使用尖括号进行表示,尖括号里面的元素一般都是有顺序的; 笛卡尔积就是有两个集合,从第一个集合里面选择一个元素&am…...
华为网络设备高频命令
1.system-view • 用法:在用户视图下执行 system-view 命令。 • 作用:进入系统视图,以便进行配置性的操作。 • 场景:当需要对设备进行系统级的配置时。 2.sysname XXX • 用法:执行 [Huawei]sysname XXX 命令。…...
信友队:南风的收集
C. [202406C]楠枫的收集 文件操作 时间限制: 1000ms 空间限制: 262144KB 输入文件名: 202406C.in 输出文件名: 202406C.out Accepted 100 分 题目描述 一年四季,寒暑交替,楠枫总是会收集每一个季节的树叶,并把它们制作成标本收集起来。当…...
找工作小项目:day16-重构核心库、使用智能指针(3)
day16-重构核心库、使用智能指针(3) 最后将使用这个库的方式进行展示。 1、客户端 在while ((o getopt(argc, argv, optstring)) ! -1)所有的操作都是获取参数的操作,threads 、msgs 和wait 分别指线程数、消息长度以及等待时间。 创建一…...

软考中级|软件设计师-知识点整理
目录 计算机网络概论 计算机系统基础知识 中央处理单元 数据表示 校验码 计算机体系结构 计算机体系结构的发展 存储系统 输入/输出技术 安全性、可靠性与系统性能评测基础知识 加密技术和认证技术 计算机可靠性 程序设计语言基础知识 程序设计语言概述 程序设计…...

HTML5基础
1 HTML基础概念(难点) WWW(World Wide Web,万维网)是一种建立在 Internet 上的信息资源网络。 WWW 有 3 个基本组成部分,分别是 URL:Universal Resource Locators,统一资源定位器 HT…...
python,ipython 和 jupyter notebook 之间的关系
python,ipython 和 jupyter notebook 之间的关系 文章目录 python,ipython 和 jupyter notebook 之间的关系1. Python2. IPython3. Jupyter Notebook启动 Jupyter Notebook 关系总结 Python、IPython 和 Jupyter Notebook 是相互关联但具有不同功能的工具…...

聊聊DoIP吧(三)-端口号port
DoIP在UDP和TCP建立连接和发送诊断报文的过程中使用的端口定义如下:...

【将xml文件转yolov5训练数据txt标签文件】连classes.txt都可以生成
将xml文件转yolov5训练数据txt标签文件 前言一、代码解析 二、使用方法总结 前言 找遍全网,我觉得写得最详细的就是这个博文⇨将xml文件转yolov5训练数据txt标签文件 虽然我还是没有跑成功。那个正则表达式我不会改QWQ,但是不妨碍我会训练ai。 最终成功…...

针对k8s集群已经加入集群的服务器进行驱逐
例如k8s 已经有很多服务器,现在由于服务器资源过剩,需要剥离一些服务器出来 查找节点名称: kubectl get nodes设置为不可调度: kubectl cordon k8s-node13恢复可调度 kubectl uncordon k8s-node13在驱逐之前先把需要剥离驱逐的节…...

go 1.22 增强 http.ServerMux 路由能力
之前 server func main() {http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {fmt.Println("Received request:", r.URL.Path)fmt.Fprintf(w, "Hello, client! You requested: %s\n", r.URL.Path)})log.Println("Serv…...
赶紧收藏!2024 年最常见 20道设计模式面试题(二)
上一篇地址:赶紧收藏!2024 年最常见 20道设计模式面试题(一)-CSDN博客 三、解释抽象工厂模式,并给出一个实际应用的例子。 抽象工厂模式是一种创建型设计模式,用于创建一系列相关或依赖对象的接口&#x…...
Java面向对象设计 - Java泛型约束
Java面向对象设计 - Java泛型约束 无限通配符 通配符类型由问号表示,如<?> 。 对于通用类型,通配符类型是对象类型用于原始类型。 我们可以将任何已知类型的泛型分配为通配符类型。 这里是示例代码: // MyBag of String type M…...
什么是内存泄漏?如何避免内存泄漏?
**内存泄漏(Memory Leak)**是指在程序运行过程中,已经动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。内存泄漏具有隐蔽性、积累性的特征&#x…...
元组(tuple)(Python)
文章目录 一、定义二、常用操作 一、定义 tuple ("张三", "李四", "王二")二、常用操作 分类关键字/函数/方法说明查询元组[索引]根据索引取值,索引不存在会报错len(元组)元组长度(元素个数)值 in 元组&…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...

Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...

七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...