【ICCV Oral】SAN:利用软对比学习和全能分类器提升新类发现,FaceChain团队联合出品

本文主要是介绍【ICCV Oral】SAN:利用软对比学习和全能分类器提升新类发现,FaceChain团队联合出品,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        本文提出了一个领域适应框架Soft-contrastive All-in-one Network(SAN),旨在高效、准确、原生地控制领域间新类别的发现和适应。具体来说,SAN采用了一种新颖的基于数据增强的软对比学习(SCL)损失来微调深度神经网络,并引入了全能(All-in-One, AIO)分类器,这种策略不仅有效地解决了数据增强中的视图噪声问题,还显著提高了新类别发现的能力,同时避免了分类器的过度自信问题。相比传统的无监督领域适应(UDA)方法,SAN展现了更强的特征转移能力和更高的新类别发现准确率,其中在ODA和UNDA任务上都取得了最先进的效果。同时,我们探讨了开放集领域适应(ODA)和通用领域适应(UNDA)的核心困难和评价指标,为后续研究提供了理论基础。


论文链接:
https://arxiv.org/abs/2211.11262
代码链接:
https://github.com/zangzelin/code_SAN

一、思考的起点

        在当今的机器学习领域,领域适应已经成为了一个热门的研究方向,尤其是新类别的发现,这被视为迁移学习的一个重要应用。传统的无监督领域适应(UDA)方法在许多场景中已经证明了其有效性,但在实际应用中,我们发现它在标签稀缺的新领域中存在一些局限性。特别是在面对源领域和目标领域类别不完全重叠的情况时,传统方法往往显得力不从心。在此,源领域指的是我们已经拥有大量标签数据的领域,而目标领域则是我们希望模型能够适应但标签数据较少或完全没有的领域。这种观察促使我们重新思考:如何更有效地进行领域间的新类别发现和适应?我们需要一种方法,既能够充分利用源领域的知识,又能够灵活地适应目标领域的新类别。

二、工作亮点

        新类别的发现在领域适应中面临两大核心难点:首先是如何学习一个统一的特征表征,使其能够跨领域有效;其次是如何设计一个新类别分类器,确保其在未知类别上的鲁棒性和准确性。为了解决上述问题,我们提出了一个全新的领域适应框架——Soft-contrastive All-in-one Network(SAN)。


SAN的设计初衷是为了解决领域适应中的新类别发现问题。为此,我们首先引入了基于数据增强的软对比学习(SCL)损失。正如图1(a)所示,传统的对比学习方法在处理由于数据增强产生的视图噪声时存在问题。这种噪声会引入错误的梯度,从而损害网络的训练。此外,为所有领域找到合适的数据增强策略在面对具有巨大领域差异的UNDA数据时尤为困难。为了解决这个问题,我们提出了软对比学习(SCL)。SCL的目的是减弱视图噪声的影响,使模型能够更好地从正面对比对中学习。

然后,我们引入了全能(All-in-One, AIO)分类器。如图1(b)所示,传统的独立分类器在面对新类别时存在过度自信的问题,这导致了过于尖锐的分类边界。这种过度自信的分类边界在某些新类别上容易出错。为了解决这个问题,我们设计了AIO分类器。与传统的分类器不同,AIO分类器的决策过程更接近人类的判断方式。它假设要确定一个样本属于新类别,首先需要确定它不属于任何已知的类别。基于这个假设,我们定义了一个新的损失函数来训练AIO分类器。结果表明,与传统的分类器相比,AIO分类器具有更加平滑的分类边界,并且能够减少标签噪声的不良影响。

SCL损失的设计旨在高效、准确地控制领域间新类别的发现,通过这种策略,我们有效地解决了数据增强中的视图噪声问题。而AIO分类器则旨在解决传统分类器在新类别发现上的过度自信问题,使得模型在面对新类别时更为稳健和准确。

三、实验结果

        在本研究中,我们采用了四个在领域适应领域中广受欢迎的数据集进行训练和测试,分别是:Office、OfficeHome、VisDA和DomainNet。这些数据集涵盖了多种真实世界的场景,为模型提供了丰富的训练和验证环境。为确保实验的公正性和可靠性,我们遵循了现有的协议来将数据集进行分类,具体地,数据被分为源私有、目标私有和共享类别三部分。这种细致的数据划分策略使我们能够更为准确地评估模型在新类别发现上的性能。通过在这些数据集上的广泛测试,我们的方法在新类别发现上展现了出色的性能,证明了其在面对未知类别时的鲁棒性和准确性。

我们对SAN进行了广泛的实验评估,特别是在ODA和UNDA任务上。


实验结果显示,SAN在特征转移能力和新类别发现准确率上都取得了最先进的效果,明显超越了现有的方法。这些实验不仅验证了SAN在领域适应任务上的优越性能,还为未来的研究提供了新的方向和基准。我们采用了多种评估指标,确保了实验结果的公正性和可靠性,从而为后续研究者提供了一个坚实的基础。

我们进一步进行了可视化分析来展示SAN的效果。


图中展示了特征的t-SNE嵌入可视化,其中颜色代表不同的类别。对于图(a)中的W域到D域设置和图(b)中的D域到W域设置,我们观察到基线方法在目标域的某些新类别上犯了错误(例如,由交叉标记的散点)。这可以归因于过度自信的分类器导致的过于尖锐的分类边界,从而输出了错误的测试结果。我们认为这是过度自信的结果。与此相反,SAN很好地处理了同一类别。从这些可视化中,我们可以清楚地看到SAN在特征空间中为不同的类别创建了更加分散和清晰的聚类,这证明了其在新类别发现上的优越性能。这种可视化展示进一步证明了SAN方法在克服过度自信问题上的有效性,为新类别提供了更为鲁棒和准确的分类。

这篇关于【ICCV Oral】SAN:利用软对比学习和全能分类器提升新类发现,FaceChain团队联合出品的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/787099

相关文章

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat

python中字符串拼接的几种方法及优缺点对比详解

《python中字符串拼接的几种方法及优缺点对比详解》在Python中,字符串拼接是常见的操作,Python提供了多种方法来拼接字符串,每种方法有其优缺点和适用场景,以下是几种常见的字符串拼接方法,需... 目录1. 使用 + 运算符示例:优缺点:2. 使用&nbsjsp;join() 方法示例:优缺点:3

SpringCloud之consul服务注册与发现、配置管理、配置持久化方式

《SpringCloud之consul服务注册与发现、配置管理、配置持久化方式》:本文主要介绍SpringCloud之consul服务注册与发现、配置管理、配置持久化方式,具有很好的参考价值,希望... 目录前言一、consul是什么?二、安装运行consul三、使用1、服务发现2、配置管理四、数据持久化总

C++ 各种map特点对比分析

《C++各种map特点对比分析》文章比较了C++中不同类型的map(如std::map,std::unordered_map,std::multimap,std::unordered_multima... 目录特点比较C++ 示例代码 ​​​​​​代码解释特点比较1. std::map底层实现:基于红黑

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Golang中拼接字符串的6种方式性能对比

《Golang中拼接字符串的6种方式性能对比》golang的string类型是不可修改的,对于拼接字符串来说,本质上还是创建一个新的对象将数据放进去,主要有6种拼接方式,下面小编就来为大家详细讲讲吧... 目录拼接方式介绍性能对比测试代码测试结果源码分析golang的string类型是不可修改的,对于拼接字

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

Python使用Pandas对比两列数据取最大值的五种方法

《Python使用Pandas对比两列数据取最大值的五种方法》本文主要介绍使用Pandas对比两列数据取最大值的五种方法,包括使用max方法、apply方法结合lambda函数、函数、clip方法、w... 目录引言一、使用max方法二、使用apply方法结合lambda函数三、使用np.maximum函数