【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

相关文章

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

锐捷和腾达哪个好? 两个品牌路由器对比分析

《锐捷和腾达哪个好?两个品牌路由器对比分析》在选择路由器时,Tenda和锐捷都是备受关注的品牌,各自有独特的产品特点和市场定位,选择哪个品牌的路由器更合适,实际上取决于你的具体需求和使用场景,我们从... 在选购路由器时,锐捷和腾达都是市场上备受关注的品牌,但它们的定位和特点却有所不同。锐捷更偏向企业级和专

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has

python与QT联合的详细步骤记录

《python与QT联合的详细步骤记录》:本文主要介绍python与QT联合的详细步骤,文章还展示了如何在Python中调用QT的.ui文件来实现GUI界面,并介绍了多窗口的应用,文中通过代码介绍... 目录一、文章简介二、安装pyqt5三、GUI页面设计四、python的使用python文件创建pytho

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]