联邦学习的方法和装置与流程

文档序号:33320007发布日期:2023-03-03 19:51阅读:55来源:国知局
联邦学习的方法和装置与流程

1.本技术涉及人工智能领域,并且更加具体地,涉及一种联邦学习的方法和装置。


背景技术:

2.随着大数据时代的到来,每台设备每天都会以各种形式产生巨量的原始数据,这些数据将以“孤岛”的形式诞生并存在于世界的各个角落。传统的集中式学习要求各个边缘设备将本地数据统一传输到中心端的服务器上,其后再利用收集到的数据进行模型的训练与学习,然而这一架构随着时代的发展逐渐受到如下因素的限制:(1)边缘设备广泛地分布于世界上各个地区和角落,这些设备将以飞快的速度源源不断地产生和积累巨大量级的原始数据。若中心端需要收集来自全部边缘设备的原始数据,势必会带来巨大的通信损耗和算力需求;(2)随着现实生活中实际场景的复杂化,越来越多的学习任务要求边缘设备能够做出及时而有效的决策与反馈。传统的集中式学习由于涉及到大量数据的上传势必会导致较大程度的时延,致使其无法满足实际任务场景的实时需求;(3)考虑到行业竞争、用户隐私安全、行政手续复杂等问题,将数据进行集中整合将面临越来越大的阻力制约。因而系统部署将越来越倾向于在本地存储数据,同时由边缘设备自身完成模型的本地计算。
3.因此,如何在满足数据隐私、安全和监管要求的前提下,设计一个机器学习框架,让人工智能(artificial intelligence,ai)系统能够更加高效、准确地共同使用各自的数据,成为了当前人工智能发展的一个重要议题。联邦学习(federated learning,fl)这一概念的提出有效地解决了当前人工智能发展所面临的困境,其在充分保障用户数据隐私和安全的前提下,通过促使各个边缘设备和中心端服务器协同合作来高效地完成模型的学习任务。然而,fl的提出虽然在一定程度上解决了人工智能领域当前发展所面临的问题,但其本身仍存在多种多样的缺陷使其在实际应用中仍然具有很大的局限性。


技术实现要素:

4.本技术提供一种联邦学习的方法和装置,能够提高联邦学习的效率和质量。
5.本技术实施例提供了一种联邦学习的方法,包括:根据目标联邦学习任务从算子库中获取n个算子,所述算子库包括k个与联邦学习相关联的算子,所述n和所述k为大于1的整数,所述n小于或等于所述k;将所述n个算子中的多个算子进行复合得到第一复合算子;通过所述第一复合算子将第一数据集进行处理得到第二数据集,所述第一数据集为用于所述目标联邦学习任务的训练集;利用所述第二数据集进行联邦学习得到与该目标联邦学习任务对应的第一联邦学习模型。
6.因此,本技术实施例提供的联邦学习的方法,通过将多个算子进行复合得到用于解决多目标问题的复合算子,通过该复合算子对本次联邦学习的训练集进行处理,可以实现对多个目标问题的同时优化,解决联邦学习实际场景中多问题叠加的挑战。
7.应理解,这里的k个与联邦学习相关联的算子可以理解为,该k个算子可用于处理联邦学习中的本地训练集,或者说,该k个算子是各种联邦学习相关的单一技术对应的算
子。
8.该目标联邦学习任务可以包括客户端需求信息。这里的客户端需求信息可以是客户端在模型训练之前协商确定的综合需求。
9.结合第一方面,在第一方面的一种可能的实现方式中,根据目标联邦学习任务从算子库中获取n个算子可以包括:获取目标联邦学习任务,然后根据该目标联邦学习任务从算子库中选择n个算子,该n个算子与该目标联邦学习任务相关联,该目标联邦学习任务包括客户需求信息。
10.通过该方案,使得用于本次联邦学习的算子(该n个算子)是用于解决客户需求的算子,也就是用于执行本次目标联邦学习任务的算子,因此通过对该n个算子中的部分或者全部算子进行复合得到的复合算子可以应对联邦学习中多问题叠加的挑战。
11.结合第一方面,在第一方面的一种可能的实现方式中,所述将所述n个算子中的多个算子进行复合得到第一复合算子,包括:根据所述n个算子中任意两个算子之间的算子复合关系,将所述n个算子中的多个算子进行复合得到所述第一复合算子。
12.通过该方案,使得复合算子是基于算子复合关系的指导下来获取的,即根据算子复合关系指导复合算子的结构的调整方向,从而可以提高效率,同时提高复合算子的实用性和可用性。
13.这里的算子复合关系可以采用算子复合关系矩阵来表示。例如,该算子复合关系矩阵为n阶矩阵,该矩阵的行表示输出,列表示输入(也可以颠倒过来),对于矩阵中的各元素,1表示可复合,0表示不可复合。
14.这里的第一复合算子指的是将n个算子中的多个算子进行串联复合组成一定的算子复合结构之后,对该复合结构内的多个算子的一个统称,在其他场景中该复合算子还可以叫做其他名称
15.结合第一方面,在第一方面的一种可能的实现方式中,所述方法还包括:确定所述n个算子中任意两个算子之间的输入输出空间的匹配关系;根据所述n个算子中任意两个算子之间的输入输出空间的匹配关系确定所述n个算子中任意两个算子之间的算子复合关系。
16.通过该方案,可以根据算子之间的输入输出空间的匹配关系获取算子之间的复合关系,从而可以更加准确得获取任意算子之间的可复合性,提高算子复合的效率。
17.结合第一方面,在第一方面的一种可能的实现方式中,在利用所述第二数据集进行联邦学习得到第一联邦学习模型之后,所述方法还包括:确定是否满足第一条件;在不满足第一条件的情况下,对所述第一复合算子的结构进行调整得到第二复合算子。
18.通过该方案,可以对第一复合算子的结构进行调整,以便获取更加符合用户需求或者性能更好的复合算子。
19.结合第一方面,在第一方面的一种可能的实现方式中,所述确定是否满足第一条件,包括:获取所述第一联邦学习模型的测量参数;根据所述测量参数计算评估值,所述测量参数与所述目标联邦学习任务相关联;在所述评估值小于第一阈值的情况下,确定满足所述第一条件。
20.结合第一方面,在第一发面的一种可能的实现方式中,所述根据所述测量参数计算评估值,包括:根据所述测量参数和成本计算公式计算所述评估值,所述成本计算公式与
所述目标联邦学习任务相关联,或者说,所述成本计算公式的形式与客户需求相关。该成本计算公式的形式可以是测量参数的线性和,该测量参数的系数与目标联邦学习任务相关联。
21.该第一阈值可以是根据目标联邦学习任务设置的,例如,根据目标联邦学习模型的目标参数设置第一阈值。
22.通过该方案,根据成本计算公式的计算结果为性能指标,通过对复合算子的结构不断调整使得联邦学习模型的性能指标满足设定的阈值,从而可以保证本次联邦学习的质量,提高联邦学习模型的实用性。
23.结合第一方面,在第一方面的一种可能的实现方式中,所述确定是否满足第一条件,包括:确定调整复合算子的结构的次数;在所述调整复合算子的结构的次数大于或等于第二阈值的情况下,确定满足第一条件。
24.该方案中,以复合算子的结构的调整次数为终止条件,可以提高算子复合的效率,节省资源。
25.结合第一方面,在第一方面的一种可能的实现方式中,所述对所述第一复合算子的结构进行调整得到第二复合算子,包括:根据所述测量参数和目标联邦模型参数之间的差异计算损失值,将所述损失值进行反向传播,根据所述损失值对所述第一复合算子的结构进行调整得到第二复合算子。
26.在另一种可能的实现方式中,也可以是根据评估值和目标评估值之间的差异计算损失值(或者称为损失函数值,本技术对损失函数的具体形式不作限定)。
27.通过该方案,使得复合算子的结构的调整过程可以以损失值为指导有方向地进行,从而可以提高算子复合结构的调整效率,节省开销。
28.结合第一方面,在第一方面的一种可能的实现方式中,所述对所述第一复合算子的结构进行调整得到第二复合算子,包括:当所述第一联邦学习模型中的第一参数小于第三阈值时,将所述n个算子中的第一算子与所述第一复合算子进行复合得到所述第二复合算子,所述第一算子与所述第一参数相关联。
29.结合第一方面,在第一方面的一种可能的实现方式中,所述对所述第一复合算子的结构进行调整得到第二复合算子,包括:将所述第一复合算子的结构进行自动化调参得到所述第二复合算子。
30.结合第一方面,在第一方面的一种可能的实现方式中,所述算子库包括数据集蒸馏算子、客户端分组算子、虚拟样本平衡算子、元学习算子中的至少一种。
31.第二方面,本技术实施例提供一种联邦学习的装置,该装置包括用于实现上述第一方面的方法设计中任意一种可能的实现方式的单元。
32.第三方面,本技术实施例提供一种联邦学习的装置,包括收发器和处理器。可选地,该装置还包括存储器。该处理器用于控制收发器收发信号,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得该计算机设备执行上述第一方面的方法设计中任意一种可能的实现方式中的方法。
33.第四方面,本技术实施例提供一种电子装置,该电子装置可以为用于实现上述第一方面方法设计中的联邦学习的装置,或者为设置在该装置中的芯片。该电子装置包括:处理器,与存储器耦合,可用于执行存储器中的指令和/或程序代码,以实现上述第一方面的
方法设计中任意一种可能的实现方式中的方法。可选地,该电子装置还包括存储器。可选地,该电子装置还包括通信接口,处理器与通信接口耦合。
34.当该电子装置为上述联邦学习的装置时,该通信接口可以是收发器,或,输入/输出接口。
35.当该电子装置为配置于上述联邦学习的装置的芯片时,该通信接口可以是输入/输出接口。
36.可选地,该收发器可以为收发电路。可选地,该输入/输出接口可以为输入/输出电路。
37.第五方面,本技术实施例提供一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面的方法设计中任意一种可能的实现方式中的方法。
38.第六方面,本技术实施例提供一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面的方法设计中任意一种可能的实现方式中的方法。
附图说明
39.图1是一种人工智能主体框架示意图。
40.图2是一种联邦学习的系统架构的示意图。
41.图3是数据集蒸馏联邦学习技术流程图。
42.图4是客户端分组联邦学习技术流程图。
43.图5是联邦元学习技术流程图。
44.图6是数据生成联邦学习技术流程图。
45.图7是本技术实施例联邦学习的方法的示意性框图。
46.图8是本技术实施例提供的联邦学习的一种系统框架图。
47.图9是本技术实施例提供的算子复合关系模型执行方法的流程图。
48.图10是本技术实施例提供的算子复合决策模块执行方法的流程图。
49.图11是根据本技术实施例提供的一种联邦学习的装置的示意性结构框图。
50.图12是根据本技术实施例提供的一种联邦学习的装置的示意性结构框图。
具体实施方式
51.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
52.图1是一种人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流程,适用于通用的人工智能领域需求。
53.下面从“智能信息链”(水平轴)和“信息技术(information technology,it)价值链”(垂直轴)两个维度对上述人工智能主题框架进行详细的阐述。
[0054]“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息
感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。
[0055]“it价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
[0056]
(1)基础设施:
[0057]
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。
[0058]
基础设施可以通过传感器与外部沟通,基础设施的计算能力可以由智能芯片提供。
[0059]
这里的智能芯片可以是中央处理器(central processing unit,cpu)、神经网络处理器(neural-network processing unit,npu)、图形处理器(graphics processing unit,gpu)、专门应用的集成电路(application specific integrated circuit,asic)以及现场可编程门阵列(field programmable gate array,fpga)等硬件加速芯片。
[0060]
基础设施的基础平台可以包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。
[0061]
例如,对于基础设施来说,可以通过传感器和外部沟通获取数据,然后将这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
[0062]
(2)数据:
[0063]
基础设施的上一层的数据用于表示人工智能领域的数据来源。该数据涉及到图形、图像、语音、文本、序列,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
[0064]
应理解,序列可以理解为数据序列,最常见的有时序序列数据,即时序数据,例如一段时间内的天气预报数据(温度、风向等),又例如股市数据、人体血糖变化数据等生理数据的序列等等。
[0065]
(3)数据处理:
[0066]
上述数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等处理方式。
[0067]
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
[0068]
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
[0069]
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
[0070]
(4)通用能力:
[0071]
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
[0072]
(5)智能产品及行业应用:
[0073]
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体
解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。
[0074]
本技术实施例可以应用在人工智能中的很多领域,例如,智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市等领域。
[0075]
具体地,本技术实施例可以具体应用在各类数据处理的领域,例如图像分类、图像检索、图像语义分割、图像超分辨率等图像类数据相关的处理任务,又例如语音合成、语音识别、语音搜索等语音类数据相关的处理任务,又例如智能翻译、语义提取等文字类数据相关的处理任务,又例如草图绘制、手势控制等涉及图形数据的相关处理任务。图像类数据相关的处理任务还可以是视频类图像数据,例如可以应用于视频搜索、视频分类、关键人物追踪等任务。此外,本技术实施例还可以应用于数据序列的处理任务,例如时序数据。还应理解上述各任务只是按照涉及的处理数据的数据类型来举例说明,但有些任务可以涉及多种数据类型,例如可以是利用语音搜索图像的任务,也就是说,输入一段语音,根据这段语音从图像库中找到相应的图像,该任务就是既涉及图像数据有又涉及语音数据。
[0076]
图2是适用于本技术实施例的一种联邦学习的系统架构的示意图,该联邦学习的系统仅仅是多种联邦学习架构中的一种,该系统仅仅是一种示例,本技术实施例还可以应用于其他架构形式的联邦学习系统,本技术对此不作限定。
[0077]
如图2所示,在该场景中包括用户设备#1和用户设备#2以及云端设备#1,为了确保用户数据隐私和安全,用户设备之间不能进行数据交互。需要说明的是,图2中也可能存在3个或3个以上的用户设备,原理是相同的,对此进行了省略。
[0078]
本地数据#1和本地数据#2分别表示用户设备#1和用户设备#2所能提供的数据,或者可以理解为本地数据#1和本地数据#2分别是用户设备#1和用户设备#2各自的本地真实数据,在联邦学习中,这些数据不希望被其他用户设备获取。这些数据例如可以是图像数据、语音数据、文本数据、序列数据等等。用户设备#1利用本地数据#1进行模型训练,得到本地模型#1;用户设备#2利用本地数据#2进行模型训练得到本地模型#2。之后,用户设备#1将本地模型#1或本地模型#1的参数发送给云端设备#1,用户设备#2将本地模型#2或本地模型#2的参数发送给云端设备#1。
[0079]
云端设备#1在获得所有本地模型(包括本地模型#1和本地模型#2)后,将所有获得的本地模型汇聚成一个联邦模型,联邦模型也可以理解为统一模型,也就是说所有用户设备能够通用的模型。
[0080]
之后云端设备#1将得到的联邦模型发送给所有用户设备,用户设备在接收到联邦模型后,将本地模型替换成联邦模型,再重复下一轮的训练:在联邦学习模型的基础上训练得到新的本地模型、上传新的本地模型、模型汇聚出新的联邦模型,如此循环,直到达到一定的预设要求。在图2所示场景中,整个的训练过程可以看作是对联邦模型的模型参数的不断调整,使得联邦模型的参数能够同时适用于所有用户设备,想要获得满足需求的参数,就需要很多次的训练,也就是说,需要循环执行上述过程:训练得到本地模型、上传本地模型、模型汇聚、下发联邦模型、更新本地模型,直到达到能够适用于所有用户设备的要求,从图2中可以看出,需要用户设备与云端设备之间分别多次的数据交互,即多次本地模型和联邦模型的传输。
[0081]
下面以图像分类任务为例进行介绍。假设该联邦学习系统是用于图像分类的,具
体而言可以假设用于识别动物,也就是说能够区分不同的动物类别,用户设备#1和用户设备#2均能够提供包括有动物的图像。本地数据#1为用户设备#1的图像样本数据(带有动物类别的标签的图像),本地数据#2为用户设备#2的图像样本数据(带有动物类别的标签的图像),也就是说,本地数据#1和本地数据#2的样本维度是可以对齐的,但本地数据#1和本地数据#2的特征维度是不同的。则在训练过程中,用户设备#1利用本地数据#1训练获得本地模型#1,用户设备#2利用本地数据#2训练获得本地模型#2。之后用户设备#1将本地模型#1的模型参数上传到云端设备#1,用户设备#2将本地模型#2的模型参数上传到云端设备#1,云端设备#1将本地模型#1和本地模型#2汇聚成了一个联邦模型,云端设备将该联邦模型分发给用户设备#1和用户设备#2,用户设备#1和用户设备#2在联邦模型的基础上利用本地数据继续训练得到本地模型,重复上述过程直到联邦模型的参数既能够适用于用户设备#1,又能够适用于用户设备#2,云端设备#1将该联邦模型分发给用户设备#1和用户设备#2,用户设备#1和用户设备#2接收该联邦模型以及将其取代原本的本地模型。
[0082]
在图2所示的系统中,主要存在以下问题。
[0083]
首先,由于联邦学习中的多个客户端不会共享本地模型数据,即各客户端数据不互通,因此会出现异构数据不平衡的问题,而要想不同客户端之间的数据完全对齐、模型结构完全一致,又会使得应用的场景非常局限。
[0084]
其次,由于用户之间的模型参数差异和数据差异,如果希望得到一个准确度相对较高的联邦模型,通常需要多次训练,这无疑带来大量的运算资源的消耗,且需要很长的训练时间;同时由于每一轮次的训练过程都需要多次传输模型,因此该架构需要更多次数的数据传输,这会带来很高的传输带宽成本。同时,跨地区跨国等参与方联邦学习必然会涉及较远距离的传输,这也会导致较大的资源消耗。
[0085]
其他地,由于客户端之间数据不共享,单一客户端的数据质量较差时可能会影响整体模型质量;由于要进行多轮次参数上传、模型训练等过程,很容易造成数据丢失等问题。
[0086]
因此,图2所示的系统面临着复杂问题叠加的挑战,问题难以被分析和定位,探索过程往往又需要很多的人工和研究成本。
[0087]
本技术提供一种联邦学习的方法,希望解决联邦学习中多问题叠加的挑战,提高联邦学习的质量和效率。
[0088]
为了便于理解,下面先对本技术实施例可能涉及相关术语、概念或者技术进行介绍:
[0089]
(1)联邦学习
[0090]
联邦学习(federated learning)是一种加密的分布式机器学习技术,又可以称之为联合学习或联盟学习等。联邦学习能够充分地利用参与方的数据和计算能力,使多方可以在不需要共享数据的前提下协作地构建通用、健壮的机器学习模型,因此联邦学习能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和学习建模。联邦学习包括横向联邦学习(horizontal federated learning)、纵向联邦学习(vertical federated learning)。可以说,联邦学习就是为了能够使得既能够共享知识和参数,又不需要交换任何自身数据。在数据监管越来越严格的大环境下,联邦学习能够解决数据所有权,数据隐私,数据访问权以及异构数据的访问等关键问题。
[0091]
数据矩阵的横向的一行表示一条训练样本,纵向的一列表示一个数据特征。横向联邦学习是联合多个参与者的具有相同特征的多行样本进行联邦学习,即各个参与者的训练数据是横向划分的。横向联邦学习也称为特征对齐的联邦学习(feature-aligned federated learning),即参与者的数据特征是对齐的,横向联邦学习可以增加训练样本总量。纵向联邦学习是联合多个参与者的共同样本的不同数据特征进行联邦学习,即各个参与者的训练数据是纵向划分的。纵向联邦学习也称为样本对齐的联邦学习(sample-aligned federated learning),即参与者的训练样本是对齐的,纵向联邦学习可以增加训练数据特征维度。
[0092]
联邦学习在工业界已经得到应用,例如谷歌将其应用于自身的gboard项目,又例如微众银行提出的fate联邦学习框架等等,均是上述参数服务器架构的联邦学习方法的实际应用的典型例子,它们都需要参与学习的不同设备之间具有非常高的一致性,模型结构一致,数据能够对齐。这就使得,对于一些不满足上述一致性要求的场景,现有的联邦学习方法并不适用。
[0093]
(2)数据集蒸馏(dataset distillation)
[0094]
区别于一般意义上的模型蒸馏,数据集蒸馏不是将知识从复杂模型迁移到小模型,而是在数据层面上的蒸馏。数据集蒸馏是将知识从大的训练数据集压缩到少量的合成数据中。在合成数据上可以通过几步梯度下降,快速训练模型以达到较高的准确率。
[0095]
数据集蒸馏处理后获得的数据能够达到与原始数据相似的训练效果,数据集蒸馏相当于是减少数据,所以蒸馏后的数据虽然尽可能包含了足够多的数据知识,但会受到模型初始化的方式的影响。
[0096]
(3)分组联邦学习
[0097]
分组联邦学习指的是一种对客户端进行分组以减少各边端应用效果差异性较大的问题的联邦学习方式。由于单一模型联邦学习难以满足云模型适用于众多客户端的条件,在各边端应用效果差异性较大,因此考虑对客户端进行分组,例如根据相似度对客户端进行分组,然后组内进行联邦学习形成多个模型以适应于多个客户端组的需求。
[0098]
(4)元学习(meta learning)
[0099]
元学习是一种学习如何进行机器学习的方法,其核心思想是学习学习训练的过程。元学习从大量任务训练模型,并通过少量数据在新任务中更快地学习。元学习旨在寻找可以很容易适应新任务的内部表示,在深度学习的背景下,内部表示可以被视为神经网络的一组参数,训练网络只需要使用少量的新数据来对网络进行微调,即可得到新任务的有效模型。
[0100]
(5)超参数
[0101]
在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。
[0102]
(6)数据集蒸馏联邦学习技术
[0103]
该技术通过将传统联邦学习中多轮边云传输模型参数的过程替换为一次蒸馏数据的传输,来有效地减少了联邦学习过程中的通信代价。该技术实现过程示意图如图1所示。
[0104]
(7)基于客户端分组的多模型联邦学习技术
[0105]
该技术通过根据客户端在联邦学习过程中产生的参数更新的相似度来划分组,在各组内进行联邦优化可以大大提高模型在各组内的测试准确率,并且提高效率。该技术实现过程示意图如图2所示。
[0106]
(8)基于元学习的联邦学习技术
[0107]
该技术通过结合元学习思想来实现模型个性化,各客户端元学习一个好的初始化权重,得到一个共同初始模型作为起点,目的是使得模型可以在新任务上快速迁移适应。随后各客户端基于初始模型与少量的本地数据上更新模型,最终得到个性化模型。该技术实现过程示意图如图3所示。
[0108]
(9)针对标签异构的数据生成联邦学习技术
[0109]
该项技术针对客户端本地数据中对应数据量较少的标签,通过在服务器端训练gan生成器用以生成目标数据,客户端下载gan生成器补充本地目标标签数据直到各客户端数据集为独立同分布(即iid)。该技术实现过程示意图如图4所示。
[0110]
图7是本技术实施例提供的一种联邦学习的方法100的示例性流程图,下面对图7所述的各个步骤进行介绍。应理解,图7的例子仅仅是为了帮助本领域技术人员理解本技术实施例,而非要将本技术实施例限制于图7的具体数值或具体场景。本领域技术人员根据所给出的例子,显然可以进行各种等价的修改或变化,这样的修改和变化也落入本技术实施例的范围内。
[0111]
s110,根据目标联邦学习任务从算子库中获取n个算子。
[0112]
示例性地,该算子库包括k个与联邦学习相关联的算子,k为大于1的整数。应理解,这里的算子库可以是由人工定期维护的算子库。这里的k个与联邦学习相关联的算子,可以理解为,该k个算子可用于处理联邦学习中的本地训练集,或者说,该k个算子是各种联邦学习相关的单一技术对应的算子,因此该k个算子可以称为k个联邦算子。应理解,该算子库中保存的算子可以包括该算子对应的函数并规范的输入和输出。例如,该该k个算子包括:数据集蒸馏算子,输入为原始数据,输出为蒸馏数据;客户端分组算子,输入为原始客户端集合以及数据,输出为新的客户端集合。还应理解,该算子库中可以仅包括该k个算子,即该算子库可以是一个联邦算子库;或者,该算子库中除了该k个算子还包括其他不同类型的算子,即该算子库中除了包括多个联邦算子,还可能包括其他类型的算子,不同类型的算子可以通过不同标签分类保存。本技术对原始算子库的结构不做限定。
[0113]
示例性地,该目标联邦学习任务可以包括客户端需求信息。这里的客户端需求信息可以是客户端在模型训练之前协商确定的综合需求。例如,该需求包括数据通信量小而无需性能的提升,或者该需求包括对性能的需求高于对通信量的需求。
[0114]
根据目标联邦学习任务从算子库中获取n个算子可以包括:获取目标联邦学习任务,然后根据该目标联邦学习任务从算子库中选择n个算子,该n个算子与该目标联邦学习任务相关联。例如,根据该目标联邦学习任务确定客户端需求为通信量小及数据平衡,则在算子库中选择n个用于该目标联邦学习任务的算子,或者说在算子库中选择n个用于实现客户需求的算子,例如,该n个算子为数据集蒸馏算子和客户端分组算子。其中n为大于1的整数且n小于或等于k,即该n个算子应当是该k个算子的子集。
[0115]
可以将该n个算子的集合称为用于本次联邦学习的算子库。
[0116]
s120,将n个算子中的多个算子进行复合得到第一复合算子。
[0117]
示例性地,获取到n个算子之后,将该n个算子中的部分或者全部算子进行复合,以得到第一复合算子。应理解,这里的第一复合算子指的是将n个算子中的多个算子进行串联复合组成一定的算子复合结构之后,对该复合结构内的多个算子的一个统称,在其他场景中该复合算子还可以叫做其他名称,本技术对此不作限定。
[0118]
可选地,可以根据n个算子的算子复合关系对该n个算子中的多个算子进行复合,这里的算子复合关系可用于表示该n个算子中任意两个算子之间的复合关系,即可以根据该算子复合关系确定该n个算子中任意两个算子之间是否可以复合。
[0119]
作为一个示例,该算子复合关系可以采用算子复合关系矩阵来表示。
[0120]
示例性地,生成一个n
×
n的零矩阵,然后对算子i和算子j的复合关系进行判断,该算子i和算子j为n个算子中任意两个算子,算子i个算子j可以相同也可以不同。例如,通过确定任意两个算子的输入输出空间的匹配关系,确定该该两个算子是否可以复合。本技术对判断两个之间输入输出空间是否匹配的具体方式不做限定,现有技术中任何用于确定两算子之间是否匹配的方案均应在本技术的保护范围内。作为一个具体示例,可以利用算子匹配函数(equal函数)来判断两个算子之间输入输出空间是否匹配。该equal函数也可以有多种设计形式,例如,通过遍历两个算子输入输出dict中的所有元素类型,如果所有元素类型都相同,则认为该两个算子之间的输入输出空间可以匹配。
[0121]
当算子i的输出空间和算子j的输入空间相匹配,则认为算子i可复合到算子j,可以得到算子组合i+j。应理解,这里的算子i的输出空间和算子j的输入空间相匹配可以理解为,算子i的输入空间可以作为算子j的输出空间。
[0122]
当算子i和算子j的输入输出空间相匹配,则更新算子复合关系矩阵m,否则不更新。
[0123]
这里更新算子复合关系矩阵指的是,将矩阵m中的a
ij
更新为1,这里的a
ij
表示矩阵m的第i行第j列的元素。这里是以矩阵m的行表示输出、列表示输入为例进行说明的,本技术对矩阵m的其他表现形式不做限定。以该规则遍历n个算子中的任意两个算子(包括每个算子和其本身),可以得到最终的算子复合关系矩阵,该算子复合关系矩阵可表示不同算子之间的可复合性。
[0124]
作为一个具体示例,假设该n个算子为a、b、c、d,遍历任意两个算子之间的输入输出匹配关系之后,得到的矩阵m例如是:
[0125][0126]
其中,该矩阵的列表示输出,该矩阵的行表示输入。例如,a11为1,表示算子a的输出可以作为算子a的输入(即算子a的输出空间与算子a的输入空间相匹配),即算子a可以多次迭代复合本身;a12为0,表示算子a的输出不能作为算子b的输入,即,算子a不能串联复合到算子b。
[0127]
需要说明的是,两个算子之间的匹配关系是有顺序要求的,即,算子i的输入空间
与算子j的输出空间相匹配,并不代表算子i的输出空间与算子j的输入空间一定可以匹配。算子i的输出空间与算子j的输入空间相匹配代表可以实现算子i+j的组合关系,算子i的输入空间与算子j的输出空间相匹配代表可以实现j+i的组合关系。例如在上面的矩阵m中,a23为0,a32为1,则表示算子b不能复合到算子c,但算子c可以复合到算子b。
[0128]
应理解,本实施例是以算子复合关系矩阵来表示算子复合关系为例进行说明的,但本技术并不限于此,即在其他可能的实现方式中,可以采用别的可行方式来表示算子之间的复合关系。例如,还可以采用算子复合列表,该列表中包括两个算子之间所有可行的算子复合方式,或者包括两个算子之间所有不可行的算子复合方式等,本技术不作限定。
[0129]
进一步地,根据该算子复合关系矩阵可以得到一系列算子复合的指导信息。例如,对于矩阵m,可以获得的指导信息包括但不限于:算子a可以多次迭代本身,例如a+a+a+

;算子a+c或a+d或c+d可作为一个级联块进行多次迭代复合,例如a+c+a+c

,或a+d+a+d

,或c+d+c+d

;a、b、c、d可以实现a+c+b或a+d+c+b等串联复合关系。因此,算子复合决策模块在根据算子复合关系矩阵生成算子复合结构或者对算子复合结构进行调整的过程中,会涉及到多个算子之间的顺序复合,也会涉及到两个算子复合后视为一个新算子之后,对新算子的迭代复合,等等。通过不同的方式进行迭代、复合等,可以得到多种算子复合结构。例如,根据上述实施例中的矩阵m,可以生成的算子复合结构包括但不限于:a+c,a+c+d,a+a+d,a+d+d,c+b
……

[0130]
因此可以根据算子复合关系矩阵生成多种算子复合结构。这里的算子复合结构指的是不同算子之间复合之后得到的结构形式,或者可以理解为不同算子的串联结构。根据算子复合关系矩阵生成算子复合结构指的是,根据算子复合关系矩阵确定两两算子之间的可复合性,并将可复合的算子进行串联组合,得到不同的算子复合结构。第一复合算子对应的算子复合结构是该多种算子复合结构中的一种。
[0131]
这里,可以是根据一定规则生成确定第一复合算子的算子复合结构,也可以在多种可行的算子复合结构中随机确定一种作为第一复合算子的算子复合结构,本技术对此不做限定。
[0132]
s130,将第一数据集通过第一复合算子进行处理得到第二数据集。
[0133]
示例性地,该第一数据集为用于目标联邦学习任务的训练集,或者说,该第一数据集为用于本次联邦学习的训练集(或者说数据集)。
[0134]
通过第一复合算子对用于本次联邦学习的本地训练集进行处理,生成新的训练集,该新的训练集是经过第一复合算子处理后得到的新的数据的集合,或者是经过第一复合算子处理后(例如进行客户端分组)的具有新的参与方组成结构的数据集合。
[0135]
s140,利用第二数据集进行联邦学习得到第一联邦学习模型。
[0136]
应理解,本技术对联邦学习的具体方案不作限定,即本技术对联邦学习所使用的基模型或者算法不作限定。
[0137]
可选地,在利用第二数据集进行联邦学习得到第一联邦学习模型之后,还可以进一步确定是否满足第一条件,在不满足第一条件的情况下,可以对第一复合算子的结构进行调整,以得到第二复合算子。
[0138]
因此,这里的第一条件可以看作对算子复合结构进行调整的终止条件,该第一条件例如包括:第一联邦学习模型的评估值小于或等于第一阈值,或者,调整复合算子的结构
的次数大于或等于第二阈值。
[0139]
其中,第一联邦学习模型的评估值是根据第一联邦学习模型的测量参数计算得到的,该测量参数与目标联邦学习任务相关联,或者说,该测量参数是用于评估本次联邦学习的相关参数,这些参数既可以是用户自定义的,也可以是系统默认的。评估参数例如可以是通信量(mb)、模型精度(%)、模型训练时长(s)、通信时长(s)中的一项或多项。
[0140]
这里的评估值可以是将评估参数代入评估公式计算得到的。本技术对该评估公式的具体形式不作限定,这里以评估公式为一种参数线性和的形式为例进行说明。例如,该评估公式为:其中,acc表示联邦测试的平均准确率,size(i)表示第i次通信所传输的通信量,系数a和系数b与用户需求相关联,用于表示各参数的权重。这里的a和b可以是用户自定义的,也可以是系统根据用户需求确定的。例如,a和b分别为0.7和0.3,该权重可以表示用户更偏向于对模型准确度的维护。
[0141]
接下来对调整第一复合算子的结构的方式作示例性说明。
[0142]
在一种可能的实现方式中,假设调整的终止条件为评估值小于10或调整次数达到30次。在利用第二数据集进行联邦学习得到第一联邦学习模型之后,获取测量参数并计算评估值。
[0143]
当该评估值大于或等于10,则对第一复合算子的结构进行调整。一种示例,可以通过第一复合算子的结构(或者是第一联邦学习模型)和目标联邦学习任务对该第一复合算子的结构进行调整,这里的目标联邦学习任务可以包括用户需求。例如,获取第一联邦学习的测量参数,当该测量参数中的第一参数小于第三阈值时,将n个算子中的第一算子与该第一复合算子进行复合得到该第二复合算子,其中,该第一算子与该第一参数相关联,该第三阈值与目标联邦学习任务相关联。这里的第一算子与该第一参数相关联,可以表示第一算子可以用于调整第一参数。具体例如,该第一参数为第一联邦学习模型的模型精度,当第一参数小于第三阈值,说明第一联邦学习模型的模型精度不能满足用户需求,则可以选择第一算子与第一复合算子进行复合(或者将第一算子在第一复合算子中进行多次迭代),此时该第一算子可以是用于提升模型精度的算子。具体又例如,该第一参数为训练第一联邦学习模型的成本,当第一参数小于第三阈值,说明训练第一联邦学习模型的成本不能满足用户需求,则可以选择第一算子与第一复合算子进行复合(或者将第一算子在第一复合算子中进行多次迭代),此时该第一算子可以是用于节约成本的算子。通过上述实现方式,可以算子复合结构进行调整,以满足用户需求。另一种示例,可以通过自动化调参的方式对该第一复合算子的结构进行调整,该自动化调参例如可以是网格搜索,该网格搜索可以是按照一定顺序对算子复合结构进行调整的穷举搜索方式。例如,根据算子复合关系矩阵确定所有可能的算子复合结构,并将这些算子复合结构按照一定的顺序进行排序,当本次用于联邦学习的评估值大于或等于10,则选择本次联邦学习的算子复合结构的下一个算子复合结构构成下一次联邦学习的复合算子。然后循环该过程,直到满足调整的终止条件。或者,这里的网格搜索也可以是按照随机的顺序对算子复合结构进行调整的穷举搜索方式,本技术不做限定。需要说明的是,当调整次数达到30次,但这30次内的评估值均大于或等于10,则可以选择这30次中评估值最接近10的那一次联邦学习所使用的算子复合结构。又一种示例,可以通过多次迭代的方式对第一复合算子的结构进行调整。例如,可以根据测量参数和
目标联邦模型参数之间的差异计算损失值,然后将损失值进行反向传播,根据损失值对该第一复合算子的结构进行调整得到第二复合算子,这里的损失值可以指示误差大小,这里的目标联邦模型参数可以是根据用户需求确定的,本技术对损失值的计算方式不作限定。应理解,还可以采用其他迭代优化的方法,例如无损失计算函数的无监督算法,甚至是前馈算法等,本技术不做限定。
[0144]
因此,本技术实施例提供的联邦学习的方法,将多个算子级联,每个算子用于解决不同的问题,将不同算子串联起来相互作用,将针对解决某一联邦学习技术问题的算子的误差由其他算子来减弱,通过对不同算子的动态组合调整可以获得更好的整体效果,从而可以提高联邦学习的效率和质量。即该方法能够将针对不同单一问题的方法进行复合,通过一种级联元学习结构,使得输出的方法组合结构能够适应于优化联邦学习实际场景的问题。
[0145]
也就是说,现有的用于解决联邦学习单一问题的技术仍存在一些缺陷,无法应对实际联邦学习场景中各种问题。例如,对于数据集蒸馏联邦学习技术,虽然该技术可以有效减少联邦学习过程的通信代价,但是该技术并未涉及联邦学习中的异构数据不平衡问题,缺少对异构数据的讨论和解决;对于基于客户端分组的多模型联邦学习技术,由于是利用模型参数更新的差异来指导分组,需要多次联邦学习过程,会带来更多的通信代价;对于基于元学习的联邦学习技术,单纯的根据全局模型的准确率来优化模型会损失模型后续的个性化能力;对于针对标签异构的数据生成联邦学习技术,该方法针对于标签异构情况,对于客户端数据特征异构的情况无法有效处理,并且即使上传少量原始数据,仍存在隐私问题。而在显示情况下,联邦学习本身就是多问题的叠加,定位问题以及单一问题的方法调用本身就不够有效的情况下,本技术实施例提供的方法就显得非常重要,因为它能够自适应问题去学习适合当前问题的联邦学习结构,有效调用现有方法。算子之间的有效复合能够增大单个算子对于联邦学习的增益效果,实现对多个目标问题的同时优化,而不是仅针对联邦学习中单一问题进行优化。
[0146]
图8示出了本技术实施例提供的一种联邦学习的系统架构200的示意性框图,该系统可用于执行方法100。该系统主要包括四个模块:第一模块、第二模块、第三模块和第四模块。下面对各个模块作示例性说明。
[0147]
第一模块,用于生成联邦算子复合关系,以便生成本次联邦学习的复合算子。第一模块也可以称为联邦算子复合关系模块。下面结合图9对该第一模块所执行的流程300作示例性说明。
[0148]
首先,第一模块获取本次联邦学习的算子库,并检查该算子库中每两个算子之间的输入输出空间是否匹配。
[0149]
示例性地,第一模块从该联邦学习系统的中央服务器接收本次联邦学习的算子库(例如可对应于方法100中的n个算子)。在一种可能的情况中,中央服务器接收目标联邦学习任务,该目标联邦学习任务例如可以包括客户端需求信息。中央服务器根据该客户端需求信息在算子库中获取n个算子,该n个算子组成了本次联邦学习的算子库。在另一种可能的情况中,用户直接根据需求选取本次联邦学习的算子库,并将该算子库发送或指示给中央服务器。进一步地,中央服务器将本次联邦学习的算子库传递给第一模块。
[0150]
第一模块生成算子复合关系零矩阵,每当算子库中的两个算子的输入输出空间匹
配时,第一模块更新算子复合关系矩阵,否则不更新。遍历n个算子中的任意两个算子(包括每个算子和其本身),可以得到最终的算子复合关系矩阵,该算子复合关系矩阵可表示不同算子之间的可复合性。具体方案与方法100中的通过算子复合关系矩阵来表示算子复合关系的方案类似,这里不再重复说明。
[0151]
进一步地,第一模块将最终生成的算子复合关系矩阵输出给第二模块。第二模块根据算子复合关系矩阵调整算子复合结构,得到复合算子。该第二模块可以称为算子复合决策模块,或联邦算子复合决策模块。
[0152]
应理解,第一模块和第二模块可以是相互独立的模块,也可以同属于一个模块,例如第一模块和第二模块同属于决策器模块,或者说,第一模块和第二模块可以是决策器模块中的不同子模块。本技术对此不做限定。
[0153]
下面结合图10对该第二模块所执行的流程400作示例性说明。
[0154]
首先,第二模块获取本次联邦学习的算子库,并接收来自第一模块的算子复合关系矩阵,根据该算子复合关系矩阵确定第一复合算子的结构,并将第一复合算子输出到第三模块,该第三模块是用于联邦学习的模块。
[0155]
应理解,第二模块可以是从第一模块获取的算子库,也可以是直接从中央服务器获取的算子库,本技术不作限定。
[0156]
第三模块将第一数据集通过第一复合算子进行处理得到第二数据集,该第一数据集为用于本次联邦学习的训练集。然后第四模块获取本次联邦学习的测量参数,并根据该测量参数计算评估值,第四模块将该评估值通过反馈信息发送给第二模块。第二模块可以根据该反馈信息调整算子复合结构。具体方案可以参见方法100中的相关说明,为了简洁,这里不再赘述。
[0157]
应理解,第四模块和第三模块可能是相同的模块,也可能是不同的模块,本技术对此不作限定。
[0158]
本技术实施例提供的联邦学习的系统,通过决策器模块(包含上述实施例中的第一模块和第二模块)寻找针对单一方法复合的最大化价值的目标结构,即寻找到如何针对真实业务场景去应用较佳的复合方法,来满足客户的确定需求。决策器模块在整个系统中负责动态调整系统结构并评价,通过决策器模块来学习得到满足客户需求的级联联邦学习结构。同时,决策器模块以评估值(用户成本公式计算结果)作为性能指标(benchmark),在整个算子库中以算子复合关系矩阵作为指导,有方向地动态调整算子复合结构,从而可以得到满足用户需求的级联联邦学习系统。
[0159]
下面以控制空调舒适度联邦模型的训练过程为例,详细介绍本技术实施例提供的联邦学习的方法。
[0160]
首先,需要进行一些初始化设置。
[0161]
示例性地,用户对一些基本参数及其数据类型进行初始化设置。例如,表1列出了一种情况下用户在初始化阶段需要输入的参数列表及其示例。
[0162]
表1
[0163][0164]
下面对表1中的各项输入参数作示例性说明:
[0165]
(1)名称:用户自定义联邦学习项目实例名称;
[0166]
(2)工作环境:用户自定义工作环境,也可以采用默认工作环境,例如python3;
[0167]
(3)元联邦学习算子类型列表:用户从算子库中选择算法,例如可选择数据集蒸馏算法、客户端分组算法、虚拟样本平衡算法、元学习算法等;
[0168]
(4)基模型:用户自定义联邦学习基模型,例如可选择神经网络模型、boost模型、bagging模型等;
[0169]
(5)数据范例:用户需要提交至少一条范例数据来反映数据的格式,描述它的特征和标签结构;
[0170]
(6)训练集:用户需提交用于联邦学习的数据集;
[0171]
(7)评估参数列表:用户可自定义关于联邦学习的评估指标,这里的评估指标用于评估通过联邦学习训练出来的模型。例如,可选的联邦学习过程中间变量为通信量(mb)、模型精度(%)、模型训练时长(s)、通信时长(s)等;
[0172]
(8)自定义评估公式:用户可自定义评估公式。可设置系统默认评估公式为线性和的形式,用户可直接设置各参数的权重。需要说明的是,评估公式中的参数应当是上述参数评估列表中的参数中的一项或多项。
[0173]
(9)终止条件:用户可以设置算子复合结构调整的终止条件,例如用户设置算子复合结构调整的复合次数为30。当用户没有设置终止条件时,可以采用默认的最大调整次数,例如默认为20次。
[0174]
(10)下载目录:用户需要设置本地保存模型的本地目录;
[0175]
(11)上载目录:用户需要设置用于保存本地运行的需要上载日志的目录。
[0176]
在该实施例中,以多联机空调舒适度控制预测公开数据集atcii(记为联邦模拟数据集)作为联邦学习的训练集。该联邦模拟数据集中,包括69个国家以及每个国家细化到不同城市下的采集数据,一共有约76000条采集数据,共包含特征70个,基于实际场景以及特征实际采集难易程度的考量,最终选择8个通用特征用于测试。这8个通用特征均为温度以及速度的数值形式信息,其中后三个特征为原始特征进行平均值运算而来。其次,atcii数
据集中特征thermal preference的采集值为

cooler’、’no change’、’warmer’,故选择特征thermal preference作为实验的标签,用以训练三分类预测模型。
[0177]
另外,选用actii数据集中的五个城市berkeley、darwin、kalgoorlie、oxford、townsvill作为5个客户端来参与整个联邦学习,各个城市保存的数据作为对应客户端的训练集。
[0178]
在方法500中,假设用户设置的评估参数为模型测试准确率acc和通信量size,评估的标准设置为(100-acc)和size线性组合成本,人为设置的成本计算公式中两项参数的单位为%和mb,权重分别为0.7和0.3,这里表示用户更偏向于对模型准确度的维护。但公式仅仅是一个测试,并非该成本计算公式中的单位和成本有合理的计算关系。抽象为结果计算公式的计算结果单位为成本(元),计算公式简记形式为:
[0179][0180]
其中acc表示联邦测试平均准确率,size(i)表示第i次通信所传输的通信量。
[0181]
假设用户设置的终止条件为调整结构30次/成本计算公式结果小于10。
[0182]
然后,生成本次联邦学习的算子库信息。
[0183]
示例性地,系统根据用户输入的信息确定本次联邦学习的算子库信息。表2列出了一种情况下用户输入的参数列表及其示例。
[0184]
表2
[0185]
输入参数例子(数据类型)元联邦学习算子列表[“data_distillation”,“client_grouping”,

](list of string)数据范例{“feature1”:a,”feature2”:b,

,”label”:y}(dict)
[0186]
下面对表2中的各项输入参数做示例性说明:
[0187]
(1)元联邦学习算子列表:用户从原始算子库中选择算子,例如用户根据用户需求选择数据集蒸馏算子和客户端分组算子为本次联邦学习的算子;
[0188]
(2)数据范例:用户需要提交至少一条范例数据来反映数据的格式、描述它的特征和标签结构。
[0189]
表3
[0190]
输出参数例子(数据类型)算子函数列表[“funa”,“funb”,

,“funm”](list of string)
[0191]
表3列出了一种情况下系统输出的参数列表。下面对表3中的输出参数做示例性说明:
[0192]
算子函数列表:系统根据用户提供的数据范例的结构形式,对用户选择的元联邦学习算子进行调整得到的标准函数库,通过函数名即可调用对应函数,例如,通过“funa”可以调用算子a。
[0193]
应理解,表2和表3所列出的输入和输出参数仅仅是一种示例,本技术实施例还可以采用其他方式输出本次联邦学习的算子库。例如,用户可以向系统输入用户需求,例如,用户输入数据加密、数据平衡等需求(例如在系统界面选择数据加密、数据平衡等需求),系统根据用户需求在原始算子库中选择本次联邦学习的算子。应理解,系统选择的本次联邦学习的算子应当与用户需求相对应,或者说,系统选择的本次联邦学习的算子应当是用于
实现用户需求的算子。
[0194]
在确定了本次联邦学习的算子库之后,还需要对本次联邦学习的算子库中的算子进行参数设置。为了方便说明,以本次联邦学习的算子库为{数据集蒸馏算子(e算子)、客户端分组算子(f算子)}为例进行说明。下面对这两个算子进行参数设置的方式作示例性说明:
[0195]
(1)数据集蒸馏算子:选择包含两个隐藏层的人工神经网络ann;激活函数选择relu函数;蒸馏采用固定初始化的初始模型;训练轮数设置为20轮,每轮30步梯度下降(10步梯度下降重复3次);蒸馏数据数目设置为每类5个。
[0196]
(2)客户端分组算子:设置最大划分组数为输入城市数,最小划分组数为1;设置划分方法采用自定义non-iid度量算法描述任务相似程度;设置迭代终止条件为组间度量和最大,组内度量和最小;设置迭代最大次数10。
[0197]
需要说明的是,系统输出的算子库信息中包括算子的输入输出的数据(以及该数据的格式)以及参数设置的表格。作为一个示例,对于数据集蒸馏算子,输入为各客户端原始数据集,输出为客户端蒸馏数据集;对于客户端分组算子,输入为原始客户端集合以及数据,输出为新的客户端集合。
[0198]
进一步地,生成联邦算子复合关系矩阵。
[0199]
示例性地,联邦算子复合关系模块根据本次联邦学习的算子库信息,将任意两个算子之间的输入输出空间进行匹配以生成联邦算子复合关系矩阵。
[0200]
下面以e算子和f算子为例进行说明。
[0201]
联邦算子复合关系模块输入本次联邦学习的算子库信息(例如该算子库信息为{e算子、f算子}、e算子的输入输出并数据格式、f算子的输入输出并数据格式、e算子的参数设置表格、f算子的参数设置表格等)以及超参数(该超参数不能自复合),然后判断e算子和f算子的输入输出空间是否匹配。
[0202]
一种方式是,通过e算子和f算子输入输出空间的数据形式,来判断e算子和f算子的输入输出空间是否匹配。
[0203]
首先简单介绍一种获取数据形式的方式:比如说有一个叫做basealgorithm的基类,它有两个基类方法get_input_type()、get_output_type(),输入到系统中的算子都必须继承自这个basealgorithm基类,算子包含一个run()方法,实现对应的蒸馏、客户分组等运算。然后系统通过调用get_input_type()、get_output_type()方法获取到算子的输入输出数据形式,存储到算子库中。数据形式可以是list/set或者用户自定义的对象。
[0204]
进一步地,可以对e算子和f算子的数据形式进行equal()计算,以判断e算子和f算子的输入输出空间是否能够对接上。
[0205]
应理解,e算子和f算子的数据形式的获取流程以及判断e算子和f算子的输入输出空间是否能够对接上的流程,既可以是在联邦复合关系模块中执行的,也可以是在其他模块中执行的,本技术不作限定。
[0206]
假设e算子的输出空间与f算子的输入空间相匹配,f算子的输出空间与e算子的输入空间也相匹配,e算子的输出空间与e算子的输入空间相匹配,则可以得到算子复合关系e+e、e+f和f+e。可以采用邻接矩阵的方式进行建模,输出算子复合关系矩阵n:
[0207][0208]
以数据集蒸馏算子+客户端分组算子(即e+f)级联形式为例进行说明:对于(e+f)这个复合算子来说,e算子的输入为客户端集合以及各客户端本地数据集,输出为各客户端蒸馏数据集;f算子的输入为客户端集合以及客户端蒸馏数据集,输出为新的客户端组。
[0209]
进一步地,生成和调整联邦算子复合结构。
[0210]
示例性地,算子复合决策模块获取算子复合关系矩阵及联邦算子库信息,生成第一复合算子。然后将该第一复合算子复合到联邦学习系统,将各客户端的本地训练集经过该联邦学习系统进行联邦学习,得到第一联邦模型。
[0211]
表4列出了一种情况下联邦学习过程用户需要输入的参数列表及其示例。应理解,这些参数可以是用户在初始化设置阶段即输入到系统的。
[0212]
表4
[0213]
输入参数例子(数据类型)基模型“alexnet_model”(string)训练集{“x”:array1,”y”:array2}(dict)联邦模型[“fed_model1”,”fed_model2”,

](list of string)
[0214]
下面对表4中的各项输入参数做示例性说明:
[0215]
(1)基模型:用户可选择本次联邦训练所使用的基模型的类型,例如神经网络模型、boost模型、bagging模型等;
[0216]
(2)训练集:用户需要提交用户需提交用于联邦学习的数据集。
[0217]
(3)联邦模型:用户可选择联邦模型的类型,例如神经网络模型、boost模型、bagging模型等。
[0218]
在联邦训练过程中,或者联邦训练完成之后,可以获取测量参数,并根据测量参数计算评估值,将测量参数和评估值反馈给算子复合决策模块,以便算子复合决策模块对第一复合算子的结构进行调整。
[0219]
表5列出了一种情况下用户输入到算子复合决策模块的参数列表及其示例。应理解,这些参数可以是用户在初始化设置阶段即输入到系统的。
[0220]
表5
[0221][0222]
对于各输入参数的说明可以参见表1中相关参数的说明,这里不再赘述。
[0223]
本次联邦学习之后,如果不满足终止条件,则对第一复合算子的结构进行调整。表
6列出了一种情况下算子复合结构的搜索过程。为了方便描述,将算子复合结构接入传统联邦系统的过程记为g,需要说明的是,这里的g并非为算子。在该实施例中,联邦学习过程元学习器采用三分类xgboost进行联邦学习,xgboost参数控制不变,具体联邦学习过程为联邦蒸馏数据与本地数据结合训练。
[0224]
假设用户设置的终止条件为调整结构30次/成本计算公式结果小于10。每一次联邦学习之后,如果不满足终止条件,则可以按照表6中的顺序调整算子复合结构。
[0225]
表6
[0226][0227][0228]
最后迭代终止,触发迭代10次的终止条件,未满足评估值小于10的终止条件,最后算子复合决策模块输出e+f+e+f+e+g的算子复合的联邦学习结构,是搜索过程中满足评估公式值最小的结构。将e+f+e+f+e+g统称为一个复合算子。进一步有通过该复合算子对训练集进行处理:
[0229]
5客户数据集输入数据集蒸馏算子输出蒸馏数据,压缩数据;蒸馏数据传输至云端,云端对蒸馏数据进行non-iid度量,划分新组别(berkeley、kalgoorlie、oxford)(darwin、townsvill);继续对组内进行多云端控制的联邦学习,组内客户进行数据集蒸馏,并传输至云端;组内云对蒸馏数据进行non-iid度量,重新划分组结构(berkeley)(kalgoorlie、oxford)(darwin、townsvill);新组内进行数据集蒸馏,传输至云端;云端汇总组内蒸馏数据,组内用户结合分享的蒸馏数据和本地数据训练xgboost模型,并测试。
[0230]
由于通常蒸馏数据集规模和本地训练数据集规模差距较大,本实施例采用自适应地对蒸馏数据集进行实例迁移的方法,来提升蒸馏数据在结合本地数据后的占比,强调蒸
馏数据对于客户端分组的指导意义。
[0231]
图11是根据本技术实施例提供的一种计算机设备的示意性结构框图。如图11所示的计算机设备500包括获取单元501和处理单元502。
[0232]
获取单元501,用于根据目标联邦学习任务从算子库中获取n个算子,所述算子库包括k个与联邦学习相关联的算子,所述n和所述k为大于1的整数,所述n小于或等于所述k。
[0233]
处理单元502,用于将所述n个算子中的多个算子进行复合得到第一复合算子;将第一数据集通过所述第一复合算子进行处理得到第二数据集,所述第一数据集为用于所述目标联邦学习任务的训练集;利用所述第二数据集进行联邦学习得到第一联邦学习模型。
[0234]
可选的,在一些实施例中,处理单元502,具体用于:根据所述n个算子中任意两个算子之间的算子复合关系,将所述n个算子中的多个算子进行复合得到所述第一复合算子。
[0235]
可选的,在一些实施例中,所述处理单元502还用于:确定所述n个算子中任意两个算子之间的输入输出空间的匹配关系;根据所述n个算子中任意两个算子之间的输入输出空间的匹配关系确定所述n个算子中任意两个算子之间的算子复合关系。
[0236]
可选的,在一些实施例中,所述处理单元502还用于:确定是否满足第一条件;在不满足第一条件的情况下,对所述第一复合算子的结构进行调整得到第二复合算子。
[0237]
可选的,在一些实施例中,所述获取单元501具体用于:获取所述第一联邦学习模型的测量参数;所述处理单元502具体用于:根据所述测量参数计算评估值,所述测量参数与所述目标联邦学习任务相关联;在所述评估值小于第一阈值的情况下,确定满足所述第一条件。
[0238]
可选的,在一些实施例中,所述处理单元502具体用于:确定调整复合算子的结构的次数;在所述调整复合算子的结构的次数大于或等于第二阈值的情况下,确定满足第一条件。
[0239]
可选的,在一些实施例中,所述处理单元502具体用于:根据所述测量参数和目标联邦模型参数之间的差异计算损失值,将所述损失值进行反向传播,根据所述损失值对所述第一复合算子的结构进行调整得到第二复合算子。
[0240]
可选的,在一些实施例中,所述算子库包括数据集蒸馏算子、客户端分组算子、虚拟样本平衡算子、元学习算子中的至少一种。
[0241]
获取单元501、处理单元502的具体功能和有益效果可以参考图7-图10所示的实施例,为了简洁,在此就不再赘述。
[0242]
图12是根据本技术实施例提供的一种用于联邦学习的装置的示意性结构框图。装置600包括总线601、处理器602、通信接口603和存储器604。处理器602、存储器604和通信接口603之间通过总线601通信。其中,处理器702可以是编程门阵列(field programmable gate array,fpga),可以是专用集成芯片(application specific integrated circuit,asic),还可以是系统芯片(system on chip,soc),还可以是中央处理器(central processor unit,cpu),还可以是网络处理器(network processor,np),还可以是数字信号处理电路(digital signal processor,dsp),还可以是微控制器(micro controller unit,mcu),还可以是可编程控制器(programmable logic device,pld)、其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,或其他集成芯片。存储器604中存储有病理图像处理系统所包括的可执行代码,处理器602读取存储器604中的该可执行代码以执行
如图3所示的方法。存储器604中还可以包括操作系统等其他运行进程所需的软件模块。操作系统可以为linux
tm
,unix
tm
,windows
tm
等。
[0243]
本技术实施例还提供一种芯片系统,其特征在于,包括:逻辑电路,所述逻辑电路用于与输入/输出接口耦合,通过所述输入/输出接口传输数据,以执行如图3所述的方法。
[0244]
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
[0245]
应注意,本技术实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0246]
可以理解,本技术实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0247]
根据本技术实施例提供的方法,本技术还提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行图3所示实施例的方法。
[0248]
根据本技术实施例提供的方法,本技术还提供一种计算机可读介质,该计算机可读介质存储有程序代码,当该程序代码在计算机上运行时,使得该计算机执行图3所示实施例的方法。
[0249]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员
可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0250]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0251]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0252]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0253]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0254]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0255]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1