一、概要
随着联邦学习的发展,简单的聚合算法已经不在有效。但复杂的聚合算法使得联邦学习训练时间出现新的瓶颈。本文提出了并行联邦学习(parallel federated learning,PFL),通过调换中心节点聚合和广播的顺序。本文算法的优点:在全局聚合计算时解锁了边缘节点,在边缘节点本地计算时解锁了中心节点,并且在计算过程中具有灵活的伸缩性。
本文主要贡献:
- 处理数据异构和网络掉队
- 局部节点参与灵活性
- 计算训练过程中的可扩展性
二、关键算法
本文的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)}
w
t
(
i
)
=
w
t
−
1
(
g
)
−
G
t
−
1
(
i
)
w_{t}^{(i)} = w_{t-1}^{(g)} – gamma G_{t-1}^{(i)}
t
t
i
i
i
i
w
t
−
1
(
g
)
w_{t-1}^{(g)}
t
−
1
t-1
G
t
−
1
(
i
)
G_{t-1}^{(i)}
w
t
−
1
(
g
)
w_{t-1}^{(g)}
-
Uploading:一旦本地模型训练完成,便计算
(
i
)
delta^{(i)}
-
Broadcasting:中心节点接收到所有边缘节点的
{
(
i
)
}
i
=
1
N
{delta^{(i)}}_{i=1}^{N}
w
t
−
1
(
g
)
w_{t-1}^{(g)}
-
Global Aggregation:一旦广播成功,中心节点便执行下一轮的聚合计算:
w
t
+
1
(
g
)
=
w
t
(
g
)
+
1
N
∑
i
=
1
N
(
i
)
w_{t+1}^{(g)}=w_{t}^{(g)}+frac{1}{N}sum_{i=1}^N delta^{(i)}
APFL
异步的PFL同时对边缘节点的网络掉队问题和中心节点的复杂聚合算法逻辑做了优化。每个边缘节点和中心节点都有不同的clocks,并且中心节点的clock只和其中一个边缘节点有关,例如对于第
t
t
t个中心节点的clock,APFL的流程如下:
-
Local Update:边缘节点
i
i
w
t
−
1
(
g
)
w_{t-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)}
-
Uploading:完成本地模型更新之后,上传本地梯度
(
i
)
delta^{(i)}
i
i
n
n
i
i
t
+
n
+
1
t+n+1
-
Broadcasting:中心节点在接收到边缘节点
i
i
(
i
)
delta^{(i)}
i
i
w
t
+
n
(
g
)
w_{t+n}^{(g)}
w
t
+
n
−
r
(
g
)
w_{t+n-r}^{(g)}
t
t
t
+
n
t+n
-
Global Aggregation:中心节点在上一轮聚合过程中,会接收到一部分边缘节点上传的
(
i
)
delta^{(i)}
w
t
+
n
+
1
(
g
)
=
w
t
+
n
+
1
−
p
(
g
)
+
1
N
∑
i
=
1
C
t
(
i
)
w_{t+n+1}^{(g)}=w_{t+n+1-p}^{(g)}+frac{1}{N}sum_{i=1}^{C_t} delta^{(i)}
C
t
C_t
(
i
)
delta^{(i)}
(i)的数据量,p
p
C
t
C_t
C
t
C_t
SPFL和APFL的异同
-
SPFL的中心节点更新
w
w
w时需要等待所有边缘节点的上传,APFL不需要。
-
SPFL和APFL相比普通的FL有不同的加速。
-
SPFL和APFL的收敛分析中,都能有不错的收敛。(很多数学上的分析,可以移步论文)
三、总结
从实验结果看,本文提出的算法对中心节点场景的模型训练加速优化具有很好的参考意义。
论文地址:点这里
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: #yyds干货盘点# LeetCode程序员面试金典:和为 K 的子数组
题目 给你一个整数数组 nums 和一个整数 k ,请你统计并返服务器托管网回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums = [1,1,1], k = 2 输出:2 示例 2: 输入:nums = […