fedavg

联邦学习的核心是模型聚合算法,常用的有FedAvg(Federated Averaging)算法和FedProx(Federated Proximal)算法。其中,FedAvg算法是一种简单的平均算法,其数学公式如下:

$$w_{t+1}=\sum_{k=1}^{K}\frac{n_k}{n}w_{k,t}$$

其中,

$w_{t+1}$

表示第$t+1$轮的全局模型,

$w_{k,t}$

表示第$t$轮参与方$k$上传的本地模型,

$n_k$

表示参与方$k$的样本数量,$n$表示所有参与方的样本数量之和。

另外,FedProx算法是在FedAvg算法的基础上增加了正则化项,其数学公式如下:

$$w_{t+1}=\sum_{k=1}^{K}\frac{n_k}{n}(w_{k,t}-\eta\nabla f_k(w_{k,t})+\mu(w_{k,t}-w_t))$$

其中,$\eta$表示学习率,$\mu$表示正则化参数,$w_t$表示第$t$轮的全局模型,$\nabla f_k(w_{k,t})$表示参与方$k$在本地数据上的梯度。