当前位置: 首页 > >

文献阅读--Federated Accelerated Stochastic Gradient Descent

发布时间:



文章目录
1 Federated Accelerated Stochastic Gradient Descent (FedAc)2 challenge3 how to do4 baseline


1 Federated Accelerated Stochastic Gradient Descent (FedAc)

本文从凸函数的性质出发,将联邦学*的收敛问题转化成凸函数的最小优化问题,提出了一种联邦学*框架下的首个实现加速随机梯度下降(SGD)的算法(FedAc),其有效地改善了联邦学*在不同凸函数(convex functions)下的收敛速度通信开销(通信消耗指本地模型多少轮与中心服务器同步一次,同步越频繁,消耗时间就越多,会降低框架的通信效率。);并在不同随机分布的assumption(smoothness, bounded variance, and strong convexity)下对算法的优化效果(收敛性稳定性)作了评估。


分布式随机优化的本质是使:

F是一个凸函数,我们的目标是利用合适的算法更新w,使 F(w) 尽快达到最小。这个优化问题也被称为stochastic approximation (SA) problem


2 challenge

disaccord of acceleration and stability:加速算法会对影响收敛的稳定性,尤其使在分布式场景下,用于加速的momentum会放大算法的不稳定。


例如,当原先的 Nesterov accelerated gradient descent algorithm 用于联邦学*时,会因为每个本地模型的初始值不同导致的迭代后他们地不同呈指数增加(即使对*滑和强凸函数)。所以 (Nesterov, 2018) 这种方法不可行。光滑函数(smooth function)是指在其定义域内无穷阶数连续可导的函数。


对于稳定性研究的认识,从 稳定性可以确立泛化边界??》证明加速梯度下降算法(AGD)在二次目标(quadratic objective)函数情况下的稳定性边界。但是至今没有针对凸函数稳定性的研究,本文证明了AGD算法在上述情况可能会失效,为此文本的技术权衡并减小了初始值带来的不稳定性。


在加速方面,随着参与者数量增多,抑或是同步间隔的增加(长时间的不同步导致各个local模型收敛方向不一致),都会降低收敛的速度,增加联邦学*框架并行计算的时间。


3 how to do

FedAc是基于Ghadimi提出的SGD加速算法的改进,使其可以并行计算,用于分布式场景。FedAc parallelizes a generalized version of Accelerated SGD (Ghadimi and Lan, 2012), while we carefully balance the acceleration-stability tradeoff to accommodate distributed settings.


FedAc算法如下,原文还对各种情况做了讨论,例如在Assumption1下提出了两种可选择的参数方案,分别侧重于条件数依赖性( dependency on condition number)和通信效率(communication efficiency)。算法容易看懂,但是参数值得确定的推导惨不忍睹,细节见原文~









w


0



a


g


,


m





w_{0}^{ag,m}


w0ag,m?和





w


0



m


d


,


m





w_{0}^{md,m}


w0md,m?是中间计算量,最终上传更新的参数还是





w


0


m




w_{0}^{m}


w0m?


参数的计算见:



这两种参数的选择方案对应的收敛情况如下:



我们可以这样理解以上公式:在公式中,自变量是T,代表联邦学*运行的时间(迭代轮数),随着T的增加,不等式右边的值会变小(T做分母T越大分式值越小),因此




E


[


F


(




w


ˉ



T



a


g




)


?



F


?



]



mathbb{E}[F(ar{w}_{T}^{ag}) - F^{ast}]


E[F(wˉTag?)?F?] 也会变小,当不等式右边趋*于0,我们可以认为




F


(




w


ˉ



T



a


g




)



F(ar{w}_{T}^{ag})


F(wˉTag?) 和





F


?




F^{ast}


F?非常接*,即框架达到收敛。


4 baseline

最常见的联邦学*算法是 Federated Averaging (FedAvg),在这种场景下,每一个参与者在本地模型训练的数据得到梯度后即上传至中心服务器进行参数*均,*均后的参数再下载到本地模型,从而实现周期性的同步。这个算法没有加速的功能,作为空白对照。


下面两张图总结了两算法收敛率线性加速需要的同步的Round的比较。可以发现,随着迭代轮数Round的增加,收敛率会逐渐下降,并且收敛率和并行运算时间、参与者个数、数据集本身分布、优化目标的强凸性、*滑度都有关系!!!



注意:下表中,T是自变量,收敛率越小,代表当前F和理想F差的越小,即收敛越快。


本文控制目标函数不同的 ?-strong convexity(强凸性), L-smoothness(光滑性),σ^2** -uniformly bounded gradient variance ,一共设置了2种settings(Assumptions),如下:



在Assumption1中:凸函数的强凸性、光滑性是算法中的重要参数,有关强凸性、光滑性的性质参阅:https://zhuanlan.zhihu.com/p/141927810,这两个性质限定了凸函数的边界,从而决定了优化效果。


Assumption2 类似于以往研究中(把F当作的二次方程),FedAc在这种假设中收敛地会更快一些,例如当凸函数为二次方程时关于不频繁的通信开销会消失。



友情链接: