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

在上述工作中,预定义的阈值(τ)是固定

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

◇【论文_20150225】 DQN_2015(nature) 〔Google DeepMind〕

整理代码 1:DQN CartPole_v1.ipynb https://www.nature.com/articles/nature14236 Human-level control through deep reinforcement learning 文章目录 摘要主体:要做什么 如何做的 要点keypoints实验 与 评估2 个指标和 各游戏的最好方法比较t-S…

数据湖新突破:Hudi让实时数据分析更高效!

开源数据湖对比 Hudi的使用收益 Hudi使用成效 Hudi内部机制 增量摄入与更新 Hudi使用一种混合日志存储模式(称为Copy-on-Write),可以同时处理基础数据文件(Parquet)和增量日志(HoodieLogFile)。以 MergeOnReadTable 的 upsert 操作为例,当有新数据到来时,Hudi会先将数据以行…

【OpenMMLab】MMagic入门

1. 概述 OpenMMLab 概述:OpenMMLab 是上海人工智能实验室的计算机视觉算法开源体系,是深度学习时代全球领域最全面、最具影响力的视觉算法开源项目,也是全球最大最全的开源计算机视觉算法库。特点: 丰富的算法库:已累…

第三天-128.最长连续序列

这道题我完全没有思路,求助gpt,让它给我思路: 这个问题要求找出数组中数字连续的最长序列,并且时间复杂度必须是 O(n),可以采用 哈希集(HashSet)来帮助我们高效地判断数字是否存在。以下是解决…

AI周报(10.13-10.19)

AI应用-清华校友用AI破解162个高数定理 加州理工、斯坦福和威大的研究人员提出了LeanAgent——一个终身学习,并能证明定理的AI智能体。LeanAgent会根据数学难度优化的学习轨迹课程,来提高学习策略。并且,它还有一个动态数据库,有效…

Ubuntu如何显示pcl版本

终端输入: apt-cache show libpcl-dev可以看到,Ubuntu20.04,下载的pcl,应该都是1.10版本的

百易云资产管理运营系统 ufile.api.php SQL注入漏洞复现

0x01 产品描述: 百易云资产管理运营系统,是专门针对企业不动产资产管理和运营需求而设计的一套综合解决方案。该系统能够覆盖资产的全生命周期管理,包括资产的登记、盘点、评估、处置等多个环节,同时提供强大的运营分析功能&#…

执行php artisan storage:link报错

php artisan storage:link Call to undefined function Illuminate\Filesystem\symlink() 参考文章 https://learnku.com/laravel/t/73729

基于web的酒店客房管理系统【附源码】

基于web的酒店客房管理系统(源码L文说明文档) 目录 4 系统设计 4.1 系统概述 4.2系统结构 4.3.数据库设计 4.3.1数据库实体 4.3.2数据库设计表 5系统详细实现 5.1 用户信息管理 5.2 会员信息管理 5.3 客房信息管理 5.…

基于SpringBoot健康生活助手微信小程序【附源码】

基于SpringBoot健康生活助手微信小程序 效果如下: 管理员登录界面 管理员主界面 用户管理界面 健康记录管理界面 健康目标管理界面 微信小程序首页界面 活动信息界面 留言反馈界面 研究背景 近年来,由于计算机技术和互联网技术的飞速发展,…

SAP PP之功能 动态安全库存(Dynamic Safety stock)配置及计算逻辑说明测试

SAP动态安全库存(Dynamic Safety stock)配置及计算逻辑说明测试 概念及计算逻辑: 动态安全库存(Dynamic Safety stock): 它根据平均的日需求(Average daily requirements)数量&am…

父子元素中只有子元素设置margin-bottom的问题

问题代码如下所示 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>.div1 {background-color: red;width: 80px;height: 80px;border: 1px solid orange;}.div2 {bac…

STM32—FLASH闪存

1.FLASH简介 STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分&#xff0c;通过闪存存储器接口&#xff08;外设&#xff09;可以对程序存储器和选项字节进行擦除和编程 我们怎么操作这些存储器呢&#xff1f;这就需要用到这个闪存存储器接口了&#xff0c;闪…

联系拯救者Y9000P2022笔记本电脑进入BIOS快捷键

联系拯救者Y9000P2022笔记本电脑进入BIOS快捷键 文章目录 联系拯救者Y9000P2022笔记本电脑进入BIOS快捷键1. 进入BIOS快捷键2. 快速进入BIOS设置界面3. 快速进入启动项选择界面 1. 进入BIOS快捷键 进入BIOS设置界面的快捷键为F2快速进入启动项选择界面的快捷键为F12 2. 快速进…

充电桩高压快充发展趋势

一、为什么要升级充电电压 1、新能源发展的困境 随着电动汽车加快发展&#xff0c;用户对电动汽车接受度不断提高&#xff0c;充电问题是影响电动车普及的重要因素&#xff0c;用户快速补能的需求强烈&#xff0c;例如节假日经常会遇到&#xff0c;高速充电1小时&#xff0c;…

jmeter中设置属性值的注意事项

jmeter中&#xff0c;可以在beanshell sampler, jsr223 sampler中对变量、属性等做一些操作&#xff0c;使得测试脚本变得更有关联性和一致性&#xff0c;以便完成更好的测试工作。 但是&#xff0c;在实际运用中&#xff0c;设置属性值经常会有些情况需要注意。不是我们以为的…

全能PDF工具集 | PDF Shaper Ultimate v14.6 便携版

软件简介 PDF Shaper是一款功能强大的PDF工具集&#xff0c;它提供了一系列用于处理PDF文档的工具。这款软件使用户能够轻松地转换、分割、合并、提取页面以及旋转和加密PDF文件。PDF Shaper的界面简洁直观&#xff0c;使得即使是新手用户也能快速上手。它支持广泛的功能&…

智能体网络时代即将来临,我们需要新的连接技术

备注&#xff1a;如果你也对这个话题感兴趣&#xff0c;欢迎联系我们&#xff1a; email: chgaoweigmail.com Discord: https://discord.gg/CDYdTPXXMB 官网: https://pi-unlimited.com 我们的方案代码已经开源&#xff0c;github&#xff1a;https://github.com/chgaowei/…

鸿蒙开发 四十四 ArkTs BuilderParam传递UI(二)

子组件多个BuilderParam&#xff0c;必须通过参数的方式传入&#xff0c;如果界面中有多个界面需要传递&#xff0c;可以定义多个尾随闭包&#xff0c;如图&#xff1a; 在自定义组件中调用&#xff1a; 在使用时候调用是作为参数传递给自定义的组件&#xff0c;参数是界面&…

KUKA外部自动配置(上)

通过外部PLC对机器人自动运行进程进行控制&#xff0c;其控制原理是&#xff1a;外部PLC通过外部自动运行接口向机器人控制系统发出机器人进程的相关信号&#xff08;如&#xff1a;运行许可、故障确认、程序启动等&#xff09;&#xff0c;机器人控制系统向外部PLC系统发送有关…