FlexMatch: Boosting Semi-Supervised Learning with Curriculum Pseudo Labeling

news2024/11/23 13:51:00

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中的无监督损失项呈现如下形式:
在这里插入图片描述
其中Ω是强增广函数而不是弱增广函数。

在上述工作中,预定义的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2210229.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MaxKB 三大内置标签用法

一、<quick_question> <quick_question></quick_question> 作用&#xff1a;快速展示问题标签&#xff0c;只需将问题放入标签中&#xff0c;系统便会自动在对话结束时展示该问题。 1.1 展示效果 1.2 快捷使用 在流程编排当中&#xff0c;添加一个AI对话…

线性代数 矩阵

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

【Elasticsearch系列】Elasticsearch启动失败问题

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【JavaEE初阶】文件-IO之实现文件系统的操作如何进行实现

前言 &#x1f31f;&#x1f31f;本期讲解关于文件IO的操作&#xff0c;这里涉及到比较常用的文件操作哦~~~ &#x1f308;上期博客在这里&#xff1a;【JavaEE初阶】CAS的ABA问题&#xff0c;JUC多线程编程有用的相关类-CSDN博客 &#x1f308;感兴趣的小伙伴看一看小编主页&a…

什么是Qseven?模块电脑(核心板)规范标准简介二

1.概念 Qseven是一种通用的、小尺寸计算机模块标准&#xff0c;适用于需要低功耗、低成本和高性能的应用。 Qseven模块电脑&#xff08;核心板&#xff09;采用230Pin金手指连接器 2.Qseven的起源 Qseven最初是由Congatec、SECO、MSC三家欧洲公司于2008年发起&#xff0c;旨在…

【fisco学习记录2】多群组搭建

说明 文档参考&#xff1a; 多群组部署 — FISCO BCOS 2.0 v2.11.0 文档 (fisco-bcos-documentation.readthedocs.io) 多群组搭建之前&#xff0c;先暂停之前的单群组&#xff0c;并删除&#xff1a; cd fisco bash nodes/127.0.0.1/stop_all.sh rm -rf nodes/ 实现图&…

如何从数码相机中恢复已删除的照片

照片恢复是恢复已删除照片的最佳工具&#xff0c;带有恢复 RAW 照片的选项。在本文中&#xff0c;我们将解释如何检索已删除的照片。 不仅适用于专业摄影师&#xff0c;而且对于像我们这样喜欢捕捉回忆的人来说&#xff0c;Moments 相机是一种重要的数字设备。可悲的是&#x…

Gin项目的初始化步骤和常见错误记录

相信很多人对Go的环境安装和Gin项目的初始化都已经手拿把攥很是熟练了&#xff0c;本节介绍一个自己新建Go项目时非常好用的设置以及记录一下Gin项目的初始化过程和常能遇到的错误。 一个容易忽略的Go ENV 在安装了Go的电脑中&#xff0c;我们可以在命令行执行 go env 命令&…

泛谈阿里vs美团订单存储架构演进

泛谈阿里vs美团订单存储架构演进 1. 订单存储介绍 订单的存储背后支撑创单后的系列用户活动&#xff0c;围绕着业务的发展&#xff0c;大厂的订单的数据日益剧增 在手淘订单列表&#xff0c;我们可以看见天猫、飞猪、淘票票等诸多 BU 的订单 在美团的订单列表&#xff0c;我…

[Python学习日记-46] Python 中第三方开源模块的安装、使用与上传自己写的模块

[Python学习日记-46] Python 中第三方开源模块的安装、使用与上传自己写的模块 简介 下载与安装 如何使用安装好的第三方开源模块 如何上传自己写的模块到 PyPi 简介 在前面的模块介绍和导入当中主要介绍的都是 Python 内置的一些模块&#xff0c;我们把它称为标准库&#…

string模拟优化和vector使用

1.简单介绍编码 utf_8变长编码&#xff0c;常用英文字母使用1个字节&#xff0c;对于其它语言可能2到14&#xff0c;大部分编码是utf_8&#xff0c;char_16是编码为utf_16, char_32是编码为utf_32&#xff0c; wchar_t是宽字符的&#xff0c; utf_16是大小为俩个字节&a…

在线书画展:艺术与科技携手,拓宽艺术之路

在数字化浪潮的推动下&#xff0c;在线书画展正成为艺术与科技完美融合的典范。它不仅拓宽了艺术的传播渠道&#xff0c;提升了个人书画家的开展效率&#xff0c;还促进了艺术家们的职业发展。以下是对在线书画展几大优势的深入探讨。 一、拓宽艺术传播渠道 全球化展示&#x…

前端开发笔记--html 黑马程序员2

文章目录 前端常用标签一、标题标签二、段落标签和换行标签和水平线标签三、文本格式化标签![请添加图片描述](https://i-blog.csdnimg.cn/direct/87583fa23fe04229b016912051f3fc45.png)四、盒子标签五、图像标签六、连接标签七、注释和特殊字符 八、表格标签的基本使用九、列…

图书馆自习室座位预约管理微信小程序+ssm(lw+演示+源码+运行)

摘 要 随着电子商务快速发展世界各地区,各个高校对图书馆也起来越重视.图书馆代表着一间学校或者地区的文化标志&#xff0c;因为图书馆丰富的图书资源能够带给我们重要的信息资源&#xff0c;图书馆管理系统是学校管理机制重要的一环&#xff0c;,面对这一世界性的新动向和新…

Python | Leetcode Python题解之第475题供暖器

题目&#xff1a; 题解&#xff1a; class Solution:def findRadius(self, houses: List[int], heaters: List[int]) -> int:ans 0houses.sort()heaters.sort()j 0for i, house in enumerate(houses):curDistance abs(house - heaters[j])while j 1 < len(heaters) …

计算机网络——运输层(可靠传输、超时重传、选择确认、流量控制和拥塞控制、TCP连接和释放)

TCP可靠传输的实现 我们假定数据传输只在一个方向进行&#xff0c;即A发送数据&#xff0c;B给出确认。这样的好处是使讨论限于两个窗口&#xff0c;即发送方A的发送窗口和接收方B的接收窗口。 以字节为单位滑动窗口 发送方构造窗口 窗口前沿和后沿的移动情况 描述发送窗口的状…

《使用Gin框架构建分布式应用》阅读笔记:p1-p19

《使用Gin框架构建分布式应用》学习第1天&#xff0c;p1-p19总结&#xff0c;总计19页。 一、技术总结 1.go get & go install 执行go get 或者 go install 命令后package会被安装到哪里&#xff1f;参考&#xff1a;https://go.dev/ref/mod#go-install VSCode结合WSL使…

springboot001基于SpringBoot的在线拍卖系统(论文+源码)_kaic

医护人员排班系统 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了医护人员排班系统的开发全过程。通过分析医护人员排班系统管理的不足&#xff0c;创建了一个计算机管理医护人员排班系统的方案。文章介绍了医…

C++多线程的Demo(二)

前言 接上文&#xff0c;这次对C多线程和并发有了一些粗浅的理解&#xff0c;上一篇文章如下&#xff1a; C多线程的Demo&#xff08;一&#xff09;_c demo-CSDN博客 详细讲解join()和detach(): 每一个程序至少拥有一个线程&#xff0c;那就是执行main()函数的主线程&#xf…

python 画图|三维散点图输出

【1】引言 在前述学习进程中&#xff0c;已经初步掌握三维动画输出和散点图动画输出基本技能&#xff0c;可通过下述链接直达&#xff1a; python画图|散点图动态输出-CSDN博客 python动画教程|Animations using Matplotlib-官网教程程序解读_如何用python制作微动画-CSDN博…