机器学习中的主动学习(Active Learning)

article/2025/8/29 10:06:06

最近在做主动学习相关的东西,随着深入了解和学习对于某些东西有一些模糊,先将所见所感整理如下,如有不正确之处希望大佬能够指正:

1.主动学习

1.1关键问题

对于监督学习模型,足够多的已标注样例是获得高精度分类器的前提条件,随着传感器技术的迅速发展,数据采集变得越来越容易,同时也导致位置样例在总样例中占比较大,而人工标注位置样例成本昂贵。另外,过多的低质量训练样例反而会降低分类器的鲁棒性,甚至导致“过学习”问题。因此,需要控制训练样例集的数量和质量。
如何高效地选出高分类贡献度的无类标样例进行标注并补充到已有训练集中逐步提高分类器精度与鲁棒性是主动学习亟待解决的关键问题。

1.2定义

目前主动学习已经成为机器学习、模式识别和数据挖掘研究领域中最前瞻和热点的研究方向之一。
文章《Active Learning Literature Survey》阐述主动学习是机器学习的一个子领域,在统计学领域也叫做查询学习、最优实验设计。关键的假设如果机器可以自己选择学习的样本,它可以使用较少的训练取得更好的效果。
如何利用为标注样例,从中挑选出对训练贡献度高的样例,标注后补充到训练集中来提升分类器性能是机器学习研究方向之一。
主动学习的主要目标是在保证分类精度不降低的前提下有效地发现训练数据集中高信息量的样本,是训练的分类器在较低的标注下高效地训练模型。
主动学习的研究多数情况下集中在两个地方:选择策略和查询策略。选择策略指导模型从哪里选择为标注样本,查询策略指导模型如何确定未标注样本是否需要被标注。
主动学习算法一般包含2个重要模块:学习模块和选择模块,学习模块本质上就是训练分类器的过程,即通过示教学习主键提高分类器的分类精度与鲁棒性;而选择模块的终极目标是生成高质量的训练样例集,以提高样例集的代表性和广泛性。

1.3步骤

主动学习的模型可以用A=(C,L,S,Q,U)表示,其中C表示分类器(1个或多个),L表示带标注的样本集,S表示督导者,可以对未标注样本进行标注,Q表示当前所使用的查询策略,U表示为标注的样本集。
(1)选取合适的分类器(网络模型)记为current_model、主动选择策略、数据划分为train_sample(带有标注的样本,用于训练模型)、validation_sample(带标注的样本,用于验证当前模型的性能)、active_sample(未标注的数据集,对应于U币labeled pool);
(2)初始化:随机初始化或者通过迁移学习(source domain)初始化;如果有target domain的标注样本,就通过这些表示标注样本对模型进行训练;
(3)使用当前模型current_model对active_sample中的样本进行逐一预测(预测不需要标签),得到每个样本的预测结果。此时可以选择Uncertainty Strategy衡量样本的标注价值,预测结果越接近0.5的样本表示当前模型对于该样本具有较高的不确定性,即样本需要进行标注的价值越高。
(4)专家对选择的样本进行标注,并将标注后的样本放至train_sample目录下。
(5)使用当前所有标注样本train_sample对于当前模型current_model进行fine_tuning,更新current_model;
(6)使用当前current_model对validation_sample进行验证,如果当前模型的性能得到目标或者已不能再继续标注新的样本(没有专家或者没有钱),则结束迭代过程。否则,循环执行步骤(3)。
整个过程如下图所示。
在这里插入图片描述

2.应用场景

大多数人将其分为以下主要的三种,即Membership query synthesis、Stream_based selective sampling、Pool_based sampling,但有的人将其分为四种,多了一种Query synthesis。
在这里插入图片描述

2.1Membership Query Synthesis

从字面上无法理解,不过这正方式的实例是算法从整个可能的样本空间中生成的,模型从头开始生成一个实例然后送回oracle打标签。

2.2Stream_based Selective Sampling

基于流的策略一次从未标注样例池中取出一个样例输入到选择模块,若满足预设的选中条件则对其进行准确的人工标注,反之直接舍弃。该学习过程需要处理所有未标记样例,查询成本高昂。另外,由于基于流的样例选择策略需要预设一个样例标注条件,但该条件往往需要根据不同的任务适当调整,因此很难将其作为一种通用方法普遍使用。

2.3Pool_based Sampling

基于池的方法每次从系统维护的未标注样例池中按照预设的选择规则选取一个样例交给基准分类器进行识别,当基准分类器对其识别出错误时进行人工标注。相较基于流的方法,基于池的方法每次都可选出当前样例池中对分类贡献最高的样例,这即降低了查询样例成本,也降低了标注代价,这使得基于池的样例选择策略广泛使用。基于池的样例选择标准主要包括:不确定性标准、版本空间缩减标注、泛化误差缩减标注等。

3.查询策略

查询策略也叫做查询函数,以往的方法大概分为这两类:一类方法,倾向于选择最有信息的样本,例如,我去叫你最不会的东西应该是对你最有帮助的;另一类方法,是倾向选择最优代表性的样本,希望选择的样本涵盖数据整体分布的信息。
按照获取优质样例工作方式的不同可将样例选择分为基于流(Stream_based)和基于池(Pool_based)的策略。
基于池的样例选择策略细分为不确定性(Uncertainty)、版本空间缩减标准和泛化误差缩减标准等。

4.主动学习算法形式

4.1基于委员会的启发式方法(QBC)

选择一定数量的分类模型,构成分类委员会。利用初始训练集训练委员会中的每个模型,并将训练完成的模型用于分类未标记样本池中的样本。该方法选择所有模型分类结果中最不一致的样本。

4.2基于边缘的启发式方法(MS)

4.3基于后验概率的启发式方法(pp)

5.半监督学习与主动学习

两者都是从未标记样例中挑选部分价值量高的样例标注后补充到已标记样例集中来跳高分类器中精度,降低领域专家的工作量,但两者的学习方式不同。
(1)半监督学习一般不需要人工参与,是通过具有一定分类精度的基准分类器实现对未标注样例的自动标注;而主动学习需要将挑选出的高价值样例进行人工准确标注。
(2)半监督学习通过用计算机进行自动或半自动标注代替人工标注,虽然有效降低了标注代价,但其标注结果依赖于用部分已经标注样例训练出的基准分类器的分类精度,因此并不能保证标注结果完全正确。


http://chatgpt.dhexx.cn/article/wYkslOjg.shtml

相关文章

主动学习数据标注

active learning与passive(supervised) learning最大的不同是其不需要大量的专家标注样本训练模型。 主动学习是利用少量标注样本,然后由模型(Learner)主动选择hard sample返回给用户或专家(Oracle)打标签,…

浅谈主动学习(Active Learning)

1背景概述 在机器学习领域有很多学习模式,比方说监督学习、半监督学习、强化学习、无监督学习等。平时大家接触比较多的一般都是监督学习,在监督学习里面,比方说要做个人和鱼的图像分类模型,假设有200张图片,那就需要把…

深度主动学习综述(Deep Active Learning)

原文 Abstract 主动学习试图通过标记最少量的样本使得模型的性能收益最大化。而深度学习则对数据比较贪婪,需要大量的数据供给来优化海量的参数,从而使得模型学会如何提取高质量的特征。近年来,由于互联网技术的快速发展,使得我…

AL-实体抽取主动学习调研

实体抽取主动学习调研 文章目录 实体抽取主动学习调研资料前言相关文献阅读一、主动学习与自学习的中文命名实体识别算法流程图 二、DEEP ACTIVE LEARNING FOR NAMED ENTITYRECOGNITION三、Visual Active Learning for Labeling: A Case for Soundscape四、Interactive visual …

《异常检测——从经典算法到深度学习》15 通过无监督和主动学习进行实用的白盒异常检测

《异常检测——从经典算法到深度学习》 0 概论1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法3 基于One-Class SVM的异常检测算法4 基于高斯概率密度异常检测算法5 Opprentice——异常检测经典算法最终篇6 基于重构概率的 VAE 异常检测7 基于条件VAE异常检测8 Donut: …

主动学习简单教程及代码示例

本文是这篇文章的(翻译)简化版。 本文代码地址 已经不止一次有人说代码地址打不开,但是每次我都打得开。。这里放个阿里云的地址吧Active_Learning_Tutorial.ipynb。需要的去阿里云下载文件就行了。 建议直接看代码地址(代码地…

主动学习研究现状

主动学习研究现状 一. 传统查询策略(Query Strategy)二. 在图像分类的应用三. 在目标检测的研究3.1.《Localization-Aware Active Learning for Object Detection 》(ACCV, 2018)3.2. 《Active Learning for Deep Object Detection via Probabilistic Mo…

什么是主动学习?

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

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版)》编辑推荐:“软件开发视频大讲堂”丛书系清华社…