未来望远镜 | 联邦学习之横向联邦平均算法

《未来望远镜——联邦学习系列》上一期对联邦学习的基础概念进行了简单介绍,本文重点介绍横向联邦学习的代表方法——联邦平均算法。联邦平均算法[1][2]是联邦学习的开山之作,也是入门联邦学习的首读且必读篇目。本文通过梯度平均算法引出联邦平均算法,辅助理解联邦平均算法的精髓,从而更好地理解横向联邦学习。

梯度平均算法首先在本地计算各个参与方模型参数的梯度(多元函数的梯度由多元函数对每个变量的偏导数组成),然后将梯度上传至服务器,接着服务器进行梯度的聚合,最后将聚合后的梯度下发给各个参与方,此时各个参与方基于聚合后的梯度执行一次梯度下降进行模型参数的更新。梯度平均算法的具体步骤如下:

梯度平均算法每计算一次梯度,便进行一次通信,导致通信开销过大,有些参与方网络带宽可能较小,且网络连接不稳定,因此其不太适用于联邦学习的场景。为了解决此问题,谷歌的研究团队提出联邦平均算法[1][2],其先在本地进行一次或多次参数的更新(即在本地执行一次或多次梯度下降),然后将更新后的参数上传至服务器,接着服务器进行参数的聚合,最后将聚合后的参数下发至各个参与方。联邦平均算法的具体步骤如下:

[1] McMahan B, Moore E, Ramage D, et al. Communication-efficient learning of deep networks from decentralized data[C]//Artificial intelligence and statistics. PMLR, 2017: 1273-1282.

[2] McMahan H B, Moore E, Ramage D, et al. Federated learning of deep networks using model averaging[J]. arXiv preprint arXiv:1602.05629, 2016, 2.

[3] 杨强,刘洋,程勇等著. 联邦学习. 北京: 电子工业出版社. 2020.4

[4]联邦学习:技术的角度讲解(中文). 王树森. B站

本文根据参考文献[1][2][3][4]理解总结,主要介绍梯度平均算法和联邦平均算法最朴素的核心思想,没有展开介绍具体细节,比如进行联邦学习时每次需要随机选择一些客户端等,若想进一步了解,可以参考原始论文[1][2]。如有描述不当或者错误的地方,敬请大家批评指正!