项目github地址:https://github.com/IBM/adaptive-federated-learning
摘要
从分布在多个边缘节点的数据学习模型参数,而不发送原始数据到一个集中的地方。我们的重点是使用基于梯度的方法训练的一类机器学习模型。分析了分布梯度下降算法的收敛界,并在此基础上提出了在给定资源预算下,在局部更新和全局参数聚合之间进行最佳权衡以使损失函数最小化的控制算法。
索引术语-分布式机器学习,联邦学习,移动边缘计算,无线网络
简介
如何有效地利用有限的计算和通讯资源的边缘,以达到最优的学习性能。我们考虑了一个典型的边缘计算架构,其中边缘节点通过网络元素(如网关和路由器)与远程云互联。将原始数据收集并存储在多个边缘节点上,从分布的节点中训练出机器学习模型不将原始数据从节点发送到中心位置的数据。这种来自边缘节点联合的分布式机器学习(模型训练)的变种被称为联合学习。
我们关注基于梯度下降的联邦学习算法。学习过程包括局部更新步骤,其中每个边缘节点执行梯度下降来调整(局部)模型参数,以最小化在其自己的数据集上定义的损失函数。它还包括全局聚合步骤,其中从不同边缘节点获得的模型参数被发送到聚合器,聚合器是一个可以运行在远程云、网络元素或边缘节点上的逻辑组件。聚合器聚合这些参数(例如,通过加权平均),并将更新后的参数发送回边缘节点,以便进行下一轮迭代。全局聚合的频率可配置;可以以一个或多个本地更新的间隔进行聚合。每次局部更新消耗边缘节点的计算资源,每次全局聚合消耗网络的通信资源。资源消耗的数量可能会随时间而变化,并且在全局聚合的频率、模型训练精度和资源消耗之间存在复杂的关系。
我们提出了一种确定全局聚合频率的算法,主要贡献如下:
1)从理论的角度分析了基于梯度下降的联邦学习的收敛界,得到了一个新的收敛界,该收敛界包含了节点间的非独立同分布数据分布和两个全局聚合之间的任意数量的局部更新。
2)利用上述理论收敛界,我们提出了一种学习数据分布、系统动力学和模型特征的控制算法,并在此基础上动态实时调整全局聚合频率,在固定资源预算下最小化学习损失。
3)我们提出的控制算法的性能评估通过广泛的实验使用真实的数据集硬件原型和在模拟环境中,确认我们的建议的方法提供了不同的数据分布算法性能,各种机器学习模型,系统配置不同数量的边缘节点。这对优化机器学习任务的性能很重要。
实验结果
为了评估自适应联邦学习算法的性能,我们在具有5个节点的网络原型系统和具有5到500个节点的模拟环境中进行了实验。原型系统由三个树莓皮(版本3)设备和两台笔记本电脑组成,它们都通过无线网络在一栋办公楼内相互连接。这表示边缘计算环境,其中边缘节点的计算能力是异构的。所有这5个节点都有本地数据集,在其上进行模型训练。聚合器位于一台笔记本电脑上,因此与一个本地数据集位于同一位置。
1)资源定义:为了便于结果的呈现和解释,我们让M = 1,并在我们的实验中将时间视为单一资源类型。对于原型系统,我们针对固定的时间预算来训练每个模型。c和b的值分别对应于每次本地更新和全局聚合所用的实际时间。模拟环境使用模拟资源消耗进行模型训练,模拟资源消耗是根据高斯分布随机生成的,平均值和标准偏差值是从原型的平方SVM模型测量中获得的。
2)基线:我们比较了以下基线方法:(a)集中式梯度下降,其中整个训练数据集存储在单个边缘节点上,并且使用标准(集中式)梯度下降程序在该节点上直接训练模型;规范联合学习方法,相当于在我们的设置中使用固定(非自适应)的τ值;(c)同步分布梯度下降,相当于在我们的设定中固定τ = 1。为了公平比较,我们对所有基线实施资源消耗估算,当我们达到资源(时间)预算时,培训停止。在原型系统上进行实验时,在树莓皮装置上进行集中梯度下降。为了避免与损失计算相关的资源消耗,集中式梯度下降使用最后一个模型参数w(T)(而不是wf)作为结果,因为w(T)的收敛性可以在集中式情况下证明[40]。我们没有明确区分上述基线(b)和(c),因为它们都对应于具有某个值的非自适应τ的方法。当τ是非自适应时,我们使用与算法2和算法3相同的协议,但删除了与τ的参数估计和重新计算相关的任何部分。
3) DGD和SGD:我们在实验中同时考虑了DGD和SGD,以评估所提出算法的一般适用性。对于SGD,小批量采样在所有节点使用相同的初始随机种子,这意味着当所有节点的数据集相同时,所有节点的小批量在同一迭代中也相同(尽管它们在不同迭代中通常不同)。这种设置是为了更好地考虑相等和不相等数据分布之间的差异。
4)模型和数据集:我们在五个不同的数据集上评估四个不同模型的训练,这五个数据集代表了各种各样的小型和大型模型和数据集,因为可以预期所有这些变体都存在于边缘计算场景中。这些模型包括平方SVM、线性回归、K均值和深度卷积神经网络(CNN)。其中,平方SVM(以下简称SVM)和线性回归的损失函数满足假设1,而K均值和CNN的损失函数是非凸的,因此不满足假设1。SVM是在原始的MNIST数据集(称为MNIST-0)上训练的,该数据集包含70,000个手写数字的灰度图像(60,000个用于训练,10,000个用于测试)。SVM输出一个二进制标签,对应的数字是偶数还是奇数。我们考虑SVM的DGD和SGD变体。DGD变量在每一轮模拟中仅使用整个数据集中的1000个训练和1000个测试数据样本,因为DGD无法处理大量数据。SGD变体使用整个MNIST数据集。使用SGD对能源数据集[44]进行线性回归,该数据集包含来自多个传感器的19,735条测量记录以及电器和灯具的能耗。该模型通过传感器测量来学习预测设备能耗。使用DGD对用户知识建模数据集[45]执行K-means,该数据集具有403个样本,每个样本具有总结用户与网络环境交互的5个属性。样本可以被分成4个代表不同知识水平的聚类,但是我们假设我们没有这个聚类的先验知识。CNN使用SGD在三个不同的数据集上进行训练,包括如上所述的MNIST-O,与MNIST-O格式相同但包括时尚项目而不是数字的时尚MNIST数据集(称为MNIST-F),以及包括10种不同类型对象的60,000个彩色图像(50,000个用于训练,10,000个用于测试)的CIFAR-10数据集。在每个数据集上训练一个单独的CNN模型,在数据集中的10个不同标签之间执行多类分类。
5)不同节点的数据分布:对于分布式设置,我们考虑了将数据分布到不同节点的四种不同方式。在情况1中,每个数据样本被随机分配给一个节点,因此每个节点具有统一的(但不是完整的)信息。在案例2中,所有的数据每个节点中的样本具有相同的标签。7这表示每个节点具有不一致信息的情况,因为整个数据集具有带有多个不同标签的样本。在情况3中,每个节点都有整个数据集(因此是完整的信息)。在情况4中,与情况1一样,具有标签的前半部分的数据样本被分发到节点的前半部分;与情况2一样,其他样本被分发到节点的后一半。这代表了统一和非统一的组合情况。对于没有基本事实标签的数据集,例如与线性回归一起使用的能量数据集,数据到节点的分配基于从无监督聚类方法生成的标签。
6)训练和控制参数:在我们所有的实验中,我们设置搜索范围参数γ = 1 0,最大τ值τmax= 100。除非另有说明,否则我们将SVM、线性回归和k均值的控制参数ϕ设置为0.025,将CNN设置为ϕ= 5×105。梯度下降步长η = 0.01。除非另有说明,否则资源(时间)预算设置为R = 1 5秒。除了第七-B5节中的瞬时结果外,还显示了15次独立实验/模拟运行的平均结果。每个节点中的样本具有相同的标签。7这表示每个节点具有不一致信息的情况,因为整个数据集具有带有多个不同标签的样本。在情况3中,每个节点都有整个数据集(因此是完整的信息)。在情况4中,与情况1一样,具有标签的前半部分的数据样本被分发到节点的前半部分;与情况2一样,其他样本被分发到节点的后一半。这代表了统一和非统一的组合情况。对于没有基本事实标签的数据集,例如与线性回归一起使用的能量数据集,数据到节点的分配基于从无监督聚类方法生成的标签。
结果
1)损失和准确度值:在我们的第一组实验中,在原型系统上训练了SVM模型、线性回归模型和K均值模型。由于树莓Pi设备的资源限制,CNN模型是在5个节点的模拟环境中训练的,资源消耗以第七节-A1中描述的方式生成。我们注意到所提出的方法只有一个数据点(由图中的单个标记),因为τ的值在这种情况下是自适应的,并且标记位置显示了具有相应损失或精度的平均值τ*。集中式情况下也只有一个数据点,但为了便于比较,我们在不同的τ值之间显示了一条直线。我们发现,所提出的方法对于所有情况和所有模型来说都接近于最佳点。8我们还发现,对于不同的情况和模型来说,(经验上的)最佳τ值是不同的,因此固定的τ值并不适用于所有情况。在某些情况下,分布式方法比集中式方法性能更好,因为对于给定的时间预算,联合学习能够利用多个节点的计算资源。对于DGD方法,情况3的性能不如情况1,因为情况3中每个节点的数据量大于情况1中的数据量,并且DGD处理全部数据量,因此情况3每次本地更新都需要更多资源。由于评估CNN模型的高度复杂性,以及线性回归和K均值模型不能提供准确值的事实,我们在下文中重点关注SVM模型,并提供对系统的进一步见解。
2)可变节点数:图5示出了在模拟环境中获得的节点数从5到500变化的SVM (SGD)结果。我们提出的方法在所有情况下都优于或类似于固定的τ = 1 0基线,其中我们选择固定的τ = 1 0作为本次和后续评估的基线,因为根据图4中的结果,根据经验,在不同情况下它是非自适应τ的良好值。
3)可变全局聚集时间:为了研究不同资源消耗(时间)对全局聚集的影响,我们修改模拟环境,使得全局聚集时间由调整因子来缩放。全局聚合的实际时间等于原始全局聚合时间乘以调整因子,因此小的调整因子对应小的全局聚合时间。SVM (DGD)的其他结果包括在[38,附录F]中。我们可以看到,正如人们直观预期的那样,较大的全局聚合时间通常会导致所提出的算法的较大τ值,因为当需要更多时间来执行全局聚合时,系统应该不那么频繁地执行全局聚合,以充分利用可用时间(资源)。当调整因子较大时,τ略微减小的事实是因为在这种情况下,全局聚集时间很大,使得在达到资源预算之前只能执行几轮全局聚集,并且τ的值将在最后一轮中减小以保持在资源内。图7。总时间预算不同的SVM。图8。SVM (DGD)的瞬时结果与所提出的算法。预算(见算法2第25行)。与固定的τ = 1 0基线相比,所提出的算法在(几乎)所有情况下都表现得更好。
*4)可变总时间预算:我们评估总时间(资源)预算对原型系统的影响。SVM的结果如图7所示。SVM (DGD)的进一步结果包括在[38,附录G]中。我们看到,除了所有节点都有相同数据集的情况3之外,所提出算法的τ值随着总时间预算而减小。这与第六节的讨论一致,即当资源预算足够大时,τ接近1。我们还看到,所提出的算法在所有情况下都优于或类似于固定的τ = 1 0基线。
5)瞬时行为:我们进一步研究了我们的系统在原型系统上单次运行30秒(每种情况)的瞬时行为。SVM (DGD)的结果如图8所示。SVM的进一步结果见[38,附录H]。我们看到τ的值在一个初始自适应周期后保持稳定,表明控制算法是稳定的。由于系统达到资源预算所引起的调整,τ的值在最后减小(参见算法2的第25行)。如预期的那样,情况2和4的梯度偏差δ较大,其中不同节点的数据样本是不一致的。对于ρ和β也观察到同样的情况,表明对于情况2和4,模型参数w处于不太平滑的区域。在情况3中,不同节点的数据是相等的,所以我们总是有wi(t) = w(t),而不管在迭代t中是否执行全局聚合。因此,根据定义,估计的ρ和β值为零,如第六节-B1中的注释所解释的。SVM (DGD)的案例3具有大得多的c值,因为它比其他案例处理更多的数据,因此需要更多的时间,如前所述。由于无线信道的随机性,b的值呈现波动。
6)ϕ:灵敏度在原型系统上评估的控制参数ϕ的灵敏度如图9所示。我们看到不同情况下τ*之间的关系大多是用不同的ϕ.值来维持的τ∫的T h e v a l u e随着logϕ近似线性地减小,w h i c h i与h(τ)中存在指数项w r tτ(因而G(τ))的事实一致。对于情况3,τ∫对于不同的ϕ保持相同,因为根据定义,在这种情况下h(τ) = 0,并且ϕ的值不影响τ∫,根据(18),在这种情况下τ的s G(τ) ∝ 1 ϕindependently。我们还看到,ϕ的微小变化不会改变τ∫太多,这表明在实际调谐ϕ时可以采取大的步骤,并且调谐并不困难。
7)与异步分布式梯度下降的比较:异步梯度下降[17]是联邦学习中常用的同步梯度下降的替代方法。通过异步梯度下降,边缘节点以异步方式运行。每个边缘节点从聚合器中提取最新的模型参数,计算其本地数据集的梯度,然后将梯度发送回聚合器。聚合器根据由每个节点的数据集大小加权的步长η执行梯度下降,类似于(4)和(5)的组合。重复这个过程,直到训练结束。异步梯度下降能够通过在更强大(更快)的节点上运行更多的梯度下降步骤来充分利用每个节点上的可用计算资源。然而,异步可能会损害整体性能。[17]中显示,在数据中心环境中,同步梯度下降比异步梯度下降有优势。在这里,我们研究了它们在边缘计算环境中与异构资源(在我们的实验中是笔记本电脑和树莓皮)和不同数据分布(案例1–4)的差异。图10和图11分别显示了DGD和SGD与SVM的结果。我们看到异步梯度下降的性能很像图10。同步与异步分布式DGD与SVM。图11。同步与异步分布式SGD与SVM。对于情况2和4中的非均匀数据分布,比同步梯度下降更差,收敛更慢,变化突然(表明训练过程不稳定),并且收敛到更高的损失和更低的精度值。这是因为与较慢的节点相比,该模型倾向于在较快的节点上覆盖数据集,因为在这些节点上执行了更多的梯度下降步骤。对于均匀数据分布(情况1和3),异步梯度下降的性能与同步梯度下降相似或略好,因为当不同节点的数据集相似(情况1)或相等(情况3)时,在较快节点上过度拟合数据不会造成太大伤害。考虑到所有情况1–4的整体性能,我们可以得出结论,用同步梯度下降来执行联合学习仍然更好,正如我们在本文中所做的那样。然而,如何更有效地利用异构资源是未来值得研究的事情。