L2GD论文阅读笔记

Posted LeoJarvis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了L2GD论文阅读笔记相关的知识,希望对你有一定的参考价值。

摘要

《Federated Learning of a Mixture of Global and Local Models》这篇论文的目的是在Local和Global之间寻找一个trade off,对全局模型和局部模型进行混合,并提出适用于这一想法的几种新的梯度下降算法,如L2GD,该算法还能改进通信复杂度。

本文的两项动机

1、全局模型在客户端的实用性问题。
2、传统的LGD在理论上,并不能改善的通信复杂度。

主要贡献

一、能够混合全局模型和局部模型的新目标函数。
通过加入一个乘以λ的惩罚项ψ(λ>0),使个性化模型不会过分偏离“所有个性化模型的平均”。
在这里插入图片描述
二、新的目标函数的理论性质研究
1、当惩罚参数设置为零时,每个设备只根据本地数据训练自己的模型。但这种单纯的局部模型很少有用。
2、证明了最优局部模型以O(1/λ)的速率收敛于传统的全局模型。
3、证明了局部模型的总loss不会高于全局模型的总loss。
4、设备i的最优个性化模型是通过"所有设备上的最优个性化模型的平均"减去设备i上的损失函数的梯度来获得的。
这有点类似于MAML,不同的是MAML中,设备i的最优个性化模型是通过"全局模型"减去设备i上的损失函数的梯度来获得的。

三、用于解新目标函数的梯度下降算法:L2GD
该算法通过概率控制是执行设备训练还是服务器聚合,并且给设备训练更高的概率,这样就能进行多次本地训练从而改善通信复杂度,当然,本地训练的迭代次数也不是固定的,而是随机的。GD更新分为两次,一次是在设备训练时,一次是在服务器聚合后;
通信轮数:当λ→0时,每个设备几乎仅基于本地数据训练局部模型,通信轮数趋于0。当λ→∞时,目标函数收敛于最优全局模型,此时达到通信轮数的上限O((L/μ)log(1/ε))

四、局部目标函数用于解决什么问题?
局部更新的作用并不是单纯的降低通信复杂度。他们的作用是引导函数找到一种全局模型和纯局部模型的混合。
我们越希望函数偏向于纯粹的局部模型(即惩罚参数λ越小),L2GD所采取的局部步骤就越多,并且L2GD的总通信复杂度就越好。

五、L2GD的扩展
文章在三个方面对L2GD进行了扩展
i.部分参与:设备在每一轮通信中的随机部分参与
ii.局部子抽样:采样SGD代替GD
iii.用于解决由不均匀抽样(已经在L2GD中存在)、部分参与和局部子抽样引起的更新的局部性带来的方差的total variance reduction mechanism 。
根据扩展的程度,提出了L2SGD+,L2SGD++

新的目标函数

在这里插入图片描述其中λ≥0是惩罚项参数, x 1 x_1 x1 x n x_n xn R d R^d Rd是本地模型,x:=( x 1 x_1 x1 x n x_n xn)∈ R n d R^{nd} Rnd是混合模型,x_hat是本地模型的平均
文章中假设 f i f_i fi: R d R^d Rd→R是L-smooth和μ-strongly convex,因此(2)有唯一解,表示为:
在这里插入图片描述
Local model(λ=0) x i x_i xi(0)是设备i仅基于本地数据训练得到的本地模型。
Mixed model(λ∈(0,∞)):当λ增大时,惩罚项λψ(x)也将增大,此时需要保持通信(及时更新全局模型),防止各个性化模型存在过大差异。
Global model(λ=∞):当λ→无穷时,优化目标将由(2)变成优化f,这样就会使每个本地模型变成单纯的全局模型,x(∞) := ( x 1 x_1 x1(∞),…, x n x_n xn(∞))。即FedAvg。
在这里插入图片描述

最优解的特征

定理一:
随着λ的增长,最优局部模型 x i x_i xi(λ)越来越相似。the loss f(x(λ)) increases with λ, but never exceeds the optimal global loss f(x(∞)) of the standard FL formulation (1)
在这里插入图片描述
定理二:
设备i的最优个性化模型是通过"所有设备上的最优个性化模型的平均"减去设备i上的损失函数的梯度来获得的。所有设备都达到最优个性化模型时,所有本地梯度的总和为0,这在λ = ∞时显然是正确的,当λ > 0时就不那么明显。

L2GD: Loopless Local GD

文章提出L2GD算法来解这一新的目标函数,通过概率(0<p<1)选择▽f或▽ψ来计算▽F,定义F在x∈ R n d R^{nd} Rnd的随机梯度G(x)如(7)所示。本地模型更新: x k + 1 x^{k+1} xk+1 = x k x^{k} xk - aG( x k x^{k} xk),其中步长a是受限的,目的是使aλ/np≤1/2。将▽f或▽ψ的公式代入(7)便可以得到L2GD的完整表达形式,如Algorithm 1所示。
在这里插入图片描述
在这里插入图片描述
总的来说,当算法采取的local GD步骤越多,个性化模型越接近纯局部模型;采取的average步骤越多,个性化模型越接近它们的平均值(FedAvg)。local GD与average的相对数量由参数p控制:local GD的预期次数为1/p,连续average的预期数量为1/(1-p)。L2GD和LGD的不同之处仅在于"随机的本地梯度步长"和"部分平均"。
定义Device→Master和后续的Master→Device称为一轮通信。L2GD的第k次迭代中通信的预期轮次为p(1-p)k。

L2GD,L2SGD+,L2SGD++

文章通过收敛性分析,证明L2GD仅线性收敛于最优解的邻域。
为解决L2GD的收敛缺陷,通过将控制变量与随机梯度结合,提出采用局部随机梯度步长并保持全局线性收敛的L2SGD+,L2SGD+是带有variance reduction的最简单的local SGD。伪代码如Algorithm 2所示。
在这里插入图片描述
L2SGD++伪代码如Algoritm 5所示
1)允许每个客户端有任意数量的数据点和任意的本地下采样。
2)支持客户端部分参与聚合。
3)local SVRG-like updates of control variates (thus better memory).
4)L2SGD++ exploits the complex smoothness structure of the local objectives, resulting in tighter rates.
在这里插入图片描述

实验

文章比较了三种不同的方法:L2SGD+,带有局部下采样的L2GD(附录中的L2SGD),只为ψ构造局部子采样和控制变量的L2GD(附录中的L2SGD2)。
对于同构数据,文章对数据进行随机打乱。对于异构数据,文章首先根据标签对数据进行排序,然后根据当前顺序构建本地数据。
在这里插入图片描述
实验结果展示了减少方差的重要性–它确保了L2SGD+的快速全局收敛。
L2SGD+线性收敛到全局最优解,而L2SGD和L2SGD2都收敛到某个邻域。
每种方法都适用于同构或异构数据,这说明数据异质性不会影响所提出方法的收敛速度。

讨论

如前文所述,L2GD的本地更新为的不单是降低通信复杂度,其主要目的是引导方法找到一种全局模型和纯本地模式的混合。
其优化目标为
在这里插入图片描述
对比FedProx:
在这里插入图片描述
两个优化目标看起来差不多,都是在FedAvg的基础上加入了一个正则化项。区别在于L2GD的目标函数是从客户端的角度出发(训练个性化模型),FedProx的目标函数是从服务器的角度出发(训练统一的全局模型)。这也是为什么FedProx的正则参数为0时算法等于FedAvg,而L2GD的正则参数为无穷时算法等于FedAvg。

以上是关于L2GD论文阅读笔记的主要内容,如果未能解决你的问题,请参考以下文章

CVPR 2020 论文阅读笔记(三维点云/三维重建)

bigtable论文阅读笔记

关于 AlphaGo 论文的阅读笔记

SurfaceDefectsDetectionBasedonAdaptiveMultiscaleImageCollectionandConvolutionalNeuralNetworks-论文阅读笔记

[论文阅读] (15)英文SCI论文审稿意见及应对策略学习笔记总结(letpub爬虫)

程序算法艺术与实践关于 AlphaGo 论文的阅读笔记