基于异构数据的联邦学习系统

文档序号:25589140发布日期:2021-06-22 17:05阅读:260来源:国知局
基于异构数据的联邦学习系统

本发明涉及计算机技术领域,尤其涉及一种基于异构数据的联邦学习系统。



背景技术:

联邦学习是一种特殊的分布式学习框架。主要用于解决数据孤岛的问题。在联邦学习中,数据是存在于各个本地客户端上的,所有的数据是不能聚集到某一个地方进行传统集中式学习的。现有的联邦学习中的联邦平均算法(简称fedavg)因其简单性和低通信开销,成为了联邦学习领域首选的优化算法。现有的联邦平均算法适用于客户端数据集独立同分布的情况,然而在异构性较强的数据集上,联邦平均算法会由于客户端数据分布的差异产生收敛速度慢、收敛不稳定,通信代价高,甚至无法收敛等一系列技术问题,这主要是因为联邦平均算法在本地进行了多次更新,而这种方式会让全局模型的参数更新方向与理想的更新方向发生偏差,进而导致收敛速度缓慢。由此可知,如何提供一种适用于异构数据的联邦学习技术,降低基于异构数据的联邦学习的通信代价,提高收敛速度和收敛稳定性成为亟待解决的技术问题。



技术实现要素:

本发明目的在于,提供一种基于异构数据的联邦学习系统,降低了基于异构数据的联邦学习的通信代价,提高了联邦学习收敛速度和收敛稳定性。

根据本发明第一方面,提供了一种基于异构数据的联邦学习系统,包括中央服务器、k个客户端、存储有计算机程序的存储器和处理器,

所述中央服务器存储有每轮联邦学习得的全局控制变量s、全局模型参数w,所述全局控制变量s用于记录本轮全局模型更新的方向;

所述客户端存储有每次参与联邦学习得到每一参与客户端得到的本地控制变量si,所述本地控制变量si用于记录客户端本次参与联邦学习训练的本地模型更新的方向,i的取值为1到k;

所述处理器在执行所述计算机程序时,实现以下步骤:

步骤s1、初始化中央服务器的全局联邦模型的参数w0、全局控制变量s0、全局学习率ηg,初始化每一客户端的本地控制变量本地学习率ηu,初始化t=1;

步骤s2、在第t轮训练中,随机选择m个客户端,m<k,将t-1轮对应的全局模型参数wt-1和全局控制变量st-1发送给所有所选客户端,将每一所选客户端的当前本地模型yi参数更新为wt-1;

步骤s3、基于每一所选客户端的本地数据对yi进行本地模型训练,根据每一所选客户端上次参与联邦学习本地控制变量预设的本地更新次数qi、上一轮全局控制变量st-1获取本地模型训练过程中每一所选客户端在本轮训练得到的本地模型参数用于表示本轮所有本地更新的梯度的模长的总和和本轮本地控制变量存储至对应客户端本地,其中,n表示截止第t轮训练所选客户端参与联邦学习的次数,x表示对应的联邦学习轮次,其中,n-1小于等于x;

步骤s4、所述服务器从每一所选客户端获取对应的获取本轮全局模型参数wt和全局控制变量st,然后将wt和st更新存储至所述中央服务器中;

步骤s5、判断全局模型是否收敛,如果收敛,则停止模型训练,否则,令t=t+1,返回步骤s2。

本发明与现有技术相比具有明显的优点和有益效果。借由上述技术方案,本发明提供的一种基于异构数据的联邦学习系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有下列优点:

本发明通过设置全局控制变量和本地控制变量,基于全局控制变量和本地控制变量更新模型,并基于每轮训练更新全局控制变量和本地控制变量,将更新的全局控制变量和本地控制变量参与下轮训练。本发明降低了基于异构数据的联邦学习的通信代价,提高了联邦学习的收敛速度和收敛稳定性。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。

附图说明

图1为本发明实施例提供的客户端a的等高线示意图;

图2为本发明实施例提供的客户端b的等高线示意图;

图3为本发明实施例提供的基于异构数据的联邦学习系统示意图。

具体实施方式

为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种基于异构数据的联邦学习系统的具体实施方式及其功效,详细说明如后。

联邦学习主要分为横向联邦学习和纵向联邦学习,横向联邦学习适用于用户特征重叠较多而用户重叠较少的情况,本发明是针对横向联邦学习提出的改进。假设现在有客户端a和b,他们的数据集分布差异很大。a和b的代价函数fk(w)关于模型参数w的曲线图非常不同,以下面两个函数为例(即w=(x,y)),客户端a的等高线图f(x,y)=x2+y2+10x的变化是比较平滑的,如图1所示,而客户端b的等高线图f(x,y)=(sin(x))3*y+cos(x)*cos(10+y)的变化却是比较剧烈的,如图2所示。在这种情况下,现有的fedavg已经被证明全局模型参数更新的位置会偏向于变化剧烈的客户端b,从而偏离理想的更新方向,导致收敛速度缓慢,收敛不稳定甚至无法收敛的问题。基于此,本发明实施例提供了一种基于异构数据的联邦学习系统,如图3所示,包括中央服务器、k个客户端、存储有计算机程序的存储器和处理器,可以理解的是,存储器和处理器可以直接置于所述中央服务器中,也可以另设一台服务器单独设置。所述中央服务器存储有每轮联邦学习得的全局控制变量s、全局模型参数w,所述全局控制变量s用于记录本轮全局模型更新的方向。所述客户端存储有每次参与联邦学习得到每一参与客户端得到的本地控制变量si,所述本地控制变量si用于记录客户端本次参与联邦学习训练的本地模型更新的方向,i的取值为1到k。

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。

所述处理器在执行所述计算机程序时,实现以下步骤:

步骤s1、初始化中央服务器的全局联邦模型的参数w0、全局控制变量s0、全局学习率ηg,初始化每一客户端的本地控制变量本地学习率ηu,初始化t=1;

步骤s2、在第t轮训练中,随机选择m个客户端,m<k,将t-1轮对应的全局模型参数wt-1和全局控制变量st-1发送给所有所选客户端,将每一所选客户端的当前本地模型yi参数更新为wt-1;

步骤s3、基于每一所选客户端的本地数据对yi进行本地模型训练,根据每一所选客户端上次参与联邦学习本地控制变量预设的本地更新次数qi、上一轮全局控制变量st-1获取本地模型训练过程中每一所选客户端在本轮训练得到的本地模型参数用于表示本轮所有本地更新的梯度的模长的总和和本轮本地控制变量存储至对应客户端本地,其中,n表示截止第t轮训练所选客户端参与联邦学习的次数,x表示对应的联邦学习轮次,其中,n-1小于等于x;

步骤s4、所述服务器从每一所选客户端获取对应的获取本轮全局模型参数wt和全局控制变量st,然后将wt和st更新存储至所述中央服务器中;

步骤s5、判断全局模型是否收敛,如果收敛,则停止模型训练,否则,令t=t+1,返回步骤s2。

其中,可以采用现有的判断模型收敛的方法来判断全局模型是否收敛,在此不再展开描述。

本发明所述系统通过设置全局控制变量和本地控制变量,基于全局控制变量和本地控制变量更新模型,并基于每轮训练更新全局控制变量和本地控制变量,将更新的全局控制变量和本地控制变量参与下轮训练。本发明降低了基于异构数据的联邦学习的通信代价,提高了联邦学习的收敛速度和收敛稳定性。

作为一种实施例,所述步骤s1可包括:

步骤s11、随机初始化全局联邦模型的参数w0、全局控制变量w0、每一客户端的本地控制变量

其中,将w0、w0、初始为随机值,后续训练迭代过程中会更新为每轮所对应的值。

步骤s12、将全局学习率ηg设置为第一预设数值,将每一客户端的本地全局学习率ηu分均设置为第二预设数值。

其中,全局学习率ηg和每一客户端的本地全局学习率ηu可以根据具体的模型训练需求来设置,作为一种示例,所述第一预设数值可设为0.01,所述第二预设数值可设为0.03。

作为一种实施例,所述步骤s3可包括:

步骤s31、将所选客户端的更新次数k初始化为1,

步骤s32、获取每一所选客户端第k次更新本地模型的损失函数值基于得到第k次更新本地模型对应的梯度

步骤s33、基于ηu、st-1和更新本地模型得到

步骤s34、判断k是否小于等于qi,若是,则令k=k+1,返回步骤s32,否则,将当前确定为本轮训练得到的本地模型参数

作为一种实施例,可以将所选客户端的数据集划分批次,每次训练一个批次的数据进行本地模型更新,具体的,所述步骤s31中,可采用mini-batchsgd优化算法获取一次更新对应的gi(yi),fi(yi)表示所选客户端上的一个batch(批次)数据的损失函数值,其中,mini-batchsgd优化算法为现有算法,在此不再展开描述。

本发明实施例借助了全局控制变量和本地控制变量来缓解模型更新时偏离理想更新方向的问题。可以理解的是,fedavg算法本地多次更新是没有限制,它只会专注在自己的数据上的更新,而忽略了其他客户端的更新情况,只顾局部不顾整体,那自然会导致整体的更新方向很曲折。而本发明实施例加入了全局控制变量和本地控制变量后就可以对每个客户端的本地更新施加限制,来控制住客户端的偏移。也就是说,在更新的过程中也会考虑到其他客户端更新的情况,进而调整自己的更新方向,此时本地模型开始顾全大局,因此整体的更新方向会与理想的方向比较接近。

作为一种实施例,所述步骤s3还可包括:

步骤s34、累加每一所选客户端更新本地模型时所有梯度的模长,得到本轮所有本地更新的梯度的模长的总和

需要说明的是,在客户端之间数据集独立同分布的情况下,每个客户端的累加梯度的模长是差不多的,fedavg在这样的数据集上收敛效果良好,但是如果数据集不是独立同分布的,即是异构数据的情况下,还应该把不同客户端的累加梯度的模长考虑进来,累加模长越大,则该客户端在本轮通信中偏离理想的更新方向的程度越大,反之,则相对接近理想的更新方向。

作为一种实施例,所述步骤s3还科包括:

步骤s35、基于每一所选客户端对应的和qi获取对应的本轮本地控制变量

可以理解的是,得到每一所选客户端对应的本轮本地控制变量后,更新存储至对应客户端中,供该客户端下次被选择为所选客户端时使用。本发明实施例对本轮更新时所用到的所有梯度进行加权平均来更新显然越靠前的梯度相对于越靠后的梯度的加权系数应该要小,所以这里用将设为的加权系数。

作为一种实施例,所述步骤s4可包括:

步骤s41、基于获取本轮全局模型参数wt:

其中,n表示所有客户端的数据集大小之和,ki表示客户端i的数据量。

需要说明的是,在更新全局模型参数wt,相比于fedavg,本发明实施例还增加了一项因为这里认为如果一个客户端在本地更新时偏移的程度较大,那么在更新全局参数时,应该降低它的参数所起的作用,所以这里乘以了的倒数。

作为一种实施例,所述步骤s4还可包括:

步骤s42、基于k和获取本轮全局控制变量st:

综上所述,当前最流行的联邦平均算法在异构数据集上的收敛速度缓慢,甚至无法收敛,这主要是因为客户端之间数据集的异构以及联邦平均算法本身的特点(即需要进行多次本地更新而造成的结果)。本发明实施例使用了全局控制变量、本地控制变量来限制本地更新时参数的偏移,以及用梯度模长之和的倒数来削减更新时偏差过大的客户端对全局模型参数更新的影响。因此本发明实施例的重点解决了联邦平均算法在异构数据集上收敛速度缓慢的问题,在一定程度上提高了联邦平均算法针对于数据非独立同分布的情况下的收敛速度,进而减少了全局模型收敛所需要的通信次数。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1