一种联邦学习系统的优化方法

文档序号:31299849发布日期:2022-08-27 04:42阅读:87来源:国知局
一种联邦学习系统的优化方法

1.本发明属于大规模分布式边缘智能学习领域,具体涉及一种联邦学习系统的优化方法。


背景技术:

2.机器学习可充分利用数据进行模型训练,已被广泛应用于计算机视觉、自然语言处理以及通信等领域,但其存在着数据隐私的问题;相比而言,联邦学习无需上传或交换隐私数据,引起了工业界和学术界的广泛关注,成为机器学习的热点。
3.联邦学习中边缘设备的计算能力受限,导致其无法训练大规模模型;此外,不稳定的通信连接以及通信资源受限,无法支持大规模模型参数传输。因此,为了提升通信效率,各类模型压缩技术已被广泛应用于联邦学习中。
4.已有研究人员针对模型压缩技术展开了研究,如在模型训练和推理阶段引入三元量化,并提出了三元联邦学习协议,以减少通信损耗;利用剪枝对模型进行压缩,以减少由本地计算能力和通信带宽受限所引起的学习延迟;通过提出分布式分层张量深度计算模型,以及反向传播算法的更新方法,以在减少占用带宽的同时,提高边缘节点训练效率。
5.但上述工作皆局限于本地用户端和服务器使用同一种压缩模型,未考虑由于数据差异所引起的模型参数差异,从而导致的最优分解差异。此外,现有的压缩方案多采取在用户端进行压缩,当服务器端进行合并后,将聚合模型下发;此方案会导致下发时模型仍然较大,导致占用每个用户的带宽较大。
6.为了进一步提升通信效率,用户端选择也是可采纳的方案之一。已有文献通过考虑模型更新时的梯度和联邦学习中的参数传输距离,定义了用户端连接概率。用户端连接概率越大,该用户端被选择参与联邦学习训练的概率越大。此外,部分文献通过设定阈值以选择用户端,如通过设置自适应的损失阈值,以达到动态调整被选择用户端的数量的目的;通过抛弃大于收敛率阈值的用户端来实现用户端选择,以提升学习性能。
7.但上述工作皆未考虑下行用户对模型的个性需求,从而导致下行资源浪费,同时无法满足用户模型快速更新的需求。


技术实现要素:

8.针对上述问题,本发明提供了一种联邦学习系统的优化方法,在保证联邦学习模型精度和用户端本地模型个性化需求的前提下,提升通信效率,实现联邦学习的高效训练。
9.所述联邦学习系统的优化方法,具体步骤如下:
10.步骤一、服务器创建机器学习全局模型s,并随机初始化全局模型s的参数,下发至所有用户端;
11.步骤二、每个用户端在接收到下发模型之后,使用各自的私有数据集对其进行训练,得到各自个性化的本地模型及对应参数,并利用张量分解对本地模型进行压缩,测试其对偏好数据集及全类型数据集的精确度;
12.所述各客户端的私有数据集由dirichlet分布模拟获得;
13.第k个客户端对测试数据集的精确度计算公式为:
[0014][0015]
其中,b为批总数,为各批次所含样本数,为每批次预测标签正确的数量。
[0016]
步骤三、服务器根据各用户端的私有数据分布,利用bi-kmeans将用户端进行聚类分簇,在各簇内分别计算各用户端的不平衡度,并选择不平衡度最低的用户端,放入初始的待进行上行传输的用户端集合a中,考虑剩余用户端的全类型精确度,按精确度降序将其放入集合a中,直至无剩余通信资源;
[0017]
第k个客户端的不平衡度计算公式为:
[0018][0019]
其中,为第k个客户端所含的第j类数据的数据量在该客户端总数据量的占比,n
class
为数据类型总数;
[0020]
步骤四、需进行上行传输的用户端集合a中的各用户端将各自的个性化本地模型及对应参数,和对偏好数据集及全类型数据集的测试精确度上传至服务器;
[0021]
步骤五、服务器将收到的所有个性化本地模型放入集合c,并按模型结构将其分为相同模型集合c1和差异模型集合c2,利用联邦平均方法和无标签数据集进行聚合和对齐,获得更新后的全局模型s,并利用张量分解对全局模型s进行压缩,得到压缩后的全局模型s1;
[0022]
对于相同模型集合c1,服务器采用联邦平均的方法对所有模型进行聚合,即将各个模型对应参数按各自权重进行平均聚合,从而得到聚合模型的各参数值;
[0023]
所述权重指各用户端所含数据总量占比;第r次迭代时,聚合模型的各个参数的公式为:
[0024][0025]
其中为第k个客户端所含数据大小,为客户端k所含的第j类数据的数据量,为所有用户端总数据量大小;
[0026]
对于差异模型集合c2,服务器利用无标签数据{x1,x2,

,xn}进行对齐;具体地,无标签数据被输入至差异模型集合所含的各模型中,得到第r次迭代时各模型对该无标签数据集的标签集合其中c∈c2,并将其纳入标签集合y;
[0027]
同样地,将无标签数据{x1,x2,

,xn}作为聚合模型的输入,从而获得第r次迭代时聚合模型对该数据集的标签并将纳入标签集合y;
[0028]
最后,利用熵确定无标签数据{x1,x2,

,xn}所对应的最终标签集合
形成对齐训练集服务器利用该对齐训练集对全局模型s进行训练,并利用张量分解对全局模型s进行压缩,从而得到压缩后的全局模型s1。
[0029]
步骤六、服务器根据客户端私有数据分布和测试精度确定用户端需求,选择待参与下行传输的用户端集合b,并将压缩后的全局模型s1下发至用户端集合b;
[0030]
步骤七、用户端集合b中的各用户端将所接收的全局模型s1作为本地模型,利用各自的私有数据集对其进行训练,得到更新后的个性化的本地模型及对应参数,利用张量分解进行本地模型的压缩,并上传模型压缩率和对偏好数据集及全类型数据集的测试精度;
[0031]
步骤八、服务器根据用户端的分簇结果,结合各用户端的贡献度,选择用户端放入下一轮循环的上行传输用户端集合a1中;返回步骤四进入联邦学习的下一轮循环,直至本地模型及全局模型皆收敛。
[0032]
具体地,首先在bi-kmeans对用户端的分簇结果中,从各簇中选择对全类型数据集的测试精度最高的用户端放入上行传输的用户端集合a1中;
[0033]
当某簇内存在至少两个全类型测试精度最高的用户端时,选择其中数据不平衡度最低的用户端放入集合a1中;
[0034]
同时,考虑用户端k在当前第r次迭代中的贡献度
[0035]
用户端的贡献度受精度增量δθ及压缩率ρ的影响;其中,精度增量又分为两部分,即针对偏好数据集的精度增量及针对全类型数据集的精度增量
[0036]
按贡献度降序依次放入下一轮循环的上行传输用户端集合a1中,直至无剩余通信资源。
[0037]
本发明的优点在于:
[0038]
1)、一种联邦学习系统的优化方法,本发明在保证联邦学习模型精度和本地个性化需求的前提下,实现了联邦学习的高效训练;
[0039]
2)、一种联邦学习系统的优化方法,实现了用户端和服务器的双侧压缩,以及压缩后差异模型的对齐,节约了计算和通信资源;
[0040]
3)、一种联邦学习系统的优化方法,同时考虑了客户端的贡献和需求,进行有选择的模型上传和下发,在提升联邦学习效率的同时,提高了资源利用率。
附图说明
[0041]
图1是本发明一种联邦学习系统的优化方法的原理。
[0042]
图2是本发明一种联邦学习系统的优化方法的流程框图。
[0043]
图3是本发明联邦学习系统的优化方法中循环过程的流程图。
[0044]
图4是本发明联邦学习系统装置实施例的功能模块示意图。
具体实施方式
[0045]
下面结合实施例和说明书附图对本发明作进一步的说明。应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本技术所附权利要求项要求所限定的范围。
[0046]
本发明提出了一种联邦学习系统的优化方法,如图1所示,主要由两个过程构成,即初始化过程和循环过程。具体包括:服务器创建全局模型并初始化其参数,下发至所有用户端;服务器根据各用户端的数据分布对其进行分簇,以便用于用户端选择。各用户端将所收到的初始化全局模型作为其基础模型,分别利用各自隐私数据集对基础模型进行训练,得到个性化的本地模型及对应参数。随后进入联邦学习的循环过程,每一轮循环皆包含以下阶段:服务器根据聚类结果和用户端的贡献度选择上行传输用户端集合;本地模型上传前,用户端将对本地模型进行压缩;随后,被选择的各用户端传输各本地模型及对应参数至服务器;服务器利用联邦平均方法以及无标签数据集对所接收的本地模型进行聚合和对齐,以更新全局模型;在下发前,服务器将对更新后的全局模型进行压缩。随后,服务器根据用户端对更新后的全局模型的需求度选择下行传输用户端集合;服务器下发压缩后的全局模型至被选择的用户端;各用户端在接收到全局模型之后,将其作为基础模型,用隐私数据集对其进行训练,并更新其为个性化模型;本轮循环结束并开启下一轮循环,直至本地模型及全局模型皆收敛。因此,本发明在保证联邦学习模型精度和本地个性化需求的前提下,提升了通信效率,实现了联邦学习的高效训练。
[0047]
所述的联邦学习系统的优化方法,如图2所示,具体步骤如下:
[0048]
步骤一、服务器创建机器学习全局模型s,并随机初始化全局模型s的神经网络参数,下发至所有用户端;
[0049]
步骤二、每个用户端在接收到下发模型之后,使用各自的私有数据集对其进行训练,得到各自个性化的本地模型及对应参数,并利用张量分解对本地模型进行压缩,测试其对偏好数据集及全类型数据集的精确度;
[0050]
所述各客户端的私有数据集由dirichlet分布模拟获得,所述dirichlet分布公式为:
[0051][0052]
此处采用基于变分贝叶斯矩阵分解的tucker分解为:
[0053][0054]
其中,为输入张量,yh′
,q

,e
为输出张量,为核张量,和为因子矩阵,秩r3和r4由基于变分贝叶斯矩阵分解可得。具体参见文献:kim y d,park e,yoo s,et al.compression of deep convolutional neural networks for fast and low power mobile applications[j].computer science,2015,71(2):576-584.
[0055]
第k个客户端对测试数据集的精确度计算公式为:
[0056][0057]
其中,b为批总数,为各批次所含样本数,为每批次预测标签正确的数
量。
[0058]
步骤三、服务器根据各用户端的私有数据分布,利用bi-kmeans将用户端进行聚类分簇,在各簇内分别计算各用户端的不平衡度,每个簇选择不平衡度最低的用户端放入初始的待进行上行传输的用户端集合a中,考虑剩余用户端的全类型精确度,按精确度降序将其放入集合a中,直至无剩余通信资源;
[0059]
第k个客户端的不平衡度计算公式为:
[0060][0061]
其中,为第k个客户端所含的第j类型数据的数据量占比,n
class
为数据类型总数;
[0062]
步骤四、需进行上行传输的初始用户端集合a中的各用户端将各自的个性化本地模型及对应参数,和对偏好数据集及全类型数据集的测试精确度上传至服务器;
[0063]
步骤五、服务器将收到的所有个性化本地模型放入集合c,并按模型结构将其分为相同模型集合c1和差异模型集合c2,利用联邦平均方法和无标签数据集进行聚合和对齐,获得更新后的全局模型s,并利用张量分解对全局模型s进行压缩,得到压缩后的全局模型s1;
[0064]
对于相同模型集合c1,服务器采用联邦平均的方法对所有模型进行聚合,即将各个模型对应参数按各自权重进行平均聚合,从而得到聚合模型的各参数值;
[0065]
所述权重指各用户端所含数据总量占比;第r次迭代时,聚合模型的各个参数的公式为:
[0066][0067]
其中为第k个客户端所含数据大小,dkj为客户端k所含的第j类数据的数据量,为所有用户端总数据量大小;
[0068]
对于差异模型集合c2,服务器利用无标签数据{x1,x2,

,xn}进行对齐;具体地,无标签数据被输入至差异模型集合所含的各模型中,得到第r次迭代时各模型对该无标签数据集的标签集合其中c∈c2,并将其纳入标签集合y;
[0069]
同样地,将无标签数据{x1,x2,

,xn}作为聚合模型的输入,从而获得第r次迭代时聚合模型对该数据集的标签并将纳入标签集合y;
[0070]
最后,利用熵确定无标签数据{x1,x2,

,xn}所对应的最终标签集合形成对齐训练集服务器利用该对齐训练集对全局模型s进行训练,并利用张量分解对全局模型s进行压缩,从而得到压缩后的全局模型s1。
[0071]
步骤六、服务器根据客户端私有数据分布和测试精度确定用户端需求,选择待参与下行传输的用户端集合b,并将压缩后的全局模型s1下发至用户端集合b;
[0072]
步骤七、用户端集合b中的各用户端将所接收的全局模型s1作为本地模型,利用各自的私有数据集对其进行训练,得到更新后的个性化的本地模型及对应参数,利用张量分
解进行本地模型的压缩,并上传模型压缩率和对偏好数据集及全类型数据集的测试精度;
[0073]
模型压缩率:其中,nw为压缩前模型的参数量,nw为压缩后模型的参数量;测试精度公式如上类似。
[0074]
步骤八、服务器根据用户端的分簇结果,结合各用户端的贡献度,选择用户端放入下一轮循环的上行传输用户端集合a1中;返回步骤四进入联邦学习的下一轮循环,直至本地模型及全局模型皆收敛。
[0075]
具体地,首先在bi-kmeans对用户端的分簇结果中,从各簇中选择对全类型数据集的测试精度最高的用户端放入上行传输的用户端集合a1中;
[0076]
当某簇内存在至少两个全类型测试精度最高的用户端时,选择其中数据不平衡度最低的用户端放入集合a1中;
[0077]
同时,考虑用户端k在当前第r次迭代中的贡献度
[0078]
用户端的贡献度受精度增量δθ及压缩率ρ的影响;其中,精度增量又分为两部分,即针对偏好数据集的精度增量及针对全类型数据集的精度增量
[0079]
按贡献度降序依次放入下一轮循环的上行传输用户端集合a1中,直至无剩余通信资源。
[0080]
如图3所示,服务器在选择需进行上行传输的用户端集合a1时,综合考虑了聚类结果和用户端的贡献度;具体地,其影响因素包含:与各用户端数据所含类型数及各类数据量相关的不平衡度精度增量δθ以及模型压缩率ρ。
[0081]
其原因在于,在实际通信资源受限的场景下,若随机选择部分用户端参与联邦学习,用户端数据分布的non-iid特性会导致所训练得到的全局模型效果不理想,全局模型可能对部分类型的数据集表现良好,但对全类型数据集表现较差,导致与联邦学习目的不符。
[0082]
为了保证全局模型对全类型数据集的精确度,首先在bi-kmeans对用户端的分簇结果中,从各簇中选择对全类型数据集的测试精度最高的用户端放入备选用户集合;当某簇内存在至少两个全类型测试精度最高的用户端时,选择其中数据不平衡度最低的用户端放入备选用户集合中;在满足带宽约束的前提下,依次纳入上行用户端集合a1。
[0083]
一旦该用户端被选择,其对应本地模型及相应的模型参数皆会被传输至服务器。在上行资源受限的前提下,为了最大化上传用户端集合对全局模型更新的贡献程度,即是说传输尽可能多的且性能较优的本地模型至服务器进行聚合;因此,在根据客户端的贡献度选择需上行传输的客户端集合时,当前用户端模型的压缩率是一个需纳入考虑的重要因素,nw为模型压缩后的参数量,nw为原始模型参数量。
[0084]
此外,用户端的精度增量δθ也是一个重要的影响因子,其中,精度增量又分为两部分:即针对偏好数据集的精度增量及针对全类型数据集的精度增量
[0085]
因此,用户端的贡献度受精度增量δθ及压缩率ρ的影响,用户端k在当前第r次迭代中的贡献度
[0086]
在每次迭代中,皆采用基于变分贝叶斯矩阵分解的tucker分解对本地模型的卷积层进行分解。
[0087]
待上行用户端集合a1的选择和本地用户端模型压缩完成后,在该轮循环中被选择的各用户端开始传输各本地模型至服务器,其传输时间为其中m
kr
为第r次迭代时客户端k的本地模型参数量,压缩率,为上行传输率。q为量化比特。
[0088]
待服务器接收到集合内所有用户端的模型后,将接受的所有本地模型分为两个集合,分别是相同模型集合c1及差异模型集合c2。
[0089]
对于相同模型集合c1,服务器采用联邦平均的方法对模型进行聚合,即是说将各个模型对应参数按各用户端所含数据总量占比进行聚合,从而得到聚合模型的各参数值,即
[0090]
对于差异模型集合c2,服务器利用无标签数据{x1,x2,

,xn}作为对齐数据进行模型对齐,具体地,无标签数据被输入至差异模型集合所含的模型中,得到各模型对该无标签数据集的标签其中c∈c2,作为候选标签放入标签集合y。
[0091]
同样地,再次将无标签数据{x1,x2,

,xn}作为聚合模型的输入,得到聚合模型对该数据集的标签并纳入候选标签集合y中。
[0092]
数据的non-iid特性易导致本地模型对未见过的数据进行误判,得到错误的标签,从而影响对全局模型的训练,进而导致全局模型精确度较低。
[0093]
利用熵确定无标签数据集所对应的最终标签,以减少对齐数据集中错误标签的比例。待对齐数据集标签确定之后,将对齐训练集用于服务器的全局模型训练,得到更新后的全局模型。
[0094]
为了减轻下行传输压力,提升下行资源利用率,服务器在下发更新后的全局模型之前,同样采用基于变分贝叶斯矩阵分解的tucker分解对模型的卷积层进行分解。
[0095]
当下行通信资源不足时,能接收到更新后的全局模型的用户端数量有限。因此,考虑用户端的需求非常重要。下行用户端选择的目的是在有限的通信资源前提下,提高本地模型对偏好数据集的测试精确度。此外,所选择的下行客户端的数据分布、数据量以及全类型数据精度对下一轮全局模型精度的提高有潜在的影响。因此,在当前轮用户端对更新后的全局模型的需求度取决于所拥有类的数量、数据大小和本地模型对全类型及偏好类型数据的精确度。显然,需求的程度与所有有关项成反比。用户端对全局模型的需求程度越高,其被选择优先投递的概率越大。
[0096]
待下行用户端集合b选择完毕后,服务器将下发压缩后的全局模型至各用户端,其传输时间为其中m
0r
为第r次迭代时全局模型的参数量,为全局模型压缩率,为下行传输率。待各用户端接收后,将用各自的私有数据集对所接收的全局模型进行训练并压缩,以更新个性化模型,提升本地模型对偏好数据集和全类型数据集的精确
度。
[0097]
本轮循环结束并开启下一轮循环,直至本地模型及全局模型皆收敛。
[0098]
本发明所述联邦学习系统的优化方法,具体包括中心边缘双侧压缩方法和上下行非对称用户端选择方法;
[0099]
所述中心边缘双侧压缩方法的进一步改进:
[0100]
每轮循环迭代中,在上传本地模型之前,各用户端皆会对本地模型进行压缩以减少上行传输压力;
[0101]
每轮循环迭代中,在下发全局模型之前,服务器皆会对更新后的全局模型进行压缩以减少下行传输压力;
[0102]
在上传和下发已更新的模型之前,皆采用张量分解的方法对更新后的模型进行分解;
[0103]
具体地,采用了基于变分贝叶斯矩阵分解的tucker分解对模型的卷积层进行分解,各模型在进行张量分解时的秩是由变分贝叶斯矩阵分解获得,其与各模型参数有关;
[0104]
在每轮循环迭代中,用户端独立地压缩本地模型,且部分用户端在接收服务器所压缩的全局模型后会再次训练并压缩,导致在同一轮循环中的各用户端模型结构不一致,进而传统的用于模型聚合的方法,即直接将模型参数进行平均的方法不再适用;
[0105]
服务器在接收到所有上传的模型之后,将模型分为两类,即相同模型集合和差异模型集合,利用联邦平均方法和无标签数据集进行聚合和对齐,获得更新后的全局模型;
[0106]
所述上下行非对称用户端选择方法的进一步改进:
[0107]
本地模型的上传以及全局模型的下发不再是针对全范围用户端,或随机选择用户端,而是根据规则,有选择的进行上传和下发,且针对上传和下发选择的规则不一致;
[0108]
上传用户端模型的目的是为了较快地在服务器侧获得一个全类型精确度较高的模型;
[0109]
服务器下发更新后的全局模型的目的,一方面是为了提升用户端本地模型对其偏好数据集的精确度,另一方面是为了弥补由于数据non-iid特性所引起的用户端本地模型全类型精度较差,从而导致服务器聚合对齐后的全局模型性能较差的问题。
[0110]
具体地,在联邦学习的每轮循环迭代中,服务器皆会根据用户端聚类结果、用户端的贡献度以及对更新后的全局模型的需求度进行上传和下发的用户端集合选择;具体为:
[0111]
服务器在选择需进行上行传输的用户端集合时综合考虑了聚类结果和用户端的贡献度;具体地,其影响因素包含:与各用户端数据所含类型数及各类数据量相关的不平衡度、精度增量以及模型压缩率;服务器对全局模型的贡献度越高,其被选择上传模型的概率越大;
[0112]
服务器在确定下行用户端集合时,考虑了用户端对更新后的全局模型的需求度;具体地,需求度的影响因素包含用户端所拥有类的数量、数据大小和本地模型对全类型及偏好类型数据的精确度;用户端对全局模型的需求程度越高,其被选择优先投递的概率越大。
[0113]
本发明一种联邦学习系统的优化方法基于如图4所示的联邦学习系统的装置,具体包括:
[0114]
接收模块:用于接收上传和下发的模型;
[0115]
训练模块:用于用户端利用隐私数据对本地模型进行训练得到个性化本地模型;
[0116]
分解模块:用于对用户端及服务器的模型进行分解;
[0117]
传输模块:用于传输各模型及相应参数;
[0118]
聚合模块:用于服务器对所接收的个性化本地模型进行聚合和对齐。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1