购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 联邦随机梯度下降算法

FedSGD算法 [14] 是联邦学习概念被提出之后的第一个中央服务器优化算法。该算法基于神经网络模型,在所有联邦学习参与方部署相同结构的网络模型,并在每轮训练中通过一次梯度下降更新模型参数,而在每轮通信中,中央服务器随机选取若干参与方进行模型参数聚合,并将聚合后的模型参数传输给所有参与方。通过多轮通信,最终可以在不公开数据的前提下,得到一个适用于所有参与方的全局模型。

3.1.1 算法框架及参数

FedSGD算法的框架如图3-1所示,参数及含义见表3-1。

图3-1 FedSGD算法的框架

表3-1 FedSGD算法的参数及含义

3.1.2 目标函数

记联邦学习中参与方 k k =1,2,…, n )的目标函数为

其中, P k 是参与方 k 的数据索引集; m k = P k ,是该数据索引集的大小,即参与方 k 的数据集的样本个数; f i ω )是样本( x i y i )在参数 ω 下的目标值,一般取 f i ω )= l x i y i ω )为某个损失函数,表示样本( x i y i )在参数 ω 下的损失函数值。

记联邦学习的总目标函数为

其中, ,是所有参与方的数据集的总样本个数。

3.1.3 算法流程

FedSGD算法的流程如算法流程3-1所示。

算法流程3-1 FedSGD算法

输入 :全局模型参数初始值 ω 0 ,参与方个数 n ,参与方比例 C ,局部模型学习率 η ,各参与方的样本个数 m k

输出 :最后一次迭代的全局模型参数 ω t +1

1.中央服务器初始化模型参数 ω 0 ,并传输给所有参与方。

2.对 t =0,1,2,…,迭代以下步骤直到全局模型参数 ω t +1 收敛。

(1)中央服务器根据参与方比例 C ∈(0,1],计算参与第 t 轮迭代的参与方个数。

M ←max( C × n ,1)

(2)中央服务器随机选取 M 个参与方,构成参与方集合 S t

(3)对∀ k S t ,通过以下步骤进行局部模型的相关参数更新。

①使用接收到的模型参数 ω t 进行模型初始化

②使用各自的所有样本,对参数 进行一次梯度下降,计算参数 的梯度:

或者计算参数更新值 ,其中 η 是学习率。

③将更新好的局部模型参数 传输给中央服务器。

(4)中央服务器聚合所有梯度:

或者聚合所有参数更新值 ,并回传给所有参与方。

另外需要说明的是:FedSGD算法名称中的“SGD”并非指局部模型的参数更新使用了随机梯度下降法,这里的“随机”(Stochastic)是指在每轮通信中,参与梯度聚合的参与方是随机选取的,而每个参与方进行局部模型参数更新时使用的是梯度下降法。 WvHslsSAQf+A72tXUaKB5ivZuxTsM+qhcLbva/SdTX7P7XYn0PhQNYRXnmxYhRjp

点击中间区域
呼出菜单
上一章
目录
下一章
×