主动学习研究现状

article/2025/8/29 13:21:43

主动学习研究现状

  • 一. 传统查询策略(Query Strategy)
  • 二. 在图像分类的应用
  • 三. 在目标检测的研究
  • 3.1.《Localization-Aware Active Learning for Object Detection 》(ACCV, 2018)
  • 3.2. 《Active Learning for Deep Object Detection via Probabilistic Modeling》
  • 3.3. MI-AOD——《Multiple Instance Active Learning for Object Detection》

一. 传统查询策略(Query Strategy)

主动学习介绍和传统查询策略看两篇就够了:
知乎:循环智能的主动学习(Active Learning)技术探索与实践:减少 80% 标注量
知乎:主动学习(ACTIVE LEARNING)
CSDN:主动学习入门篇:如何能够显著地减少标注代价

这里只做简单的罗列:

  • (1)不确定性采样的查询(Uncertainty Sampling):

    • 1.置信度最低(Least Confident)
    • 2.边缘采样(Margin Sampling)
    • 3.熵方法(Entropy)
  • (2)基于委员会的查询(Query-By-Committee):

    • 1.投票熵(Vote Entropy):选择这些模型都无法区分的样本数据;
    • 2.平均 KL 散度(Average Kullback-Leibler Divergence):选择 KL 散度较大的样本数据。
  • (3)基于模型变化期望的查询(Expected Model Change);

  • (4)基于误差减少的查询(Expected Error Reduction);

  • (5)基于方差减少的查询(Variance Reduction);

  • (6)基于密度权重的查询(Density-Weighted Methods)。

这些方法在Alipy,modAL,libact库里面都有集成:

  • Alipy(比较推荐):
    • 官网:http://parnec.nuaa.edu.cn/huangsj/alipy/
    • github:https://github.com/NUAA-AL/ALiPy
    • csdn:https://blog.csdn.net/weixin_44575152/article/details/100783835
  • modAL:
    • 官网:https://modal-python.readthedocs.io/en/latest/index.html
    • github:https://github.com/modAL-python/modAL
  • libact:

二. 在图像分类的应用

参考下面的10篇文章,但是遗憾的是作者没有提供源码:
CSDN:主动学习:Active Learning
对于理解怎么将主动学习实践、流程有帮助

三. 在目标检测的研究

3.1.《Localization-Aware Active Learning for Object Detection 》(ACCV, 2018)

论文链接:https://arxiv.org/pdf/1801.05124v1.pdf
论文解读:知乎:【论文】 Active Learning for Object Detection

     核心操作:作者提出了两个查询策略,分别为: Localization Tightness (TL) 和 Localization Stability (LS)。

  • Localization Tightness (TL) :
    这个指标顾名思义就是描述预测的 bounding box 能多大紧密程度框住目标物。对于预测的 bounding box [公式] 的紧密度 [公式] 的定于如下:
    在这里插入图片描述
    其中, [公式] 为 detector 对应的 region proposal,即当网络预测未经 scale 调整前的推荐 region

在这里插入图片描述
(a) 为置信度很高(即预测得很准 Pmax=1),但紧密程度很低( T(Bj)=0);(b)为置信度很低(即预测得很不准 Pmax=0 ), 但紧密程度很高( T(Bj)=1)。因此,选择策略如下图所示:
在这里插入图片描述

  • Localization Stability
    一个假设为:如果当前模型对噪声是稳定的,这意味着即使输入的未标记图像被噪声破坏,检测结果也不会发生显著变化,则当前模型已经很好地理解了该未标记图像,因此无需对该未标记图像进行注释。
    在这里插入图片描述
        如上图所示,红色框为原图所预测的 bounding box,绿色框为不断增加噪声后模型所预测的bounding box。如果模型能对这张图片学得很好,则红色框和绿色框的变化不会太大;反之,如果模型的预测随噪声的增加发生显著变化,则说明该图片的信息量大需要进行标注。
    在这里插入图片描述
    在这里插入图片描述

3.2. 《Active Learning for Deep Object Detection via Probabilistic Modeling》

论文链接:https://arxiv.org/abs/2103.16130
论文翻译:CSDN:【论文阅读】Active Learning for Deep Object Detection via Probabilistic Modeling

     出发点:不确定性的预测可以拆分为偶然不确定性和认知不确定性两个方面。偶然不确定性是指数据的固有噪音,比如传感器噪音或是图像特征的遮挡或是缺失。认知不确定性是由于模型本身的能力所限并且与训练数据的密度成反比。在主动学习中建模并且区分这两种不确定性是十分重要的。为了计算这两种不确定性,学者们会用基于多模型的方法,比如集成方法或者MC dropout。然后对于基于多模型的方法往往需要较高的计算代价,而对于集成来说,这更增加了网络的参数量。另外,这些方法只依赖于分类的不确定性,完全无视了定位的不确定性。
     创新点:本文的方法通过单模型的单次前向传播,通过结合图像中每一个目标的基于定位和分类的不确定性来评估每张图像的信息量得分。
在这里插入图片描述
     我的理解:对于每个目标Ground True都会有很多个预测框Bounding Box,这些Bounding Box的概率分布即代表了目标的偶然不确定度和认知不确定度,而这些分布可以用GMM来确定(一个分布可以由K个高斯分布来表达,比如下图的分布就可以用2个高斯函数要表达)
在这里插入图片描述
     据此,作者在文末也展现了消融实验,说明在K=4的时候IOU>0.75的mAP效果最好
在这里插入图片描述

     不确定性计算公式:其中输出网络由 GMM的参数组成:均值µk、方差 Σ k和第 k 个的混合权重 πk对于GMM 的第k个组成部分。给定这些参数,我们可以估计任意 ual偶然不确定性和uep认知不确定性。
在这里插入图片描述
     混合模型:我的理解是,GMM是在Locloss和Clsloss后增加的新网络,只用来预测不确定度,用来筛选主动学习的图片,用于下一个batch训练,不参加反向传播;而定位和分类损失是独立于不确定性,单独定义用于反向传播的,用于更新参数后参加(上一个batch+上一个batch参数的模型来预测筛选出下一个batch的其中一部分数据)的下一轮训练
在这里插入图片描述
至于定位目标损失等可以自己看看论文

3.3. MI-AOD——《Multiple Instance Active Learning for Object Detection》

  • 标题:用于目标检测的多实例主动学习
  • 论文:https://arxiv.org/pdf/2104.02324.pdf
  • 代码:https://github.com/yuantn/MI-AOD
  • 详细解读:知乎:MI-AOD: 少量样本实现高检测性能

     出发点:尽管主动学习在图像识别方面取得了长足的进步,但仍然缺乏一种专门适用于目标检测的示例级的主动学习方法。

     核心操作:本文提出了多示例主动目标检测(MI-AOD),通过观察示例级的不确定性来选择信息量最大的图像用于检测器的训练。MI-AOD定义了示例不确定性学习模块,该模块利用在已标注集上训练的两个对抗性示例分类器的差异来预测未标注集的示例不确定性。MI-AOD将未标注的图像视为示例包,并将图像中的特征锚视为示例,并通过以多示例学习(MIL)方式对示例重加权的方法来估计图像的不确定性。反复进行示例不确定性的学习和重加权有助于抑制噪声高的示例,来缩小示例不确定性和图像级不确定性之间的差距。实验证明,MI-AOD为示例级的主动学习设置了坚实的基线。在常用的目标检测数据集上,MI-AOD和最新方法相比具有明显的优势,尤其是在已标注集很小的情况下。
在这里插入图片描述


http://chatgpt.dhexx.cn/article/Dt7GU6li.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是否启动——…