深度学习--主动学习

news/2024/7/7 21:25:42

主动学习简介

  1. 主动学习是指对需要标记的数据进行优先排序的过程,这样可以确定哪些数据对训练监督模型产生最大的影响。
  2. 主动学习是一种学习算法可以交互式查询用户(teacher 或 oracle),用真实标签标注新数据点的策略。主动学习的过程也被称为优化实验设计。
  3. 主动学习的动机在于认识到并非所有标有标签的样本都同等重要

active learning的基本思想

主动学习的模型如下:

A=(C,Q,S,L,U),

其中 C 为一组或者一个分类器,L是用于训练已标注的样本。Q 是查询函数,用于从未标注样本池U中查询信息量大的信息,S是督导者,可以为U中样本标注正确的标签。学习者通过少量初始标记样本L开始学习,通过一定的查询函数Q选择出一个或一批最有用的样本,并向督导者询问标签,然后利用获得的新知识来训练分类器和进行下一轮查询。

在这里插入图片描述

在各种主动学习方法中,查询函数的设计最常用的策略是:不确定性准则(uncertainty)和差异性准则(diversity)。 不确定性越大代表信息熵越大,包含的信息越丰富;而差异性越大代表选择的样本能够更全面地代表整个数据集。

对于不确定性,我们可以借助信息熵的概念来进行理解。我们知道信息熵是衡量信息量的概念,也是衡量不确定性的概念。信息熵越大,就代表不确定性越大,包含的信息量也就越丰富。事实上,有些基于不确定性的主动学习查询函数就是使用了信息熵来设计的,比如熵值装袋查询(Entropy query-by-bagging)。所以,不确定性策略就是要想方设法地找出不确定性高的样本,因为这些样本所包含的丰富信息量,对我们训练模型来说就是有用的。

那么差异性怎么来理解呢?之前说到或查询函数每次迭代中查询一个或者一批样本。我们当然希望所查询的样本提供的信息是全面的,各个样本提供的信息不重复不冗余,即样本之间具有一定的差异性。在每轮迭代抽取单个信息量最大的样本加入训练集的情况下,每一轮迭代中模型都被重新训练,以新获得的知识去参与对样本不确定性的评估可以有效地避免数据冗余。但是如果每次迭代查询一批样本,那么就应该想办法来保证样本的差异性,避免数据冗余。

主动学习基础策略

常见主动学习策略

基于数据流的主动学习方法

基于流(stream-based)的主动学习中,未标记的样例按先后顺序逐个提交给选择引擎,由选择引擎决定是否标注当前提交的样例,如果不标注,则将其丢弃。

在基于流的主动学习中,所有训练样本的集合以流的形式呈现给算法。每个样本都被单独发送给算法。算法必须立即决定是否标记这个示例。从这个池中选择的训练样本由oracle(人工的行业专家)标记,在显示下一个样本之前,该标记立即由算法接收。

由于基于流的算法不能对未标注样例逐一比较,需要对样例的相应评价指标设定阈值,当提交给选择引擎的样例评价指标超过阈值,则进行标注,但这种方法需要针对不同的任务进行调整,所以难以作为一种成熟的方法投入使用。

基于数据池的主动学习方法

基于池(pool-based)的主动学习中则维护一个未标注样例的集合,由选择引擎在该集合中选择当前要标注的样例。

在基于池的抽样中,训练样本从一个大的未标记数据池中选择。从这个池中选择的训练样本由oracle标记。

基于查询的主动学习方法

这种基于委员会查询的方法使用多个模型而不是一个模型。

委员会查询(Query by Committee),它维护一个模型集合(集合被称为委员会),通过查询(投票)选择最“有争议”的数据点作为下一个需要标记的数据点。通过这种委员会可的模式以克服一个单一模型所能表达的限制性假设(并且在任务开始时我们也不知道应该使用什么假设)。

有两个假设前提:

  1. 所有模型在已标注数据上结果一致
  2. 所有模型对于未标注结果样本集存在部分分歧

不确定性度量

识别接下来需要标记的最有价值的样本的过程被称为“抽样策略”或“查询策略”。在该过程中的评分函数称为“acquisition function”。该分数的含义是:得分越高的数据点被标记后,对模型训练后的产生价值就越高。有很多中不同的采样策略,例如不确定性抽样,多样性采样等,在本节中,我们将仅关注最常用策略的不确定性度量。

不确定性抽样是一组技术,可以用于识别当前机器学习模型中的决策边界附近的未标记样本。这里信息最丰富的例子是分类器最不确定的例子。模型最不确定性的样本可能是在分类边界附近的数据。而我们模型学习的算法将通过观察这些分类最困难的样本来获得有关类边界的更多的信息。

参考

https://aistudio.baidu.com/aistudio/projectdetail/4897371

https://juejin.cn/post/7174224224733626375

rojectdetail/4897371

https://juejin.cn/post/7174224224733626375


http://lihuaxi.xjx100.cn/news/1137629.html

相关文章

语音与语言处理技术交流会(深圳)

嘉宾介绍 嘉宾介绍:罗艺,2021年在美国哥伦比亚大学获得博士学位后加入腾讯AI Lab Shenzhen任高级研究员,研究方向主要为音频前端处理,包括但不限于音频分离、单/多通道语音增强等。 报告题目:腾讯AI Lab音频与语音前端…

【起飞】让你电脑速度快到飞起的一些牛逼的设置整理【电脑卡顿反应慢等问题解决】

对于开发来说电脑的反应速度简直影响了思维的速度,要让电脑速度跟上我们的思维,提高工作效率,早点打卡下班回家陪老婆孩子哈哈 这篇文章主要对windows系统做的一些优化,是真的好用,仿佛在访问静态页面一样,…

Java进阶-常用的API

1 Math类 1.1 概述 tips:了解内容 查看API文档,我们可以看到API文档中关于Math类的定义如下: Math类所在包为java.lang包,因此在使用的时候不需要进行导包。并且Math类被final修饰了,因此该类是不能被继承的。 Math类…

指针穿梭,数据流转:探秘C语言实现单向不带头不循环链表

本篇博客会讲解链表的最简单的一种结构:单向不带头不循环链表,并使用C语言实现。 概述 链表是一种线性的数据结构,而本篇博客讲解的是链表中最简单的一种结构,它的一个结点的声明如下: // 单链表存储的数据类型 typ…

08-Docker安装常用软件

文章目录 Docker 安装 MysqlMysql 单机Mysql 5.7安装 Mysql 主从复制安装---------------------------------------------------Docker安装Redis单机版安装实际应用版Redis 集群存储算法分布式存储算法哈希取余算法一致性哈希算法哈希槽分区Redis集群存储策略 3主3从Redis集群搭…

【JavaScript数据结构与算法】字符串类(计算二进制子串)

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,也会涉及到服务端(Node.js) 📃个人状态: 在校大学生一枚,已拿多个前端 offer(…

【Linux】- 04 Linux其他重要操作命令,以及Linux环境下安装软件与项目部署

Linux安装软件与项目部署 1 Linux的其他操作命令【重点】1.1 进程的操作1.2 服务的操作1.3 端口号查看1.4 查找文件1.5 软件管理相关的指令1.5.1 wget指令(在线下载)1.5.2 rpm指令 (本地安装)1.5.3 yum指令(在线安装&a…

阿里云ICP备案服务码在哪里申请查看?教程来了

阿里云备案服务码是什么?ICP备案服务码怎么获取?阿里云备案服务码分为免费和付费两种,申请备案服务码是有限制条件的,需要你的阿里云账号下有可用于申请备案服务码的云产品,如云服务器、建站产品、虚拟主机等&#xff…