机器学习——终身学习
终身学习
- AI不断学习新的任务,最终进化成天网控制人类
- 终身学习(LLL),持续学习,永不停止的学习,增量学习
- 用线上收集的资料不断的训练模型
- 问题就是对之前的任务进行遗忘,在之前的任务上表现不好
- 要同时学好任务,可以将数据放一起进行学习,如果没有一起学的话,会忘记之前的一个
例子
20个QA任务
- 同时学习20个任务的时候在一些任务上是表现不错的,同时会一些技能
- 连续学的话不太可能学会所有的
- 多任务训练可以解决问题!使用所有数据进行训练
- 存储问题
- 计算问题
- 多任务训练可以被视为LLL的上限
- 最终我们无法存储所有模型
- 知识无法在不同任务之间转移
- 迁移学习:可以做任务2,因为已经学会了任务1,不关心机器是否仍然能够完成任务1
- 终身学习:即使我已经学会了任务2,我也不会忘记任务1。
- 迁移学习是指将从一个任务学到的知识或模型应用到另一个相关任务中的机器学习方法。通过利用已有任务的知识来加速新任务的学习,以解决数据稀缺或训练时间长的问题。
- 终身学习是一种机器学习范式,旨在模拟人类不断学习的能力,持续积累新知识并适应新环境。终身学习系统可以不断接收新数据、学习新任务,并保持对先前学到知识的更新和利用,以实现持续学习和适应性。
评估
- 一些任务序列和相关内容,包括任务1到任务10的排列、时间单位以及一些类别的描述。
- 三种评估方式:
- 学完所有任务之后,再对每个任务计算指标并计算平均指标
- 每学完一个任务之后跟之前学完自己任务之后的指标进行求差的平均
- 在还没有看过其他任务的时候,使用此时的情况减去第一个
可能的解法
选择性的突触的可塑性
-
为什么会发生灾难性遗忘的内容,涉及到任务1和任务2的错误曲面,其中颜色较深的部分表示损失较小。
-
灾难性遗忘的原因在于神经网络在学习新任务时会忘记先前学习的任务,导致先前任务的信息丢失。在这种情况下,任务1和任务2的错误曲面显示了损失较小的部分,这可能表明神经网络在学习这两个任务时存在一定程度的重叠,导致出现灾难性遗忘。因为神经网络更倾向于记住新任务的信息,而忘记旧任务的信息,这可能会导致先前任务的损失加剧。
-
选择性突触可塑性:基本思想是模型中的一些参数对于先前的任务非常重要。只改变那些不重要的参数;每个参数 θ i θ_i θi都有一个“守卫” b i b_i bi。
-
如果bi为0,表示对应参数θi的“守卫”机制认为该参数对当前任务的重要性较低,可以被视为不重要的参数,会被重新学习。
-
如果bi为正无穷,表示对应参数θi的“守卫”机制认为该参数对当前任务的重要性非常高,是不可或缺的重要参数。在这种情况下,根据“选择性突触可塑性”的概念,这样的重要参数将被视为必须保留不变,不会被改变或调整,以确保先前任务学习到的重要知识得以保留并应用到新任务中。
- 对于任务1和任务2,参数θ2和参数b1较小,而参数b2较大。这意味着可以修改参数θ1,但不改变参数θ2。
- 任务A、任务B和任务C的训练情况,以及使用的训练时间、EWC, L2、SGD等相关信息
- b i b_i bi的设置方式有多种,包括
- 弹性权重保持(Elastic Weight Consolidation,EWC)
- 突触智能(Synaptic Intelligence,SI)
- 记忆感知突触(Memory Aware Synapses,MAS)
- RWalk
- 切片Cramer保留(Sliced Cramer Preservation,SCP)
改变任务的顺序对结果会有较大的影响
GEM
对梯度方向上做选择去更新参数,需要把过去的资料存下来来修改g的方向,不需要大量的资料
- 梯度情节记忆"(Gradient Episodic Memory,GEM)涉及到任务1和任务2,以及负责当前任务的梯度g和负责先前任务的梯度g’之间的关系。梯度g表示当前任务的负梯度,而梯度g’表示先前任务的负梯度,它们之间的乘积大于等于0。这种方法需要来自先前任务的数据以更新方向。
增加网络资源分配
渐进式神经网络
- 渐进式神经网络(Progressive Neural Networks)是一种用于处理逐步增加任务复杂性的神经网络结构。在渐进式神经网络中,每个新任务都会引入一个新的神经网络模块,而不会破坏先前任务的学习。这种方法允许神经网络在逐步学习新任务的同时保留先前任务的知识,从而实现对多任务学习的有效管理和应用。通过逐步增加模块来处理新任务,渐进式神经网络能够在不同任务之间实现知识共享和迁移,提高整体学习效率和性能。
- 渐进式神经网络的一些缺点包括:
- 网络结构复杂性增加: 随着每个新任务引入一个新的神经网络模块,网络结构会变得越来越复杂,可能导致计算资源需求增加和训练时间延长。
- 参数冗余: 每个任务都会引入新的神经网络模块,这可能导致参数冗余,使得模型变得庞大且难以管理。
- 遗忘问题: 在处理多任务学习时,可能会出现遗忘问题,即学习新任务时会影响先前任务的表现,导致灾难性遗忘。
- 知识共享限制: 每个任务有自己独立的神经网络模块,可能限制了不同任务之间的有效知识共享和迁移。
- 训练稳定性: 随着模型复杂性的增加,可能会影响训练的稳定性和收敛速度,增加了调参的难度。
在小数据集上表现还是可以的
PackNet
- 先训练一个大的模型,在不同的任务时只用其中的一部分
- PackNet是一种用于神经网络压缩和加速的方法。它采用了一种称为“PackNet”的结构,通过将神经网络的参数分组打包,以实现更高效的计算和存储。PackNet的主要思想是将网络参数分成多个组,每个组称为一个“包”(pack),然后对每个包应用特定的压缩技术,例如低秩近似、量化或剪枝等,以减少参数量并提高计算效率。
- 通过使用PackNet,可以在不损失太多性能的情况下大幅减少神经网络的参数量和计算复杂度,从而实现模型的轻量化和加速。这种方法在资源受限或对速度要求较高的场景下特别有用,可以帮助提高模型的推理速度和在嵌入式设备上的部署效率。
内存回复
内存回复(Memory Replay)是一种机器学习中的技术,用于增强模型的学习和泛化能力。在传统的机器学习训练中,通常使用静态的训练数据进行模型的训练和更新。然而,内存回复引入了一种记忆机制,允许模型在训练过程中保存和重播先前的经验。
内存回复的基本思想是将具有代表性的训练样本存储在一个内存缓冲区中,然后在后续的训练中周期性地从内存中提取样本,并将其与当前的训练数据一起使用。这样做的好处是可以增加训练样本的多样性和数量,从而提供更全面和丰富的训练信号,有助于模型更好地捕捉数据中的模式和结构。
生成数据
- 使用生成模型生成伪数据来处理先前任务,以及生成任务1数据、解决任务1、任务2的训练数据和解决任务2等步骤
- 旨在利用生成模型为先前任务生成数据,以帮助解决新任务
增加新类别
- 学习无遗忘(Learning without forgetting,LwF):旨在解决在学习新任务时导致先前任务遗忘的问题。LwF方法通过在训练过程中结合新任务数据和先前任务的知识,以确保在学习新任务时不会忘记先前任务的信息。
- iCaRL: 增量分类器和表示学习(Incremental Classifier and Representation Learning
- 连续学习的三种场景等内容
课程学习
- 不同任务的顺序对最终的结果也是有影响的
- 课程学习(Curriculum Learning)是一种机器学习技术,通过按照难度或复杂性的顺序对模型进行一系列任务的训练。课程学习的思想是通过逐渐呈现越来越具有挑战性的训练样本,促进学习过程。
- 在传统的机器学习方法中,训练数据通常是随机或按照固定顺序呈现的。然而,课程学习承认在模型学习更复杂的概念之前,某些模式或概念可能更容易或更直观地学习。通过以有意义的顺序组织训练数据,课程学习旨在引导模型按照一种课程或教学大纲学习,模仿人类学习的方式。
- 课程可以根据特定问题领域和任务的要求以各种方式设计。例如,在计算机视觉任务中,课程可以从包含清晰模式的简单图像开始,逐渐引入具有遮挡或变化的更复杂图像。类似地,在自然语言处理中,课程可能涉及从简单的句子结构开始,逐渐引入更复杂的语法构造。
- 课程学习的主要动机是提高模型的学习效率和泛化性能。通过逐渐向模型展示越来越困难的示例,它可以在现有知识的基础上构建,并学习更强大的表示。课程学习已在计算机视觉、自然语言处理和强化学习等各个领域证明有效。
相关文章:

机器学习——终身学习
终身学习 AI不断学习新的任务,最终进化成天网控制人类终身学习(LLL),持续学习,永不停止的学习,增量学习 用线上收集的资料不断的训练模型 问题就是对之前的任务进行遗忘,在之前的任务上表现不好…...

一次完整的 HTTP 请求所经历的步骤
1: DNS 解析(通过访问的域名找出其 IP 地址,递归搜索)。 2: HTTP 请求,当输入一个请求时,建立一个 Socket 连接发起 TCP的 3 次握手。如果是 HTTPS 请求,会略微有不同。 3: 客户端向服务器发…...
OpenGL学习笔记【1】——简介
一、OpenGL概念 OpenGL (Open Graphics Library,译名:开放式图形库开放式图形库) 是一种用于渲染 2D 和 3D 图形的跨语言、跨平台的编程接口(API)。 二、OpenGL跨语言 OpenGL 是一个 C 语言库,因此理解 C 语言(或 C)的…...
C语言课后作业 20 题+考研上机应用题
题目 1: 计算圆的面积 描述: 输入圆的半径,计算并输出圆的面积。 题目 2: 判断一个年份是否为闰年 描述: 输入一个年份,判断并输出该年份是否为闰年。 题目 3: 计算并输出斐波那契数列的前10个数 描述: 输出斐波那…...
macOS上基于httpd-dav搭建WebDav服务
文章目录 配置 Apache httpd修改 ServerName启动验证 httpd 服务启用 Dav 扩展服务配置 配置 httpd 扩展 Dav 服务设置共享目录文件夹配置 DavLockDB 目录创建 WebDAV 访客用户 httpd-dav.conf 主要改动部分BasicDigest共享多个目录 授予 httpd 完全磁盘访问权限验证更新配置重…...
Java-设计模式-单例模式
单例模式 从单例加载的时机区分,有懒汉模式/饥饿模式。 从实现方式区分有双重检查模式,内部类模式/Enum模式/Map模式等。在《Effective Java》中,作者提出利用Enum时实现单例模式的最佳实践。 内容概要 实现单例模式的几个关键点 利用Enu…...
图片html5提供的懒加载与vue-lazyload的区别
原生HTML lazy loading特性 <img src"/images/ocean.jpeg" alt"Ocean" loading"lazy"> loading"lazy" 是HTML5的一个原生特性,它允许浏览器延迟加载图片直至图片距离视口很近或者即将进入视口时。这是一种由浏览器…...
golang 根据某个特定字段对结构体的顺序进行排序
文章目录 方法一方法二方法三 在Go语言中,我们可以使用 sort.Slice() 函数对结构体进行排序。假设你有一个结构体,并且希望根据其中的某个字段进行排序,你可以使用自定义的排序函数。 方法一 下面是一个示例代码,假设有一个包含…...
React Router 参数使用详解
React Router 参数使用详解 React Router 是 React 中用于处理路由的常用库,它提供了丰富的功能来管理应用程序的导航和路由状态。在 React Router 中,我们经常需要使用不同类型的参数来处理路由信息,包括 params 参数、search 参数和 state…...
Vue中$set用法解析
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,视图将会产生“响应”,即匹配更新为新的值,但是遇到以下情况不会进行数据的双向绑定。 当你利用索引直接改…...

进制,码制及其表示范围
一 进制 1 常见的进制及其简写 十进制(Dec)二进制(Binary)十六进制(Hex)八进制(Octal) 2 进制之间的相互转换 二 码制 1 常用的码制 三 各码制在定点整数时表示的范围 个人推导…...

钡铼技术R40工业4G路由器加速推进农田水利设施智能化
钡铼技术R40工业4G路由器作为一种先进的通信设备,正在被广泛应用于各行各业,其中包括农田水利设施的智能化改造。通过结合钡铼技术R40工业4G路由器,农田水利设施可以实现更高效的管理和运营,提升农田灌溉、排水等工作效率…...

基于龙芯2k1000 mips架构ddr调试心得(一)
1、基础知识 DDR2的I/O频率是DDR的2倍,也就是266、333、400MHz。 DDR3传输速率介于 800~1600 MT/s之间 DDR4的传输速率目前可达2133~3200 MT/s 2k1000内存:板载2GB DDR3 ,可选4GB 使用龙芯芯片最好用他们自己的Bo…...

智能合约语言(eDSL)—— 使用rust实现eDSL的原理
为理解rust变成eDSL的实现原理,我们需要简单了解元编程与宏的概念,元编程被描述成一种计算机程序可以将代码看待成数据的能力,使用元编程技术编写的程序能够像普通程序在运行时更新、替换变量那样操作更新、替换代码。宏在 Rust 语言中是一种功能&#x…...

敏捷开发——elementUI/Vue使用/服务器部署
1. 创建vue项目 2. 安装element-ui组件库 npm i -S element-ui或 npm install element-ui3. 在main.js中导入element-ui组件 import ElementUI from element-ui import element-ui/lib/theme-chalk/index.css Vue.use(ElementUI)element-ui 组件库地址:Element …...
uniapp 使用sqlite时无法读取到db文件中的数据
问题 {“code”:-1404,“message”:“android.database.sqlite.SQLiteException: no such table: user (Sqlite code 1): , while compiling: select * from user, (OS error - 2:No such file or directory),http://ask.dcloud.net.cn/article/282”} at pages/index/index.vu…...

Linux 网络接口管理
为了更深入的了解linux系统,为此做出网络接口管理的知识总结。看起来麻烦,其实一点都不难,相信多看多了解总会是没错的!❤️❤️ 一起加油吧!✨✨🎉🎉 文章目录 前言一、网络配置的文件介绍二、…...
【设计模式】Java 设计模式之模板策略模式(Strategy)
策略模式详解:模式结构、实现与应用场景 一、策略模式概述 策略模式是一种行为设计模式,它使得算法可以独立于使用它的客户端变化。策略模式使得算法可以在运行时切换,从而增强了系统的灵活性和可维护性。在策略模式中,我们定义…...

SpringBoot项目前端Vue访问后端(图片静态资源) 配置
静态资源配置 Configuration public class WebMvcConfig extends WebMvcConfigurationSupport {Value("${file.save-path}")private String fileSavePath;Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {//映射本地文件夹registry…...
colab中数据集保存到drive与取出的方法
from google.colab import drive drive.mount(/content/drive) 一、下载数据集 from datasets import load_dataset max_length 32 # Maximum length of the captions in tokens coco_dataset_ratio 50 # 50% of the COCO2014 dataset# Load the COCO2014 dataset for tr…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...