联邦学习依赖于旨在跨去中心化设备或服务器训练机器学习模型的算法,而无需共享原始数据。 三种常用的算法是联邦平均(FedAvg)、联邦随机方差缩减梯度(FedSVRG)和安全聚合协议。 这些方法解决了通信效率、数据异构性和隐私等挑战。
联邦平均 (FedAvg) 是联邦学习的基础算法。 它的工作原理是让客户端(例如,移动设备或服务器)使用随机梯度下降 (SGD) 在其数据上执行本地训练,并将模型更新(例如,权重更改)发送到中央服务器。 服务器平均这些更新以创建全局模型,然后将该模型重新分发给客户端以进行进一步训练。 FedAvg 通过允许多个本地训练周期在同步之前来减少通信开销。 例如,在移动键盘预测中,设备在用户键入数据上进行本地训练,并且仅共享模型更新,而不是数据本身。 但是,FedAvg 在处理非 IID(非独立同分布)数据时会遇到困难,在这种情况下,本地数据集在客户端之间差异很大。
像安全聚合和具有差分隐私的联邦学习 (DP-Fed) 这样的注重隐私的算法增强了数据安全性。 安全聚合使用加密技术来确保服务器无法重建单个客户端更新,从而防止数据泄漏。 例如,Google 的 TensorFlow Federated 实现了这一点以聚合加密的模型更新。 DP-Fed 在训练期间向客户端更新添加噪声,从而确保差分隐私保证。 这在医疗保健应用中至关重要,在医疗保健应用中,患者数据必须保密。 但是,这些方法通常会牺牲隐私来换取模型准确性,因为过多的噪声会降低性能。
优化算法解决了诸如系统异构性(例如,不同的设备能力)和收敛速度之类的挑战。 FedProx 通过在局部目标函数中引入近端项来修改 FedAvg,这限制了局部模型与全局模型的偏差程度。 当设备具有不均匀的计算资源或数据大小时,这可以提高稳定性。 FedAdam 采用 Adam 优化器用于联邦设置,在服务器端聚合期间使用自适应学习率来加速收敛。 例如,在具有不同计算能力的设备的 IoT 网络中,FedAdam 可以动态调整来自较慢或较快节点的更新。 另一种方法是联邦多任务学习,它为每个客户端训练个性化模型,同时利用共享的全局模式,这在个性化推荐等场景中很有用。
这些算法通常在 PySyft 或 Flower 等框架中实现,使开发人员能够试验通信、隐私和准确性之间的权衡。 选择正确的算法取决于应用程序的特定约束,例如数据分布、设备功能和隐私要求。