去中心化联邦学习是一种保护用户隐私的分散式机器学习方法。与集中式联邦学习相比,去中心化联邦学习更加注重保护用户数据隐私,同时也更具有扩展性和健壮性。
在去中心化联邦学习中,每个设备都使用本地数据进行模型训练,并将模型更新发送给周围的邻居设备。这些邻居设备可以接受更新并根据其自身的本地数据进行模型训练。该过程反复执行多次,直到所有设备的模型达到收敛状态。
相较于其他的联邦学习方式,去中心化联邦学习不需要集中式服务器来协调设备之间的通信,因此极大地减少了通信开销和单点故障风险。
算法公式
假设有 nnn个设备 D1, D2, . . . , Dn D_1, D_2, …, D_nD1,D2,…,Dn共同参与联邦学习任务。我们的目标是学习一个全局模型 θ\thetaθ,使得每个设备 iii都能够使用本地数据进行模型推理。
在去中心化联邦学习中,首先每个设备都初始化一个本地模型 θi \theta_iθi。每一轮迭代由以下步骤组成:
选择一个随机子集 St⊆ 1,2,…,n S_t \subseteq {1,2,…,n}St⊆1,2,…,n作为通信的设备组。
每个设备 i ∈ St i \in S_ti∈St使用本地数据计算梯度 ∇ θ iJ ( θi)\nabla_{\theta_i} J(\theta_i)∇θiJ(θi),其中 J ( θi)J(\theta_i)J(θi)是本地模型 θi \theta_iθi的损失函数。
对于每个设备 i ∈ St i \in S_ti∈St,将梯度 ∇ θ iJ ( θi)\nabla_{\theta_i} J(\theta_i)∇θiJ(θi)发送给所有邻居设备 j ∈ Ni j \in N_ij∈Ni,其中 Ni N_iNi表示设备 iii的邻居设备集合。
对于每个设备 iii,更新本地模型 θi \theta_iθi,得到新模型 θi t + 1= θit− η ⋅ 1 ∣ St∣∑ j ∈ St ∇ θ jJ ( θj)\theta_i^{t+1} = \theta_i^t – \eta \cdot \frac{1}{|S_t|}\sum_{j \in S_t} \nabla_{\theta_j} J(\theta_j)θit+1=θit−η⋅∣St∣1∑j∈St∇θjJ(θj),其中 η\etaη是学习率。
直到所有设备的模型 θ1 t + 1, θ2 t + 1, . . . , θn t + 1 {\theta_1^{t+1},\theta_2^{t+1},…,\theta_n^{t+1}}θ1t+1,θ2t+1,…,θnt+1均更新完毕,进入下一轮迭代。
在去中心化联邦学习中,每个设备只与其邻居设备通信,因此通信开销较小。此外,通过在每轮迭代中随机选择设备组进行通信,可以增加学习过程的随机性和稳定性。但是,由于每个设备的模型更新仅基于其邻居设备的信息,因此可能存在模型发散或不能收敛的问题。
去中心化联邦学习算法的主要优点是对用户隐私具有更好的保护,而且通常比集中式的联邦学习更具有可扩展性和健壮性。
这里提供一些关于去中心化联邦学习的参考资料:
《Communication-Efficient Learning of Deep Networks from Decentralized Data》
《Federated Learning: Strategies for Improving Communication Efficiency》
《Towards Federated Learning at Scale: System Design》
《Decentralized Federated Learning: A Segmented Gossip Approach》
《A Comprehensive Survey on Federated Learning》
《Federated Learning with Non-IID Data》
以上论文均对去中心化联邦学习进行了较为详细的研究和介绍,可以作为进一步了解该领域的参考。