前言
几种异步的方法:
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 通过对比客户端当前模型与全局模型及其历史模型,减少这种偏差:
对比损