文章目录
- 前言
- 一、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 系统会越来越注重模型更新的稳定性,全局模型的更新幅度逐渐减小,直至模型在最优解附近收敛。
⑤温度更新与学习率调整:模拟退火的温度 𝑇会随着训练过程不断更新,通常是逐步降低。学习率 𝜂𝑡也可以根据模型的收敛情况进行调整,以确保模型在训练的不同阶段有适当的更新步长。