更新时间:2021-12-17 GMT+08:00
分享

联邦汇聚算法

背景信息

联邦汇聚算法主要通过 server收集各个终端上传的本地模型改变量,计算出相应的全局模型改变量。全局模型改变量直接反映了全局模型的收敛速度和效果。本框架主要包含如下三种全局模型改变量的计算方法。

算法1:加权平均

算法原理:server根据各个终端数据量的差异,对反馈的局部模型改变量进行加权,然后平均化处理,以此作为全局模型改变量,从而达到更新全局模型的目的。

算法优势:过程简单,易于实现,适合大部分场景,效果不错。

算法劣势:不适合所有场景,全局模型收敛时间较长,可能会陷入局部最优。

算法2:动量随机梯度下降

算法原理:基于算法1引入带动量的梯度下降机制,即动量随机梯度下降(Stochastic Gradient Descent,SGD)。与常见的模型训练优化器类似,在server端对联邦模型采用“动量SGD”更新机制。计算公式如下:

动量 SGD参数更新的算法:

其中p,g,v和m分别表示参数,梯度,速度和动量。

这里动量参数m一般取0.9,而速度v表示上一轮全局模型的梯度信息。

算法优势:加速收敛,同时抑制收敛过程中的振荡。联邦前期,各终端模型梯度下降方向差异不大,引入动量后,可加速全局模型的收敛。联邦后期,全局模型容易陷入局部最优,引入动量后,可增大更新步长,跳出局部最优值。

算法劣势:所有参数使用相同的学习速率更新,某些场景下联邦模型效果可能较差。

算法3:自适应矩估计

算法原理:基于算法2引入自适应学习率机制,即自适应矩估计(Adaptive Moment Estimation, Adam)。与常见的模型训练优化器类似,在server端对联邦模型采用“Adam”更新机制。它能根据不同参数调整学习率,对频繁变化的参数以更小的步长更新,而稀疏的参数以更大的步长更新。算法主要通过记录历史的全局梯度一阶矩和二阶矩,对模型改变量和学习率进行处理,在适当的时候兼具动量加速模型收敛和最佳参数学习率的能力。

其计算公式如下所示:

其中p,g,m,v,β1β2,ε分别表示参数,梯度,一阶矩,二阶矩,衰减率和极小值(引入极小值防止出现“非数”)。

Adam的必要参数是衰减率β1β2,一般取β1 = 0.9,β2 = 0.999。

算法优势:不仅保留了动量机制,还引入了学习率自适应调节,完善了梯度更新规则,效果更好。

算法劣势:该算法虽然是当下主流的优化算法,但在某些场景下其效果不一定最佳。Wilson 等人就曾指出在对象识别、字符级别建模、语法成分分析等方面,Adam算法的性能效果不如带动量的随机梯度下降算法。因此该算法还有待进一步优化。

算法4:联邦 XGBoost 算法

联邦XGBoost:采用基于联邦学习模式的XGBoost算法进行汇聚,并构建树联邦模型。

算法原理:参与联邦的各client将XGBoost算法中间梯度信息上传至Server, Server汇聚梯度后计算出树模型的切分点下发,Client收到切分点后构建树模型。算法流程图如图1所示。

算法优势:在数据不出局的情况下,各联邦client联合构建XGBoost模型,联合建模效果与单独建模效果相比有提升。

图1 联邦XGBoost算法流程

参考资料

McMahan H B, Moore E, Ramage D, et al. Communication-efficient learning of deep networks from decentralized data[J]. arXiv preprint arXiv:1602.05629, 2016.

Reddi S, Charles Z, Zaheer M, et al. Adaptive Federated Optimization[J]. arXiv preprint arXiv:2003.00295, 2020.

分享:

    相关文档

    相关产品

close