【Day20240924】联邦学习中的方法 改进

文章目录

  • 前言
  • 一、FedAvg
  • 二、FedProx
  • 三、MOON
  • 四、FedDyn
  • 五、FedAsync
  • 六、PORT
  • 七、ASO-Fed
  • 八、FedBuff
  • 九、FedSA


前言

几种异步的方法:
FedAsync
PORT
ASO-Fed
FedBuff
FedSA
几种同步的方法:
FedAvg
FedProx
MOON
FedDyn

一、FedAvg

FedAvg基本步骤
①全局模型初始化:服务器初始化一个全局模型。
②客户端选择:在每一轮中,服务器随机选择一部分客户端(而非所有客户端)参与训练。
③本地训练:被选中的客户端在各自的本地数据集上运行若干轮的模型训练,更新模型参数。
④上传更新:各客户端将训练后的模型参数上传到服务器。
⑤参数聚合:服务器对所有客户端上传的模型参数进行加权平均(通常根据客户端的数据量进行加权),从而得到更新后的全局模型。
⑥广播全局模型:服务器将更新后的全局模型发送回客户端,进入下一轮训练

二、FedProx

FedProx是 FedAvg 的一种改进版本,专门设计用于处理联邦学习中的异构性问题(如各客户端之间的计算能力和数据分布差异)。FedProx 通过引入一个“近端正则化项”(Proximal term)来限制客户端模型更新的幅度,确保客户端的本地模型不偏离全局模型过多,从而**减轻客户端异质性对全局模型收敛的影响。**其目标是在本地优化目标函数时,增加一个与全局模型的差距度量,从而减少模型更新的波动
FedProx 的优化目标函数为:
在这里插入图片描述在这里插入图片描述
FedProx主要步骤
①全局模型初始化:与 FedAvg 类似,服务器初始化一个全局模型。
②客户端选择:在每一轮中,服务器随机选择部分客户端参与训练。
③本地训练各客户端在本地数据上最小化带有正则化项的损失函数,确保本地模型不会偏离全局模型过多
④上传更新:客户端将更新后的模型参数上传到服务器。
⑤参数聚合:服务器对客户端上传的模型参数进行加权平均,更新全局模型。
⑥广播全局模型:服务器将更新后的全局模型广播给客户端,进入下一轮。
FedProx 则是对 FedAvg 的改进版本,尤其适用于具有异构数据和客户端差异的场景。它通过引入正则化项来缓解客户端异质性对全局模型收敛的影响,更加适合实际中的异构联邦学习场景。

三、MOON

MOON(Model Contrastive Federated Learning,模型对比联邦学习)是一种针对联邦学习中的非独立同分布(Non-IID) 数据问题的学习方法,由 Li, He, 和 Song 于 2021 年提出。MOON 通过引入对比学习(contrastive learning)来改善联邦学习的性能,尤其是在客户端之间数据分布差异较大的情况下。
MOON 的主要目标是通过对比学习机制,使得客户端在本地训练过程中保持对全局模型的学习方向,避免各客户端的模型偏离全局模型过多,从而提高全局模型的泛化能力。在传统的联邦学习方法中(如 FedAvg),客户端本地数据的差异会导致本地模型和全局模型之间的差异增大,从而影响全局模型的训练效果。MOON 通过对比客户端当前模型与全局模型及其历史模型,减少这种偏差
对比损失===>在本地训练中,MOON 引入了 对比损失函数 来比较当前本地模型和全局模型的输出,目的是使本地模型的输出与全局模型的输出保持一致。具体而言,MOON 通过最大化当前模型与全局模型的相似性,最小化当前模型与其历史模型的相似性,以此来保持各个客户端的模型更新方向与全局模型一致。

四、FedDyn

FedDyn 通过在本地优化目标中加入一个 动态正则化项 来解决这个问题。这一正则化项基于客户端的过去训练历史和全局模型的状态,能够动态调整各客户端的本地优化目标,使其与全局优化目标更加一致,从而减少由于数据异构性导致的全局模型偏离。

FedDyn 的主要步骤

①全局模型初始化:服务器初始化一个全局模型,并广播给所有客户端。
②动态正则化项:每个客户端接收到全局模型后,会根据历史更新情况计算一个动态正则化项。该正则化项会引导客户端的本地模型更新与全局模型保持一致,从而减少由于数据差异导致的偏差。
FedDyn 的本地损失函数形式为:在这里插入图片描述
在这里插入图片描述
它和MOON的主要区别在于 正则化机制的不同:FedDyn 是基于动态正则化项的,MOON 是基于对比学习的。

五、FedAsync

①全局模型初始化:服务器初始化全局模型 𝑤𝑡,并将其发送给客户端。
②异步本地训练:每个客户端根据自己的速度独立进行本地训练,并在完成本地训练后,将更新后的本地模型 𝑤𝑖发送回服务器。
③异步全局模型更新:服务器在接收到任意客户端的模型更新后,不需要等待其他客户端完成训练,而是立即根据一个 衰减系数 来对全局模型进行更新。更新公式为在这里插入图片描述在这里插入图片描述
④广播更新后的全局模型:服务器在完成全局模型更新后,将新的全局模型发送回客户端,客户端可以根据自己的节奏继续下一轮本地训练。
局限性
1、模型收敛问题:异步更新虽然提高了效率,但可能导致全局模型的更新方向不一致,增加了模型不稳定的风险。如果某些客户端的数据分布与其他客户端差异较大,异步更新可能会导致全局模型偏离最优解。(所以现在很多,在异步的基础上再对模型更新方向的一致性加以控制)

2、过度依赖衰减系数:FedAsync 的收敛性依赖于衰减系数 𝜂𝑡的设置。如果衰减系数设置不当,可能导致模型收敛速度过慢或发散。因此,需要仔细调整该系数,以保证全局模型的稳定更新。

3、可能的客户端不公平性:由于客户端异步上传更新,更新频率较快的客户端可能对全局模型贡献更大,而更新频率较慢的客户端影响较小,可能导致某些客户端的贡献被忽略(确实,所以很多现在设置阈值)

六、PORT

PORT(Periodic Averaging and Reordering of Training)是 Su 和 Li 在 2022 年提出的一种联邦学习优化算法,主要针对客户端之间的 异构性(Non-IID 数据和计算能力差异) 问题。PORT 通过引入 周期性模型聚合 和 训练任务重排序 来改善联邦学习的效率和全局模型的性能,特别是在客户端计算资源不均衡和数据分布不均匀的环境中。

周期性模型聚合(Periodic Averaging):在传统的联邦学习方法(如 FedAvg)中,客户端在每一轮本地训练完成后都会上传更新,服务器进行模型聚合。而 PORT 采用了 周期性聚合 的方式,即客户端在本地多轮训练后再进行上传。这种方式减少了通信频率,适合通信带宽有限的场景。

任务重排序(Reordering of Training):PORT 在客户端本地训练时,引入了一种 重排序机制,即根据客户端的任务复杂度和计算能力,调整本地任务的优先级和顺序,以提高训练的效率。这种重排序机制可以在计算能力较低的客户端中减少不必要的计算资源浪费,从而提高整体性能。

PORT 的几个步骤:

①全局模型初始化:服务器初始化一个全局模型 𝑤0,并将其分发给客户端。

②本地训练:每个客户端接收到全局模型后,开始在本地数据集上进行多轮次的模型训练。与传统联邦学习算法不同,PORT 的客户端不会在每一轮训练后立即上传模型,而是根据一个 周期(periodic interval) 完成若干轮次的训练后才上传更新。

③任务重排序:客户端在进行本地训练时,会动态调整任务的顺序,根据任务的优先级、复杂性和计算资源进行重排序。具体来说,客户端会根据不同数据集的分布特性和任务需求来确定哪些数据块需要优先处理,从而提高模型的训练效率。

④周期性聚合:每当客户端完成一个周期的本地训练后,它会将模型更新上传到服务器,服务器根据所有客户端的更新进行模型聚合。服务器的全局模型通过这些周期性上传和聚合进行更新。

⑤重新广播全局模型:服务器完成模型聚合后,将更新后的全局模型发送给所有客户端,客户端根据新的全局模型继续进行下一周期的本地训练。

PORT 的局限性
延迟上传的潜在风险:虽然周期性上传减少了通信成本,但它也意味着客户端本地训练的结果在上传时可能已经过时,尤其是在数据变化较快的环境中。如果客户端的模型训练与全局模型之间存在较大差异,周期性聚合可能导致全局模型更新不及时,影响全局模型的收敛效果。

重排序机制的复杂性:任务重排序机制虽然提高了客户端的本地训练效率,但增加了系统的复杂性。在实际应用中,需要合理设计重排序算法,以确保任务分配的公平性和效率,这可能带来额外的实现难度。

对周期参数的依赖:PORT 的性能很大程度上依赖于周期参数的设置。如果周期设置过长,客户端的本地模型更新可能会偏离全局模型太远;如果周期设置过短,则无法充分发挥减少通信的优势。因此,周期参数需要根据具体场景进行合理调节。

七、ASO-Fed

ASO-Fed(Asynchronous Stochastic Optimization Federated Learning)是一种基于 异步随机优化 的联邦学习算法,由 Chen 等人在 2020 年提出。它的主要目的是通过 异步更新 和 随机优化策略 来解决联邦学习中的 通信延迟、客户端异构性 以及 Non-IID 数据分布 等问题。

ASO-Fed 通过以下步骤进行异步联邦学习

①全局模型初始化:服务器初始化全局模型参数 𝑤0,并将其分发给所有客户端。

②异步本地训练:每个客户端根据自身的计算能力和数据分布,独立进行本地模型训练。客户端不需要等待其他客户端,而是根据自身的进度,在本地数据集上进行多轮训练。

③本地更新上传:当客户端完成指定轮次的本地训练后,它会将更新后的模型参数上传至服务器。服务器不必等待所有客户端完成训练,只要收到某个客户端的更新,就立即更新全局模型。

④全局模型更新:服务器根据接收到的客户端更新,使用 异步优化策略 更新全局模型。ASO-Fed 的全局模型更新公式为:在这里插入图片描述
在这里插入图片描述
⑤随机优化与异步更新:为了减少客户端之间的异构性对全局模型的影响,ASO-Fed 采用了 随机优化 的策略,确保全局模型更新能够适应客户端之间的数据差异。同时,异步更新机制保证了即使某些客户端的训练速度较慢,也不会影响全局模型的更新频率。

⑥重新广播全局模型:服务器更新全局模型后,将其重新发送给所有客户端,客户端使用更新后的全局模型继续本地训练。

随机优化的核心机制

**随机客户端选择:**在每一轮训练中,服务器并不从所有客户端中收集模型更新,而是随机选择一部分客户端。这种随机选择策略能够避免某些客户端由于计算资源较差或者网络延迟较大,导致服务器更新速度变慢。

随机选择客户端 可以减少客户端之间的异构性影响,因为它确保了不同客户端的数据特性被随机融入全局模型中,降低了因为某些客户端的更新频率过高而导致全局模型偏离的可能性。

与传统的同步方法(如 FedAvg)相比,这种随机选择策略使得 ASO-Fed 在每一轮只利用部分客户端的更新,大大降低了通信负担。

异步更新中的随机模型优化

在异步联邦学习中,服务器在接收到客户端的更新时,可以立即进行全局模型的更新。但为了防止模型过度偏向某些客户端的数据,ASO-Fed 引入了 随机优化策略,在更新时进行随机扰动,避免全局模型向单一客户端的数据方向过度偏移。
在具体实现中,这种随机优化可以表现为在每次更新时,引入噪声或随机梯度,使得模型更新更加稳健。例如,在服务器更新全局模型时,公式可以表现为:
在这里插入图片描述在这里插入图片描述

随机梯度下降(SGD)优化:

随机梯度下降(SGD) 是随机优化中常用的优化方法,尤其是在非独立同分布(Non-IID)数据环境下,SGD 可以有效处理数据异质性问题。在 ASO-Fed 中,客户端本地的模型训练常采用随机梯度下降,即每个客户端在本地数据集上使用一个小批次的数据来计算梯度,从而减少计算开销并提高效率。

通过引入 SGD,本地模型训练不会因为所有数据差异过大而导致训练过于耗时或梯度波动过大。同时,SGD 还能在全局模型更新中起到平衡各客户端数据分布的作用,使全局模型更具鲁棒性。

动态调整学习率:

在 ASO-Fed 中,学习率通常是 动态调整 的,以适应不同阶段的模型训练。随着训练过程的进行,服务器可以根据全局模型的收敛情况,调整学习率 𝜂𝑡 ,从而确保模型更新不会过快或过慢。

具体来说,在早期阶段,较大的学习率可以帮助模型快速收敛;而在后期阶段,较小的学习率可以防止模型震荡或偏离最优解。这种动态调整学习率的策略,也是一种随机优化中的重要手段。

随机梯度噪声(Gradient Noise Injection):
在 ASO-Fed 中,有时会在本地或全局模型更新时引入随机噪声,用来增强模型的泛化能力。通过在每次更新时加入一些小的噪声,可以防止模型过拟合某些客户端的数据,特别是当客户端的数据分布不均匀时,噪声注入能有效提升全局模型的稳定性。
随机噪声的加入主要是为了确保模型不会因为某些客户端的更新频率过高而陷入局部最优,从而提升模型的收敛效果。

八、FedBuff

FedBuff 的创新点是引入了一个 缓冲区(buffer) 机制。服务器不会立即更新全局模型,而是将客户端的更新存储在缓冲区中,积累足够的更新后再一次性更新全局模型。这种策略能够在保证异步更新灵活性的同时,减少全局模型的震荡,提升模型的收敛性和鲁棒性。

FedBuff 的工作机制
①全局模型初始化:服务器初始化一个全局模型 𝑤𝑡 ,并将其发送给客户端。
②异步本地训练:每个客户端接收到全局模型后,在自己的本地数据集上进行训练,训练完成后,将更新后的模型参数发送回服务器。客户端训练是异步进行的,即每个客户端根据自己的计算能力和数据大小,独立完成训练并上传模型。
③客户端更新存入缓冲区:当服务器接收到客户端的更新时,服务器不会立即更新全局模型,而是将这些更新存储到一个 缓冲区(buffer) 中。缓冲区中存储的更新包括每个客户端的局部模型参数或梯度信息。
④定期聚合缓冲区更新:当缓冲区中的更新达到预定的 阈值(buffer size) 或经过一段时间后,服务器将从缓冲区中提取更新,并执行一次 聚合操作 来更新全局模型。这个过程类似于同步联邦学习中的参数聚合,但在 FedBuff 中,它是在异步收集了足够多的更新后再进行的。
更新聚合的方式通常采用加权平均,将缓冲区中不同客户端的更新加权合并。
⑤全局模型广播:全局模型更新后,服务器将更新后的模型广播给所有客户端,客户端可以继续在新模型的基础上进行本地训练。

九、FedSA

在联邦学习中,尤其是当客户端的数据分布存在明显差异时(即 Non-IID 数据),各客户端的本地模型更新可能会偏离全局模型的最优方向,导致全局模型收敛困难。为了应对这种不确定性,FedSA 借鉴了模拟退火的思想,通过逐步减少系统的“温度”来控制模型更新的幅度,逐渐减少全局模型的波动,从而使模型更加稳健地收敛到全局最优。

模拟退火 是一种优化算法,常用于解决复杂的优化问题,它通过引入一个逐步降低的“温度”参数,允许在高温状态下进行较大的搜索范围,以避免陷入局部最优解,而随着“温度”降低,搜索范围逐渐缩小,最终收敛到全局最优。

在 FedSA 中,模拟退火的概念被引入到全局模型的聚合过程中,通过调节全局模型的更新权重,使得模型在早期阶段能够灵活适应各客户端的更新,而在后期阶段趋向于稳定和收敛。

FedSA 的工作机制

①全局模型初始化:服务器初始化全局模型参数 𝑤0并分发给客户端,开始第一轮联邦学习。
②异步或同步本地训练:各客户端在接收到全局模型后,利用本地数据集进行本地训练。客户端可以根据自身的资源异步或同步地将更新后的模型上传至服务器。此时,不同客户端的数据分布可能存在较大差异,导致各客户端的模型更新方向不同。
③模拟退火过程中的动态聚合:FedSA 在全局模型聚合时,引入了 模拟退火过程。具体来说,服务器在聚合客户端上传的模型更新时,会根据当前的“温度”动态调整全局模型的更新幅度。温度 𝑇随着时间逐渐降低,模拟退火过程通过如下公式更新全局模型:在这里插入图片描述
在这里插入图片描述
④全局模型的逐步收敛:随着温度 𝑇的逐步降低,FedSA 系统会越来越注重模型更新的稳定性,全局模型的更新幅度逐渐减小,直至模型在最优解附近收敛。
⑤温度更新与学习率调整:模拟退火的温度 𝑇会随着训练过程不断更新,通常是逐步降低。学习率 𝜂𝑡也可以根据模型的收敛情况进行调整,以确保模型在训练的不同阶段有适当的更新步长。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[SAP ABAP] 锁对象

在SAP中使用锁对象,用于避免在数据库中插入或更改数据时出现不一致的情况 1.创建锁对象 数据准备 学校表(ZDBT_SCH_437) 使用事务码SE11创建锁对象 点击"锁对象"单选按钮,输入以E开头的锁定对象的名称,然后点击创建按钮 锁对象名…

QT基础 制作简单登录界面

作业: 1、创建一个新项目,将默认提供的程序都注释上意义 01zy.pro代码 QT core gui # QT表示要引入的类库 core:核心库例如IO操作在该库中 gui:图形化界面库 # 如果要使用其他类库中的相关函数,则需要加对…

如何使用ssm实现基于web的学生就业管理系统的设计与实现+vue

TOC ssm726基于web的学生就业管理系统的设计与实现vue 第1章 绪论 1.1 课题背景 二十一世纪互联网的出现,改变了几千年以来人们的生活,不仅仅是生活物资的丰富,还有精神层次的丰富。在互联网诞生之前,地域位置往往是人们思想上…

努比亚z17努比亚NX563j原厂固件卡刷包下载_刷机ROM固件包下载-原厂ROM固件-安卓刷机固件网

努比亚z17努比亚NX563j原厂固件卡刷包下载_刷机ROM固件包下载-原厂ROM固件-安卓刷机固件网 统版本:官方软件作者:热心网友rom大小:911MB发布日期:2018-12-23 努比亚z17努比亚NX563j原厂固件卡刷包下载_刷机ROM固件包下载-原厂RO…

虚幻引擎游戏保存/加载存档功能

函数名功能Does Save Game Exist检查存档是否存在Load Game from Slot加载存档Save Game to Slot保存存档Delete Game in Slot删除存档 Slot Name 是插槽名字 存档都是通过插槽名字来 读取/加载/检查/删除的 先创建一个SaveGame类 , 这个类里可以存放要保存的数据 , 比如 玩家…

CSS 浏览器兼容问题探讨

目录 非 VIP 用户可前往公众号回复“css”进行免费阅读 浏览器介绍 css 选择器兼容介绍 ie6 微型盒子兼容解决方法 ie6双倍margin div中放入一个img元素导致div高度多出几像素 非 VIP 用户可前往公众号回复“css”进行免费阅读 浏览器介绍 在国内,常见的网页浏览…

华为认证HCIA篇--网络通信基础

大家好呀!我是reload。今天来带大家学习一下华为认证ia篇的网络通信基础部分,偏重一些基础的认识和概念性的东西。如果对网络通信熟悉的小伙伴可以选择跳过,如果是新手或小白的话建议还是看一看,先有个印象,好为后续的…

机器学习:opencv--特征检测

目录 前言 一、 Harris 角点检测 1.基本思想 2.代码实现 二、 SIFT(尺度不变特征变换) 1.代码实现 前言 特征检测是计算机视觉中的一个重要任务,旨在从图像中提取具有辨识度的关键点或区域。这些特征可以用于后续的图像分析、匹配和识别…

25维谛技术面试最常见问题面试经验分享总结(包含一二三面题目+答案)

开头附上工作招聘面试必备问题噢~~包括综合面试题、无领导小组面试题资源文件免费!全文干货。 【免费】25维谛技术面试最常见问题面试经验分享总结(包含一二三面题目答案)资源-CSDN文库https://download.csdn.net/download/m0_72216164/8979…

设计模式之策略设计模式

一、状态设计模式概念 策略模式(Strategy) 是一种行为设计模式, 它能让你定义一系列算法, 并将每种算法分别放入独立的类中, 以使算法的对象能够相互替换。 适用场景 当你想使用对象中各种不同的算法变体, …

【HTTP 和 HTTPS详解】3

HTTP 状态代码 HTTP 状态代码是服务器发送给客户端的三位数字,用于指示客户端请求的结果。它们分为五类:信息性(100-199)、成功(200-299)、重定向(300-399)、客户端错误&#xff08…

算法宝典——二分查找算法

1.认识二分查找 二分查找的时间复杂度:O(logN) 二分查找属于算法中耳熟能详的一类,通常的我们会说只有数组有序才可以使用二分查找,不过这种说法并不完全正确,只要数据具有"二段性"就可以使用二分查找,即我们可以找出一…

贪心的思想

803.区间合并 给定 n 个区间 [li,ri],要求合并所有有交集的区间。 注意如果在端点处相交,也算有交集。 输出合并完成后的区间个数。 例如:[1,3] 和 [2,6] 可以合并为一个区间 [1,6]。 输入格式 第一行包含整数 n。 接下来 n 行&#x…

Unity中的功能解释(数学位置相关和事件)

向量计算 Vector3.Slerp(起点坐标,终点坐标,t),可是从起点坐标以一个圆形轨迹到终点坐标,有那么多条轨迹,那怎么办 Vector3.Slerp 进行的是沿球面插值,因此并不是沿着严格的“圆形…

【CSS】盒子模型

width 宽度 、height 高度 、padding 内边距 、margin 外边距 ( 外边距合并、子元素外边距塌陷问题 )border 边框border-radius 圆角box-shadow 阴影overflow 溢出float 浮动 ( 父元素塌陷问题 ) 盒子模型(Box Model )是指在网页设计中,用于描…

Linux云计算 |【第四阶段】RDBMS1-DAY2

主要内容: 常用函数(函数分类1:单行、分组;函数分类2:字符、数学、日期、流程控制)、分组查询group by、连接查询 一、常用函数 1. 按使用方式分类 ① 单行函数 单行函数(Scalar Functions&…

老古董Lisp实用主义入门教程(12):白日梦先生的白日梦

白日梦先生的白日梦 白日梦先生已经跟着大家一起学Lisp长达两个月零五天! 001 粗鲁先生Lisp再出发002 懒惰先生的Lisp开发流程003 颠倒先生的数学表达式004 完美先生的完美Lisp005 好奇先生用Lisp来探索Lisp006 好奇先生在Lisp的花园里挖呀挖呀挖007 挑剔先生给出…

构建高可用和高防御力的云服务架构第二部分:SLB负载均衡(2/5)

在现代云服务中,负载均衡(Load Balancing)是一种关键技术,用于优化资源利用、最小化响应时间、提高系统的可伸缩性和可靠性。负载均衡器位于客户端和服务器之间,根据预设的策略将请求分发到多个服务器上,以…

如何使用ssm实现基于web的山东红色旅游信息管理系统的设计与实现

TOC ssm716基于web的山东红色旅游信息管理系统的设计与实现jsp 绪论 1.1研究背景 从古到今,信息的录入,存储,检索都受制于社会生产力的发展,不仅仅浪费大量的人力资源还需要浪费大量的社会物资,并且不能长时间的保…