当前位置: 首页 > news >正文

FlexMatch: Boosting Semi-Supervised Learning with Curriculum Pseudo Labeling

FlexMatch: Boosting Semi-Supervised Learning with Curriculum Pseudo Labeling

    • 摘要:
    • 引言:
    • 背景
    • 3 flexMatch
      • 3.1 Curriculum Pseudo Labeling
      • 3.2 阈值预热
      • 3.3非线性映射函数
    • 实验
      • 4.1 主要结果
      • 4.2 ImageNet上的结果
      • 4.3收敛速度加速
      • 4.4 消融研究
    • 5 相关工作

摘要:

最近提出的FixMatch在大多数半监督学习(SSL)基准上取得了最先进的结果。然而,像其他现代SSL算法一样,FixMatch为所有类别使用预定义的恒定阈值来选择有助于训练的未标记数据,忽略了不同类别的学习状态和难度差异。为了解决这个问题,我们提出了课程伪标签(Curriculum Pseudo Labeling, CPL),这是一种基于课程学习的方法,根据模型的学习状态利用未标记数据。CPL的核心是动态调整不同类别的阈值,使得有价值的未标记数据及其伪标签得以通过。CPL不引入额外的参数或计算(前向或反向传播)。我们将CPL应用于FixMatch,称为FlexMatch。FlexMatch在多个SSL基准上表现出色,尤其是在标注数据极其有限或任务困难时表现突出。例如,FlexMatch在CIFAR-100和STL-10数据集上分别实现了比FixMatch高13.96%和18.96%的错误率降低,当每类仅有4个标签时。CPL还显著提高了收敛速度,例如,FlexMatch只需FixMatch 1/5的训练时间即可获得更好的性能。此外,我们还展示了CPL可以轻松适配其他SSL算法并显著提高其性能。我们的代码已开源,地址为:https://github.com/TorchSSL/TorchSSL。

引言:

半监督学习(SSL)由于其在利用大量未标记数据上的优势,近年来引起了越来越多的关注。特别是在标记数据数量有限或获取过程繁琐的情况下,这种方法具有很大优势。一致性正则化[1–3]和伪标签[4–8]是两种利用未标记数据的强大技术,已广泛应用于现代SSL算法中[9–13]。最近提出的FixMatch[14]通过结合弱增强和强增强技术以及使用交叉熵损失作为一致性正则化标准,取得了具有竞争力的结果。

然而,FixMatch以及其他流行的SSL算法如伪标签法[4]和无监督数据增强(UDA)[11]的一个缺点是,它们依赖于固定的阈值来计算无监督损失,仅使用预测置信度高于阈值的未标记数据。虽然这一策略可以确保只有高质量的未标记数据用于模型训练,但它忽略了大量其他未标记数据,特别是在训练过程的早期阶段,此时只有少量未标记数据的预测置信度高于阈值。此外,现代SSL算法对所有类别一视同仁,未考虑到不同类别的学习难度差异。

为了解决这些问题,我们提出了课程伪标签(Curriculum Pseudo Labeling,CPL),一种课程学习策略[15],以考虑每个类别的学习状态用于半监督学习。CPL使用动态调整的灵活阈值替代预定义的固定阈值,这些阈值会根据当前的学习状态为每个类别动态调整。值得注意的是,这一过程不会引入任何额外的参数(超参数或可训练参数)或额外的计算(前向传播或反向传播)。我们将这种课程学习策略直接应用于FixMatch,并将改进后的算法称为FlexMatch。

尽管训练速度与FixMatch同样高效,FlexMatch的收敛速度显著更快,并在大多数SSL图像分类基准测试中实现了最先进的性能。引入CPL的好处在标签稀缺或任务具有挑战性时尤为显著。例如,在STL-10数据集上,当标签数量分别为400、2500和10000时,FlexMatch相对于FixMatch的性能分别提升了18.96%、16.11%和7.68%。此外,CPL通过加快收敛速度进一步显示了其优越性——使用CPL,FlexMatch仅需FixMatch不到1/5的训练时间即可达到最终准确度。将CPL应用于其他现代SSL算法,同样带来了准确性和收敛速度的提升。

总结来说,本文作出了以下三点贡献:

  • 我们提出了课程伪标签(CPL),这是一种课程学习方法,能够动态利用未标记数据用于半监督学习。CPL几乎无需额外成本,且能够轻松集成到其他SSL方法中。
  • CPL显著提升了多个常见基准测试上流行SSL算法的准确性和收敛性能。具体而言,FixMatch与CPL结合后的FlexMatch算法达到了最先进的结果。
  • 我们开源了TorchSSL,一个基于PyTorch的统一半监督学习代码库,用于公平研究SSL算法。TorchSSL包含了流行SSL算法的实现及其相应的训练策略,易于使用或定制。

背景

一致性正则化遵循半监督学习(SSL)的连续性假设[1, 2]。在SSL中,最基本的一致性损失,如在Π模型[9]、Mean Teacher[10]和MixMatch[12]中使用的,是𝓵-2损失:
在这里插入图片描述
其中B是标记数据的批量大小,µ是未标记数据与标记数据的比例,ω是一个随机数据增强函数(因此公式(1)中的两个项是不同的),ub表示一条未标记数据,pm表示模型的输出概率。随着伪标签技术的引入[5, 7],一致性正则化被转换为一个熵最小化过程[16],这更适合分类任务。改进的一致性损失与伪标签结合可以表示为:
在这里插入图片描述
其中H是交叉熵,τ是预定义的阈值,ˆpm(y|ω(ub))是伪标签,可以是“硬”的一热标签[4, 14]或经过增强的“软”标签[11]。使用阈值的目的是为了屏蔽那些预测置信度低的噪声未标记数据。

FixMatch利用这种一致性正则化与强增强相结合,以实现竞争性能。对于未标记数据,FixMatch首先使用弱增强生成人工标签。这些标签随后被用作强增强数据的目标。因此,FixMatch中的无监督损失项呈现如下形式:
在这里插入图片描述
其中Ω是强增广函数而不是弱增广函数。

在上述工作中,预定义的

相关文章:

FlexMatch: Boosting Semi-Supervised Learning with Curriculum Pseudo Labeling

FlexMatch: Boosting Semi-Supervised Learning with Curriculum Pseudo Labeling 摘要:引言:背景3 flexMatch3.1 Curriculum Pseudo Labeling3.2 阈值预热3.3非线性映射函数实验4.1 主要结果4.2 ImageNet上的结果4.3收敛速度加速4.4 消融研究5 相关工作摘要: 最近提出的Fi…...

Spring Cloud 3.x 集成eureka快速入门Demo

1.什么是eureka? Eureka 由 Netflix 开发,是一种基于REST(Representational State Transfer)的服务,用于定位服务(服务注册与发现),以实现中间层服务的负载均衡和故障转移&#xff…...

线性代数 矩阵

一、矩阵基础 1、定义 一组数按照矩形排列而成的数表;形似行列式,区别点是 矩阵行列式符号()或[]| |形状方阵或非方阵方阵本质数表数属性A|A|是A诸多属性中的一种维度m *n (m 与n可以相等也可以不相等)n*n 同型矩阵 若A、B两个矩阵都是mn 矩阵&#x…...

【C语言】使用结构体实现位段

文章目录 一、什么是位段二、位段的内存分配1.位段内存分配规则练习1练习2 三、位段的跨平台问题四、位段的应用五、位段使用的注意事项 一、什么是位段 在上一节中我们讲解了结构体,而位段的声明和结构是类似的,它们有两个不同之处,如下&…...

univer实现excel协同

快速入门 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><script src&q…...

JavaScript进阶笔记--深入对象-内置构造函数及案例

深入对象 创建对象三种方式 利用对象字面量new Object&#xff08;{…}&#xff09;利用构造函数 // 1. 字面量创建对象const obj1 {name: pig,age: 18};console.log(obj1); // {name: "pig", age: 18}// 2. 构造函数创建对象function Pig(name, age) {this.name…...

网络爬虫自动化Selenium模拟用户操作

自动化测试和网络爬虫在现代软件开发中占据着重要的位置。它们通过自动化用户操作,减少了人工重复操作的时间成本。Selenium作为一个功能强大且应用广泛的自动化工具,不仅能在不同的浏览器中运行自动化测试,还能进行跨平台测试,并允许与多种编程语言集成。本教程将介绍如何…...

尚硅谷rabbitmq 2024 流式队列2024指定偏移量 第55节答疑

rabbitmq的stream&#xff1a; 4、对比 autoTrackingstrategy方式:始终监听Stream中的新消息(狗狗看家&#xff0c;忠于职守)指定偏移量方式:针对指定偏移量的消息消费之后就停止(狗狗叼飞盘&#xff0c;回来就完) 这两种分别怎么写&#xff1f;java 在 RabbitMQ 中&#xff0c…...

NSSCTF-WEB-pklovecloud

目录 前言 正文 思路 尝试 结尾 前言 许久未见,甚是想念. 今天来解一道有意思的序列化题 正文 思路 <?php include flag.php; class pkshow {function echo_name(){return "Pk very safe^.^";} }class acp {protected $cinder;public $neutron;public $…...

深入Postman- 自动化篇

前言 在前两篇博文《Postman使用 - 基础篇》《玩转Postman:进阶篇》中,我们介绍了 Postman 作为一款专业接口测试工具在接口测试中的主要用法以及它强大的变量、脚本功能,给测试工作人员完成接口的手工测试带来了极大的便利。其实在自动化测试上,Postman 也能进行良好的支…...

react-JSX

JSX理念 jsx在编译的时候会被babel编译为react.createELement方法 在使用jsx的文件中&#xff0c;需要引入react。import React from "react" jsx会被编译为React.createElement,所有jsx的运行结果都是react element React Component 在react中&#xff0c;常使用…...

深度对比:IPguard与Ping32在企业网络管理中的应用

随着网络安全形势日益严峻&#xff0c;企业在选择网络管理工具时需慎之又慎。IPguard与Ping32是目前市场上两款颇具代表性的产品&#xff0c;它们在功能、性能以及应用场景上各有优势。本文将对这两款产品进行深度对比&#xff0c;以帮助企业找到最合适的解决方案。 IPguard以其…...

AI测试之 TestGPT

如今最火热的技术莫非OpenAI的ChatGPT莫属&#xff0c;AI技术也在很多方面得到广泛应用。今天我们要介绍的TestGPT就是一个软件测试领域中当红的应用。 TestGPT是什么&#xff1f; TestGPT是一家总部位于以色列特拉维夫的初创公司 CodiumAI Ltd.&#xff0c;发布的一款用于测…...

JavaEE-进程与线程

1.进程 1.1什么是进程 每个应⽤程序运⾏于现代操作系统之上时&#xff0c;操作系统会提供⼀种抽象&#xff0c;好像系统上只有这个程序在运 ⾏&#xff0c;所有的硬件资源都被这个程序在使⽤。这种假象是通过抽象了⼀个进程的概念来完成的&#xff0c;进程可 以说是计算机科学…...

JAVA软开-面试经典问题(6)-equals与hashcode方法

1.equals方法 1.Object类中的equals方法比较的是两个对象的地址&#xff08;底层原理是 比较的&#xff0c;即比较的是对象的地址&#xff09; return (this obj);2.基本数据类型的包装类和String类都重写了equals方法。 基本数据类型&#xff1a;比较的是数值的是否相等 …...

计算机网络(以Linux讲解)

计算机网络 网络协议初识协议分层OSI七层模型TCP/IP五层模型--初识 网络中的地址管理IP地址MAC地址 网络传输基本流程网络编程套接字预备知识网络字节序socket编程UDP socketTCP socket地址转换函数Jsoncpp 进程间关系与守护进程进程组会话控制终端作业控制守护进程 网络命令TC…...

计算机网络基本架构知识点

1. 网络体系结构模型&#xff1a; - OSI 七层模型&#xff1a; - 物理层&#xff1a;是网络通信的基础层&#xff0c;负责在物理介质上传输比特流。该层定义了物理连接的标准&#xff0c;如电缆的类型、接口的形状、插头的规格等&#xff0c;以及信号的传输方式&#xff0c;包括…...

GES DISC 的 ATMOS L2 潜在温度网格上的痕量气体,固定场格式 V3 (ATMOSL2TF)

ATMOS L2 Trace Gases on Potential Temperature Grid, Fixed Field Format V3 (ATMOSL2TF) at GES DISC 简介 GES DISC 的 ATMOS L2 潜在温度网格上的痕量气体&#xff0c;固定场格式 V3 (ATMOSL2TF) 这是版本3的气溶胶痕量分子光谱&#xff08;ATMOS&#xff09;第二级产品…...

MLCC贴片电容不同材质区别:【及电容工作原理】

贴片电容的材质常规有&#xff1a;NPO&#xff08;COG&#xff09;&#xff0c;X7R&#xff0c;X5R&#xff0c;Y5V 等&#xff0c;主要区别是它们的填充介质不同。在相同的体积下由于填充介质不同所组成的电容器的容量就不同&#xff0c;随之带来的电容器的介质损耗、容量稳定…...

Word粘贴时出现“文件未找到:MathPage.WLL”的解决方案

解决方案 一、首先确定自己电脑的位数&#xff08;这里默认大家的电脑都是64位&#xff09;二、右击MathType桌面图标&#xff0c;点击“打开文件所在位置”&#xff0c;然后分别找到MathPage.WLL三、把这个文件复制到该目录下&#xff1a;C:\Program Files\Microsoft Office\r…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

leetcode73-矩阵置零

leetcode 73 思路 记录 0 元素的位置&#xff1a;遍历整个矩阵&#xff0c;找出所有值为 0 的元素&#xff0c;并将它们的坐标记录在数组zeroPosition中置零操作&#xff1a;遍历记录的所有 0 元素位置&#xff0c;将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...

EasyRTC音视频实时通话功能在WebRTC与智能硬件整合中的应用与优势

一、WebRTC与智能硬件整合趋势​ 随着物联网和实时通信需求的爆发式增长&#xff0c;WebRTC作为开源实时通信技术&#xff0c;为浏览器与移动应用提供免插件的音视频通信能力&#xff0c;在智能硬件领域的融合应用已成必然趋势。智能硬件不再局限于单一功能&#xff0c;对实时…...

手动给中文分词和 直接用神经网络RNN做有什么区别

手动分词和基于神经网络&#xff08;如 RNN&#xff09;的自动分词在原理、实现方式和效果上有显著差异&#xff0c;以下是核心对比&#xff1a; 1. 实现原理对比 对比维度手动分词&#xff08;规则 / 词典驱动&#xff09;神经网络 RNN 分词&#xff08;数据驱动&#xff09…...

第22节 Node.js JXcore 打包

Node.js是一个开放源代码、跨平台的、用于服务器端和网络应用的运行环境。 JXcore是一个支持多线程的 Node.js 发行版本&#xff0c;基本不需要对你现有的代码做任何改动就可以直接线程安全地以多线程运行。 本文主要介绍JXcore的打包功能。 JXcore 安装 下载JXcore安装包&a…...

中科院1区顶刊|IF14+:多组学MR联合单细胞时空分析,锁定心血管代谢疾病的免疫治疗新靶点

中科院1区顶刊|IF14&#xff1a;多组学MR联合单细胞时空分析&#xff0c;锁定心血管代谢疾病的免疫治疗新靶点 当下&#xff0c;免疫与代谢性疾病的关联研究已成为生命科学领域的前沿热点。随着研究的深入&#xff0c;我们愈发清晰地认识到免疫系统与代谢系统之间存在着极为复…...