主动学习(active learning)

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

背景

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

主动学习:通过迭代方式,选择最有价值的样本进行标注后加入训练,用最小的标注代价有效提高模型性能。

采样策略 

设计策略使所查询的信息对改进目标模型有帮助。目前已提出了许多主动学习方法:一些方法是挑选信息量最大的样本进行查询。信息量可用不同标准来衡量,如不确定性泛化误差减少量,但该类方法只考虑了模型对样本的需求,可能导致挑选的样本分布与数据集真实分布存在差异。另一些方法是查询具有代表性样本的标签,其代表性可以根据聚类结构或者密度来估计,但该类方法挑选的是最能够代表样本分布的样本,忽略了模型本身对样本分类性能的信息

定性采样策略,包括最低置信度采样、边缘采样和熵采样。核心思想:是用模型对样本的预测后验概率来估计该样本的不确定性。模型在未标记样本上的预测概率越均衡(样本属于多个类别的概率差不多),越难以判断该样本所属的类别,将其加入训练将有效提高模型的分类性能(在进行数据分类时,越靠近分类面的样本,越具有不确定性,其含有的信息量也越大)以二分类任务为例, 熵采样策略通常选择后验概率最接近0.5的样本。 

信息量与代表性相结合的方式可分为三类:

  • 串行结合方式,依次使用每个挑选策略来过滤“低价值”样本。常用做法为先从无标注样本集中挑选最有信息量的一批样

    本,然后用聚类算法对这一批样本进行聚类,得到的聚类中心即为待查询样本。

  • 概率选择方式,在每轮主动学习迭代中,依据概率参数决定当前轮迭代使用的采样策略。

  • 并行结合方式,目前最流行的主动学习策略结合方式,使用不同采样策略标准的加权求和或多目标优化方法计算混合得分,根据分数对未标注样本进行排序,挑选得分最高的一批样本

不稳定性采样

上述方法试图估计样本对改进模型的潜在价值,但只用当前模型对无标注样本进行评估,忽略了历史模型所蕴含的对未标注样本预测稳定性的信息。不同迭代周期中,目标模型对同一样本的识别效果是变化的(分类模型对该样本的识别能力的不稳定性)。量化变化信息,挑选出模型识别效果最不稳定的样本,选择这类样本进行标注加入训练对提升目标模型泛化性能提供更多有效信息。忽略历史模型的潜在价值将导致主动学习策略挑选的并不一定是最有价值的样本。因此,在主动采样的过程中,除了考虑当前模型对未标注样本的预测,还应考虑以往模型预测的差异。

定性采样的主动学习方法,根据模型在整个学习过程中对无标注样本的预测差异 来衡量未标注样本对提升模型性能的潜在效用。计算最近的 N 个模型对无标注样本预测后验概率的差异 衡量其不稳定性,并选择最不稳定的样本进行标注。 

 

不稳定性指标定义 

问题设定和学习框架(流程图)

 

 除第一轮主动学习迭代,采用随机采样挑选样本,之后的每轮迭代,都使用离当前轮次最近的 N 个历史分类模型{ Mt - 1,Mt - 2,…,Mt - N}对每一个无标注样本 xj进行预测,得到 N 个后验概率。再使用不稳定性采样来估计每个无标注样本的不稳定性并挑选最不稳定的样本进行标注

不稳定性采样策略(方法)

主动学习第 t 轮迭代 中,以往的模型,即{ Mt - 1,Mt - 2,…,Mt - N } 对无标注样本 xj 预测结果不稳定,这表明目标模型对该样本的识别能力不足。预测越不稳定,该样本越难以被有效地识别。因而,应尽可能挑选最不稳定的样本进行查询。

  • 度量模型计算识别能力用信息熵衡量模型预测的不确定性,模型越难判断样本所属类别,识别能力越低。
  • 后验概率分布差异衡量模型识别能力变弱的程度分布差异的度量方式有 KL 散度、JS 散度和 asserstein 距离

 

 基于不稳定性采样的主动学习方法实验

 实验设置

 

了进一步验证所提出方法在传统模型和深度模型上的有效性,使用不同的基分类模型,逻辑斯蒂回归( logistic regression) 模型、LeNet-5 和ResNet18。所有实验使用的都是未经过预训练的初始化模型。将数据集划分为 70% 的训练样本和 30% 的测试样本

对于传统模型:训练集随机采样 5% 的样本来初始化有标注样本集,在每轮主动学习迭代中,通过采样策略挑选 b = 1 个未标注样本进行标注并加入有标注集,总标注预算为 200。

对于深度模型:初始的已标注训练样本占整个训练集的0.5%,总标注预算为500;svhn 除外,其随机采样 1% 的样本来初始已标注集,总标注预算为2 000。深度模型在每轮主动学习迭代中挑选 b = 10 个样本进行标注。不同的标注预算依据实验最终的收敛情 况而定,以便于观察主动学习采样策略性能。

实验初始学习率设为 0.01,批量大小为 64, mnist 和 fashionmnist 数据集:每50 次迭代更新学习率为原来的10% ,svhn 数据集:每 20 次迭代更新学习率为原来的 90% 。重复进行 5 次实验,计算每轮主动学习迭代中目标模型的平均准确率,并绘制平均准确率随查询样本数的变化曲线,曲线提升得越快,说明采样策略性能越高。

实验结果与分析

  • 不稳定性采样方法在大多数情况下实现了最佳性能
  • 不稳定性采样几乎在所有情况下都显著优于基准方法随机采样
  • 不稳定性采样几乎在所有情况下都与不确定性采样方法( 最低置信度采样和最大熵采样) 表现相当或优于他们

总而言之,不稳定性采样能有效地挑选对模型最有用的样本,提升主动学习性能;同时说明了考虑历史模型预测不稳定性比仅基于当前模型挑选样本带来的潜在效用大。

模型数量的影响

进一步研究历史模型数量 N 对实验结果的影响。分别设置 N = 2,3,5,展示出性能曲线。发现当 N = 5 时,不稳定性采样方法的性能比 N = 2 和 N = 3 的性能差。原因可能为   本文使用距当前主动学习轮次最近的前 N 个历史模型进行实验,随着主动学习迭代轮次的增加,前几轮训练得到的模型性能较弱,这些模型预测的后验概率准确率较低,计算得到的数据的不稳定都较高,使得筛选出的数据可能不是“预期的高质量数据”最终导致随着 N 增大,方法的效果下降。

 参考文献:基于不稳定性采样的主动学习方法


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

相关文章

主动学习(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&…

Mysql启动之报错:The server quit without updating PID file

一、问题描述 某次一线报某业务网站门户登录验证码获取失败;因该验证码是代码里通过验证码函数实现存入数据库,登录时再读取数据库里的验证码来实现包包里破解登录的;因此本次故障极大可能出现在数据库服务器故障。类似报错信息如下&#xff…

net start mysql启动常见问题

数据库安装常见问题 1、安装时net start mysql 后mysql启动失败。。服务无法启动。。服务没有报告任何错误 解决方法: 1)找到MySQL的安装目录,将data删除 (注意该文件下会有一些你自己建立的数据库的数据!) 2)搜索cmd以**管理员身份运行 **进入本机mysql…

Mysql启动选项和配置文件

Mysql启动选项和配置文件 Mysql启动方式 下面的启动命令都需要依赖在Linux环境下配置的Mysql环境变量 vi /etc/profile 在文件末尾加上Mysql的安装路径(演示中mysql配置在/usr/local/mysql-5.7.26下,这个路径需要根据自己的环境而定) expor…