Federated learning client selection algorithm based on gradient similarity阅读

基于梯度相似性的联邦学习客户端选择算法

  • Abstract 摘要
  • introduction
      • **背景**
      • **目的**
      • **结论**
      • **结果**
      • **讨论**
      • **思路**

链接:https://link.springer.com/article/10.1007/s10586-024-04846-0
三区

Abstract 摘要

联邦学习(FL)是一种创新的机器学习方法,终端设备在中央服务器协调下共同训练全局模型,解决了数据隐私和数据孤岛问题,而无需将数据传输到中央服务器。然而,在联邦学习中,客户端数据的异质性显著影响了 FL 的性能。为了解决模型精度低和收敛速度慢的问题,提出了一种基于梯度相似性的客户端选择算法(FedGSCS)。该算法通过比较客户端梯度与平均梯度之间的相似性来选择客户端,优先选择能够加速模型聚合以促进模型收敛的客户端。在 MNIST、FEMNIST 和莎士比亚数据集上的实验表明,与 Federated Averaging(FedAvg)算法、选择损失最高的客户端的 Power-of-Choice 算法以及基于多样客户端选择的联邦平均(DivFL)算法相比,FedGSCS 将通信轮数减少了最多 80%,并提高了最多 16.38%的准确性。

introduction

随着人工智能的快速发展,每天从各种移动设备和物联网(IoT)设备中生成数以万计的数据点[1]。利用这些数据可以帮助我们构建更大、更复杂的神经网络模型,从而提高模型的准确性。然而,在传统的分布式机器学习中,设备上的数据需要上传到中央服务器进行复杂的模型训练,涉及数百万个参数。但在实际场景中,由于数据隐私方面的担忧[2],各方通常不会与其他方共享私有数据,这可能导致数据孤岛问题。在这种情况下,传统的机器学习技术变得不再适用。
为了解决这个问题,Google 提出了联邦学习(FL)[3]。在保护用户隐私的前提下,该方法通过中央服务器协调参与者,利用各自的本地数据集进行联合训练,从而形成增强的全局模型。联邦学习技术通过绕过直接将数据上传到中央服务器的方式,有效保护了数据隐私。因此,联邦学习在医疗行业[4]、智慧城市[5]、智能交通[6]等多个领域得到了越来越广泛的应用。
尽管在联邦学习方面取得了显著进展以解决数据隐私和数据孤岛问题,但仍存在若干技术挑战。移动设备面临设备状态、带宽和网络连接等方面的限制,使得通信成本成为联邦学习(FL)环境中的瓶颈。此外,中央服务器必须通过学习本地数据样本来更新全局模型。FL 客户端通常从各种来源收集数据、使用不同的工具并在不同的环境中运行,导致非独立同分布(non-IID)数据。这种数据异质性会对 FL 系统的性能和收敛性产生严重影响 [7, 8]。为了缓解这些问题,已经提出了各种优化策略。一些方法侧重于通过引入约束修改本地模型更新过程 [9, 10],而另一些方法则通过引入公共数据集 [11, 12] 或使用控制变量 [13] 来平衡客户端差异。然而,这些方法往往忽视了数据异质性对全局模型性能的影响。 通常,在模型聚合过程中,所有客户端都会被同等对待,而不考虑它们的具体数据特性。这种做法不仅增加了通信成本,还可能影响全局模型的性能和泛化能力。
为了解决 Federated Averaging(FedAvg)算法在非 IID 数据场景下的性能退化问题,Sattler 等人[14]引入了 CFL 框架。该框架表明,客户端梯度之间的余弦相似度可以有效地指示两个客户端是否具有相同的数据生成分布。实验结果表明,当客户端数据表现出聚类结构时,CFL 框架显著提高了分类准确率,并在困惑度方面优于传统的 FL 方法。Palihawadana 等人[15]还提出了 FedSim 算法,该算法利用余弦相似度将 FL 模型聚合分为两个阶段:先进行局部聚合,再对具有相似梯度的客户端进行全局聚合。这种策略减少了方差,增强了全局模型的稳定性和覆盖率。进一步的实验结果证实,使用余弦相似度衡量潜在客户端的相似性可以显著提高模型性能和稳定性。此外,Marnissi 等人[16]引入了一种基于梯度范数重要性的设备选择策略。 **基于这一理论和实验基础,本文提出了一种基于梯度相似度的联邦学习客户端选择方法。该方法旨在通过优先选择其梯度与平均梯度具有更高余弦相似度的客户端来提升联邦学习性能。**具体而言,在每次模型聚合之前,会从每个客户端上传的梯度中计算出平均梯度。这一步骤加快了收敛速度,并减少了非 IID 数据对全局模型的影响。随后,使用余弦相似度来衡量平均梯度与每个客户端梯度之间的相似度。基于这种相似度度量,选择能够更有效地促进模型收敛的客户端。通过智能选择客户端,该算法不仅在图像分类和文本预测任务中提高了模型质量,还加快了模型的收敛速度。本文的主要贡献如下:
本文提出了一种新的客户端选择算法,名为 FedGSCS。该算法旨在通过基于客户端梯度与均值梯度之间的余弦相似度选择客户端,从而提高 FL 全局模型的准确性和收敛速度。该算法的主要目标是在聚合全局模型之前,利用余弦相似度筛选出低质量的客户端,以提高整体性能。由于客户端之间数据异质性存在差异,FedGSCS 算法巧妙地利用客户端梯度与平均梯度之间的余弦相似度,战略性地选择客户端,从而丰富所选客户端数据的多样性。在 MNIST、FEMNIST 和莎士比亚数据集上的实验表明,与 Federated Averaging(FedAvg)、基于最高损失选择客户端的 Power-of-Choice 算法以及基于多样客户端选择的 Federated Averaging(DivFL)相比,采用 FedGSCS 可以将 FL 训练通信轮数最多减少 80%,并提高准确率高达 16.38%。

在这里插入图片描述

背景

联邦学习(FL)通过终端设备协作训练全局模型,解决了数据隐私和孤岛问题,但客户端数据的异构性显著影响模型性能。传统方法如联邦平均算法(FedAvg)在非独立同分布(non-IID)数据下存在收敛慢、准确率低的问题。现有客户端选择策略(如Power-of-Choice、DivFL)未充分利用梯度相似性优化选择过程,导致通信效率和模型性能受限。

目的

提出一种基于梯度相似性的客户端选择算法(FedGSCS),通过筛选与全局梯度相似性高的客户端参与聚合,提升模型在非IID数据下的收敛速度和准确率,同时减少通信开销。

结论

  1. 性能优势:FedGSCS在MNIST、FEMNIST和Shakespeare数据集上,较基线算法(FedAvg、Power-of-Choice、DivFL)准确率提升最高达16.38%,通信轮次减少最多80%。
  2. 有效性验证:梯度相似性选择策略有效筛选高贡献客户端,在非IID场景中显著优于随机选择和基于损失的选择方法。
  3. 鲁棒性:在不同数据分布下均表现稳定,适用于图像分类和文本预测任务。

结果

  1. 准确率对比
    • MNIST:FedGSCS在Case 1非IID场景中准确率达90.52%,优于FedAvg(88.08%)和DivFL(89.16%)。
    • FEMNIST:Case 1场景下准确率提升14.28%(从80.71%到94.99%)。
    • Shakespeare:Case 1场景中准确率达40.44%,较Power-of-Choice(24.06%)提升显著。
  2. 通信效率
    • MNIST:ToA@0.9-Case 2场景中通信轮次减少41.03%(从82轮降至69轮)。
    • Shakespeare:ToA@0.4-Case 1场景中仅需33轮,而Power-of-Choice未达标。

讨论

  1. 梯度相似性的作用:通过余弦相似性量化客户端与全局梯度的一致性,有效过滤低贡献客户端,加速模型收敛。
  2. 非IID数据适应性:在数据分布差异较大的场景(如β=0.5的Shakespeare数据集)中,FedGSCS仍保持较高准确率,验证了其鲁棒性。
  3. 局限性:未考虑设备资源异构性(如计算能力、能耗),未来需结合资源感知策略优化选择过程。

思路

  1. 梯度平均计算:服务器计算所有客户端梯度的平均值 g t = 1 K ∑ i = 1 K g i t g^t = \frac{1}{K}\sum_{i=1}^K g_i^t gt=K1i=1Kgit,作为全局优化方向。
  2. 余弦相似性度量:通过公式 c o s k t = ⟨ g t , g k t ⟩ ∥ g t ∥ ∥ g k t ∥ cos_k^t = \frac{\langle g^t, g_k^t \rangle}{\|g^t\| \|g_k^t\|} coskt=gt∥∥gktgt,gkt 量化客户端梯度与全局梯度的相似性。
  3. Top-P客户端选择:按相似性排序,选择前P个客户端参与聚合,提升模型更新质量。

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

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

相关文章

【测试工具】如何使用 burp pro 自定义一个拦截器插件

在 Burp Suite 中,你可以使用 Burp Extender 编写自定义拦截器插件,以拦截并修改 HTTP 请求或响应。Burp Suite 支持 Java 和 Python (Jython) 作为扩展开发语言。以下是一个完整的流程,介绍如何创建一个 Burp 插件来拦截请求并进行自定义处理…

网络编程的概念&作用

网络编程是什么? 想象一下,你和朋友在不同的房间里,你们想互相传递纸条聊天。网络编程就像是编写一套规则,让计算机能够通过网络(比如互联网)互相传递信息。这些信息可以是文字、图片、视频,甚…

航天军工与金融行业 UE/UI 设计:跨越领域的体验革新之道

在数字化时代,用户体验(UE)和用户界面(UI)设计成为众多行业提升竞争力的关键因素。航天军工与金融行业虽业务性质差异巨大,但在 UE/UI 设计方面却面临着一些相似挑战,同时也在各自的探索中展现出…

【Git】--- 分支管理

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: Git 本篇博客我们来介绍Git的一个重要功能之一 ---- 分支。我们将讲解关于分支的各种操作,以及如何帮助我们进行开发。 🏠 理解分支…

纯血鸿蒙:中国操作系统自主创新的里程碑

引言:破局者登场 2024 年 10 月,搭载纯血鸿蒙操作系统(HarmonyOS NEXT)的华为 Mate 70 系列正式发布,首日预约量突破 330 万。这场现象级热度的背后,不仅是消费者对硬件创新的期待,更是中国科技…

二造考试的备考过程中如何保持良好的心态?

在二级造价师考试的备考过程中,保持良好的心态至关重要,以下是一些有效的方法: 树立正确的考试观念 )认识到二级造价师考试是职业生涯中的一个重要环节,但不是唯一的决定因素。把它看作是提升自己专业能力、丰富知识储备的机会&am…

Vue3前端开发:组件化设计与状态管理

Vue3前端开发:组件化设计与状态管理 一、Vue3组件化设计 组件基本概念与特点 是一款流行的JavaScript框架,它支持组件化设计,这意味着我们可以将页面分解成多个独立的组件,每个组件负责一部分功能,通过组件的嵌套和复用…

动手学深度学习11.9. Adadelta-笔记练习(PyTorch)

以下内容为结合李沐老师的课程和教材补充的学习笔记,以及对课后练习的一些思考,自留回顾,也供同学之人交流参考。 本节课程地址:72 优化算法【动手学深度学习v2】_哔哩哔哩_bilibili 本节教材地址:11.9. Adadelta —…

Android Audio基础(13)——audiomixer

在 Android 平台上,音频混合器 AudioMixer 主要用在 AudioFlinger 里,将多路音频源数据混音(包括混音、音量处理、重采样及处理声道等)。位于 framework 的音频处理模库 libaudioprocessing(frameworks/av/media/libau…

【React】使用Swiper报错`Swiper` needs at least one child

问题 聊天页面的表情面板&#xff0c;滑动效果使用了ant design mobile的Swiper。 原代码中&#xff0c;Swiper 组件在 isShow 为 false 时渲染的是 <></>&#xff08;空元素&#xff09;&#xff0c;控制台警告Swiper needs at least one child&#xff0c;Swip…

Matlab教程001:软件介绍和界面使用

1.1 软件介绍 1.1.1 Matlab的介绍 MATLAB&#xff08;MATrix LABoratory&#xff09;是一款由 MathWorks 公司开发的高级编程语言和交互式环境&#xff0c;广泛用于 科学计算、数据分析、机器学习、工程建模、仿真和信号处理 等领域。 1.1.2 主要应用领域 数据分析与可视化…

蓝桥杯算法实战分享:算法进阶之路与实战技巧

引言 蓝桥杯作为国内极具影响力的程序设计竞赛&#xff0c;为众多编程爱好者和专业人才提供了展示自我的舞台。参与蓝桥杯不仅能检验自身编程水平&#xff0c;还能拓宽技术视野&#xff0c;为未来职业发展积累宝贵经验。本文将结合历年真题与参赛经验&#xff0c;全面分享蓝桥…

Android Compose 层叠布局(ZStack、Surface)源码深度剖析(十三)

Android Compose 层叠布局&#xff08;ZStack、Surface&#xff09;源码深度剖析 一、引言 在 Android 应用开发领域&#xff0c;用户界面&#xff08;UI&#xff09;的设计与实现一直是至关重要的环节。随着技术的不断演进&#xff0c;Android Compose 作为一种全新的声明式…

MongoDB 面试备战指南

MongoDB 面试备战指南 一、基础概念 1. MongoDB是什么类型的数据库&#xff1f;和关系型数据库有什么区别&#xff1f; 答案&#xff1a; MongoDB是文档型NoSQL数据库&#xff0c;核心区别&#xff1a; 数据模型&#xff1a;存储JSON-like文档&#xff08;动态schema&#xf…

毫米波雷达标定(2)

1. 前言 前面文章中介绍了产线上毫米波雷达的标定原理和流程,这篇文章则主要介绍其在线标定方法。相对于产线标定,在线标定具备使用自然场景而不是依赖特定标靶的优点,但因此其标定精度会相对差一点。在线标定一般应用于售出产品的维护场景,如果其标定结果精度可以满足使用…

Linux fority source和__builtin_xxx

这段代码是用于启用和配置 GCC/Clang 的 Fortify Source 安全机制的预处理指令。Fortify Source 主要用于在编译时增强对缓冲区溢出等内存安全问题的检查。以下是对每一部分的详细解释&#xff1a; 1. 最外层条件编译 # if CONFIG_FORTIFY_SOURCE > 0目的&#xff1a;检查…

SQL GROUP BY 自定义排序规则

在 SQL 中&#xff0c;GROUP BY 子句用于将结果集按一个或多个列进行分组。默认情况下&#xff0c;GROUP BY 会按照列的自然顺序&#xff08;如字母顺序或数字顺序&#xff09;进行排序。如果你需要按照自定义的排序规则对结果进行分组&#xff0c;可以使用 ORDER BY 子句结合 …

语言模型理论基础-持续更新-思路清晰

1.预训练 相似的任务A、B&#xff0c;任务A已经用大数据完成了训练&#xff0c;得到模型A。 我们利用-特征提取模型的-“浅层参数通用”的特性&#xff0c;使用模型A的浅层参数&#xff0c;其他参数再通过任务B去训练&#xff08;微调&#xff09;。 2.统计语言模型 通过条件…

ResNet与注意力机制:深度学习中的强强联合

引言 在深度学习领域&#xff0c;卷积神经网络&#xff08;CNN&#xff09;一直是图像处理任务的主流架构。然而&#xff0c;随着网络深度的增加&#xff0c;梯度消失和梯度爆炸问题逐渐显现&#xff0c;限制了网络的性能。为了解决这一问题&#xff0c;ResNet&#xff08;残差…

【C++】——C++11新特性

目录 前言 1.初始化列表 2.std::initializer_list 3.auto 4.decltype 5.nullptr 6.左值引用和右值引用 6.1右值引用的真面目 6.2左值引用和右值引用比较 6.3右值引用的意义 6.3.1移动构造 6.4万能引用 6.5完美转发——forward 结语 前言 C&#xff0c;这门在系统…