持续学习的综述: 理论、方法与应用

摘要

为了应对现实世界的动态,智能系统需要在其整个生命周期中增量地获取、更新、积累和利用知识。这种能力被称为持续学习,为人工智能系统自适应发展提供了基础。从一般意义上讲,持续学习明显受到灾难性遗忘的限制,在这种情况下,学习一项新任务通常会导致旧任务的表现急剧下降。除此之外,近年来出现了越来越多的进步,这些进步在很大程度上扩展了对持续学习的理解和应用。对这一方向日益增长和广泛的兴趣表明了它的现实意义和复杂性。在这项工作中,我们提出了一个全面的持续学习调查,寻求桥梁的基本设置,理论基础,代表性的方法,和实际应用。基于现有的理论和实证结果,我们总结了持续学习的一般目标,即在资源效率的背景下确保适当的稳定性-可塑性权衡和足够的任务内/任务间概泛性。然后,我们提供了一个最先进的和详细的分类,广泛分析了代表性方法如何解决持续学习问题,以及它们如何适应现实应用中的特定挑战。通过对有前途的方向的深入讨论,我们相信这种整体的视角可以极大地促进该领域乃至其他领域的后续探索。

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):预训练数据按顺序传递。目标是改善向下游任务的知识转移。

在这里插入图片描述

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

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

相关文章

【Linux硬盘数据读取】WIN10访问linux分区解决方案:ext2fsd

<div id"content_views" class"htmledit_views" style"user-select: auto;"><p>尝试ext2explore、Paragon ExtFS都不好用&#xff0c;强烈安利ext2fsd&#xff0c;可读写&#xff0c;很强大</p> 转自&#xff1a;https://blog…

C++之模板(一)

1、为什么需要模板 将具有相同逻辑的一段代码提供一份模板&#xff0c;当我们需要处理不同类型的时候&#xff0c;可以通过数据类型当作参数来传递&#xff0c;从而实例化出对应类型的处理版本。 2、模板的定义 也是一种静态多态。 3、模板的分类 4、函数模板 5、函数模板的使…

-------------------------面试散文-----------------------------------

问题1&#xff1a;vue中动态引入图片&#xff0c;为什么使用require&#xff1f; 回答&#xff1a;因为动态添加的src 编译过后的文件地址和被编译过后的资源文件地址不一致&#xff0c;从而导致无法访问题 而使用require 返回的就是资源文件被编译后的文件地址&#xff0c;从…

Aeron:Aeron Agent

Aeron Agent 是一个 Java 代理&#xff0c;用于提供 Aeron、Aeron Archive 和 Aeron Cluster 中发生的运行时低级日志信息。这些日志语句包括从高级管理员事件到大容量数据帧事件。 在调试 Archive 和 Cluster 问题时&#xff0c;Aeron Agent 的日志数据尤其有用。 一、Availab…

本地无法连接linux上的MariaDB数据库

问题&#xff1a;本地用DBeaver无法连接服务器上的MariaDB数据库 &#xff1f; 测试1&#xff1a;在cmd中ping 服务器IP&#xff0c;看是否能ping通&#xff0c;能ping通&#xff0c;没有问题 测试2&#xff1a;在cmd中telnet 服务器IP 端口&#xff0c;看是否能访问&#xf…

常见的Redis使用问题及解决方案

目录 1. 缓存穿透 1.1 解决方案 2. 缓存击穿 2.1 解决方案 3. 缓存雪崩 3.1 概念图及问题描述 ​编辑3.2 解决方案 4. 分布式锁 4.1 概念 4.2 基于redis来实现分布式锁 4.3 用idea来操作一遍redis分布式锁 4.4 分布式上锁的情况下&#xff0c;锁释放了服务器b中的锁…

多态深度剖析

前言 继承是多态的基础&#xff0c; 如果对于继承的知识还不够了解&#xff0c; 可以去阅读上一篇文章 继承深度剖析 基本概念与定义 概念&#xff1a; 通俗来说&#xff0c;就是多种形态。具体点就是去完成某个行为&#xff0c; 当不同的对象去完成时会产生出不同的状…

如何完美解决 Xshell 使用 SSH 连接 Linux 服务器报错:找不到匹配的 host key 算法

&#x1f6e0;️ 如何完美解决 Xshell 使用 SSH 连接 Linux 服务器报错&#xff1a;找不到匹配的 host key 算法 摘要&#xff1a; 本文将带领大家深入学习如何解决 Xshell 使用 SSH 连接 Linux 服务器时报错“找不到匹配的 host key 算法”的问题。通过详细的操作步骤和代码案…

Shopee虾皮API:获取商家店铺商品列表

一、平台介绍 Shopee&#xff0c;作为东南亚及中国台湾地区领先的电商平台&#xff0c;为卖家提供了一个便捷、高效的销售渠道。作为卖家&#xff0c;能够将自己的商品展示在Shopee平台上&#xff0c;并通过平台的流量和工具&#xff0c;将商品销售给更多的潜在买家。 为了帮…

系统架构设计师 - 操作系统(2)

操作系统 操作系统&#xff08;5-6分&#xff09;文件管理绝对路径与相对路径 ★索引文件 ★★★位示图 ★ 存储管理段页式存储 ★★★页式存储段式存储段页式存储&#xff08;了解&#xff09; 页面置换算法 ★ 微内核操作系统嵌入式操作系统 ★★★ 大家好呀&#xff01;我是…

数据库课设-中小企业工资管理系统

一、效果展示 二、后端代码 import string import random from flask import Flask, render_template, request, jsonify, redirect, session import pymysql from flask_cors import CORS import time import schedule from datetime import datetime import threading from …

HK1-BOX X3刷UBUNTU 24.04,并开启WIFI

端午刚好有点时间&#xff0c;顺便把改完散热的HK1-BOX刷了个最新OC版的UBUNTU 24&#xff0c;这里记录下操作的步骤&#xff1a; 准备材料 HK1-BOX S905X3&#xff1a;注意X4的不行固件没匹配的。建议先改完散热&#xff0c;不然作为7X24小时的机器长时间高温还是很伤硬件的…

Web前端项目-拼图游戏【附源码】

拼图游戏 拼图游戏是一种经典的益智游戏&#xff0c;通过HTML、CSS和JavaScript等前端技术的综合运用来实现&#xff1b;拼图游戏可以锻炼玩家的观察能力、空间认知能力和逻辑思维能力。游戏开始时&#xff0c;一张图片会被切割成多个小块&#xff0c;并以随机顺序排列在游戏区…

CMOS图像传感器——列噪声(CFPN)去除

目前CMOS 图像传感器系统中列共用结构应用最为广泛,在该结构中,虽然像素曝光均匀,但是由于列输出系统处理属性的变动,对于不同列,像素的输出是不均匀的。因此,基于列的CMOS 图像传感器表现出垂直条纹固定模式噪声(CFPN),从而降低了图像的质量。由于人眼 的关系,CFPN …

「布道师系列文章」宝兰德徐清康解析 Kafka 和 AutoMQ 的监控

作者&#xff5c;北京宝兰德公司解决方案总监徐清康 01 前言 当我们使用一个软件的时候&#xff0c;经常都会问这个软件怎么监控、监控他的哪些指标&#xff1f;Kafka 的监控挺长时间都是一个老大难的问题&#xff0c;社区在监控方面一直没有投入太大的精力。如果要实现一…

kotlin 中的字符串

一、字符类访问 1、字符串的访问跟js一样&#xff0c;可以使用索引来访问或者直接循环。 fun main() {val a: String "2024"// 方式一&#xff1a;for (item in a) {println(item) // 输出每一个字符}// 方式二&#xff1a;println("${a[0]}, ${a[1]}, ${a[2…

IAP固件升级进阶(Qt上位机)

前言 时隔近一年&#xff0c;再次接触IAP固件升级&#xff0c;这次修改了以前的一些bug&#xff0c;同时新增一些实用性的功能。 有纰漏请指出&#xff0c;转载请说明。 学习交流请发邮件 1280253714qq.com。 上位机界面 视频演示 当Up对iap固件升级的机制有了更深的理解后…

【C++】类和对象的引入

文章目录 前言一、类的定义二、类的访问控制与封装三、类的作用域四、类的实例化五、类的存储方式及大小计算六、隐藏的this指针 前言 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 C是基于面向对象的&…

算法题解记录29+++全排列(百日筑基)

一、题目描述 题目难度&#xff1a;中等 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示…