FedoSSL

题目:《Towards Unbiased Training in Federated Open-world Semi-supervised》

来源:ICML2023

注意比较与 ORCA 的区别

Abstract

        联邦半监督学习(FedSSL)已经成为一种新范式,允许分布式客户端在稀缺的标记数据和丰富的未标记数据上协作训练机器学习模型。然而,现有的 FedSSL 工作依赖于一个 封闭世界 的假设,即所有的本地训练数据和全局测试数据都来自标记数据集中观察到的类别。向更进一步发展至关重要:使 FL 模型适应开放世界设置,即未标记数据中存在未见过的类别(unseen classes)

        在本文中,我们提出了一个新的联邦开放世界半监督学习(FedoSSL)框架,它可以解决分布式和开放世界设置中的关键挑战,即异构分布的未见过类别的有偏训练过程。具体来说,由于某种未见过的类别的出现取决于客户端,因此在多个客户端中存在的本地未见过的类别(Locally Unseen Classes)可能比只在一个客户端中存在的全局未见过的类别(Globally Unseen Classes)获得不同的、更优越的聚合效果。我们采用 不确定性感知的抑制损失 来减轻本地未见过和全局未见过类别之间的有偏训练

类似于 ORCA 的 不确定性自适应边

不确定性自适应边界用来 减少已知和新类别的类内方差之间的差距

        此外,我们通过补充一个 校准模块 来启用全球聚合,以避免由于不同客户端间不一致的数据分布而在知识转移过程中可能产生的潜在冲突。提出的 FedoSSL 可以轻松适应最新的 FL 方法,这也通过在基准测试和真实世界数据集(CIFAR-10、CIFAR-100 和 CINIC-10)上的广泛实验得到了验证

Introduction

        标记数据的稀缺性和非标记数据的丰富性促成了联邦半监督学习(FedSSL)的出现,它可以同时利用标记和非标记数据来优化分布式环境中的全局模型。现有的 FedSSL 方案已经证明了基于客户端或服务器端少量标记数据训练模型的能力。然而,这些工作依赖于封闭世界假设,即 所有本地训练数据和全局测试数据都来自标记数据集中包含的相同类别集,这在实际场景中往往是无效的。相比之下,开放世界设置允许新类别的发现,因此在野外数据中很常见,例如在医学图像分类任务中,一些疾病自然稀缺,以前从未标记过,而模型可能需要既能将图像分类为预定义类型(已知类别),又能发现新的未知疾病(未知类别)。因此,出现了一个新的基本问题:如何在开放世界设置下,通过分布式数据协作训练模型,以实现对已知和未知类别的分类?

        为此,我们 首先构建了一个新的 FedSSL 基准,将传统的封闭世界训练框架扩展到开放世界设置。令人惊讶的是,研究表明,由于训练过程中未标记数据中存在未知类别,导致性能显著下降。尽管一些工作探讨了未知类别问题,以避免将来自未知类别的未标记样本错误分类为已知类别,同时减轻已知和未知类别之间的不良性能差距,但尚无文献考虑分布式环境中的这一问题。随着多个参与者的加入,问题定义不同,即一个客户端中的一些未知类别可能从全局视角来看存在于其他客户端,因此需要对不同类型的样本/类别进行新的细粒度定义以及训练机制。值得一提的是,由于不同客户端间类别的异构分布,按照传统的 FL 机制简单地聚合参数可能会导致拥有不同未知类别的客户端之间的有偏训练过程

        为应对上述挑战,本文提出了一个全新的联邦开放世界半监督学习框架(FedoSSL),它能够实现不同类型样本之间的无偏训练过程。具体来说,本地客户端中的未知类别首先被重新定义为局部未知类别 和 全局未知类别。然后,我们设计了一个不确定性感知的抑制损失,以适应性地控制局部和全局未知类别之间的不良训练发散,即局部未知类别通常由于跨客户端协作而比全局未知类别具有更高的训练效率。此外,考虑到不同客户端间未知类别的异构分布导致聚合阶段潜在的知识转移冲突,我们引入了一个校准模块,以产生相应的全局中心,以便在每个客户端上进行专门的本地调整。我们展示了我们的方法在开放世界设置下与广泛使用的模型(即 ResNet-18)和下游任务(即 CIFAR-10、CIFAR-100、CINIC-10)相比,与最先进的基线相比,显著提高了模型的准确性

        本文的贡献总结如下:

  • 据我们所知,我们是第一个考虑 FedSSL 中开放世界设置的人,其中未标记数据中存在未知类别,由于未知类别的异构分布而具有挑战性
  • 我们设计了一个全新的 FedoSSL 框架,它可以在不同类型的类别(即局部未知和全局未知类别)之间实现无偏学习,并在异构数据分布下进行校准的知识聚合
  • 我们在三个典型的图像分类任务上进行了广泛的实验。实证评估显示,FedoSSL 的性能优于最先进的方法

图1: 提出的FedoSSL算法框架。流程:每个客户端首先在私有数据集上执行本地训练,经过几个周期(例如,通过优化公式(1)中的损失函数),然后通过基于Sinkhorn-Knopp的聚类算法(Genevay等人,2019)计算本地中心。将模型参数和本地中心上传到服务器。服务器执行标准的模型聚合。服务器再次使用Sinkhorn-Knopp聚类来获得全局中心。将全局模型和全局中心返回给客户端,客户端使用它们进行本地训练。

Related Work

Methodology

Preliminary and Problem Definition

        我们专注于开放世界设置中的联邦半监督学习,其中每个客户端的数据都是 部分标记 的,并且标记数据和未标记数据的类别不同,即未标记数据中存在未知类别(unseen classes)

        假设有个客户端每个客户端持有一个包含标记部分和未标记部分的私有分类数据集,其中。整个标记和未标记数据集可以分别表示为

我们记在全部标记数据中已知类别集为,未标记测试数据中的类别集为,与传统的(封闭世界)FedSSL 不同,后者

本文我们考虑,并记

分别为已知类和未知类的集合

        FedSSL 的目标是在多个分散的客户端中训练一个泛化的全局模型,参数为,即

其中

是总数据量

是客户端的损失函数

具体来说,模型可以分解为:

一个特征提取器,参数为,用于学习低维特征

一个分类器,参数为

每个客户端上的半监督学习算法的训练损失通常包括:

半监督损失

无监督损失,权重参数

通常,对标记实例应用 标准交叉熵损失

其中,表示模型对输入产生的预测概率

是交叉熵函数

对于无监督损失,有两种典型形式:

基于标记数据的伪标签基于数据增强的一致性正则化

然而在开放世界设置中,由于存在未知类别,上述方法无法对已知和未知类别进行分类。因此类似于 ORCA(Cao 等人,2022)和 NACH(Guo 等人,2022),我们使用 成对目标 作为未标记数据的无监督损失对未知类别进行分类

 其中,分别是标记和未标记数据的全部特征集,在小批量中的 最近集,通过计算所有特征表示对的余弦距离来计算

Cao, K., Brbic, M., and Leskovec, J. Open-world semi-supervised learning. In International Conference on Learning Representations, 2022. URL https://openreview.net/forum?id=O-r8LOR-CCA.

Guo, L.-Z., Zhang, Y.-G., Wu, Z.-F., Shao, J.-J., and Li,Y.-F. Robust semi-supervised learning when not all classes have labels. In Oh, A. H., Agarwal, A., Bel-grave, D., and Cho, K. (eds.), Advances in Neural In-formation Processing Systems, 2022. URL https://openreview.net/forum?id=lDohSFOHr0.

Overview of FedoSSL

        先前的 FedSSL 方法没有考虑到每个客户端上存在未知类别,这导致许多来自位置类别的数据被错误地分类为已知类别。此外不同客户端上数据分布的不一致性带来一个新问题:一些未知类别可能存在于多个客户端中,导致不同未知类别之间的训练偏差

        例如在图 1 中,客户端 1、2 和 K 都有类别 4,而类别 5、6、7、8 和 9 只存在于其中一个客户端中。在这种情况下,我们需要在全局视角中进行更细粒度(fine-grained)的定义

定义1(局部未知类和全局未知类)。在FedoSSL中,客户端上的未知类别可以分为两种类型:

局部未知类,其中

全局未知类,其中

当 FedoSSL 中存在多个客户端的未知类别时,需要考虑两个挑战:

        首先,由于客户端之间的协作,局部未知类别可能比全局未知类别学习得更快。现有的无监督成对损失对每个类别都同等对待,而未知类别之间的不平衡训练进度将导致伪标签生成上的大偏差,甚至在已知类别上的性能下降。因此我们提出了一个 不确定性感知的正则化损失 来减轻不同类别之间的训练偏差

        此外由于在同一模型分类器上需要输入标记数据和未标记数据,因此在不同客户端上生成的聚类/类别 ID 是异构的。设计一个 校准策略,在模型聚合阶段对同一未知类别的输出进行对齐至关重要

OBJECTIVE

为了在FedSSL中实现不同未知类别之间的无偏训练,我们提出了FedoSSL方法,整体目标包括三部分:

1)所有数据的基本半监督损失

2)一个不确定性感知的正则化损失

3)一个校准损失,以实现有效的模型聚合

其中,是权衡超参数(trade-off hyper-parameters)

UNCERTAINTY-AWARE LOSS

        考虑到不同类型的未知类别具有不同的训练进度,即局部未知类别可以从模型协作中受益,我们寻求添加一个正则项来减轻 局部未知类别 和 全局未知类别 之间的训练偏差

        具体来说,我们使用生成的簇/类 id 的不确定性来反映训练进度,并对具有高不确定性的样本施加更大的惩罚。然后不确定性感知损失可以定义为:

其中是数据不确定性函数。为了准确地探索不确定性,我们依赖于由 softmax 函数输出计算的伪标签置信度 和 属于相关伪标签的样本比例,即:

其中是类别的权重,可以从标记数据中估计,

是模型预测类别的训练样本数量

是具有最大样本量的类别的样本数量

注意可以是任何与成反比的函数

        在本文中,我们更关注 局部未知类别 和 全局未知类别之间的无偏训练,而忽略了已知类别和未知类别之间的训练不一致性,因为 ORCA 和 NACH 已经解决了这个问题

CALIBRATION MODULE

        由于未标记数据上的成对目标函数,即,仅确保相似样本被分类到同一个组/簇,因此同一个未知类别在不同客户端上可能被分到不同的簇 id(不同的类标签

        例如,在图 2 中,由于缺乏标记数据的监督,未知类别 4、5 和 6 可能被分类为 4 到 9 之间的任何标签。这种标签的异质性会显著降低聚合性能。因此需要设计一个校准模块,在模型聚合阶段之前,对不同客户端上局部分类器的异构输出进行对齐

        受到基于聚类的 FL 技术的启发(Lubana等人,2022),该技术旨在通过添加全局质心聚合机制来对齐不同客户端的局部聚类性能,我们将这种技术扩展到我们的 FedoSSL 场景中,并使用全局质心作为自监督信号来指导未知类别的分类过程。校准模块的损失可以表示为:

这里的是与全局质心相关的交叉熵损失(Cross entropy)

        具体来说,我们首先在服务器上从所有客户端聚合局部中心,以获得全局聚类,即通过使用Sinkhorn-Knopp(Genevay等人,2019)聚类算法。然后,将全局中心返回给客户端进行进一步的校准。以全局中心为指导,分类器在未知类别上的输出可以通过接近聚类分配的交叉熵损失进行更新:

其中表示全局质心。此外,为了防止一个类别的聚类分配在训练过程中发生剧烈变化,我们还设计了以下损失函数,以促进特征表示的聚类能力:

        这里是相应的聚类分配,通过将表示与全局质心匹配来计算

Algorithm Workflow

客户端更新

        在每一轮通信中,客户端从服务器下载全局模型和全局质心。在客户端更新阶段,每个客户端进行几次基于局部梯度的更新(例如,E 个周期),以优化公式 4 中的局部目标。然后,通过基于 Sinkhorn-Knopp 的聚类算法计算局部质心

服务器聚合

        在客户端完成局部模型的训练后,更新后的模型和局部质心将被发送到服务器进行进一步的聚合。具体来说,服务器首先通过对它们进行加权平均来聚合局部模型。然后通过聚合局部质心(即再次使用 Sinkhorn-Knopp 聚类算法)来计算全局质心。上述步骤将重复执行,直到模型收敛

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chapter08-面向对象编程(重写)day09

目录 302-方法重写介绍 303-方法重写细节 304-方法重写课堂练习1 305-方法重写课堂练习2 302-方法重写介绍 本类有这个方法就调用本类的,没有就向父类查找 303-方法重写细节 子类的形参列表、方法名称要和父类完全一致子类的返回类型(String&#x…

【Hot100】LeetCode—200. 岛屿数量

目录 1- 思路DFS 深搜 2- 实现⭐200. 岛屿数量——题解思路 3- ACM 思路 题目连接:200. 岛屿数量 1- 思路 DFS 深搜 在遍历中对 res 结果进行 操作 。遇到一个陆地结果为 1 的地方, 就将他们直接填充为 0 思路 ① 先遍历,收集 res② 之后…

LTSPICE使用教程:入门指导

1.常用快捷键 1.鼠标左键选择,鼠标右键取消,F7移动元器件 2.空格键:最大化显示 3.旋转:CtrlR 4.撤销:F9 5.删除:F5 6.退出编辑状态:ESC 7.元器件的镜像:Ctrle 8.原理图页面和…

viewBinding的使用(android studio)

引入 在开发安卓软件的时候,我们会大量的使用点击事件。通常情况下,我们是这样做的:将在xml文件里把目标组件添加id属性,如下: 然后在activity里面通过findViewById(R.id.back) 得到一个对象,通过对象调用…

mac和windows上安装nvm管理node版本

NVM 是 node version manager 的缩写,它是一个用来管理电脑上 node 版本的命令行工具,在日常前端开发中是一个跟 node 一样会经常用到的工具,可以很方便的让我们快速切换不同的node版本。 mac 上安装 nvm 1、下载安装 nvm 下载安装可以直…

Facebook的区块链战略:如何在社交媒体中实现去中心化

随着区块链技术的发展,Facebook(现Meta)正积极探索如何将这一技术整合进其社交平台中,以提升用户体验和数据安全。区块链技术以去中心化、透明性和不可篡改性为特点,为社交媒体带来了新的可能性。本文将探讨Facebook在…

在VB.net中,LINQ有什么方法与属性

标题 在VB.net中,LINQ有什么方法与属性 正文 在VB.NET中使用LINQ(Language Integrated Query),你可以利用一系列的方法和属性来查询和操作内存中的集合(如数组、列表等)以及数据库等数据源。LINQ提供了丰富…

OpenGL笔记二十之深度检测概念

OpenGL笔记二十之深度检测概念 —— 2024-08-25 晚上 bilibili赵新政老师的教程看后笔记 code review! 文章目录 OpenGL笔记二十之深度检测概念1.课程PPT截图2.运行3.代码 1.课程PPT截图 2.运行 3.代码 关键部分 main.cpp #include <iostream>#include "glfra…

【学习笔记】STM32F407探索者HAL库开发(三)IO分配

【学习笔记】STM32F407探索者HAL库开发&#xff08;三&#xff09;IO分配 1 STM32F407 IO资源分配表2 STM32F407ZGT6 引脚定义3 IO分配的重要性3.1 硬件设计优化3.2 软件编程3.3 系统性能提升 4 F1/F7/H7芯片的IO分配差异4.1 引脚数量和分组4.2 功能模式4.2.1 输入模式4.2.2 输…

7-6 分段函数2

计算分段函数&#xff0c;测试数据分别是-1、5、12。 输入格式: 输入一个数。 输出格式: 直接输出保留6位小数的结果&#xff0c;没有其它任何附加字符&#xff0c;没有宽度控制。 输入样例: 11输出样例: 0.999912输入样例: 7输出样例: 8.000000 #include <stdio.h…

java之类和对象2

封装的概念&#xff1a;将数据和操作数据的方法进行有机结合&#xff0c;隐藏对象的属性和实现细节&#xff0c;仅对外公开接口来和对象进行 交互 。&#xff08;主要通过类和访问权限符进行封装&#xff09; 访问权限符的介绍&#xff1a; public:相同/不同包中的子类/非子类…

足球规则指南,快速入门一看就懂

保姆级足球规则指南&#xff0c;旨在帮助初学者快速入门&#xff0c;一看就懂。以下是精简而全面的指南&#xff1a; 一、比赛场地与球员 场地&#xff1a;足球比赛在长方形场地上进行&#xff0c;长度为101米&#xff0c;宽度为64米。场地两端设有球门&#xff0c;高2.44米&…

【git bash编码错误解决方案】启动conda环境时报错,其他terminal却正常

&#x1f50e;嘿&#xff0c;这里是慰慰&#x1f469;&#x1f3fb;‍&#x1f393;&#xff0c;会发各种类型的文章&#xff0c;智能专业&#xff0c;从事前端&#x1f43e; &#x1f389;如果有帮助的话&#xff0c;就点个赞叭&#xff0c;让我开心一下&#xff01;&#x1f…

2024网络安全学习路线 非常详细 推荐学习

关键词&#xff1a;网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线 首先咱们聊聊&#xff0c;学习网络安全方向通常会有哪些问题 1、打基础时间太长 学基础花费很长时间&#xff0c;光语言都有几门&#xff0c;有些人会倒在学习 linux 系统及命令的路上&#…

MacOS安装 Python 和 PyCharm

MacOS安装 Python3.12.5 和 PyCharm 小阿呜有话说一、MacOS安装PythonPython官网下载 二、MacOS安装PyCharmPyCharm官网下载 叮嘟&#xff01;这里是小啊呜的学习课程资料整理。好记性不如烂笔头&#xff0c;今天也是努力进步的一天。一起加油进阶吧&#xff01; 小阿呜有话说 …

CR80清洁卡:一款磁卡读卡设备广泛适用的清洁利器!

CR80清洁卡&#xff0c;专为磁卡读卡设备设计&#xff0c;是一款高效且广泛适用的清洁工具。CR80是国际标准中定义的卡片尺寸&#xff0c;即长85.60mm、宽53.98mm&#xff0c;这种尺寸的卡片广泛应用于身份证、银行卡、门禁卡、会员卡等多种场合。因此&#xff0c;CR80清洁卡特…

【PyQt】切换界面的实现

前言一、介绍二、代码2.1 QStackedWidget2.1.1 代码2.1.2 运行结果展示 2.2 QTabWidget2.2.1 代码2.2.2 运行结果展示 2.3 QDockWidget2.3.1 代码2.3.2 运行结果展示 PULSE结果 总结 前言 实现几个界面的切换展示的效果。 一、介绍 在 PyQt 中实现一个主界面包含其他子界面的…

Vue3 获取农历(阴历)日期,并封装日历展示组件

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;我是码喽的自我修养&#xff01;今天给大家分享vue3项目中使用 chinese-lunar-calendar 插件获取农历(阴历)日期&#xff0c;并封装了日历展示组件&#xff01;提供了具体的代码帮助大家深入理解&#xff0c;彻底掌握&#…

【SpringBoot】11 多数据源(MyBatis:dynamic-datasource)

介绍 多数据源&#xff1a;指的是一个单一应用程序中涉及了两个及以上的数据库&#xff0c;这种配置允许应用程序根据业务需求灵活地管理和操作不同的数据库。 需求 一个应用服务中&#xff0c;连接多个数据库&#xff0c;有本地的也有远程的&#xff0c;有MysQL、Oracle、P…

Python和MATLAB梯度下降导图

&#x1f3af;要点 寻找局部最小值普通最小二乘法和随机梯度下降的动量线性回归媒体广告销售光学字符识别和最小化均方误差男女医疗费用最快速下降方向函数优化等高线图可视化共轭梯度下降可视化损失函数、动量、涅斯特洛夫动量、权衰减量化不确定性拓扑结构算法分类中权重归一…