读这篇文章更主要的是对联邦学习有更多的了解。
这篇文章中主要解决了一个问题,就是 “client-drift” issue。
联邦学习的经典算法是 FedAvg。
在联邦学习中,有两个主要的问题
(1) data heterogeneity 数据异构性,每个训练节点上的训练数据并不是独立同分布的
(2) client unreliability.
client-drift 不仅会降低模型的性能,而且会增加通信的轮数
与FedDistill和FedGen不同,我们不需要从客户端传输敏感信息(标签或logits信息),并且客户端和服务器之间的通信仅涉及模型而没有任何其他敏感信息。我们的系统与许多加密算法兼容。
本文提的方法,对client本地模型训练时进行正则化。就可以限制本地训练过程中的飘逸情况。
知识蒸馏是利用一个教师模型训练学生模型。
教师模型,由 server 端最近保存的历史上M个全局模型聚合而成,聚合的方式也很粗暴,采用的求平均策略。这样得到的模型称为 “global knowledge” 将参数记为 w t ‾ \overline{w_t} wt
为什么选择使用历史全局模型进行聚合呢?他说训练的参与者较少的时候,全局模型的性能可能会波动,因此使用了历史全局模型进行聚合得到了教师模型
client节点本地训练
Optimizing the additional KL divergence loss between the outputs of global model wt and local model w helps the global model to transfer its knowledge to the local model.
优化全局模型 wt 和局部模型 w 的输出之间的额外 KL 散度损失有助于全局模型将其知识转移到局部模型。
得到结果 w t + 1 k w_{t+1}^k wt+1k k是client的编号,t+1是训练轮次。然后将训练结果发送给server
这就是这篇文章的思想