【半监督学习】Match系列.4

news2024/11/28 4:38:09

介绍几篇关于半监督学习的论文:CLS(arXiv2022),Ada-CM(CVPR2022),SemiMatch(CVPR2022).

CLS: Cross Labeling Supervision for Semi-Supervised Learning, arXiv2022

解读:CLS: Cross Labeling Supervision for Semi-Supervised Learning - 知乎 (zhihu.com)

【保证伪标签质量】CLS: Cross Labeling Supervision for Semi-Supervised Learning - 知乎 (zhihu.com)

论文:[2202.08502] CLS: Cross Labeling Supervision for Semi-Supervised Learning (arxiv.org)

代码:YaoYao1995/Cross-Labeling-Supervision-for-Semi-Supervised-Learning: A PyTorch implementation of CLS (github.com)

本文提出了Cross Labeling Supervision (CLS),一个概括典型伪标签生成框架。 基于FixMatch,弱增强样本的预测生成伪标签,用来训练强增强样本,CLS允许创建伪标签和互补标签,以支持正负样本学习。 为了减轻self-labeling的信息偏差增强错误标签的容忍度,使用不同的参数初始化两个结构完全一样的网络,然后同时训练。每一个网络用另一个网络的高置信度标签作为监督信息。在标签生成阶段,根据预测置信度对人工标签分配权重,这个权重有两个作用:量化生成标签的质量,减少不准确标签对网络训练的干扰。

FixMatch使用弱增强图像的伪标签来监督强增强下相同图像的预测。 MixMatch对多个增强估计取平均值,并通过对估计应用温度锐化函数产生一致性正则化的训练目标。

尽管自训练方法和基于一致性的方法表现较好,但它们都存在着确认偏差的问题,即如果教师/伪标签不准确,在误导的指导下训练学生/模型本身可能会导致显著的成绩下降。为了缓解这个问题,作者提出了这个框架,与Fixmatch相比有3处改进:

  • 第一种是生成互补标签来支持负性学习,由于ground truth标签被选为互补标签的机会相对较低,从而降低了提供错误信息的风险。与仅使用伪标签作为监督信号相比,额外生成的互补标签可以帮助校准不正确的预测。 伪标签和互补标签统称为人工标签.
  • 二是样本重加权机制,降低低置信人工标签的权重。 与FixMatch设置置信度阈值完全过滤低置信度伪标签不同,使用重加权的优点是网络仍然可以从低置信度标签学习以更好地泛化。
  • 受协同训练的启发,两个具有不同初始化的相同网络同时被训练,它们通过交换高置信度的人工标签来减轻自标记的确认偏差。 由于并行技术的发展,同时训练两个网络几乎不增加计算开销。

 

图1:FixMatch和CLS之间的区别。 左:FixMatch,其中对弱增强样本( + 1)的预测为相同样本的强增强( + 2)生成一个伪标签以供学习。 右:CLS,两个平行网络同时生成伪标签和互补标签。 在某种意义上,来自另一个网络的监督信号充当了一种正则化规则,以减轻确认信息偏差,而互补标签支持负性学习 

 

 

 图中描述了一个batch,其中有1个label和4个unlabel。 在被送入两个单独的模型之前做弱(+ 2)和强(+ 1)增强。 利用弱增广的预测概率分布生成具有相应样本权值的伪标签和互补标签,分别通过正、负交叉熵损失监督监督强增强的预测。当两个模型之间进行知识交换时,只考虑样本权重大于阈值的标签。

Towards Semi-Supervised Deep Facial Expression Recognition with An Adaptive Confidence Margin, CVPR2022

讲解:Towards Semi-Supervised Deep Facial Expression Recognition with An Adaptive Confidence Margin 论文笔记_勒布朗张婧仪的博客-CSDN博客

论文阅读 Towards Semi-Supervised Deep Facial Expression Recognition with An Adaptive Confidence Margin - 知乎 (zhihu.com)

论文:[2203.12341] Towards Semi-Supervised Deep Facial Expression Recognition with An Adaptive Confidence Margin (arxiv.org)

代码:hangyu94/Ada-CM: “Towards Semi-Supervised Deep Facial Expression Recognition with An Adaptive Confidence Margin”, CVPR 2022. (github.com)

总结:

本文提出了一种自适应调整置信度阈值的半监督深度人脸表情识别方法。

  • 对于无标签数据,提出了一种自适应调整置信度阈值的方法:因为每个类别本身难度存在差异,分别计算一个类别的阈值。随着模型的提升,再逐步升高这个阈值。
  • 全面利用了无标签数据:对于置信度低的无标签数据采用对比学习的方法对特征进行学习。

Adaptive confidence margin (Ada-CM) 方法的流程图如下所示。(b) 模型先对有标签的数据进行训练,用正确的预测得到阈值。(a)对于无标签的数据,对其进行弱增广(Week Augmentation, WA),送入网络求出两个预测的均值。当均值大于阈值,被分到第一个类别中,用其伪标签对强增广(SA)的图片进行交叉熵训练;(c) 当阈值小于均值,用对比学习对弱增广的特征进行约束。 

自适应置信度阈值:

首先,对于有标签样本,获得所有标签样本的预测值并确定预测结果,再与真实标签比较挑选出正确的预测样本。依据预测正确样本的预测值和个数,构造初步的自适应置信度(公式5)。再利用公式6逐步调整阈值。超参数B=0.97,y=e,阈值会随着epoch增加不断增加。

半监督自适应学习:

对于无标签的数据,用弱增广得到的预测分数,计算它们的平均值(公式6).

  • 当预测值大于阈值:使用预测值产生伪标签,然后对其强增广的输出计算交叉熵。
  • 当预测值小于阈值:使用对比学习,对弱增广的两个特征进行约束。

 算法:

实验结果:

Semi-Supervised Learning of Semantic Correspondence with Pseudo-Labels, CVPR2022

论文:Semi-Supervised Learning of Semantic Correspondence with Pseudo-Labels | IEEE Conference Publication | IEEE Xplore

https://arxiv.org/abs/2203.16038v2

代码:未找到

由于类内的显著变化和背景混乱,在语义相似的图像之间建立密集的对应关系仍然是一项具有挑战性的任务。使用监督学习来训练模型,需要大量的手动标记数据,而一些方法建议使用自监督或弱监督学习来减轻对标记数据的依赖,但性能有限。
本文提出了一种简单但有效的语义对应解决方案,该解决方案通过利用大量的置信对应作为伪标签来补充少量的基本事实对应,以半监督的方式学习网络工作,称为半匹配。

提出了一种新的半监督学习框架,称为SemiMatch,该框架使用模型本身在源和弱增强目标之间的预测来生成像素级伪标签,然后使模型再次预测伪标签在源和强增强目标之间。为了解释所有伪标签可能无助于提高性能的观察结果,论文通过考虑以对象为中心的前景、前后一致性和概率本身的不确定性,引入了一种新的伪标签置信度度量。针对语义对应,还提出了一种匹配的专门增强,该增强利用了关键点感知剪切,帮助网络学习关键点周围的独特特征表示。

图1。不同监督形式下语义对应方法的比较。传统方法利用(a)使用稀疏真实标签关键点匹配的监督损失,或(b)使用具有随机几何参数的合成流场的自监督损失。
本文提出了(c)使用匹配概率的伪标签的无监督损失和(d)使用稀疏真实标签关键点和置信伪标签的半监督损失。

 网络模型:

图2.语义对应半监督学习框架概述。SemiMatch首先将目标图像增强为弱增强图像和强增强图像。骨干匹配网络从这些图像中提取特征,计算相关cost,然后进行聚合。源图像和弱增强目标图像之间的聚合cost由在强增强中使用的相同几何扭曲来转换,并被锐化以生成伪标签。整体损失函数由使用稀疏真实标签的监督损失和使用伪标签的无监督损失组成。

其中,Cost Aggregation操作 来源论文CATs: Cost Aggregation Transformers for Visual Correspondence 

半监督采用的增强方式: 

 强弱图像间的匹配点:

 

 利用强弱一致性,来检查伪标签的可靠性,以获得置信度mask。

 

一种匹配的专用augmentation,称为关键点引导剪切(KeyOut),它剪切并删除关键点位置周围特定大小的框,如图6所示。它允许模型学习通过集成关键点外围信息来找到关键点位置

 实验:

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

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

相关文章

mysql增量备份

目录 一、修改配置文件,开启增量备份功能 (1)查看是否已经开启了 (2)修改配置文件开启 (3)增量记录文件 二、还原增量备份 (1)修改了数据 (2&#xff…

使用thrift进行RPC通信(附c程序示例)

前言 为了实现不同语言的程序跨进程、跨主机通信,一般可以采用mq或rpc框架来实现。 对于异步通知的场景可以使用mq,如zeroMQ。 但对于某些实时性较强且同步的应用场景,使用成熟的rpc框架来实现也是一种比较更好的选择。 开源的rpc框架有很…

MySQL---游标,异常处理,循环构建表

1. 游标 游标(cursor)是用来存储查询结果集的数据类型 , 在存储过程和函数中可以使用光标对结果集进行 循环的处理。光标的使用包括光标的声明、OPEN、FETCH 和 CLOSE. -- 声明语法 declare cursor_name cursor for select_statement -- 打开语法 open cursor_name -- 取值语…

由浅入深Netty基础知识NIO三大组件原理实战

目录 1 三大组件1.1 Channel & Buffer1.2 Selector1.3 多线程版设计1.4 多线程版缺点1.5 线程池版设计1.6 线程池版缺点1.7 selector 版设计 2 ByteBuffer2.1 ByteBuffer 正确使用姿势2.2 ByteBuffer 结构2.3 调试工具类2.4 ByteBuffer 常见方法2.4.1 分配空间2.4.2 向 buf…

chatgpt赋能Python-numpy查找

Numpy查找 - 了解numpy中的查找功能 什么是Numpy? Numpy是Python语言中的一种开源的数学计算库,允许开发者轻松高效地进行数学运算。它提供了一整套矩阵运算方式,支持各种各样的数学函数和数据类型,并且可以与其他Python库良好地…

chatgpt赋能Python-macbook怎么用python

使用MacBook进行Python编程的完全指南 如果您是一名Python编程工程师,那么您需要一台性能良好的电脑来进行编程工作。今天,我们将探讨如何使用MacBook来编写Python代码,以及如何使您的Mac运行最佳状态。 安装Python 在开始使用Python之前&…

还在老一套?STM32使用新KEIL5的IDE,全新开发模式RTE介绍及使用

Keil新版本出来了,推出了一种全新开发模式RTE框架( Run-Time Environment),更好用了。然而网上的教程资料竟还都是把Keil5当成Keil4来用,直接不使用这个功能。当前正点原子或野火的教程提供的例程虽有提到Keil5,但也是基本上当Kei…

Qt Quick系列(1)—开发界面以及相关文件介绍

作者:CCAccept 专栏:Qt Quick 文章目录 开发界面相关文件介绍.pro文件.pri文件(这个一般要稍微大一点的Qt项目才会用到)main.cppmain.qml 开发界面 如何具体的写代码实现Qt Quick的UI界面,首先我们需要新建一个空的…

Java面向对象程序设计实验报告(实验三 继承的练习)

✨作者:命运之光 ✨ 专栏:Java面向对象程序设计实验报告 ​ 目录 ✨一、需求设计 ✨二、概要设计 ✨三、详细设计 ✨四、调试结果 ✨五、测试结果 ✨附录:源程序代码(带注释) demo3类 Person类 Student类 …

[架构之路-201]-《软考-系统分析师》- 关键技术 - 结构化分析方法与面向对象分析(分析与设计的区别)

目录 前言: 一、分析与设计的区别 二、结构化分析方法 2.1 实体关系图:E - R 图 (名词) 2.2. 数据流图(数据的流动) (1) 顶层图。 (2) 逐层分解。 2.3. 状态转换图(动作) …

电压比较器

电压比较器&#xff1a; 应用一&#xff1a;过压&#xff0c;低压检测&#xff08;over and undervoltage detectors&#xff09; 如果Vin<Vs&#xff0c;则VoutVpullup。 如果Vin>Vs&#xff0c;则Vout0V。 应用二&#xff1a;窗口比较器&#xff08;window comparat…

Zadoff-Chu序列

ZC序列的定义 ZC序列有两个重要的参数&#xff1a; 根索引&#xff08;root index&#xff09; q 1 , 2 , ⋯ , N z c − 1 q1,2,\cdots,N_{zc}-1 q1,2,⋯,Nzc​−1ZC序列的长度 N z c N_{zc} Nzc​&#xff0c;一定得是奇数&#xff08;常常是质数&#xff09; 给定上述两…

网络:网络分层与协议/OSI七层模型/(TCP/IP模型)

一、简单理解 OSI模型(Open System Interconnection)&#xff1a; 七层模型&#xff0c;亦称OSI&#xff08;Open System Interconnection&#xff09;。参考模型是国际标准化组织&#xff08;ISO&#xff09;制定的一个用于计算机或通信系统间互联的标准体系&#xff0c;一般…

数据结构——带头双向循环链表实现

目录 前言 一、结构介绍 二、增删查改的实现 1.在某一位置前插入数据 2.头插 3.尾插 4.删除某一位置的节点 5.头删 6.尾删 7.查找 8.打印 9.销毁 三、完整项目代码 1.头文件(List.h) 2.函数文件(List.c) 3.主函数测试文件(test.c) 前言 在学习数据结构过程中&…

HQL语法

HQL基础语法 Hive中的语句叫做HQL语句,是一种类似SQL的语句,基本上和SQL相同但是某些地方也是有很大的区别. 数据库操作 创建数据库 1.创建一个数据库,数据库在HDFS上的默认存储路径是/hive/warehouse/*.db。 create database hive01; 避免要创建的数据库已经存在错误&…

【零基础学机器学习 3】机器学习类型简介:监督学习 - 无监督学习 - 强化学习

机器学习是人工智能的一种应用,从大量数据中学习并解决特定问题。它使用计算机算法,通过经验自动提高效率。 机器学习主要有三种类型:监督、无监督和强化学习。 监督学习 概述 监督学习是一种使用标记数据来训练机器学习模型的机器学习类型。在标记数据中,输出已经是已知…

javascript-基础知识点总结

目录 &#xff08;一&#xff09;基础语法 1、javaScript引入方式 2、变量与常量 3、数据类型 typeof操作符 4、运算符 5、输出函数 6、类型转化 7、转移字符 8、注释 &#xff08;二&#xff09;流程控制 1、选择结构 switch 2、循环结构 for &#xff08;三&…

简单网络管理协议 SNMP

文章目录 1 概述1.1 结构1.2 操作 2 SNMP2.1 报文格式2.2 五大报文类型 3 扩展3.1 网工软考真题 1 概述 #mermaid-svg-95KMV1m3prKJgwv1 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-95KMV1m3prKJgwv1 .error-ico…

【云原生】K8sYaml文件详细

K8sYaml文件详细 一、Kubernetes支持的文件格式1、yaml和json的主要区别2、yaml语言格式 二、YAML操作1、查看API资源版本标签2、编写资源配置清单3、创建资源对象4、查看创建的pod5、创建service服务对外提供访问并测试6、创建资源对象7、测试访问 三、Kubernetes中的Port四、…

chatgpt赋能Python-new_init_python

新版Python中的__new__和__init__方法 Python作为一种高级编程语言&#xff0c;具有简单易学、代码可读性高和编写效率高等特点&#xff0c;因此越来越受到程序员们的青睐。其中&#xff0c;__new__和__init__方法是Python中的两个非常重要的方法&#xff0c;它们在实例化一个…