【FedProx】论文链接:https://arxiv.org/abs/1812.06127
联邦学习面临两个关键挑战:系统异构性;统计异构性。本文的FedProx可以解决联邦学习的异构性,可看作FedAvg的泛化和再参数化。理论上保证了当数据为非独立同分布时模型的收敛性,同时通过允许每个参与设备执行可变的工作量,保证了设备级别的系统约束。实验证明,广义FedProx框架相对于FedAvg,在异质网络中更具稳健性和稳定性。
为了应对异构性和高通信成本,允许局部更新和低参与度的优化方法已经成为联邦学习的流行方法(McMahan等人FedAvg,2017;Smith等人,2017)。虽然FedAvg可用于解决异构性问题,但它不允许参与设备根据底层系统约束执行可变的本地计算,而是简单丢弃无法完成指定计算轮数的设备。
在联邦学习中,系统异构性和统计异构性相互作用,无论是丢弃落后者,还是合并来自落后者的部分信息,都会隐式地增加统计异构性,不利于收敛。为缓解这一问题,在目标函数中增加一个近端项来提高稳定性。
联邦学习需要解决隐私、异构数据和设备以及大规模分布式计算网络的新挑战
FedAvg是一种基于原始数据的平均局部随机梯度下降进行更新的启发式方法
解决统计异构性的工作:
系统异构性:
受FedAvg启发,探索了一个更广泛的框架FedProx:
本文工作中的近端项,和分析中使用的有界不同假设,在其他文献中已经被研究过(动机不同),在附录B中进一步说明了相关背景工作。
联邦学习方法用于处理收集数据的多个设备和协调整个网络全局学习目标的中央服务器,目标是最小化:
min w f ( w ) = ∑ k = 1 N p k F k ( w ) = E k [ F k ( w ) ] \min _{w} f(w)=\sum_{k=1}^{N} p_{k} F_{k}(w)=\mathbb{E}_{k}\left[F_{k}(w)\right] wminf(w)=k=1∑NpkFk(w)=Ek[Fk(w)]
N是设备数量;pk≥0且和为1(系数),可设置为nk/n(nk为设备k上的样本数量,n为总样本数量); F k ( w ) : = E x k ∼ D k [ f k ( w ; x k ) ] F_{k}(w):=\mathbb{E}_{x_{k} \sim \mathcal{D}_{k}}\left[f_{k}\left(w ; x_{k}\right)\right] Fk(w):=Exk∼Dk[fk(w;xk)] 为局部经验风险,Dk指数据分布(不同设备上可能不同),本文考虑Fk(w)可能为非凸。
减少通信的一种常用技术是,在每个设备上使用基于设备数据的局部目标函数作为全局目标函数的代理。在每次外部迭代中,选择一个设备子集,并使用局部求解器优化每个选定设备上的局部目标函数。然后,这些设备将其局部模型更新传递给中央服务器,中央服务器聚合并更新全局模型。允许灵活性能的关键是可以不精确地解决每个局部目标,考虑根据执行的局部迭代次数调整局部计算量与通信量。
定义1( γ γ γ-不精确解):有函数 h ( w ; w 0 ) = F ( w ) + μ 2 ∥ w − w 0 ∥ 2 h\left(w ; w_{0}\right)=F(w)+\frac{\mu}{2}\left\|w-w_{0}\right\|^{2} h(w;w0)=F(w)+2μ∥w−w0∥2(则 ∇ h ( w ; w 0 ) = ∇ F ( w ) + µ ( w − w 0 ) ∇h(w; w_0) = ∇F(w) + µ(w − w_0) ∇h(w;w0)=∇F(w)+µ(w−w0)),
若 ∥ ∇ h ( w ∗ ; w 0 ) ∥ ≤ γ ∥ ∇ h ( w 0 ; w 0 ) ∥ \left\|\nabla h\left(w^{*} ; w_{0}\right)\right\| \leq \gamma\left\|\nabla h\left(w_{0} ; w_{0}\right)\right\| ∥∇h(w∗;w0)∥≤γ∥∇h(w0;w0)∥, γ ∈ [ 0 , 1 ] γ∈[0, 1] γ∈[0,1],则 w ∗ w^∗ w∗ 是 m i n w h ( w ; w 0 ) \underset{w}{min}\ h(w;w_0) wmin h(w;w0) 的γ-不精确解。
具体可见【联邦学习论文阅读】FedAvg(2016)Communication-Efficient Learning of Deep Networks from Decentralized Data
FedAvg中超参数的设置很重要,特别是局部更新次数 E:执行更多的局部更新会增加局部计算量并减少通信,从而提高通信受限网络的整体收敛速度;但对异构的局部目标函数,较多局部更新不但会影响收敛,甚至偏离全局目标,还可能使更多的设备无法在给定时间内完成要求次数的更新。
随着本地数据和可用系统资源的变化,最佳局部更新次数会有所不同,需要增加收敛鲁棒性,且尽可能增大局部更新次数。据此提出FedProx,形式化表示局部更新次数随网络特征的变化。
在FedAvg(在每一轮中选择一个设备子集,执行局部更新,然后对这些更新进行平均以形成全局更新)的基础上做了以下更改:
允许局部设备根据其可用系统资源,执行可变数量的工作(而不是丢弃落后设备),即为不同设备和不同迭代,提供可变的γ,并由定义1扩展为定义2。
定义2( γ k t γ_k^t γkt-不精确解):有函数 h k ( w ; w t ) = F k ( w ) + μ 2 ∥ w − w t ∥ 2 h_k\left(w ; w_{t}\right)=F_k(w)+\frac{\mu}{2}\left\|w-w_{t}\right\|^{2} hk(w;wt)=Fk(w)+2μ∥w−wt∥2(则 ∇ h k ( w ; w t ) = ∇ F k ( w ) + µ ( w − w t ) ∇h_k(w; w_t) = ∇F_k(w) + µ(w − w_t) ∇hk(w;wt)=∇Fk(w)+µ(w−wt))),
若 ∥ ∇ h k ( w ∗ ; w t ) ∥ ≤ γ k t ∥ ∇ h k ( w t ; w t ) ∥ \left\|\nabla h_k\left(w^{*} ; w_{t}\right)\right\| \leq \gamma_k^t\left\|\nabla h_k\left(w_{t} ; w_{t}\right)\right\| ∥∇hk(w∗;wt)∥≤γkt∥∇hk(wt;wt)∥, γ ∈ [ 0 , 1 ] γ∈[0, 1] γ∈[0,1],则 w ∗ w^∗ w∗ 是 m i n w h k ( w ; w t ) \underset{w}{min}\ h_k(w;w_t) wmin hk(w;wt) 的 γ k t γ_k^t γkt-不精确解。
允许跨设备执行可变工作量可以缓解系统异构的影响,但因为底层数据异构,过多的局部更新仍会导致分歧。为限制局部更新的影响,在局部问题中加入近似项,则改写局部函数 F k ( ⋅ ) F_k(·) Fk(⋅) 为:
min w h k ( w ; w t ) = F k ( w ) + μ 2 ∥ w − w t ∥ 2 \min _{w} h_{k}\left(w ; w^{t}\right)=F_{k}(w)+\frac{\mu}{2}\left\|w-w^{t}\right\|^{2} wminhk(w;wt)=Fk(w)+2μ∥∥w−wt∥∥2
有两个优点:限制局部更新,使其更接近初始化的全局模型,且不用手动设置局部更新次数,缓解了统计异构性问题;可以和针对系统异构性的可变工作量方法合并。
近端项与之前工作的不同在于:
- 用于处理联邦网络中的异构性
- 可用于分布式设置中:非独立同分布数据;任意局部求解器;跨设备不精确更新;每轮选择活动设备子集
FedProx更为通用,FedAvg可看作FedProx的一个特例(μ=0,局部求解器为SGD,γ固定)
近端项的使用使得FedProx更适合于理论分析(即局部目标的表现可能更好)。特别是,如果相应地选择μ,hk的海森矩阵可能是半正定的。因此,当Fk为非凸时,hk为凸;当Fk为凸时,hk为μ-强凸。
提出一个专门衡量局部函数之间差异性的度量标准(4.1),并在此假设下分析FedProx(4.2)
引入一个衡量联邦网络中设备之间差异性的方法,来证明收敛性;也可以通过更简单的梯度有界方差假设(推论8)来满足(见后续实验)。
定义3(B-局部差异):若 E k [ ∥ ▽ F k ( w ) ∥ 2 ] ≤ ∥ ▽ f ( w ) ∥ 2 B 2 \mathbb{E}_k[\left\| \bigtriangledown F_k(w)\right\|^2]\leq \left\|\bigtriangledown f(w) \right\|^2B^2 Ek[∥▽Fk(w)∥2]≤∥▽f(w)∥2B2,则称 F k F_k Fk在w为B-局部差异,
进一步可得 B ( w ) = E k [ ∥ ▽ F k ( w ) ∥ 2 ] ∥ ▽ f ( w ) ∥ 2 B(w)=\sqrt{\frac{\mathbb{E}_k[\left\| \bigtriangledown F_k(w)\right\|^2]}{\left\|\bigtriangledown f(w) \right\|^2}} B(w)=∥▽f(w)∥2Ek[∥▽Fk(w)∥2], ∥ ▽ f ( w ) ∥ ≠ 0 \left\|\bigtriangledown f(w) \right\|\neq 0 ∥▽f(w)∥=0
定义3允许统计异构性,为IID假设下有界差异的推广。当所有局部函数相同时,B(w)=1,其余B>1。B(w)越大,局部函数越不相似。要求定义3中的差异有界,可得到收敛性分析用到的正式差异假设。
假设1:有界差异
精度过高会导致过拟合;虽然联邦学习不是IID样本,但并非完全无关。据此合理假设局部函数间的差异有界。
定理4:非凸FedProx收敛性(B-局部差异)
由执行一次FedProx,目标值的预期减少量(根据假设1),可进一步推导出收敛速度。使用定义3中的差异性,来确定每次迭代时目标值足够减小。
备注5:定理4中参数设置及原因
定理6:FedProx的收敛速度
推论7:凸情况下的收敛性
精确度增高时,增大µ会使收敛更稳定;可推得实现某精度需要的步骤数,借此分析局部函数不同时,FedProx和类似方法的性能。
备注8:与SGD比较
推论9:应用可变γ的收敛性
前面的分析假设γ不变,这里考虑系统异构性,扩展为γ可变。
所有代码、数据和实验都可以在github.com/litian96/FedProx上获取。
系统异构性模拟:
设置E=20,synthetic(1,1),μ=0且0%落后设备的FedProx等同于FedAvg;
对比FedAvg和μ=0的FedProx:发现系统异构性越大,收敛性越差,与放弃受限设备相比,加入可变工作量有利于更快更稳定的收敛;
对比μ=0和μ>0的FedProx:(表明增加近似项的优势)发现不论系统异构性如何,适当的μ可以提高稳定性,使发散的方法收敛;在大多数情况下μ>0的准确性更高(特别是高度异构环境中)
对5个数据集,最佳μ值分别为1、1、1、0.001和0.01
还设置了两个不太异构的环境:
第一行:在不存在系统异构的情况下,统计异构性对收敛的影响(固定E=20);随着数据异构性的增加,μ=0(FedAvg)收敛性变差,而μ>0可帮助解决此问题;
第二行:使用B-局部差异度量方法(可衡量统计异构性),观察每个设备上的梯度变化;增加近端项会减小局部函数间差异性;差异度量与训练损失趋势一致,异构性越小,收敛性越好,可通过设置μ来改进收敛性。
影响性能的关键参数为E和μ:增大E会使局部模型偏离全局初始点过远,导致分歧;而合适的μ可以约束局部更新轨迹,使之更接近全局模型,保证收敛性。
大μ会减慢收敛速度,小μ可能不会产生任何影响;
自适应选择μ:连续5轮损失增加/减少时,设置μ增加/减少0.1;对于完全IID的数据,初始化μ=1,对synthetic(1,1),初始化μ=0
FedProx允许跨设备执行可变数量的工作,并通过增加近端项(限制本地训练时模型对全局模型的偏离)来稳定该方法。个人理解是稳定通用,但存在收敛速度慢的缺点。