终身学习(LifeLong Learning)/ 增量学习(Incremental Learning)、在线学习(Online Learning)

news2024/11/17 23:26:41

1、在线学习

实时获得一个新样本就进行一次模型更新。显然,在线学习时增量学习的特例,而增量学习可视为“批模式”的在线/离线学习。

online主要相对于offline或者说batch,强调的是每次只进入一个或者很少的几个样本,多见于推荐系统等实时运行、实时训练、实时反馈的系统,非常强调实时的反馈能力。

2、增量学习

每获得一批新样本就进行一次模型更新。学得模型后,再接收到训练样例时,仅需根据新样例对模型进行更新,不必重新训练整个模型,并且之前学得的有效信息不会被冲掉,得到一个在老数据和新数据上都能work的新模型。

“在线学习”和“增量学习”之间的区别?

  1. 在线学习一定是增量的。因为在线学习,实现方式就是数据一条一条流进来更新模型。技术上可以基于流计算实现。
  2. 增量学习不一定是在线的。因为给定一个模型和一批离线/在线数据,增量学习可以用这一批离线数据,去更新之前训练好的模型。而不需要从头开始训练一个模型。技术上可以基于批计算实现。

3、终身学习(LifeLong Learning)与 增量学习(Incremental Learning)?

Lifelong learning终生学习,又名增量学习increment learning。通常机器学习中,单个模型只解决单个或少数几个任务。对于新的任务,我们一般重新训练新的模型。而LifeLong learning,则先在task1(例如:语音识别)上使用一个模型,然后在task2(例如:图像分类)上仍然使用这个模型,一直到task n。Lifelong learning探讨的问题是,一个模型在很多个task上表现都很好。如此下去,模型能力就会越来越强。这和人类不停学习新的知识,从而掌握很多不同知识,是异曲同工的。

LifeLong learning需要解决三个问题

  • Knowledge Retention 知识记忆。我们不希望学完task1的模型,在学习task2后,在task1上表现糟糕。也就是希望模型有一定的记忆能力,能够在学习新知识时,不要忘记老知识。但同时模型不能因为记忆老知识,而拒绝学习新知识。总之在新老task上都要表现比较好。
  • Knowledge Transfer 知识迁移。我们希望学完task1的模型,能够触类旁通,即使不学习task2的情况下,也能够在task2上表现不错。也就是模型要有一定的迁移能力。这个和transfer learning有些类似。
  • Model Expansion 模型扩张。一般来说,由于需要学习越来越多的任务,模型参数需要一定的扩张。但我们希望模型参数扩张是有效率的,而不是来一个任务就扩张很多参数。这会导致计算和存储问题。

4、life long learning 与 multi- task的区别?

多个任务(或者可以一个任务的不同domain)不是同时学,而是依次有顺序的学习,但是依次学习面临的问题是学到新知识,忘记了新知识,也就是catastrophic forgetting。另外,任务学习的顺序也很重要!!!

其实,multi- task也可以解决life long learning问题(multi- task是LLL的上界,相当于复习以前的内容),但是存在一些问题:
(1)存储空间:当有大量任务需要同时学习的时候,说明此刻机器需要将所有任务的资料或数据同时存储并且学习,那么当任务数大且占用内存大时,便会导致存储空间不足。
(2)计算问题:因为任务量大,模型需要同时调整多个任务的参数,计算量会无限增大,计算速度变慢。

这时,有人就会想到,那既然同时学习不行,会产生内存和计算的问题,那是不是可以单独学习每个任务呢?
回答当然是可以的,but, 每个任务单独学习首先仍然存在内存开销大的问题,其次,针对每个任务单独学习一个模型,每个任务之间的知识是不互通,无法发生知识迁移,这也就违背了life long learning的初衷

5、Life long learning 和transfer learning的区别?

transfer learning更关注后续任务的学习,如果我们把transfer learning比作一个奥运长跑冠军,那么life long learning则相当于奥运会中的全能选手,他需要关注到每个任务的性能,保证模型十八般武艺都精通。

6、在线学习(Online Learning)和离线学习(Offline Learning)的区别?

第一种理解

在线学习,通常是一次输入一条数据(而不是一个batch),训练完了直接更新权重。一个一个地按照顺序处理数据,但是每一个数据训练完后都会直接更新权重,但不知道是对是错,如果某一次权重更新错误,在这之后的权重更新可能一直都是错的,最后得到的模型可能就会逐渐走向错误方向,残差出现。在线学习先按顺序处理数据,他们产生一个模型,并把这个模型放在实际操作中,不需要一开始就提供完整的训练数据集。随着更多实时数据进入模型,模型会在操作中不断被更新

离线学习,类似于批量学习,假设整个样本有m个数据,离线训练会训练m的整数倍次数,然后带入下一条,直至跑完整个样本,这个时候误差率可能不让你满意,把整个样本又做个上述操作,直至误差很小。离线学习是一个batch训练完才更新权重,因此要求所有数据必须在每一个训练训练操作中(batch)中都是可用的,这样不会因为个别数据的更新错误把网络带向极端。

第二种理解

在线学习中,恰恰相反,在线算法按照顺序处理数据。它们产生一个模型,并在把这个模型放入实际操作中,而不需要在一开始就提供完整的的训练数据集。随着更多的实时数据到达,模型会在操作中不断地更新。具体而言,在线学习(Online Learning)指的是在数据不断到来的过程中,动态地更新模型。在线学习具有实时性,可以快速适应新数据的特征变化,而且可以避免离线学习需要重新生成模型的问题。但是,由于在线学习需要实时计算,因此会对系统的性能产生一定的影响。此外,由于在线学习需要实时计算,因此需要进行一定的模型设计和优化,以提高算法的效率和准确性。

在离线学习中,所有的训练数据在模型训练期间必须是可用的。只有训练完成了之后,模型才能被拿来用。简而言之,先训练,再用模型,不训练完就不用模型。

具体而言,离线学习(Offline Learning)指的是在离线状态下,使用历史数据进行学习,从而生成模型。这种方式的优点是可以在对数据进行了预处理后,通过离线计算的方式,快速地生成模型。缺点是模型生成后,无法对其进行动态更新,对于新数据的学习需要重新生成模型,因此不太适用于需要频繁更新模型的场景

机器学习:在线学习和离线学习的区别 - 知乎

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

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

相关文章

缓存被穿透了怎么办?

首先来了解几个概念: 缓存穿透:大量请求根本不存在的key 缓存雪崩:redis中大量key集体过期 缓存击穿:redis中一个热点key过期(大量用户访问该热点key,但是热点key过期) 穿透解决方案 对空值…

windows powershell 下使用【docker cuda choco vim conda ......】

powershell 下可以使用的linux命令 ls可以完全替代llimgcat可以安装,但是显示不了图片,可以用start命令来替换 start .\wallhaven-9m5321.jpgcat touch history可以用 chmod 不能用下面介绍一下alias在powershell下的使用 这里的$profile相当于linux…

搭建Scala环境

搭建Scala开发环境 到官网上下载Scala Scala2.13.10下载网址:https://www.scala-lang.org/download/2.13.10.html 下载文件 安装Scala 根据提示安装,可以安装到默认文件,也能选择其他路径 配置Scala环境变量 变量名变量值SCALA_HOMEC:\Pr…

【软件测试用例篇】

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 1. 测试用例的概念 2. 设计测试用例的好处 3…

ESP32-C2模组 透传示例

WIFI-TTL透传模块说明 V 1.0 2022-11-24 1 简介 WiFi-TTL透传模块基于我司DT-ESPC2-12模块研发,引出串口TTL、EN、STATE 等引脚。产品内置我司最新版本的串口透传固件可完成设备TTL 端口到WiFi/云的数据实时透传。本模块可直接取代原有的有线串口,实现…

ZooKeeper快速入门学习+在springboot中的应用+监听机制的业务使用

目录 前言 基础知识 一、什么是ZooKeeper 二、为什么使用ZooKeeper 三、数据结构 四、监听通知机制 五、选举机制 使用 1 下载zookeeper 2 修改 3 排错 在SpringBoot中的使用 安装可视化插件 依赖 配置 安装httpclient方便测试 增删查改 新建控制器 创建节点…

k8s中部署nginx-ingress实现外部访问k8s集群内部服务

k8s通过nginx-ingress实现集群外网访问功能 一:ingress概述 1.1 ingress 工作原理 step1:ingress contronler通过与k8s的api进行交互,动态的去感知k8s集群中ingress服务规则的变化,然后读取它,并按照定义的ingress规…

jsp手机回收软件系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp手机回收软件系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助 ,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql,使…

Moonbeam社区治理|参与委托投票问卷,瓜分2000U奖励

社区治理升级意味着公链正走向可持续和透明化发展,让每位GLMR所有者都参与治理,是Moonbeam成为真正去中心化公链的重要一环。 Moonbeam治理 OpenGov为Moonbeam生态带来了多角色委托功能,使Token持有者能够根据track委托Token进行投票。委托…

零基础如何入门渗透测试

作为一名多年的渗透测试工程师,了解到很多零基础的初学者都面临着学习渗透测试的困难。在这里,我会提供一些指导性的建议和方法,帮助初学者快速入门,开启学习之旅。 一、什么是渗透测试 在学习渗透测试之前,建议先了解…

虹科技术 | 虹科EtherCAT增量编码器输入模块数据采集实操测试

1. 背景介绍 编码器是将信号或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。编码器把角位移或直线位移转换成电信号,前者称为码盘,后者称为码尺。按照读出方式编码器可以分为接触式和非接触式两种;按照工作原理编码器可分为…

Android | Android 系统架构

参考: Android Developers(https://developer.android.google.cn/) 平台架构 Android 是基于 Linux 的开源软件栈,下图为官网给出的 Android 平台主要组件。 Android 平台从上(直接与用户交互)到下(直接与硬件交互&a…

Mastodon 长毛象多租户:自定义域名、自定义账号别名

概念 自定义域名后缀 假设,Mastodon 主节点域名 domain1.com,我在该域名下拥有一个用户 user1domain1.com。 配置自定义域名后缀支持后,也可以通过 user1domain2.com 搜索到。该配置需要在主节点中设置 ALTERNATE_DOMAINS。 自定义账号别…

DOS的常用指令:

DOS的常用指令: DOS【介绍】:磁盘操作系统 cmd是操作DOS的媒介,dos可以操作Windows的目录结构, 基本操作指令: cmd【控制台】->发给dos【解析】->win的目录结构 常用操作指令: 《一》目录操作 &a…

QT学习笔记-QT5.15.2使用qtopcua5.15.2实现与PLC通讯(上)

QT学习笔记-QT5.15.2使用qtopcua5.15.2实现与PLC通讯(上) 环境说明背景思路perl依赖安装qtopcua插件编译解决编译报错问题解决安装mingw32-make install报错问题 环境说明 操作系统:Windows10 专业版 64位 开发工具:Qt 5.15.2 OP…

Python提取PDF文字的10个方法,OCR识别扫描版pdf,图片pdf格式的10种ocr汉字识别方法

Python 读取扫描版 PDF、图片 PDF 并进行 OCR 识别的方法: pytesseract:一种基于 Python 的 OCR 库,可用于识别扫描版 PDF 和图片 PDF 中的文本。 它可以使用 Google 的 OCR 引擎进行识别,也可以使用本地的 OCR 引擎进行识别。使…

阿里云免费ssl证书申请与部署

一、证书申请 1、找到 ssl 证书 2、点击选择SSL 证书 进入其管理控台 3、如果你还没有免费证书,选择购买即可,一个自然年内每个账号可以领取一次数量为20的免费单域名试用证书额度,我的已经购买过来,今年的,所以无法…

网络安全各类WAF绕过技巧

一、WAF绕过 1、脏数据绕过 即传入一段长数据使waf失效,从而实现绕过waf。某些waf处理POST的数据时,只会检测开头的8K,后面选择全部放过。 例如,当发现某网站存在一个反序列化漏洞时,但是无回显,被waf拦…

MQTT中间件Eclipse Mosquitto安装和使用(.asc文件)MQTT监控命令mosquitto_sub(mosquitto C++库源码编译)

昨天弄的,今天忘了不少。。。 文章目录 参考链接安装MQTT服务中间件安装启动与查询卸载与清理 MQTT C支持库安装(使C能使用相关库函数)离线安装(通过源码)ubuntu官网下载软件包编译mosquitto客户端库 mosquitto Docker…

后端SpringBoot应用向云原生K8S平台迁移

目录 一、引言二、方式1:在K8S上部署Spring Cloud Alibaba三、方式2:在K8S上部署Spring Cloud K8S3.1 第1次优化:移除Spring Cloud K8S DiscoveryClient 四、方式3:在K8S上部署SpringBoot应用4.1 第2次优化:移除Spring…