什么是主动学习?

article/2025/8/29 13:16:19

机器学习算法特别需要数据,需要成千上万的例子才能做出明智的决定。为我们的算法提供高质量的训练数据是一项昂贵的任务。主动学习是一种优化构建有效机器学习系统所需人力的策略。

主动学习定义

主动学习是一种机器学习训练策略,它使算法能够主动识别可能最有效地提高性能的训练数据子集。更简单地说,主动学习是一种策略,用于识别我们的训练数据中哪些特定的例子可以最好地提高模型性能。

实践中主动学习的一个例子

假设您正在构建一个计算机视觉模型来识别放在家门口的包裹,以便向您发送"您已收到邮件"的推送警报。包裹有各种各样的形状、大小和颜色。假设您的训练数据包含10,00张示例图像:600张是棕色纸板箱的包裹图像,300张白色信封图像,以及100张黄色盒子图像。
在这里插入图片描述
设 想 构 建 一 个 计 算 机 视 觉 模 型 来 识 别 包 裹 设想构建一个计算机视觉模型来识别包裹
此外,每个盒子都可以放在你的门廊的不同位置,天气可以改变一天的亮度和黑暗,盒子本身的大小也可以不同。一个理想的数据集应该有一个多样性的变化,以捕捉所有可能的情况:白天门廊左侧的一个黄色包裹到阴天右侧的一个白色信封(以及在这两者之间的一切,理论上)。

我们会说,你想快速而准确地开发一个模型,所以你错误地在给你的全部10000张图像中的1000张图像子集贴上标签,评估模型性能,然后再标记额外的数据。
你应该先标记哪1000张图片?
直观上,您可以选择为我们假设的每个包类的一些编号进行标记:棕色的盒子、白色的信封和黄色的盒子。因为我们的模型不可能在没有任何例子的情况下知道一个棕色盒子是什么,所以我们需要确保在我们的训练数据中包含一些棕色盒子。

直觉上,为确保我们的前1000张图片包括我们希望模型学习每个类别的例子,实际上,就是一种主动学习。我们已经将我们的训练数据缩小到一组能够最好地提高模型性能的图像。

同样的概念扩展到我们图像数据集中的框的其他属性。如果我们选择300个棕色盒子的例子,但每个棕色盒子的例子都是一个完美的立方体呢?如果我们选择了所有100个黄色盒子的样品,但我们的黄色盒子总是在阳光明媚的日子送达,那会怎么样?同样,我们的目标应该是创建一个包含每个类的变化的数据集,以便我们的模型能够最好地了解在任何尺寸、任何位置和任何天气条件下送达的包裹。

主动学习的类型

有多种方法可以帮助我们的模型从初始训练数据中学习。这些方法可能包括从我们的训练数据生成额外的示例,或者确定哪个示例子集对我们的模型最有用。我们的目标是从一个完整的总体(我们的训练数据)中确定哪些样本(子集)可以最好地帮助提高模型性能。

对我们的模型最有帮助的示例的抽样可以遵循以下几种策略:基于池的抽样、基于流的选择抽样和成员查询合成。

所有的主动学习技术都依赖于我们利用一些具有准确标签的例子。也就是说,我们不可避免地需要人为地给一些例子贴上标签。主动学习技术的不同之处在于,我们如何使用这些已知的、准确的例子来从我们的数据集中识别其他未知的、有用的例子。

为了评估这些不同的主动学习技术,假设我们有一些“主动学习预算”,我们可以花钱给我们的包数据集标注。
包裹标注示例
因此,问题是:我们应该如何确定最有帮助的例子,以改进我们的模型的性能。

(1)基于池的抽样(Pool-Based Sampling)

基于池的抽样是一种主动的学习技术,我们识别所有给定示例的“信息有用性”,然后选择排名前N的示例来训练我们的模型。换句话说,我们想要确定哪些例子对我们的模型最有帮助,然后包括最好的例子。

基于池的抽样可能是主动学习中最常见的技术,尽管它相当占用内存。

我们已经拥有了1000个标注好的包裹样本。我们可以在800个标注好的样本上训练一个模型,并在剩下的200个标注的样本上进行验证。有了这个模型,我们可以假设模型中预测精度最低的例子将对提高性能最有帮助。也就是说,我们的模型在验证集中预测精度最低的例子可能是对未来训练最有用的图像。

我们可以在剩下的9000个包裹图像上运行我们的模型。然后,我们将根据最低的预测标签概率对图像进行排名:没有发现包裹的图像(精确度为0%)或低可信度发现包裹的图像(精确度低于50%)。然后,我们对这些图片进行标注。我们可能还想评估每个类的mAP,以选择性能较低的包裹类别。

(2)基于流的选择性抽样(Stream-Based Selective Sampling)

基于流的选择性抽样是一种主动学习技术,当模型在训练时,主动学习系统决定是查询真实标签还是根据某个阈值分配模型预测的标签。更简单地说,对于每个未标记的例子,主动学习会说,“我是否有足够的信心自己将模型预测的标签分配给这个例子,还是我应该问这个例子的答案?”

基于流的选择抽样可以是彻底的搜索——因为每个未标记的例子都被逐个检查——但它会耗费更多的资源,这取决于模型是否多次查询真实标签。

我们从开始我们训练了前1000个标记的样本。然后,基于流的主动学习将逐个遍历我们数据集中剩余的9000个样本,并基于预测标签的置信阈值,主动学习系统将决定是否为给定的图像使用真实标记。

如果主动学习者要求给超过1000个例子加上标签怎么办?这正是基于流的选择性抽样的缺点。

(3)会员查询合成(Membership Query Synthesis)

成员查询合成是一种主动学习技术,这种主动学习技术能够根据我们的训练示例创建自己的示例,以获得最大的有效学习。在某种意义上,这种主动学习技术确定它可能是最有用的,比如,在我们标记的训练数据中创建图像的子集,并使用新创建的子集图像进行额外的训练。

当我们的初始训练数据集特别小时,成员查询合成可以非常有效。然而,生成更多示例可能并不总是可行的。幸运的是,在计算机视觉中,这是数据增强可以发挥巨大作用的地方。

例如,假设我们的包裹数据集缺少在黑暗和阴天的黄色包裹。我们可以使用亮度增强来模拟低光照条件下的图像。或者,想象一下,我们的许多棕色盒子图像总是在门廊的左边,靠近我们的相机。我们可以模拟缩小或随机裁剪图像,以改变训练数据中的视角。

在数据集上应用主动学习

幸运的是,这里回顾的许多主动学习技术并不是相互排斥的。例如,我们既可以为所有图像创建一个“信息有用性”评分,也可以生成有助于模型性能的额外图像。

就像大多数机器学习问题一样,对数据有一个清晰的理解,并能够基于添加的真实标签快速创建一个新模型,这是至关重要的。

参考目录

https://blog.roboflow.com/what-is-active-learning/


http://chatgpt.dhexx.cn/article/7rjwuHMu.shtml

相关文章

Deep Active Learning(深度主动学习)

在深度学习时代,以监督学习为首的各项模型都取得了非常好的效果,但是这往往需要非常多的数据量来支撑。所以主动学习这一领域主要的目的就是为了让目标模型达到性能的前提下,尽可能的减少标准成本。 Active Learning(主动学习&a…

主动学习入门

文章目录 1.介绍1.1 监督学习、半监督学习、非监督学习1.2 主动学习1.2.1 主动学习介绍1.2.2 主动学习与半监督学习异同1.2.3 主动学习流程 2. 基本思想2.1 图示2.2 策略 3. 算法3.1 基于流、基于池3.2 类别3.3 算法(这里只介绍基本的)3.3.1 基于不确定性3.3.2 多样性(一般与不…

主动学习(active learning)

背景 在现实应用场景中,训练一个有效的深度模型依赖大量已标注样本,而准确标注大规模数据往往耗时耗力且代价高昂。为降低模型对数据的依赖,相继提出无监督学习,半监督学习以及弱监督学习等领域的学习方法。在这些方法中&#xf…

主动学习(Active Learning,AL)综述

目录 1. 基本概念2. 基于不确定性的主动学习方法3.基于最近邻和支持向量的分类器的方法3.1 NNClassifier3.2 RBF network Gradient Penalty 4 基于特征空间覆盖的方法5 基于对抗学习的方法5.1 VAAL5.1.1 核心思想5.1.2 网络结构5.1.3 主动学习策略5.1.4 模型特点 5.2 SRAAL5.3…

主动学习(Active Learning) 概述、策略和不确定性度量

主动学习是指对需要标记的数据进行优先排序的过程,这样可以确定哪些数据对训练监督模型产生最大的影响。 主动学习是一种学习算法可以交互式查询用户(teacher 或 oracle),用真实标签标注新数据点的策略。主动学习的过程也被称为优化实验设计。主动学习的…

主动学习(Active Learning,AL)的理解以及代码流程讲解

为什么要使用主动学习(Active Learning,AL) 针对有监督的学习任务,存在标记成本较为昂贵且标记难以大量获取的问题。 在此问题背景下,主动学习(Active Learning, AL)尝试通过选择性的标记较少数据而训练出表现较好的模…

主动学习(Active learning)简介

文章目录 Labeling faster vs. labeling smarter1. 什么是主动学习?2. 主动学习如何运行?2.1 Stream-based Active Learning2.2 Pool-based Active Learning2.3 Membership Query Synthesis 3. 主动学习与强化学习的不同?4. 不确定性度量1&am…

哪本书适合推荐给 Java 初学者?

之前写过一篇文章叫《假如时光倒流, 我会这么学习Java》, 希望对你有帮助: ----------------------------------------------------------------------- 回头看看, 我进入Java 领域已经快15个年头了, 虽然学的也一般…

Java程序员必看的20本书,从入门到精通!收藏

推荐的20本学习 Java 必看书,记得点收藏哈~ 基础核心 1、《Java核心技术卷2:高级特性(原书第9版)》 豆瓣评分: 8.7 推荐指数:👍👍👍👍 2、《图解 HTTP》 讲漫画一样的…

Java入门到进阶推荐书籍

Java学习中推荐的书籍 第一本,《Head First JAVA》 小白学习JAVA的入门书籍,这本书和其他专业书籍相比多了一些趣味性,让人能够读下去,知识点比较全面,但是也没有讲的很深。 第二本,《JAVA核心技术卷1》 …

【书籍学习】史上最全的Java进阶书籍推荐

学习Java,书籍是必不可少的学习工具之一,尤其是对于自学者而言。废话不多说,下边就给大家推荐一些Java进阶的好书。 第一部分:Java语言篇 1.《Java编程规范》 适合对象:初级、中级 介绍:这本书的作者是被…

java 入门书籍(java7)

一、Java从入门到精通 《Java从入门到精通(第3版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java语言进行程序开发需要掌握的知识。 《Java从入门到精通(第3版)》编辑推荐:“软件开发视频大讲堂”丛书系清华社…

Java从入门到进阶书单推荐|必收藏

关于Java从入门到进阶的书单推荐 一、入门基础类 如果是0基础学习,入门阶段千万不要选择太难的书,首先太难的你也看不懂,而且会打击信心,所以建议选择通俗易懂的就行,先领进门(注意:基础一定要…

零基础学Java有哪些必看书?推荐这5本

零基础学Java初学者,想要入门,应该多看一些关于Java的书,先充实理论基础。然而Java的技术知识是海量的,市面上关于Java的书令人眼花缭乱,零基础的小白完全不知道该看哪本书。那么,零基础学Java有哪些必看书…

MySQL启动1053错误之解决方法

版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/qq_42680327 创建mysql服务时,系统已提示创建服务成功,但是net start mysql命令提示启动失败,并在services.msc中提示1053错误 解决办法1…

解决phpstudy mysql启动不了

之前的电脑上下了mysql,phpstudy自带一个mysql,目测是本来的mysql进程占用端口。 1、按winR键,输入 services.msc 找到mysql服务,关闭 2、再以管理员身份运行 一定要用管理员身份运行,我的问题这种方法解决了,其他的…

phpstudy mysql启动不了,问题已解决

首先讲一下我遇到的问题,安装好phpStudy v8.1之后,MySQL无法无法启动,出现错误的原因大概是phpStudy与原先下载的MySQL冲突了,随后在网上找了一些教程,进行了一系列操作:(有些朋友成功了&#x…

MySQL启动与关闭的3种方式

MySQL启动与关闭的3种方式 在这里大概记述一下MySQL最常用的3种启动与关闭的方式 文章目录 MySQL启动与关闭的3种方式一、第一种方式二、第二种方式三、第三种方式总结 一、第一种方式 直接搜索“服务”或者搜索“service”,再点击服务 找到MySQL57,…

Linux查看mysql是否启动+mysql启动(全)

整理一下Linux下启动mysql服务的命令。 目录 1.使用命令 # service mysqld status 2、使用命令# ps aux|grep mysqld 3、使用命令# pidof mysqld 4、使用命令# ps -ef|grep mysqld 5、使用# systemctl list-unit-files 命令,q退出 一、查看mysql是否启动——…

MySQL启动报错:mysql拒绝访问错误5

使用命令net start mysql启动数据库服务时候,出现如下错误: 原因是当前用户的权限过低导致的。 解决mysql拒绝访问错误5 1、win x 打开一个面板如下,选择命令提示符(管理员)【 解决办法:在系统搜索cmd&…