百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

用于模型和数据选择的双重主动学习

ccwgpt 2024-11-06 09:46 26 浏览 0 评论

引用

Tang Y P, Huang S J. Dual Active Learning for Both Model and Data Selection[J].

摘要

为了用较少的训练样本学习一个有效的模型,现有的主动学习方法通常假设有一个给定的目标模型,并尝试通过选择信息量最大的样本来拟合它。然而,在先验中确定最佳目标模型的可能性较小,因此即使数据被完美选择,也可能获得次优性能。为了应对这一实际挑战,本文提出了一种新颖的双重主动学习 (DUAL) 框架来同时执行模型搜索和数据选择。具体而言,针对组合算法选择和超参数优化 (CASH),提出了一种具有截断重要性采样的有效方法,该方法可以减轻对标记数据的模型评估偏差。此外,我们提出了一种主动查询策略来标记最有价值的样本。该策略一方面偏向于判别数据以帮助 CASH 搜索最佳模型,另一方面偏向于信息丰富的样本以加速获胜模型的收敛。在 12 个 openML 数据集上进行的大量实验的结果表明,所提出的方法可以有效地学习具有较少标记样本的优良模型。

1. 介绍

在许多实际应用中,为模型训练标记大量样本的成本很高。主动学习 (AL) 是降低标签成本的常用方法。它通常需要一个目标模型来评估未标记的数据,并尝试选择信息量最大的实例来从 oracle 中查询它们的标签。

AL 文献中的一个常见假设是目标模型是先验的。然而,由于缺乏对任务的了解,在实践中很难在查询前确定最佳模型。主动学习的一个简单的解决方案是简单地应用一个常用的数据选择模型。

不幸的是,这种简单的方法将显着危害 AL 的性能。据报道,如果将不同的模型应用于数据评估和任务学习,AL 往往是无效的。

一种可能的补救措施是将模型搜索引入主动学习以发现适用的目标模型。然而,现有的大多数工作只是简单地分别进行数据查询和模型选择,忽略了这两部分中的任何一个的脆弱性。具体来说, i) 标记数据的分布随主动查询而倾斜,对训练集的模型评估可能存在很大偏差。 ii) 由于模型搜索,目标模型在 AL 过程中发生变化。在当前迭代中使用获胜模型进行贪婪采样可能是短视的。 iii) 模型搜索通常很耗时。在每次查询后进行模型选择是不切实际的,会严重影响标注效率。尽管 Ali 等人尝试通过随机抽样保持无偏验证集来避免第一个问题,但这种简单的策略可能会导致额外的标记成本。因此,当目标模型先验不可用时,以最低成本达到最佳性能仍然是一个具有挑战性的问题。

在本文中,我们提出了一种新颖的双重主动学习 (DUAL) 框架来应对实际挑战,同时执行模型搜索和数据选择。它很好地解决了上面提出的所有问题,并深度利用主动查询和组合算法选择和超参数优化(CASH)的特性以提高最终性能。具体来说,我们提出了一种有效 CAS 方法,在数据查询过程中搜索模型配置。它配备了截断重要性采样和连续功能,以更好地适应框架。前者改善了偏斜标记集上的评估偏差,后者显着降低了算法的计算复杂度。基于 CASH 的结果,提出了一种有效的主动数据查询策略。它一方面试图通过选择最具辨别力的示例来帮助 CASH 识别具有高潜力的模型以实现最佳性能,另一方面查询信息丰富的实例以加速 CASH 获胜模型的收敛。因此,通过一些查询,给定任务的性能将得到显着提高。在 12 个 openML 数据集上的实验结果证明了该框架的优越性。

2.相关工作

主动学习在许多标记成本昂贵的任务中得到了广泛的研究,例如多标签学习、多模态学习、深度学习等。提出了许多标准来评估未标记数据的信息量。主要有两类方法,即基于不确定性的方法和基于代表性的方法。与目标模型相比,前者更喜欢不确定数据,而后者更喜欢能够代表数据集中大多数模式的示例。也有报道称,多个标准的混合通常可以获得更好的性能。最近,提出了几项工作来学习查询策略而不是启发式设计。这些工作大多需要目标模型先验,这在实践中很难满足。 CASH 和神经架构搜索 (NAS) 是自动机器学习中的热门话题。前者主要关注传统模型,而后者考虑深度模型,这通常会导致模型评估的成本高得多。在本文中,我们主要考虑 CASH 设置。 CASH 方法大致可以分为黑盒优化方法和多保真优化方法。前者主要通过贝叶斯优化实现,后者尝试将时间资源动态分配给不同的配置,通常通过 bandit 算法实现。所有这些方法都需要无偏见的评估,这些信息可能无法在主动学习框架中直接获得。

最近,有几项工作尝试将主动学习和模型选择结合起来以获得更好的性能。 但是,它们与我们的工作有很大不同。 具体来说,ALMS 会查询模型训练或模型选择的点。如果用于模型训练的所有未标记数据的最大得分高于模型选择,则会根据候选模型的改进期望选择一个点,并添加到训练集中。否则,随机选择的点将被添加到模型选择的验证集中。但是,该算法会执行留二法交叉验证来计算预期的模型改进。 当候选模型和未标记数据的数量很大时,它可能会非常昂贵,这限制了它的实用性。此外,该方法通过随机抽样为模型选择维护了一个无偏的验证集。它可能会降低标签成本的利用率。

Geifman 和 El-Yaniv 建议使用 Active-iNAS 来搜索合适的网络架构以及 AL 过程。 它与 DUAL 的不同之处在于以下几个方面。 首先,作者应用现成的数据选择方法基于 NAS 搜索的获胜者架构查询数据。 查询策略不考虑模型选择。 而在我们的方法中,数据查询和 CASH 相互支持。 其次,作者认为模型容量应该随着标记数据的大小而单调增加。 他们忽略了数据集的特征。 而在我们的方法中,搜索空间将针对不同的任务进行相应的调整。 最后,当我们考虑 CASH 问题时,他们专注于 NAS。

3.提出的框架

用D来代表有n个实例的数据集,它包括了一小部分有n_l个实例的有标签的数据集L = {x_i,y_i}i=1^n_l,以及一大部分有n_u个实例的未标签的数据集U = {x_i}i=n_l+1^n_l+n_u,其中n_l << n_u且n = n_l+nu。令A={A^1,…,A^K}为候选算法集。A^j相应的超参空间是 Λ^j。A_λ^j是有着超参λ的一个特定的算法,其中A_j∈A,λ属于 Λ^j。CASH 的目标是基于质量度量 V (·) 寻找最佳配置,可以表示为:

3.1模型选择

CASH 模块响应发现当前任务的最佳模型配置。由于主动查询,标记数据的分布与测试分布不相同,而模型评估通常需要对性能进行无偏估计才能准确选择。 出于这个原因,直接对标记集进行交叉验证可能不是最理想的。

为了解决这个问题,我们采用重要性抽样来减轻评估的偏差,重要性加权验证误差是对泛化误差的无偏估计。

其中p_q和p_d分别是查询数据和整个数据集的分布,l(A_λ^j,x_i)是受训模型A_λ^j在样本x_i上的损失。

为了获得验证数据的重要性权重,我们训练了一个域区分器来区分从标记集和数据池中采样的数据。区分器的目标是

将偏导数设置为零,最优D? 可以用p_q和p_d表示。这样,验证数据的重要性权重 w 可以用 D? 近似

但是,有时鉴别器 D 可能会输出一个非常小的值。过分强调一个具体的样本会导致非常大的重要性权重,并可能误导模型选择。在这里,我们进一步应用截断的重要性采样来缓解这个实际问题。设 w’= w∧τ 是截断的重要性权重,其中 ∧ 是 w 和 τ 的最小值,τ 是超参。接下来,通过应用 [Ionides, 2008] 的结果,我们表明截断重要权重的验证误差与泛化误差一致。

令 V (A^j_λ,L) 为验证集上截断重要性加权性能,这是对泛化性能的一致估计。在这种情况下,可以应用现成的 CASH 方法进行模型搜索。然而,由于计算复杂性,在每次查询之后简单地执行 CASH 是不可接受的。为此,我们进一步提出了一种连续 SMAC 方法以更好地适应问题设置。它基于 SMAC 方法,采用消除函数来过滤效率较低的候选算法以及查询过程以提高效率。

3.2数据选择

为了最大化目标任务的性能,我们认为主动查询策略一方面应该帮助 CASH 及时发现当前任务的高潜力算法,另一方面尝试改进获胜者模型以加速其收敛。 我们将这两个特征分别称为“探索”和“利用”。 通过很好地平衡这两个方面,我们预计候选算法的大小应该在早期迅速减小。确定最佳算法后,数据选择往往更侧重于改进获胜者模型。

我们尝试查询样本以在模型搜索中帮助 CASH。在详细说明选择标准之前,我们首先介绍一个引理来解释我们的动机。请记住,我们在每次查询后搜索每个候选算法的最佳配置,我们希望通过最少的迭代次数找到最佳的算法。 如果我们将性能rjtTt=1 作为奖励,它符合非随机多臂老虎机问题,其中每个算法都是一个臂,每个臂将在每次迭代中被拉一次,收到的奖励为非随机。目标是通过最少的尝试找出最好臂。

形式上,定义 ejt = max{rjb|b = 1,... , t}, 可以有ejt是有界且非递减的。 假设 limk→∞ ejk = νj , 和 | limk→∞ ejk-ejt | ≤γj(t), limt→∞ γj (t) = 0. 我们引入以下引理 推导出我们的数据查询策略。

引理表明,当满足假设时,可以保证 e1t1 > ejtj 与 ν1≥νj。相反,如果我们不知道哪个 ν 更大,则比较 e1t1 和 ejtj 足以证明,可以用反证法。 而且,算法之间的差距 ν1 ? νj 越大,我们就能越早分辨出更好的一个。由于训练样本的分布是受数据查询策略控制的,选择那些导致候选算法差异明显的实例是合理的。 因此,我们根据候选 AG 配置之间的不一致性来查询数据,以便使优劣算法尽可能快地区分开。实施推迟到等式。 (9).

我们直接使用由 CASH 返回的获胜模型,并通过不确定性查询以加速其 收敛。形式上,假设在迭代 t 中有 g 个候选算法,且 r1t > · · · > rgt,对于数据 x,我们有以下选择标准 S(x)

我们总结了 DUAL 框架在算法 1 中。

4.实验

4.1实验设置

我们将 DUAL 和 Corest、QUIRE、Entropy、Random、CASH、ALMS 和 Active-iNAS 进行了对比,在 12 个多分类数据集上展开实验,基本信息见表 1。我们随机将 40%数据用作测试集,5%的数据为初始标签集,剩余作为无标签池。

对于 CASH 中的候选算法,我们应用了 12 个常用的模型,模型搜索采用的是 auto-sklearn。ALMS 只能在离散候选模型集上工作。Active-iNAS 需要提前得到候选算法的完全序列。

对于我们方法中的超参数,我们设置截断阈值 τ =m1/2,其中 m 是验证数据的数量。对于 β,我们认为早期任务是探索适合的算法,获胜模型的改进可以稍后进行。为了达到这一目的,根据经验,将 β 设为 1/g,因为候选算法的数量 g 会随着查询过程而减少。

4.2性能比较

我们在图 1 中绘制了平均学习曲线。可以看出,我们提出的 DUAL 方法在大多数情况下可以显着优于其他方法,这证明了其有效性。具有随机查询的 CASH 方法通常可以达到第二最佳。这种现象表明,有效的目标模型可能比查询策略带来更多的好处,这隐式地揭示了所提出框架的实用性,因为目标模型很难在实际任务中被理解为先验模型。ALMS 表现不佳,其计算复杂性极大地限制了候选模型的大小。由于这种缺陷,最佳目标模型很难落入候选集。Active-iNAS 最初从搜索最简单的模型开始,因此它与其他方法具有不同的初始点,它在某些数据集上运行良好,但在其他数据集上失败。此方法在很大程度上依赖于不断增加的模型复杂性的直觉,这可能不适合每个数据集。具有固定模型的其余查询策略在数据集中执行不同的操作。它可能是由不同的目标模型引起的,这些模型是根据有限的初始标记数据进行搜索的。这个结果还表明在主动学习中同时考虑模型和数据选择的重要性。

4.3消融研究

为了进一步验证 DUAL 中每种成分的有效性,我们进行了研究。由于空间限制,我们在 12 个 openML 数据集上报告候选算法的准确性和数值的平均值以及查询过程,而不是绘制它们。"w/o active"表示消除主动查询部分,而"succe."表示在模型搜索中的连续函数,结果见表 2。

我们可以观察到,DUAL 在有效性和效率上都明显优于没有主动采样的方法,这表明了数据评估策略在勘探和开发方面的优势。此外,我们发现两种消融方法具有可比的性能,但具有连续函数的方法比另一种快得多。这些结果表明,数据查询策略一方面对模型搜索和精度改进都有帮助,另一方面验证了连续函数的效率。

5结论

在本文中,我们提出了一种新颖的双主动学习框架 DUAL,通过同时执行模型和数据选择来解决缺乏目标模型的先验问题。一方面,我们提出了一种有效的 CASH 方法,该方法具有截断的重要性抽样,以基于倾斜的标记集搜索最佳模型配置。另一方面,我们提出了一种数据查询策略,通过主动抽样自适应地帮助 CASH 进行模型搜索或改进获胜模型。两个部分都得到了彼此的良好支撑,以提高最终精度。在 12 个 openML 数据集上的实验结果验证了所提出框架的有效性和实用性。

致谢

本文由南京大学软件学院 2021 级硕士于亚东翻译转述,刘子夕审核.

相关推荐

定时任务工具,《此刻我要...》软件体验

之前果核给大家介绍过一款小众但实用的软件——小说规则下载器,可以把网页里的小说章节按照规则下载到本地,非常适合喜欢阅读小说的朋友。有意思的是,软件作者当时看到果核写的体验内容后,给反推荐到他的帖子里去...

前端定时任务的神库:Node-cron,让你的项目更高效!

在前端开发中,定时任务是一个常见的需求。无论是定时刷新数据、轮询接口,还是发送提醒,都需要一个可靠且灵活的定时任务解决方案。今天,我要向大家介绍一个强大的工具——Node-cron,它不仅能解决定时任...

Shutter Pro!一款多功能定时执行任务工具

这是一款可以在电脑上定时执行多种任务的小工具,使用它可以根据时间,电量等来设定一些定时任务,像定时打开程序、打开文件,定时关机重启,以及定时弹窗提醒等都可以轻松做到。这是个即开即用的小工具,无需安装,...

深度解析 Redis 缓存击穿及解决方案

在当今互联网大厂的后端开发体系中,Redis缓存占据着极为关键的地位。其凭借高性能、丰富的数据类型以及原子性操作等显著优势,助力众多高并发系统从容应对海量用户的访问冲击,已然成为后端开发从业者不可或...

从零搭建体育比分网站完整步骤(比较好的体育比分软件)

搭建一个体育比分网站是一个涉及前端、后端、数据源、部署和维护的完整项目。以下是从零开始搭建的详细流程:一、明确项目需求1.功能需求:实时比分展示(如足球、篮球、网球等)支持多个联赛和赛事历史数据查询比...

告别复杂命令行:GoCron 图形界面让定时任务触手可及

如果你是运维人员或者经常接触一些定时任务的配置,那么你一定希望有一款图形界面来帮助你方便的轻松配置定时任务,而GoCron就是这样一款软件,让你的配置可视化。什么是GoCron从名字你就可以大概猜到,...

Java任务管理框架核心技术解析与分布式高并发实战指南

在当今数字化时代,Java任务管理框架在众多应用场景中发挥着关键作用。随着业务规模的不断扩大,面对分布式高并发的复杂环境,掌握其核心技术并进行实战显得尤为重要。Java任务管理框架的核心技术涵盖多个方...

链表和结构体实现:MCU软件定时器(链表在单片机中的应用)

在一般的嵌入式产品设计中,介于成本、功耗等,所选型的MCU基本都是资源受限的,而里面的定时器的数量更是有限。在我们软件设计中往往有多种定时需求,例如脉冲输出、按键检测、LCD切屏延时等等,我们不可能...

SpringBoot定时任务(springboot定时任务每小时执行一次)

前言在我们开发中,经常碰到在某个时间点去执行某些操作,而我们不能人为的干预执行,这个时候就需要我们使用定时任务去完成该任务,下面我们来介绍下载springBoot中定时任务实现的方式。定时任务实现方式...

定时任务新玩法!systemd timer 完整实战详解

原文链接:「链接」Hello,大家好啊!今天给大家带来一篇使用systemdtimer实现定时任务调度的详细实战文章。相比传统的crontab,systemdtimer更加现代化、结构清晰...

Celery与Django:打造高效DevOps的定时任务与异步处理神器

本文详细介绍了Celery这一强大的异步任务队列系统,以及如何在Django框架中应用它来实现定时任务和异步处理,从而提高运维开发(DevOps)的效率和应用性能。下面我们先认识一下Cele...

订单超时自动取消的7种方案,我用这种!

前言在电商、外卖、票务等系统中,订单超时未支付自动取消是一个常见的需求。这个功能乍一看很简单,甚至很多初学者会觉得:"不就是加个定时器么?"但真到了实际工作中,细节的复杂程度往往会超...

裸机下多任务框架设计与实现(gd32裸机配置lwip 网络ping不通)

在嵌入式系统中,特别是在没有操作系统支持的裸机环境下,实现多任务执行是一个常见的挑战。本文将详细介绍一种基于定时器的多任务框架设计,通过全局时钟和状态机机制,实现任务的非阻塞调度,确保任务执行中不会出...

亿级高性能通知系统构建,小白也能拿来即用

作者介绍赵培龙,采货侠JAVA开发工程师分享概要一、服务划分二、系统设计1、首次消息发送2、重试消息发送三、稳定性的保障1、流量突增2、问题服务的资源隔离3、第三方服务的保护4、中间件的容错5、完善...

运维实战:深度拆解Systemd定时任务原理,90%的人不知道的玩法

运维实战:深度拆解Systemd定时任务原理,90%的人不知道的高效玩法一、Systemd定时任务的核心原理Systemd定时任务是Linux系统中替代传统cron的现代化解决方案,通过...

取消回复欢迎 发表评论: