去中心化联邦学习是一种保护用户隐私的分散式机器学习方法。与集中式联邦学习相比,去中心化联邦学习更加注重保护用户数据隐私,同时也更具有扩展性和健壮性。
在去中心化联邦学习中,每个设备都使用本地数据进行模型训练,并将模型更新发送给周围的邻居设备。这些邻居设备可以接受更新并根据其自身的本地数据进行模型训练。该过程反复执行多次,直到所有设备的模型达到收敛状态。
相较于其他的联邦学习方式,去中心化联邦学习不需要集中式服务器来协调设备之间的通信,因此极大地减少了通信开销和单点故障风险。
算法公式
假设有nnn个设备D1,D2,...,DnD_1, D_2, ..., D_nD1,D2,...,Dn共同参与联邦学习任务。我们的目标是学习一个全局模型θ\thetaθ,使得每个设备iii都能够使用本地数据进行模型推理。
在去中心化联邦学习中,首先每个设备都初始化一个本地模型θi\theta_iθi。每一轮迭代由以下步骤组成:
选择一个随机子集St⊆1,2,...,nS_t \subseteq {1,2,...,n}St⊆1,2,...,n作为通信的设备组。
每个设备i∈Sti \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∈Sti \in S_ti∈St,将梯度∇θiJ(θi)\nabla_{\theta_i} J(\theta_i)∇θiJ(θi)发送给所有邻居设备j∈Nij \in N_ij∈Ni,其中NiN_iNi表示设备iii的邻居设备集合。
对于每个设备iii,更新本地模型θi\theta_iθi,得到新模型θit+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η是学习率。
直到所有设备的模型θ1t+1,θ2t+1,...,θnt+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》
以上论文均对去中心化联邦学习进行了较为详细的研究和介绍,可以作为进一步了解该领域的参考。