APP下载

一种解决数据异构问题的联邦学习方法

2024-05-24张红艳张玉曹灿明

计算机应用研究 2024年3期
关键词:数据共享聚类

张红艳 张玉 曹灿明

摘 要:

聯邦学习是一种不通过中心化的数据训练就能获得机器学习模型的系统,源数据不出本地,降低了隐私泄露的风险,同时本地也获得优化训练模型。但是由于各节点之间的身份、行为、环境等不同,导致不平衡的数据分布可能引起模型在不同设备上的表现出现较大偏差,从而形成数据异构问题。针对上述问题,提出了基于节点优化的数据共享模型参数聚类算法,将聚类和数据共享同时应用到联邦学习系统中,该方法既能够有效地减少数据异构对联邦学习的影响,也加快了本地模型收敛的速度。同时,设计了一种评估全局共享模型收敛程度的方法,用于判断节点聚类的时机。最后,采用数据集EMNIST、CIFAR-10进行了实验和性能分析,验证了共享比例大小对各个节点收敛速度、准确率的影响,并进一步分析了当聚类与数据共享同时应用到联邦学习前后各个节点的准确率。实验结果表明,当引入数据共享后各节点的收敛速度以及准确率都有所提升,而当聚类与数据共享同时引入到联邦学习训练后,与FedAvg算法对比,其准确度提高10%~15%,表明了该方法针对联邦学习数据异构问题上有着良好的效果。

关键词:联邦学习;数据共享;聚类;全局共享模型收敛;数据异构

中图分类号:TP18   文献标志码:A

文章编号:1001-3695(2024)03-011-0713-08

doi:10.19734/j.issn.1001-3695.2023.07.0296

Effective method to solve problem of data heterogeneity in federated learning

Zhang Hongyan1,Zhang Yu1,Cao Canming2

(1.College of Information Science & Technology,Zhengzhou Normal University,Zhengzhou 450044,China;2.School of Computer Science & Technology,Tiangong University,Tianjin 300387,China)

Abstract:Federated learning is a framework for obtaining machine learning models without centralized data training,reducing the risk of privacy leakage while also obtaining optimized training models locally.However,the identity,behavior,environment,etc.between nodes are different,resulting in unbalanced data distribution,which may cause a large deviation in the performance of the model on different devices,resulting in data heterogeneity.Aiming at the above problems,this paper proposed a federated learning algorithm for data sharing clustering based on node optimization method that applied clustering and data sharing to fede-rated learning system at the same time,which could effectively reduce the impact of data heterogeneity on federated learning and accelerate the convergence of local models.At the same time,it designed method to assess the convergence of the global shared model to determine the timing of node clustering nodes.Finally,this paper used the EMNIST and CIFAR-10 datasets for experiments and performance analysis to compare the effects of the size of the shared scale on the convergence speed and accuracy of each node,and to compare the accuracy of clustering and data sharing before and after the application of federated learning.Experimental results show that the convergence speed and accuracy of each node are improved when data sharing is introduced,and the accuracy is increased by about 10%~15% when clustering and data sharing are introduced into federated learning training at the same time,indicating that this method has a good effect on the heterogeneous problem of federated learning data.

Key words:federated learning;data sharing;clustering;global shared model convergence;data heterogeneity

0 引言

近年来,云计算、物联网和机器学习高速发展,广泛应用于智慧城市、智慧安防等领域。海量异构数据聚合在云平台上,通过各类机器学习和深度学习算法对数据进行分析,挖掘数据隐藏的知识信息。然而,随着数据和用户隐私的关联度越发密切,把全部源数据聚合到中心节点再进行模型训练的方法存在较大的隐私泄露风险[1~3]。因此,谷歌于 2017 年提出联邦学习[4],旨在无须通过中心化的数据训练就能获得机器学习模型。各数据提供方在本地进行数据训练,把参数等隐私无关信息发送给参数服务器进行全局调优,再把优化后的模型应用到本地,以实现在不提供原始数据的情况下获取全局的数据“知识”。联邦学习是典型的非聚合式数据共享方法,源数据不出本地,降低了隐私泄露的风险,同时本地也获得优化训练模型[5]。

但是由于各节点的身份、所处环境的差异,导致由各节点之间产生的数据集可能存在很大的差异性,训练样本并不是均匀随机地分布在不同的数据节点间的,不平衡的数据分布可能导致模型在不同设备上表现出较大偏差,从而形成联邦学习数据异构问题[6~9]。所以在进行联邦学习训练前,如何选取有效的数据集进行数据处理是一个重要的问题。在联邦学习算法研究过程中,文献[4]提出的FedAvg是目前最常用的联邦学习优化算法,其根据各个节点内数据量与全体节点总数据量的比值作为权重聚合不同节点发送的参数,但这种简单的加权平均的方式难以处理数据异构问题。基于FedAvg联邦平均算法,目前有很多关于解决数据异构问题的研究,主要有两种思路[3]:a)通过优化中心服务端的模型聚合的方法降低数据不平衡带来的影响;b)通过优化本地模型的更新过程。在基于中心服务端聚合的优化方面: FedAvgM[10]通过引入动量的方法缓解数据异构对联邦平均算法的影响;文献[11]提出分层聚合的方式,将模型训练分为基础层与个性层两层,其中基础层由不同节点共同训练,而个性层是由本地训练,个性层能够有效地减少数据异构在不同节点之间的差异。在基于本地节点优化的算法方面:由于不同节点上的数据是非独立同分布的,并且节点之间不能够直接通信与数据交流,本地模型训练时不能够得到其他节点中的信息,所以本地训练很可能受到本地节点中的数据影响,其模型的更新方向很难被掌控。为了解决上述问题,文献[12]通过创建一个在所有节点设备之间全局共享的数据子集,节点设备基于共享数据与私有数据进行模型训练,以改进对非独立同分布数据的训练。

由于non-IID 数据的存在,联邦学习的效率、准确性和通信成本等都受到了很大的影响。已有很多学者针对此进行研究。例如:文献[7]使用全局模型的知识来约束局部模型的偏置问题,防止那些与全局模型训练方向相差太大的局部模型发生“客户漂移”现象,进一步增加设备之间的通信代价;文献[8]引入K-center方法,提出了一种基于模型梯度相似性对设备进行周期性聚合分组的方法,但很容易引入巨量的通信开销;文献[13]提出了一种新的算法FedProx,在各个用户之间设置局部损失函数,有效减少数据异构对联邦学习的影响。针对移动终端设备上数据分布的不平衡性,文献[14]提出一种自平衡框架;文献[15]提出一种基于精馏的半监督联邦学习算法,能在移动设备间交换局部模型的输出,降低了通信成本;文献[16,17]对面向非独立同分布数据的联邦学习研究进展进行了综述,并指出了目前的研究方向。

由于本地節点优化与优化中心服务端的模型聚合相比更容易操作且便捷,所以本文基于本地节点优化的算法,提出了基于节点优化的数据共享聚类的联邦学习算法,引入聚类[14]算法与数据共享技术[8]到联邦学习算法,有效减少数据异构对于联邦学习的影响。该算法首先利用数据共享,节点利用共享数据与本地数据训练收敛后,依据各个节点上传的模型参数寻得相似节点进行聚类操作,随后在各个类别中分别进行聚合。

本文的主要贡献包括三个方面:

a)数据共享。引入数据共享技术到联邦学习节点初始化,各节点按照指定的共享比例将数据放置共享数据池,节点本地训练时并入共享数据池中的数据进行本地训练,并研究节点数据共享比例对联邦学习的准确度和收敛速度的影响。

b)动态判断模型收敛。通过对于联邦学习收敛的研究,提出了动态判断模型收敛算法。该算法能够反映出各个节点的收敛程度,其目是为模型参数聚类做准备,当各节点的模型收敛,此刻本地模型参数能够很好地表现本地数据的分布情况。该算法提高了模型参数聚类的效果。

c)节点聚类。通过节点的层次聚类解决数据异构问题带来的影响。首先联邦学习达到模型收敛条件后,判断各个节点数据之间的相似度,进行层次聚类。针对不同簇类的用户分别进行聚合操作,并在数据集EMNIST和CIFAR10上作出了评估。实验结果表明,本文算法能够有效减少数据异构对联邦学习的影响,并且优与对比方案。

1 理论基础

1.1 经典联邦学习及其存在的问题

联邦学习是一种新型分布式机器学习技术,联邦学习中各个数据的拥有者(个人/企业/机构)的自有数据不会离开本地,通过联邦学习系统中加密机制下的参数交换联合建立一个全局的共享模型,建好的模型在各自区域只为本地的目标中心服务。该系统中全局共享模型的数据与训练存储在各个节点上,中心服务端统筹联合训练。联邦学习与分布式机器学习不同的是由于节点之间存在地理、时间分布的差异,联邦学习通常要处理非独立同分布(non-IID)的数据[15,16]。联邦学习的训练过程通常需要循环以下四个步骤,如图1所示,设联邦学习各个节点与中心服务端的通信次数为t,具体步骤如下:

a)系统初始化。首先各个节点从中心服务端下载全局共享模型参数θt,初始化本地模型参数。

b)局部计算。各节点根据自有的数据进行本地训练,当达到预定的训练次数时,将本地模型参数与训练前下载的全局共享模型参数作差求出模型参数的梯度,并上传至中心服务端,以用于全局共享模型的一次更新。如式(1)所示,设节点数据为Di,通过梯度下降法得到本地训练参数与θt作差,求出全局共享模型下降梯度。

Δθt+1i=SGDk(θt,Di)-θt i=1,…,m(1)

c)中心聚合。中心服务端随机抽取节点,并接收各节点上传的模型参数梯度,中心服务端对这些模型参数梯度值进行聚合操作。式(2)表示中心服务端模型参数梯度聚合,中心服务端将抽样的节点模型参数梯度Δθt+1i加权平均,并与上一轮聚合后模型参数θt相加,更新全局模型参数θt+1。

d)模型更新。中心服务端根据聚合后的结果对全局模型进行一次更新,并将聚合后的模型参数回传给抽样节点,各节点更新本地模型,并开启下一轮的本地训练。重复执行上述步骤直至通信次数达到t。

θt+1=θt+∑mi=1|Di||D|Δθt+1i(2)

联邦学习中通信负载[17]是联邦学习发展道路上难以忽视的一道障碍。随着深度学习的不断发展,神经网络模型的深度不断加深,深度学习网络模型参数也随之增多。比如 CNN[18]可能需要训练上百万个参数,在联邦学习中每一次更新过程需要更新上百万个参数。其次,联邦学习的训练放置在各个节点中,中心服务端依靠网络与各节点进行信息交互,更新节点模型参数。其中,网络通信[19]的状态也可能导致很高的通信成本,比如不稳定的网络情况、参数上传和下载过程中速度不一致都会导致整个算法的模型训练成本过大。

为了解决上述问题,本文采用上传模型参数梯度,而非整个模型参数。更新本地模型需将全局共享模型参数赋值到本地,该过程中有很多值是无须传递的,对于通信会造成不小的压力。而本地模型仅仅需要了解其模型变化的方向,就能够调整本地模型参数。因此各节点只需接收模型参数梯度,就能够减少通信所带来的一部分压力,并且与传递整个全局模型的效果是一样的。

此外,联邦学习中存在数据异构难题。联邦学习节点中的数据通常以non-IID的方式在网络中生成和存储在本地,跨设备的节点持有的数据数量很可能分布不均匀。而目前现有的机器学习优化算法针对的数据是独立同分布的,这些算法对于联邦学习不能适用。其次,数据异构也会导致节点本身的模型参数仅仅适用于本身私有的数据,使节点局部模型的准确率高于全局共享模型[19~22]。

FedAvg[4]是目前最常用的联邦学习优化算法,其本质思想是中心服务端聚合操作为线性求和,求得均值,用于全局共享模型的一次更新。并未对联邦学习的数据异构进行处理,导致传统联邦学习中的全局共享模型并不能有效地泛化各个节点。

1.2 算法改进思想

1)模型参数聚类

真实环境中联邦学习各个节点的数据存在着一定的独立性、差异性。设想联邦学习中存在具有相同工作和相似环境的一类节点,该类节点所产生和存储的数据往往相似度很高。例如节点A经常旅游,该节点设备中存储的图片,风景照将会占绝大部分,而另一个节点B与A有着相同的爱好,节点A、B设备中存储的数据将会有着很高的相似度。在上述例子中,倘若想要对各个节点划分类别,传统的机器学习采取的方法通常是对现有大量数据进行聚类操作。但在联邦学习中基于对节点数据隐私的考虑,节点中的数据不能上传到中心服务端,因此不能根据数据的特征对节点分类。

基于以上分析,聚类在联邦学习中不能直接聚类节点中的数据[23],而是聚类节点的模型参数,其意义在于寻找相似的模型参数,如同寻找相似的节点。根据模型参数进行聚类,寻得相似节点分类聚合,在减少数据异构对联邦学习造成影响的同时也保护了节点数据的隐私。本文采用层次聚类[14]用于联邦学习训练,主要原因是该方法的距离规则更加容易被定义,限制程度较小。层次聚类的过程如下:

a)初始化。首先将每个个体C={c1,c2,…,cm}看作一个初始聚类簇。

b)合并。遍历每个聚类簇,找出最近的两个聚类簇c*i=ci∪cj进行合并,合并后化为一个新的个体。该过程不断重复进行,最终达到预设的簇类个数。

2)采用数据共享进行训练

联邦学习系统是面向多节点的模型训练系统,各个节点在参与训练时,数据不会发送给其他节点或中心服务器,而是将数据保留在本地。中心服务器通过对节点发送的本地模型更新进行整合,最终完成共享模型的训练。在节点进行本地模型训练时,由于设备间计算能力的差异,各个客户端完成计算的时间不同,而现有机器学习任务一般默认数据遵循独立同分布的假设。在联邦学习中,不同节点设备之间的数据极有可能不满足该假设,各个节点中的部分异常数据会对共享模型造成破坏,造成模型精度的降低。

为了解决联邦学习中数据分布影响联邦学习效果的问题,本文采用了一种小部分共享数据的方法[8]。具体地,在训练初始阶段,对参与联邦学习的每个节点设备,按照共享比例抽取共享数据,放置共享数据池中,节点模型训练之初从共享数据池中随机采样部分数据分发给各个节点设备。节点设备基于共享数据与私有数据进行模型训练。

2 系统架构与设计方案

本章首先阐述本文的系统架构,将数据共享引入到联邦学习中,并在节点训练之初收集共享数据,随后进行本地训练;其次,提出判断联邦学习收敛的两个条件,即最大风险函数梯度与平均风险函数梯度值,用于联邦学习参数聚类;最后,当满足模型收敛条件时进行模型参数聚类,即不同类别的节点分别进行聚合,并给出了判断节点分类的理论基础。

2.1 系统架构

物理层面上,联邦学习系统一般由数据持有方和中心服务器组成。各数据持有方的本地数据数量或特征数或许并不足以支持一次成功的模型训练,因此需要其他数据持有方的支持。而联邦学习中心服务器的工作是收集从各数据持有方收集到的梯度,并在服务器内进行聚合操作后返回新的梯度。在一次联邦学习的合作建模过程中,数据持有方对本地数据的训练仅发生在本地,以保护数据隐私,迭代产生的梯度脱敏后作為交互信息,代替本地数据上传给第三方受信任的服务器,等待服务器返回聚合后的参数再对模型进行更新。

在大规模边缘节点设备参与的联邦学习中,虽然参与方的本地数据为non-IID,但如果使用层次聚类算法[14]根据参与方数据分布的向量对参与方进行聚类,在使用一个合理类簇值的前提下,随着迭代次数增加,层级聚类的收敛性会保证数据分布相近的节点逐渐被划分进同一个聚类,即每个聚类内部的数据分布会向IID趋近。当节点的数量达到一定规模,每个节点都能找到其所属的聚类,且每个聚类的参与方数量都能达到一定规模。基于各聚类中心,本文算法就能对总体训练数据的分布有更多的把控。此外,同一聚类中参与方的数据分布更接近IID。

聚类联邦学习系统架构中包括节点和中心服务器两类成员。节点收到全局模型后,提供部分数据存放在共享数据池,如算法1所示,同时将共享数据池中的数据加载到本地数据中,随后使用本地数据进行模型训练,得到梯度信息后上传到中心服务器,由中心服务器进行聚类。并且中心服务器负责收集从节点发送来的信息,并对其加权平均,然后更新全局模型信息,再把全局模型发送给各个参与方开始新的全局训练周期。该系统架构如图2所示。

2.2 联邦学习的数据共享

为了保护节点数据的隐私,联邦学习中数据生成和存储在本地。在这种情况下,每个节点的数据都是相互独立的,这使得本地训练出的模型仅仅适用于节点本身的数据,泛化能力很差,局部模型容易出现欠拟合。本地模型参数上传到中心服务端聚合,聚合后的全局共享模型更新本地模型虽然能够在一定程度上减少欠拟合,但却面临着全局共享模型准确率会低于局部模型的问题。

为了解决上述问题,本文提出了联邦学习数据共享技术。为了平衡保护节点数据隐私和提高全局共享模型之间的矛盾,仅需上传小部分数据就能够达到提高全局共享模型准确率的目的。该方法在抽样的节点中抽取一部分共享数据存放到共享数据池中。在节点模型训练之初,将共享数据池中的数据并入到本地节点数据中,其目的是解决节点之间的数据差异较大使得联邦学习全局共享模型并不能有效泛化节点的问题。由于每个节点都共享一部分数据,这样能够很大程度上减少各个节点数据之间的差异,提高本地模型的泛化能力。本文设计了各个节点数据的分配,如算法1所示。首先,模型传入本地数据集Di,设置超参数分享比例share,然后将节点所分配到的数据分为训练集data_train、验证集data_eval,以及共享数据集data_share三部分。其中共享数据集按照共享比例share将数据拆分出来,之后存放到共享数据池中。在本地模型训练之初,将共享数据池的数据并入到各个节点的训练集中。

算法1 各个节点数据的分配

输入:数据集Di;节点id;分享比例share;训练集比例train_frac。

输出:节点数据的训练集data_train;验证集data_eval;共享数据集data_share。

初始化:本地client加载本地数据。

N_Share=length(Di)×share

N_Train=(length(Di)-N_share)×train_frac

N_Eval=length(Di)-N_train-N_share

data_train,data_eval,data_share=split(Di,[N_Share,N_Train,N_Eval])

return data_train,data_eval,data_share

2.3 联邦学习节点本地模型收敛评估

联邦学习节点数据的非独立同分布是造成模型效果不如传统的机器学习的原因之一[3]。非独立同分布使得联邦学习产生模型异构、数据异构等问题,都有可能影响各节点的模型收敛时间。本文根据节点模型参数相似性划分类别,要求聚类操作只有在节点模型收敛下才能进行。因为只有在收敛状态下的节点模型参数才能最准确地反映节点数据的分布情况。

基于上述分析,本文提出了一种评估联邦学习训练是否收敛的方法,用于解决节点之间因过早分区而导致聚类效果降低的问题。该方法计算全局模型收敛程度,进而判断节点聚类的时机。首先,由于中心服务端需要统筹多个节点,所以联邦学习判断收敛不能由单个节点的收敛决定整个模型收敛。其次,当整个模型趋近于收敛时,所有节点的模型参数梯度都应趋近于0。因此,本文提出了平均风险函数值和最大风险函数值

两个参数用于判断联邦学习收敛。平均风险函数值能够反映出所有节点模型训练的状况。此外,

若节点群中最大的风险函数值符合预设条件,自然风险函数较低的节点也已经收敛。只有两个参数都满足预设的条件时,联邦学习训练才达到收敛。

当联邦学习在通信k与k-1次中的平均风险函数值mean之差在0~ε1,则满足本地模型训练收敛条件之一,如式(4)所示。

当条件式(4)(6)都被满足时,表明联邦学习已经收敛,就可以对节点本地模型参数进行聚类。

2.4 模型参数聚类

本文在2.2节中将数据共享引入到联邦学习中,一定程度上减少了节点之间的差异。为了能进一步减少节点差异,进而降低数据异构对联邦学习的影响,本文引入聚类方法。该方法在节点集群中寻找到具有相似特征的节点,并在聚类后将不同类簇的节点集群分别进行联邦学习训练。此外,本文使用余弦相似性[18]作为聚类的分类标准。首先将数据进行物理上的变形、旋转等操作,其目的是使本地节点数据之间产生角度差异;其次使用余弦相似性,将具有角度相似的节点划分到同一类簇。

下面以节点集群二分类为例,说明如何聚类以及判断相似节点之间是否已经分到同一分区之中。

证明的推导过程如下:假设2≤k≤m,m表示节点总个数。

I:{1,…,m},i→I(i)→φI(i)(7)

其中:I表示所有客户端所具有数据的集合。客户端i所对应的数据为I(i),将i与I(i)的数据映射关系命名为φI(i)。假设节点集群为二分类,两个種类分别用c1、c2表示,c1∪c2={1,…,m},并且每组分类不能为空,即c1≠,c2≠。

I(i)≠I(j) i∈c1,j∈c2(8)

m个节点,每个节点被分配到两个区域内分别是φ1、φ2。Di表示数据集映射φI(i)与数据标签y之间关系映射。

Di~φI(i)(x,y)(9)

设每个节点都具有风险函数ri(θ),用来衡量模型拟合效果。风险函数越低表示模型拟合的效果越好。

ri(θ)=∑x∈Dilθ(f(xi),yi)(10)

如果每个节点上的数据足够大,它越接近于真实的风险值。

RI(i)(θ)=∫x,ylθ(f(x),y)dφI(i)(x,y)(11)

ri(θ)≈RI(i)(θ)(12)

为了演示,假设式(11)是相等的。式(12)表示联邦学习聚合函数,把抽样节点的风险函数进行聚合,求出全局模型参数。但当节点划分为两类时,式(12)应拆分为两部分,分别表示不同分类的模型参数聚合。a1表示分到区域φ1的抽样节点模型参数,a2表示分到区域φ2的抽样节点模型参数,如式(14)所示。式(15)(16)分别表示对应类别的聚合。

F(θ)=∑mi=1|Di||D|ri(θ)(13)

F(θ)=a1R1(θ)+a2R2(θ)(14)

a1=∑i,I(i)=1|Di||D|(15)

a2=∑i.I(i)=2|Di||D|(16)

在式(1)中,求出在每次训练之后模型参数梯度。当联邦学习训练达到稳定点θ*,该点表示联邦学习收敛。如果对分类后的聚合函数式(13)进行求导,得出的结果应该接近0得出式(17)。此时联邦学习收敛状态下模型参数的梯度变化应为0。

2.5 基于数据共享和参数聚类的联邦学习

本节结合2.1~2.3节内容,阐述基于数据共享和参数聚类的联邦学习的整体架构,如图3所示。

算法2给出了本文算法框架。首先,指定本地节点的数量m、每轮通信中节点本地训练次数n、节点与中心服务端之间的通信次数rounds,以及用于判断联邦学习收敛的超参数ε1,ε2≥0等。然后进行算法的初始化:本地节点ci,i={1,…,m}节点集群本地模型θi,i=1,…,m,设置用于存储聚类集合C。

a)节点集群首先下载中心服务端的全局模型θ*,并更新本地模型参数,然后将共享池中的数据并入到本地数据中形成新的数据集Di,最后新的数据集Di与更新后的模型参数θi一起传入到本地模型进行训练。当本地训练达到规定的训练次数n时,将此时的模型参数θi与中心服务端全局模型参数θ*作差求出模型参数梯度值Δθi,并回传到中心服务端。

b)在中心服务端中计算上传节点集群最大风险函数值maxk和平均风险函数值meank。如果满足式(4)(6),表示绝大多数的本地训练结果已经开始收敛,并已达到平稳点θ*,执行步骤c);否则继续执行传统的联邦学习训练,抽取节点进行聚合,聚合后的值赋值到节点集群中,然后节点继续执行步骤a),不进行聚类操作。

c)在满足式(4)(6)的前提下,则执行2.3节描述的余弦相似性。使用式(19)计算出每两个节点之间的余弦值并存放到m×m的余弦矩阵αi,j中。

d)将步骤c)计算的余弦矩阵αi,j传入到式(21)聚类,计算出节点集群中角度最相似的两个类别分别是c1、c2,C=c1∪c2。

c1,c2←Aggmin(max αi,j)c1∪c2=c,i∈c1,j∈c2(21)

e)不同的节点类别分别进行聚合。及分别聚合在种类c1、c2中的节点模型参数梯度。聚合后的模型参数θ*i i∈c1、θ*i i∈c2返回到对应种类的节点集群中。然后继续执行步骤a)。

重复执行上述步骤直至节点与中心服务端的通信次数达到rounds,联邦学习训练结束。

3 实验和分析

3.1 数据集

本文实验部分采用CIFAR-10、EMNIST两种数据集。CIFAR-10包含像素为32×32,60 000张RGB图片,其中50 000个训练集以及10 000个测试集,共有10个类别,每个类别包含6 000张图片。EMNIST是对MNIST数据集的扩充,包含byclass、ByMerge、balanced、digits、letters五种类别。本文采用byclass,其中包含像素为28×28的814 255张图片,一共有62个类别。

由于联邦学习的分布式环境设置,导致不同数据节点的地理位置可能不同,用户的使用习惯存在差异,从而影响数据的分布。所以联邦学习中不同数据节点间是非独立同分布的,任何一个数据节点都不能代表整个数据集的分布。

为了实验更加高效,联邦学习训练之前需模擬真实的联邦学习的网络环境,即将数据集分割为非独立同分布并分发到各个节点中。因此本文采用了Dirichlet狄利克雷分布概率密度[24]函数,应用到整体数据,利用其产生随机概率,将数据分发到各个节点中。

首先统计每个类别的总数量,然后采用Dirichlet狄利克雷分布概率密度函数将每一个种类依据节点数量划分分割比例,将每一个类别按照种类分割比例分发到每个节点中。

定义一个连续向量X。

以EMINST数据集为例,向Dirichlet概率密度函数传入参数62类别、10个节点ID。将每个种类依照Dirichlet函数生成分割比例,然后按照分割比例将每个种类的数据划分为10份,并随机分配到10个节点,达到将数据集分割为非独立同分布的目的。EMNIST中的训练集每个种类都具有814 255张图片。图4表示数据被划分后在每个节点的分布情况,横坐标表示数据集的类别,纵坐标表示类别总数。10种颜色分别代表10个节点,每个柱表示同一类别在不同节点的分布情况(见电子版)。

3.2 数据共享对学习准确率的影响

本文将数据共享技术引入到联邦学习。以EMNIST数据集为例,通过实验证明数据共享引入联邦学习中能够有效提高联邦学习的准确性。

图5是共享比例对于模型准确率的影响。星号标记折线表示共享数据比例0.2,×号标记折线表示共享数据比例0.1,圆形标记折线表示共享数据比例0.3,虚线表示共享数据比例0。根据图5中所展示的内容,本文从两个角度分析共享比例对于联邦学习的影响:a)引入数据共享对联邦学习性能的影响;b)共享数据比例的增加对于联邦学习性能的影响。

在图5中,当联邦学习引入数据共享技术与未引入数据共享技术时,主要有三点区别:首先,虚线所代表的数据共享比例为0的精度曲线明显低于数据共享后模型;其次,虚线的收敛是在通信次数为15次前后,而其他三类的通信次数只在10轮前后;最后,随着共享比例的增加,最初训练的精度往往也会增加。以上三点表明数据共享技术既能够增加模型收敛时间,又能够提高模型的准确度。

隨着共享数据比例增加对于联邦学习的影响,从图中能够看出两点:首先,共享数据比例增加并不会提高模型的准确率,当共享比例在0.2~0.3,模型最终的准确率非常接近,而在共享比例0.2很明显要高于0.1;其次,随着共享比例的增加,会提高初始训练准确率,这样会加快模型的收敛速度。基于以上分析,数据共享能够加快模型收敛速度,有效提高模型的准确率,但并不是随着共享比例的增加,就会使得模型准确率无限上涨。

3.3 参数聚类的有效性

图6(a)(b)分别表示数据集CIFAR-10和EMNIST模型参数聚类,

图右上角显示当前分类的节点ID。图中的曲线区域部分表示所有节点模型准确度从大到小依次绘制在区域上,而曲线中的实线部分表示所有节点模型准确度的平均值。图中绘制的黑线(见电子版),标志着联邦学习的节点模型收敛并满足聚类条件式(4)(6)。

从图6能够明显看出,当经过黑线之后,本地模型的准确度有明显的提高。这表明当联邦学习节点的本地模型收敛,经过聚类操作可使模型准确率得到显著提升。主要原因在于:首先聚类之前不同节点之间的数据存在很大差异,其次中心服务端聚合数并不能够检测出节点模型之间的差异性与相似性,而是通过暴力聚合,使得聚合后的模型并不能泛化不同节点之间的数据。聚类操作能够识别出不同类别的节点分别进行聚合,在同一类簇中的节点具有的数据分布大致相同,本地模型参数的梯度变化也大致相同,使得全局模型的聚合函数能够更好地统筹类簇中节点本地模型梯度变化。如图5所示,在CIFAR-10与EMNIST两个数据集中经过聚类操作后,准确率都有10%的提高。

3.4 基于数据共享和聚类的联邦学习

图7、8分别记录着CIFAR-10、EMNIST两种数据集在是否引入共享数据,是否进行聚类,最终各个本地模型的准确率。分别用蓝线、绿线、粉线、红线、黑线(见电子版)表示联邦平均算法[5]、模型参数聚类、共享数据10%模型参数聚类、共享数据20%模型参数聚类、共享数据30%模型参数聚类。

从图7、8中可以看出,蓝线所代表的传统联邦学习平均模型准确率在0.6左右,绿线表示的模型参数聚类准确率在0.6~0.7,粉线所代表共享数据10%聚类联邦的模型准确率在0.7左右。但是其中图6有8个节点的准确率低于黑线与红线,而在图7有5个节点。黑线与红线分别表示模型参数聚类中共享数据20%与30%,其模型的准确率均分布在0.7~0.8,并且黑线与红线分布大致相同。

从对图7、8的分析能够得出,无共享无聚类的联邦学习的模型准确率是最低的,仅仅0.6左右。

在同时使用non-IID数据时,当联邦学习引入聚类和共享数据技术,准确率与FedAvg算法相比提高10%以上。原因在于:首先数据共享能够加快模型收敛,提高模型准确率,在一定程度上减少因节点之间的数据差异导致聚合后全局模型泛化能力低的问题;其次当引入聚类之后在针对节点数据异构的问题上,提出不同类别的节点分别进行聚合。该方法在数据共享的基础上能够进一步减少数据之间的差异,提高全局模型泛化能力和准确率。

3.5 性能对比

为了评估本文方法的性能,在两个数据集上将本文算法与四个对照方法进行了比较,实验结果如表1所示。

表1展示了本文算法与四种对照方法在模型准确度方面的比较结果。从表1可以观察到,与四种对照方法相比,本文算法当同时采用数据共享与模型聚类的non-IID的情况下都取得最好的模型准确度。以EMNIST为例,当共享比例在20%时,本文算法比FedAvg、FedProx、SCAFFOLD(基于数据共享的方法)[21]、K-center(基于数据聚类的方法)[22]分别高出8.4%、7.78%、7.54%、3.45%。此外在数据结构复杂的数据集CIFAR-10上,本文算法对比四种对照算法都获得了模型上的提升,这充分说明了面对复杂结构的实际任务,本文算法会更加有效。

4 结束语

本文提出了一种将聚类与数据共享同时引入到联邦学习的算法,能够有效减少数据异构对于联邦学习的影响,加快各节点本地模型收敛速率。在EMNIST、CIFAR-10数据集上的实验效果比联邦平均算法FedAvg的精确度高出10%~15%。

本文实验验证了数据共享对于联邦学习有着显著提高,但是并未对共享数据进行加密处理。未来可以考虑对共享的数据进行加密处理,这样能够进一步提高用户数据的隐私安全。

参考文献:

[1]王健宗,孔令炜,黄章成,等.联邦学习算法综述[J].大数据,2020,6(6):64-82.(Wang Jianzong,Kong Lingwei,Huang Zhangcheng,et al.A survey of federal learning algorithms[J].Big Data,2020,6(6):64-82.)

[2]张鹏程,魏芯淼,金惠颖.移动边缘计算下基于联邦学习的动态QoS优化[J].计算机学报,2021,44(12):2431-2446.(Zhang Pengcheng,Wei Xinmiao,Jin Huiying.Dynamic QoS optimization based on federated learning in mobile edge computing[J].Journal of Computer,2021,44(12):2431-2446.)

[3]梁锋,羊恩跃,潘微科,等.基于联邦学习的推荐系统综述[J].中国科学:信息科学,2022,52(5):713-741.(Liang Feng,Yang Enyue,Pan Weike,et al.Review of recommendation systems based on federated learning[J].Chinese Science:Information Science,2022,52(5):713-741.)

[4]McMahan B,Moore E,Ramage D,et al.Communication-efficient learning of deep networks from decentralized data[C]//Proc of the 20th International Conference on Artificial Intelligence and Statistics.[S.l.]:PMLR,2017:1273-1282.

[5]劉艳,王田,彭绍亮,等.基于边缘的联邦学习模型清洗和设备聚类方法[J].计算机学报,2021,44(12):2515-2528.(Liu Yan,Wang Tian,Peng Shaoliang,et al.Edge-based federated learning model cleaning and equipment clustering method[J].Journal of Computer,2021,44(12):2515-2528.)

[6]刘艺璇,陈红,刘宇涵,等.联邦学习中的隐私保护技术[J].软件学报,2022,33(3):1057-1092.(Liu Yixuan,Chen Hong,Liu Yuhan,et al.Privacy-preserving techniques in federated learning[J].Journal of Software,2022,33(3):1057-1092.)

[7]Karimireddy S P,Kale S,Mohri M,et al.SCAFFOLD:stochastic controlled averaging for on-device federated learning[C]//Proc of the 37th International Conference on Machine Learning.[S.l.]:JMLR.org,2020:5132-5143.

[8]Wang Hao,Kaplan Z,Niu Di,et al.Optimizing federated learning on non-IID data with reinforcement learning[C]//Proc of IEEE Confe-rence on Computer Communications.Piscataway,NJ:IEEE Press,2020:1698-1707.

[9]李尤慧子,殷昱煜,高洪皓,等.面向隐私保护的非聚合式数据共享综述[J].通信学报,2021,42(6):195-212.(Li Youhuizi,Yin Yuyu,Gao Honghao,et al.A survey of non-aggregate data sharing for privacy protection[J].Journal of Communications,2021,42(6):195-212.)

[10]Hsu T M H,Qi Hang,Brown M.Measuring the effects of non-identical data distribution for federated visual classification[EB/OL].(2019-09-13).https://arxiv.org/abs/1909.06335.

[11]Arivazhagan M G,Aggarwal V,Singh A K,et al.Federated learning with personalization layers [EB/OL].(2019-12-02).https://arxiv.org/abs/1912.00818.

[12]Zhao Yue,Li Meng,Lai Liangzhen,et al.Federated learning with non-IID data[EB/OL].(2018-06-02).https://arxiv.org/abs/1806.00582.

[13]Li Tian,Sahu A K,Zaheer M,et al.Federated optimization in heterogeneous networks [EB/OL].(2020-04-21).https://arxiv.org/abs/1812.06127.

[14]Duan Moming,Liu Duo,Chen Xianzhang,et al.Self-balancing federated learning with global imbalanced data in mobile systems[J].IEEE Trans on Parallel and Distributed Systems,2020,32(1):59-71.

[15]Itahara S,Nishio T,Koda Y,et al.Distillation-based semi-supervised federated learning for communication-efficient collaborative training with non-IID private data[J].IEEE Trans on Mobile Computing,2023,22(1):191-205.

[16]郭桂娟,田暉,皮慧娟,等.面向非独立同分布数据的联邦学习研究进展[J].小型微型计算机系统,2023,44(11):2442-2449.(Guo Guijuan,Tian Hui,Pi Huijuan,et al.Progress in research on federated learning for non-independent and co-distributed data[J].Journal of Chinese Computer System,2023,44(11):2442-2449.)

[17]Zhu Hangyu,Xu Jinjin,Liu Shiqing,et al.Federated learning on non-IID data:a survey[J].Neurocomputing,2021,465:371-390.

[18]Sattler F,Muller K R,Samek W.Clustered federated learning:model-agnostic distributed multi-task optimization under privacy constraints[J].IEEE Trans on Neural Networks and Learning Systems,2021,32(8):3710-3722.

[19]Sattler F,Wiedemann S,Müller K R,et al.Robust and communication-efficient federated learning from non-IID data[J].IEEE Trans on Neural Networks and Learning Systems,2019,31(9):3400-3413.

[20]Konecˇny J,McMahan H B,Yu F X,et al.Federated learning:strategies for improving communication efficiency[EB/OL].(2016-10-18).https://doi.org/10.485501/arxiv.1610.05492.

[21]史鼎元,王晏晟,郑鹏飞,等.面向企业数据孤岛的联邦排序学习[J].软件学报,2021,32(3):669-688.(Shi Dingyuan,Wang Yancheng,Zheng Pengfei,et al.Federated ranking learning for enterprise data islands[J].Journal of Software,2021,32(3):669-688.)

[22]芦效峰,廖钰盈,Pietro L,等.一种面向边缘计算的高效异步联邦学习机制[J].计算机研究与发展,2020,57(12):2571-2582.(Lu Xiaofeng,Liao Yuying,Pietro L,et al.An efficient asynchronous federated learning mechanism for edge computing[J].Journal of Computer Research and Development,2020,57(12):2571-2582.)

[23]李少波,杨磊,李传江,等.联邦学习概述:技术、应用及未来[J].计算机集成制造系统,2022,28(7):2119-2138.(Li Shaobo,Yang Lei,Li Chuanjiang,et al.Overview of federal learning:technology,applications and the future[J].Computer-Integrated Manufacturing,2022,28(7):2119-2138.)

[24]Wojke N,Bewley A.Deep cosine metric learning for person re-identification[C]//Proc of IEEE Winter Conference on Applications of Computer Vision.Piscataway,NJ:IEEE Press,2018:748-756.

[25]Ng K W,Tian Guoliang,Tang Manlai.Dirichlet and related distributions:theory,methods and applications[M].[S.l.]:Wiley,2011.

[26]Krizhevsky A,Sutskever I,Hinton G E.ImageNet classification with deep convolutional neural networks[J].Communications of the ACM,2022,60(6):84-90.

猜你喜欢

数据共享聚类
基于DBSACN聚类算法的XML文档聚类
科学大数据的发展态势及建议
数字化迎新系统宿舍分配模块的设计与实现
条纹颜色分离与聚类
贵州大数据产业发展战略理解和实施建议
面向海上平台机械电气设备的数据共享平台的设计与实现
基于Spark平台的K-means聚类算法改进及并行化实现
基于协同办公的会议管理系统设计与实现
基于改进的遗传算法的模糊聚类算法
一种层次初始的聚类个数自适应的聚类方法研究