在联邦学习中,学习率的管理是通过服务器端和客户端策略的结合来实现的,以考虑到去中心化的数据和设备异构性。服务器通常控制模型聚合期间使用的全局学习率,而客户端可以在训练期间调整其局部学习率。例如,在联邦平均 (FedAvg) 中,服务器在组合客户端更新时应用固定的学习率,而各个客户端可以在本地随机梯度下降 (SGD) 期间使用自己的学习率。像 FedAdam 这样的自适应优化方法通过动态调整服务器的学习率(基于历史更新模式)来扩展这一点,类似于集中式 Adam 优化,但专为联邦设置而定制。
一种常见的方法是 FedAvg,其中服务器通过平均模型更新来聚合它们,通常使用 1.0 的学习率(实际上是直接平均)。客户端使用具有固定或可配置学习率的 SGD 执行本地训练。例如,具有更多数据的客户端可能会使用较小的速率来避免超出最小值,而具有稀疏数据的客户端可能会使用较大的速率。 FedProx 在损失函数中引入了一个近端项,以限制局部模型和全局模型之间的差异,通过惩罚大的更新来间接影响有效的学习率。像 FedAdam 这样的自适应服务器端方法跟踪跨轮次的梯度统计信息以调整全局速率,从而改善非 IID 场景中的收敛性。例如,服务器可能会根据更新的方差反向缩放更新,从而减少不稳定客户端贡献的影响。
关键挑战包括处理非 IID 数据和不同的客户端能力。具有倾斜数据分布的客户端可能需要个性化的本地速率,以避免有偏差的更新。一些框架会随着轮次的推移而衰减服务器的全局速率,从而模仿集中的学习率计划。其他框架允许客户端根据其数据集大小设置速率,例如,按样本计数进行缩放。通信约束通常有利于更简单的服务器端策略,因为传输优化器状态(如 Adam 的动量项)会增加开销。实际的实现平衡了这些因素:使用固定的客户端速率来实现简单性,使用自适应服务器速率来实现鲁棒性,以及偶尔进行客户端特定的调整来适应异构环境。例如,计算能力有限的移动设备可能会降低其本地速率以防止噪声更新,而服务器会使用 FedAdam 自适应地抑制不一致的贡献。