建设银行绑定手机号码网站,node 做的网站后端,做合约交易哪个网站好,一个公司网站后台怎么做一、概要
随着联邦学习的发展#xff0c;简单的聚合算法已经不在有效。但复杂的聚合算法使得联邦学习训练时间出现新的瓶颈。本文提出了并行联邦学习#xff08;parallel federated learning#xff0c;PFL#xff09;#xff0c;通过调换中心节点聚合和广播的顺序。本文…一、概要
随着联邦学习的发展简单的聚合算法已经不在有效。但复杂的聚合算法使得联邦学习训练时间出现新的瓶颈。本文提出了并行联邦学习parallel federated learningPFL通过调换中心节点聚合和广播的顺序。本文算法的优点在全局聚合计算时解锁了边缘节点在边缘节点本地计算时解锁了中心节点并且在计算过程中具有灵活的伸缩性。 本文主要贡献
处理数据异构和网络掉队局部节点参与灵活性计算训练过程中的可扩展性
二、关键算法
本文的PFL算法并没有重新设计FL框架仅仅只是将原计算流程进行了适当的调整主要包含同步的SPFL和异步的APFL。如图所示(a)表示FedAvg流程uploading–global aggregation–broadcasting–local optimization。(b)表示本文提出的SPFL流程uploading(中心节点接收当前所有边缘局部更新)–broadcasting(中心节点广播缓存中的全局模型参数)–全局聚合计算(中心节点利用接收到的局部更新聚合全局模型参数)。该设计可以使得本地一旦优化完成便上传到中心节点而中心节点一旦接收到本地更新边广播缓存中的全局模型参数。因此边缘节点和中心节点不用等待阻塞。 下图是APFL的流程图
SPFL
同步的PFL并不能处理网络掉队的问题而是对复杂聚合逻辑做了相应的处理。其流程中对应的处理逻辑分别如下
Local Update边缘节点接收全局模型参数 w t − 1 ( g ) w_{t-1}^{(g)} wt−1(g)然后使用SGD算法更新本地模型公式 w t ( i ) w t − 1 ( g ) − γ G t − 1 ( i ) w_{t}^{(i)} w_{t-1}^{(g)} - \gamma G_{t-1}^{(i)} wt(i)wt−1(g)−γGt−1(i)其中 t t t为训练轮数 i i i为第 i i i各节点 w t − 1 ( g ) w_{t-1}^{(g)} wt−1(g)为 t − 1 t-1 t−1轮时的全局模型 G t − 1 ( i ) G_{t-1}^{(i)} Gt−1(i)为通过 w t − 1 ( g ) w_{t-1}^{(g)} wt−1(g)计算得到的梯度。Uploading一旦本地模型训练完成便计算 δ ( i ) \delta^{(i)} δ(i)并上传到中心节点。Broadcasting中心节点接收到所有边缘节点的 { δ ( i ) } i 1 N \{\delta^{(i)}\}_{i1}^{N} {δ(i)}i1N便将缓存中上一轮的聚合结果 w t − 1 ( g ) w_{t-1}^{(g)} wt−1(g)广播给边缘节点。这里如果上一轮的聚合结果没有完成将会阻塞等待其完成。Global Aggregation一旦广播成功中心节点便执行下一轮的聚合计算 w t 1 ( g ) w t ( g ) 1 N ∑ i 1 N δ ( i ) w_{t1}^{(g)}w_{t}^{(g)}\frac{1}{N}\sum_{i1}^N \delta^{(i)} wt1(g)wt(g)N1∑i1Nδ(i)
APFL
异步的PFL同时对边缘节点的网络掉队问题和中心节点的复杂聚合算法逻辑做了优化。每个边缘节点和中心节点都有不同的clocks并且中心节点的clock只和其中一个边缘节点有关例如对于第 t t t个中心节点的clockAPFL的流程如下
Local Update边缘节点 i i i完成和中心节点的通信并接收到全局模型 w t − 1 ( g ) w_{t-1}^{(g)} wt−1(g)然后更新本地模型 w t ( i ) w t − 1 ( g ) − γ G t − 1 ( i ) w_{t}^{(i)} w_{t-1}^{(g)} - \gamma G_{t-1}^{(i)} wt(i)wt−1(g)−γGt−1(i)。Uploading完成本地模型更新之后上传本地梯度 δ ( i ) \delta^{(i)} δ(i)在边缘节点 i i i本地训练和梯度上传过程中有 n n n个其他边缘节点和中心节点通信。因此当中心节点接收到边缘节点 i i i的本地更新之后中心节点的clock已经是 t n 1 tn1 tn1了Broadcasting中心节点在接收到边缘节点 i i i的本地更新 δ ( i ) \delta^{(i)} δ(i)后将缓存中最新的全局模型发送给边缘节点 i i i这里的最新全局模型可能是 w t n ( g ) w_{tn}^{(g)} wtn(g)也可能是 w t n − r ( g ) w_{tn-r}^{(g)} wtn−r(g)表示中心节点在clock t t t到clock t n tn tn中任意clock聚合得到的结果。Global Aggregation中心节点在上一轮聚合过程中会接收到一部分边缘节点上传的 δ ( i ) \delta^{(i)} δ(i)。因此聚合计算 w t n 1 ( g ) w t n 1 − p ( g ) 1 N ∑ i 1 C t δ ( i ) w_{tn1}^{(g)}w_{tn1-p}^{(g)}\frac{1}{N}\sum_{i1}^{C_t} \delta^{(i)} wtn1(g)wtn1−p(g)N1∑i1Ctδ(i)其中 C t C_t Ct表示中心节点接收的 δ ( i ) \delta^{(i)} δ(i)的数据量 p p p属于 C t C_t Ct。通常 C t C_t Ct只包含一个边缘节点。
SPFL和APFL的异同 SPFL的中心节点更新 w w w时需要等待所有边缘节点的上传APFL不需要。 SPFL和APFL相比普通的FL有不同的加速。 SPFL和APFL的收敛分析中都能有不错的收敛。很多数学上的分析可以移步论文
三、总结
从实验结果看本文提出的算法对中心节点场景的模型训练加速优化具有很好的参考意义。 论文地址点这里