CN117033997A - 数据切分方法、装置、电子设备和介质 - Google Patents
数据切分方法、装置、电子设备和介质 Download PDFInfo
- Publication number
- CN117033997A CN117033997A CN202211112019.6A CN202211112019A CN117033997A CN 117033997 A CN117033997 A CN 117033997A CN 202211112019 A CN202211112019 A CN 202211112019A CN 117033997 A CN117033997 A CN 117033997A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- loss
- sub
- initial
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000011218 segmentation Effects 0.000 title claims abstract description 186
- 238000000034 method Methods 0.000 title claims abstract description 98
- 238000012360 testing method Methods 0.000 claims abstract description 178
- 238000012549 training Methods 0.000 claims description 147
- 230000008569 process Effects 0.000 claims description 27
- 238000005070 sampling Methods 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 10
- 238000005516 engineering process Methods 0.000 abstract description 20
- 238000013473 artificial intelligence Methods 0.000 abstract description 16
- 230000006870 function Effects 0.000 description 15
- 238000010801 machine learning Methods 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 11
- 238000000605 extraction Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 238000012952 Resampling Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000009467 reduction Effects 0.000 description 5
- 230000006855 networking Effects 0.000 description 4
- 238000005520 cutting process Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000012804 iterative process Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000008447 perception Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000013526 transfer learning Methods 0.000 description 2
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000000790 scattering method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例公开了一种数据切分方法、装置、电子设备和介质,本发明实施例可应用于云技术、人工智能、智慧交通、辅助驾驶等各种场景;本申请实施例获取测试数据集以及成员节点的节点权重;针对成员节点,比较与成员节点对应的子测试集以及与成员节点对应的节点特征数据,确定成员节点的节点损失;比较测试数据集以及总特征数据,确定总损失;根据节点损失以及总损失,调整初始切分比例,得到目标切分比例,以便根据目标切分比例切分待切分数据集,待切分数据集包括测试数据集。在本申请实施例中,基于整体测试数据集以及初始切分比例得到的总损失,可以使按照切分比例得到的总损失最小,以缩减误差。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种数据切分方法、装置、电子设备和介质。
背景技术
近年来,随着人工智能技术的发展,联邦学习的应用越来越广泛。联邦学习是将分布式机器学习、密码学、基于金融规则的激励机制和博弈论结合起来,以解决分散数据的使用问题,联邦学习可以使多个成员节点的数据在不出本地的前提下实现共同建模,保证数据隐私性的同时激发了各成员节点的数据潜能。
然而,通过联邦学习处理大规模数据,容易造成误差较大。
发明内容
本申请实施例提供一种数据切分方法、装置、电子设备和介质,可以缩减联邦学习的误差。
本申请实施例提供一种数据切分方法,应用于联邦模型,所述联邦模型包括多个成员节点,包括:获取测试数据集以及所述成员节点的节点权重,所述测试数据集包括根据初始切分比例切分得到的多个子测试集,所述子测试集与所述成员节点对应;针对所述成员节点,比较与所述成员节点对应的子测试集以及与所述成员节点对应的节点特征数据,确定所述成员节点的节点损失,所述节点特征数据由所述节点权重对所述子测试集加权得到;比较所述测试数据集以及总特征数据,确定总损失,所述总特征数据由所述节点权重对所述测试数据集加权得到;根据所述节点损失以及所述总损失,调整所述初始切分比例,得到目标切分比例,以便根据所述目标切分比例切分待切分数据集,所述待切分数据集包括所述测试数据集。
本申请实施例还提供一种数据切分装置,应用于联邦模型,所述联邦模型包括多个成员节点,包括:获取单元,用于获取测试数据集以及所述成员节点的节点权重,所述测试数据集包括根据初始切分比例切分得到的多个子测试集,所述子测试集与所述成员节点对应;比较单元,用于针对所述成员节点,比较与所述成员节点对应的子测试集以及与所述成员节点对应的节点特征数据,确定所述成员节点的节点损失,所述节点特征数据由所述节点权重对所述子测试集加权得到;比较单元,还用于比较所述测试数据集以及总特征数据,确定总损失,所述总特征数据由所述节点权重对所述测试数据集加权得到;调整单元,用于根据所述节点损失以及所述总损失,调整所述初始切分比例,得到目标切分比例,以便根据所述目标切分比例切分待切分数据集,所述待切分数据集包括所述测试数据集。
本申请实施例还提供一种电子设备,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行本申请实施例所提供的任一种数据切分方法中的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请实施例所提供的任一种数据切分方法中的步骤。
本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现本申请实施例所提供的任一种数据切分方法中的步骤。
本申请实施例可以获取测试数据集以及所述成员节点的节点权重,所述测试数据集包括根据初始切分比例切分得到的多个子测试集,所述子测试集与所述成员节点对应;针对所述成员节点,比较与所述成员节点对应的子测试集以及与所述成员节点对应的节点特征数据,确定所述成员节点的节点损失,所述节点特征数据由所述节点权重对所述子测试集加权得到;比较所述测试数据集以及总特征数据,确定总损失,所述总特征数据由所述节点权重对所述测试数据集加权得到;根据所述节点损失以及所述总损失,调整所述初始切分比例,得到目标切分比例,以便根据所述目标切分比例切分待切分数据集,所述待切分数据集包括所述测试数据集。
在本申请中,可以根据初始切分比例对数据集进行切分,将数据集分散在联邦模型的多个分布式的成员节点中。以此,将切分后的数据集分散到对应的成员节点中进行联邦学习,能够有效提高联邦模型的学习效率,并且有效缩减误差。此外,基于整体测试数据集以及初始切分比例得到的总损失,可以使按照切分比例得到的总损失最小,以缩减误差。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的数据切分系统的场景示意图;
图1b是本申请实施例提供的数据切分方法的流程示意图;
图1c是本申请实施例提供的对节点权重的迭代处理过程的流程示意图;
图1d是本申请实施例提供的对测试数据集进行更新的流程示意图;
图1e是本申请实施例提供的迭代更新中间切分比例的流程示意图;
图2a是本申请另一个实施例提供的数据切分方法的示意图;
图2b是本申请实施例提供应用于联邦模型训练或联邦模型使用的示意图;
图3是本申请实施例提供的数据切分装置的结构示意图;
图4是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
人工智能(Artificial Intelligence,AI)是一种利用数字计算机来模拟人类感知环境、获取知识并使用知识的技术,该技术可以使机器具有类似于人类的感知、推理与决策的功能。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习、自动驾驶、智慧交通等几大方向。
其中,机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、示教学习等技术。
自动驾驶技术通常包括高精地图、环境感知、行为决策、路径规划、运动控制等技术,自定驾驶技术有着广泛的应用前景,
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服、车联网、自动驾驶、智慧交通等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
本申请实施例提供一种数据切分方法、装置、电子设备和介质。
其中,该数据切分装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。本发明实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
在一些实施例中,该数据切分装置还可以集成在多个电子设备中,比如,数据切分装置可以集成在多个服务器中,由多个服务器来实现本申请的数据切分方法。
在一些实施例中,服务器也可以以终端的形式来实现。
例如,参考图1a,该数据切分方法可以集成在数据切分系统中,该数据切分系统搭载部署在多个成员节点的联邦模型,每个成员节点之间通过网络连接。该数据切分系统可以获取测试数据集以及成员节点的节点权重,测试数据集包括根据初始切分比例切分得到的多个子测试集,子测试集与成员节点对应;针对成员节点,比较与成员节点对应的子测试集以及与成员节点对应的节点特征数据,确定成员节点的节点损失,节点特征数据由节点权重对子测试集加权得到;比较测试数据集以及总特征数据,确定总损失,总特征数据由节点权重对测试数据集加权得到;根据节点损失以及总损失,调整初始切分比例,得到目标切分比例,以便根据目标切分比例切分待切分数据集,待切分数据集包括测试数据集。
其中,联邦学习(Federated Learning)又称为联合学习,是将分布式机器学习、密码学、基于金融规则的激励机制和博弈论结合起来,以解决分散数据的使用问题。联邦学习能够在保护数据安全的前提下实现数据的“可用而不可见”,也即通过多方协作完成机器学习模型的训练任务,此外,还能够提供机器学习模型的推理服务。与传统的集中式机器学习不同,联邦学习过程中,由两个或两个以上的参与方(成员)一起协作训练一个或多个机器学习模型。从分类上来说,基于数据的分布特征,联邦学习可以划分为横向联邦学习(Horizontal FederatedLearning)、纵向联邦学习(VerticalFederated Learning)和联邦迁移学习(FederatedTransfer Learning)。其中,横向联邦学习又称为基于样本的联邦学习,适用于样本集共享相同特征空间但样本空间不同的情况;纵向联邦学习又称为基于特征的联邦学习,适用于样本集共享相同样本空间但特征空间不同的情况;联邦迁移学习则适用于样本集不仅在样本空间上不同而且在特征空间上也不同的情况。
其中,联邦模型可以指联邦建模过程中使用联邦学习算法产出的模型。当有多个节点(参与方)参与模型训练时,每个节点都会保存一个联邦模型的副本。各参与方均可以独立地使用保存在本地的模型副本,同时也支持各参与方对联邦模型的副本进行微调。联邦模型中的参与方可以以分布式形式分布,以协同进行分布式计算。分布式计算是指将计算任务按照一定规则分散到同一计算集群的不同服务器中,在每个服务器中分别进行计算,多个服务器之间的并行计算相互独立的一种计算方式。
本申请实施例提供的数据切分方法是基于横向联邦学习方法,横向联邦学习的应用场景是联邦模型的各个参与节点(成员节点)中,各自的样本数据具有相同的特征空间和不同的样本空间。
需说明的是,本申请实施例提供的数据切分方法涉及到人工智能领域的机器学习技术,即在本申请实施例中,可以利用人工智能的机器学习技术通过成员节点训练联邦模型,从而得到训练后联邦模型。
以下分别进行详细说明。可以理解的是,在本申请的具体实施方式中,涉及到对象、操作等相关的数据,当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
在本实施例中,提供了一种涉及人工智能的数据切分方法,应用于联邦模型,联邦模型包括多个成员节点,如图1b所示,该数据切分方法的具体流程可以如下:
110、获取测试数据集以及成员节点的节点权重,测试数据集包括根据初始切分比例切分得到的多个子测试集,子测试集与成员节点对应。
其中,成员节点可以指联邦学习中的全部或部分参与方节点。例如,成员节点中的节点可以为参与到联邦学习中的参与方对应的设备,例如,节点可以包括电子设备,如节点可以包括服务器和/或终端等等。例如,在实际应用中,联邦学习中的成员可以包括但不限于企业、公司、高校、具有数据的组织和个人。例如,成员节点可以包括企业的服务器、公司的服务器、高校的服务器、具有数据的组织的服务器和个人的服务器中的至少一种。例如,联邦学习过程可以包括中心服务器以及从属于该中心服务器的多个子服务器等多个参与方。以此,联邦学习中成员节点可以包括联邦学习中全部或部分的子服务器,成员节点还可以包括联邦学习中的中心服务器,成员节点也可以不包括联邦学习中的中心服务器,具体可以根据实际需要进行设置。
其中,节点权重可以指成员节点对应的权重,节点权重属于联邦模型的模型参数。例如,联邦学习中的中心服务器可以包括联邦模型以及该模型对应的权重,每个子服务器可以拥有与中心服务器模型结构一致的联邦模型以及各子服务器拥有的模型对应的权重。在初始状态下,中心服务器以及子服务器对应的初始权重可以为预设或随机设置。在联邦学习过程中,子服务器可以将中心服务器下发的模型参数(包括初始权重)更新到自己本地的模型上,并利用本地的数据,通过交换模型参数或中间结果的方式进行分布式模型训练,以训练得到子服务器对应的节点权重。
其中,测试数据集可以指用于检查模型工作状况的数据集。通常测试数据集是一组类似于训练数据集的数据,训练数据集是用于训练模型的数据集。例如,可以对大型数据集进行拆分得到训练数据集以及测试数据集,在使用训练数据集训练模型后,可以测试数据集验证模型,还可以使用测试数据集调整模型直至得到模型最优的输出结果。
其中,初始切分比例可以指用于将测试数据集切分为与成员节点分别对应的子测试集的比例。初始切分比例可以为随机设置的切分比例,也可以为根据成员节点的数量预设的切分比例。例如,初始切分比例可以为平均切分,若有k个成员节点,可以将测试数据集切分为k等分,每一等分为一个子测试集,即将测试数据集切分为k个子测试集。
在一些实施方式中,若待切分数据集包括训练数据集以及测试数据集,可以对待切分数据集进行切分后,再从切分得到的子数据集中确定子训练集以及子测试集,以确定训练数据集以及测试数据集。具体地,获取测试数据集以及成员节点的节点权重之前,还可以包括:
获取待切分数据集;
根据初始切分比例,将待切分数据集切分得到多个子数据集,子数据集与成员节点对应;
从子数据集中进行数据抽样,得到子训练集以及子测试集。
其中,待切分数据集可以指要切分的数据集。例如,在联邦学习中,待切分数据集通常为大规模数据集。例如,在应用于车联网出行服务推荐的应用程序时,可以从车联网应用的日志数据中,获取对象在车联网应用的各个模块中的点击、收藏、评论、支付等多种操作数据,并对这些操作数据进行特征提取得到大量单变量特征数据,以构成待切分数据集,其中,特征提取方法可以包括采用特征提取网络可以为残差网络(ResNet)、深度学习网络(VGGNet)、压缩和激励网络(SENet)、或卷积神经网络(CNN)等特征提取网络对操作行为数据进行特征提取。
例如,可以根据初始切分比例将待切分数据集按照行进行k等分,切割得到k个子数据集,每份子数据集的维度为[n/k]*m,其中,n表示行数(样本量)、m表示列数(特征数)。可以将k个子数据集分别发送k个成员节点。在每个成员节点中,可以对收到的子数据集进行数据抽样,划分得到子训练集(a)和子测试集(1-a)。由所有成员节点的子训练集可以得到训练数据集,由所有成员节点的子测试集可以得到测试数据集。
在一些实施方式中,对于联邦学习中的参与方来说,其拥有的数据一般可以包括特征数据以及标签数据两类。具体地,待切分数据集中的数据可以包含特征数据以及标签数据两类数据,以此,由待切分数据集得到的子训练集以及子测试集均包含特征数据以及标签数据两类数据。
其中,特征数据可以指表征对象特征的数据,例如,特征数据可以包括由对象行为、图像特征等对象信息中提取得到的特征数据,如行为特征、图像特征等。标签数据可以指用于标注对象特征的数据,例如,标签数据可以为对特征数据进行分类的目标,可以通过0-1分类目标、多分类目标等方法确定特征数据对应的标签数据。以此,可以将特征数据视为样本数据,则标签数据为样本标签。例如,待切分数据集可以表示为{Y,X},其中,X表示待切分数据集中的特征向量(特征数据),Y表示待切分数据集中的目标变量向量(标签数据)。以此,由待切分数据集{Y,X}划分得到的k个子数据集可以表示为{Y1,X1}[n/k]×m,{Y2,X2}[n/k]×m,…,{Yk,Xk}[n/k]×m,每一等分的维度为:[n/k]×m,其中,m≤[n/k]≤m+1。对任一成员节点划分得到子训练集可以表示为子测试集可以表示为 其中n表示行数(样本量)、m表示列数(特征数)。
不同的应用场景中,特征数据以及标签数据可以不同。例如,在应用于应用程序数据分析时,特征数据可以包括该应用程序中对象点击、收藏、评论以及支付等操作对应的特征数据,例如,可以从应用程序的日志数据中解析得到这些操作对应的特征数据。标签数据可以包括对操作对应的特征数据进行分类的目标(标签)。
在一些实施方式中,可以随机抽样从子数据集中抽取子训练集,并将剩余的数据作为子测试集中的数据,以此若重复进行抽样,可以根据同一子数据集确定不同的子训练集以及子测试集,以此可以针对同一成员节点,生成多样化的子训练集以及子测试集。具体地,从子数据集中进行数据抽样,得到子训练集以及子测试集,可以包括:
针对成员节点,根据预设抽样比例,从与成员节点对应的子数据集中进行随机抽样,得到与成员节点对应的子训练集;
将成员节点对应的子数据集中,除成员节点对应的子训练集以外的数据,确定为与成员节点对应的子测试集。
其中,预设的抽样比例可以根据实际需要设置的抽样比例。如,可以预设的抽样比例为a,0<a<1,以此对任一成员节点,可以根据抽样比例a,从该成员节点对应的子数据集中随机抽取数据,直至抽取得到的数据占比为a,以此将抽取的数据构成子训练集,将子数据集中剩余的占比1-a的数据构成子测试集。在随机抽取中使得子数据集中的每个个体有相等的机会被抽取,因而有相当大的可能性使得抽取得到的子训练集以及子测试集保持与总体子数据集有相同的结构,或者说具有最大的可能使得总体子数据集中的某些特征在子训练集以及子测试集中得以表现。所以它能够在最大可能性上减少随机误差。
在一些实施方式中,在使用测试数据集计算之前,还可以通过训练数据调整成员节点的初始权重,以提升成员节点的表达能力。具体地,获取测试数据集以及成员节点的节点权重之前,还可以包括:
获取成员节点的训练数据,训练数据由初始权重对与初始权重对应的子训练集加权得到,子训练集由初始切分比例切分得到;
根据成员节点的训练数据,调整成员节点的初始权重,得到成员节点的节点权重。
其中,子训练集可以指构成训练数据集的数据集,训练数据集是用于训练模型的数据集。
在实际应用中,针对任一成员节点,可以根据全部或部分成员节点的训练数据调整该成员节点的初始权重,也可以仅根据该成员节点的训练数据调整该成员节点的初始权重。例如,可以由所有成员节点中的一个成员节点获取所有成员节点的训练数据,在聚合所有成员节点的训练数据后,基于聚合结果调整该成员节点的初始权重,以此融合所有成员节点的数据特征,来调整成员节点的表达能力,增加该成员节点与其他成员节点之间的关联,以提升成员节点在联邦学习中的表达能力。
在一些实施方式中,可以对子训练集中的特征数据进行加权,以在特征维度强化不同成员节点的特征表达。具体地,子训练集包括特征数据以及标签数据,获取成员节点的训练数据,可以包括:
针对成员节点,根据成员节点的初始权重,对与成员节点对应的特征数据的进行加权处理,得到加权后的特征数据;
根据加权后的特征数据与成员节点对应的标签数据之间的差值,确定成员节点的训练数据。
其中,初始权重可以指根据实际需要设置、或随机设置的成员节点的权重。例如,可以由中心节点以随机数设置成员节点的初始权重,并随模型参数将初始权重下发至相应的成员节点。
例如,任一成员节点i在收到相应的子训练集 后,可以根据该成员节点对应的初始权重{Wi 0|i=1,...,k}对该子训练集中的特征数据计算得到加权后的特征数据再由Yi train,计算得到成员节点i的训练数据
在一些实施方式中,可以由成员节点的训练数据,先计算得到一个成员节点的节点权重,再依据计算得到的节点权重求解得到其他成员节点的节点权重,以此在多个成员节点中,仅一个成员节点能够获取其他成员节点的数据,而其他成员节点仅能获取该成员节点共享的节点权重,以此减少了数据被泄漏的风险,提高了数据安全性。具体地,根据成员节点的训练数据,调整成员节点的初始权重,得到成员节点的节点权重,可以包括:
根据所有成员节点的训练数据,调整第一成员节点的初始权重,得到第一成员节点的节点权重,第一成员节点为多个成员节点中的一个成员节点;
根据第一成员节点的节点权重,对与第一成员节点对应的子训练集进行加权处理,得到中间数据;
根据中间数据以及第二成员节点对应的子训练集,计算得到第二成员节点的节点权重,第二成员节点为多个成员节点中除第一成员节点以外的成员节点。
其中,第一成员节点可以为多个成员节点中的任一成员节点,也可以为第一个成员节点。
例如,若成员节点有k个,在各成员节点计算得到相应的训练数据后,可以由第2~k个成员节点将训练数据加密后发送至k个中的第一个成员节点,由第1个成员节点解密后,由该成员节点将第1~k个成员节点的训练数据代入参数模型求解得到第1个成员节点调整后的节点权重其中,成员节点i的训练数据为表示第1个成员节点对应的子训练集中的特征数据,表示第1个成员节点的初始权重。
在得到第1个成员节点的初始权重,可以对第1个成员节点对应的子训练集加权处理得到中间数据第1个成员节点可以将中间数据加密后发送至第2~k个成员节点,针对第2~k个成员节点中的每个成员节点,可以由该成员节点在收到的数据解密后,由该成员节点对应的子训练集对中间数据求解得到该成员节点对应的节点权重{Wi 1|i=2,...,k}。
在一些实施方式中,可以由所有成员节点中的一个成员节点获取所有成员节点的训练数据,在聚合所有成员节点的训练数据后,基于聚合结果调整该成员节点的初始权重,以此融合所有成员节点的数据特征,来调整成员节点的表达能力,增加该成员节点与其他成员节点之间的关联,以提升成员节点在联邦学习中的表达能力。具体地,根据所有成员节点的训练数据,调整第一成员节点的初始权重,得到第一成员节点的节点权重,可以包括:
对所有成员节点的训练数据进行加和处理,得到聚合训练数据;
根据聚合训练数据以及与第一成员节点对应的子训练集,调整第一成员节点的初始权重,得到第一成员节点的节点权重。
例如,若成员节点有k个,在各成员节点计算得到相应的训练数据后,可以由第2~k个成员节点将训练数据加密后发送至k个中的第一个成员节点,由第1个成员节点解密后,由该成员节点将第1~k个成员节点的训练数据代入参数模型其中,η为学习率,η可以为根据经验设定一个常数。可以根据该参数模型求解得到第1个成员节点调整后的节点权重其中,表示聚合训练数据,其中表示第一个成员节点的初始权重。
在一些实施方式中,可以通过对节点权重的多次迭代,使得到的节点权重最优,以强化成员节点的表达能力。具体地,根据中间数据以及第二成员节点对应的子训练集,计算得到第二成员节点的节点权重之后,还可以包括:
将第一成员节点的节点权重确定为第一成员节点的初始权重;
返回执行步骤根据所有成员节点的训练数据,调整第一成员节点的初始权重,至步骤根据中间数据以及第二成员节点对应的子训练集,计算得到第二成员节点的节点权重,直至满足预设的迭代条件。
其中,预设的迭代条件可以指根据实际需要设置的迭代条件。例如,预设的迭代条件可以为最大迭代次数,全部或部分成员节点的节点权重对应的阈值如最大节点权重值,也可以为连续两次返回执行得到的节点权重收敛。例如,可以理解的是返回执行一次,即为一次迭代,当达到最大迭代次数时,则结束迭代,将最后一次迭代得到的节点权重确定为成员节点的权重。再如,若迭代过程中任一成员节点的节点权重达到预设的最大节点权重值,则结束迭代,将最后一次迭代得到的节点权重确定为成员节点的权重。例如,如图1c所示,可以由k个成员节点的初始权重{Wi 0|i=1,...,k},得到成员节点的节点权重,经迭代处理,当满足预设的迭代条件时,结束迭代,得到模型最终的节点权重可以表征k个成员节点的节点权重组成的向量。
120、针对成员节点,比较与成员节点对应的子测试集以及与成员节点对应的节点特征数据,确定成员节点的节点损失,节点特征数据由节点权重对子测试集加权得到。
其中,节点损失可以用于表征成员节点对应的子测试集以及成员节点对应的节点特征数据之间的差异程度。相比而言,总损失可以指用于表征测试数据集以及总特征数据之间的差异程度。损失表征的差异程度可以以相似程度、差异度等来表示。例如,损失的值越小,两者间的相似程度越高,损失的值越大,两者间的相似程度越小。再如,损失的值越小,两者间的差异度越小,损失的值越大,两者间的差异度越大。可以采用多种方式确定节点损失和总损失。例如,可以使用分类损失法如使用0-1损失函数、绝对值损失函数、交叉熵损失函数等损失函数计算损失,也可以使用回归损失法,使用均方差损失函数、平均绝对误差损失等损失函数计算损失等等。
在一些实施方式中,节点特征数据可以由节点权重对子测试集中的特征数据加权得到。具体地,针对成员节点,比较与成员节点对应的子测试集以及与成员节点对应的节点特征数据,确定成员节点的节点损失,可以包括:
针对成员节点,比较与成员节点对应的子测试集中的标签数据以及与成员节点对应的节点特征数据,确定成员节点的节点损失。
在联邦学习中,由成员节点的节点对子测试集中的特征数据加权计算,得到的节点特征数据可以视为该成员节点基于子测试集计算得到的预测值。例如,针对任一成员节点i,可以在该成员节点中,由节点权重对子测试集加权计算得到节点特征数据(第一预测值)以此可以由该第一预测值以及成员节点i对应的子测试集中的标签数据Yi test,计算得到任一成员节点i的节点损失
以此,本申请实施例通过联邦学习方法构建联邦模型 并得到联邦学习的模型参数,同时得到每个服务器对应的子数据集的损失向量值{Li|i=1,...,k}。
130、比较测试数据集以及总特征数据,确定总损失,总特征数据由节点权重对测试数据集加权得到。
例如,可以根据k个成员节点的节点权重对测试数据集加权得到总特征数据(第二预测值)以此可以由该第二预测值以及测试数据集中的标签数据Ytest,计算得模型的总损失
以此,本申请实施例通过在未切分的数据集(测试数据集)中,代入联邦模型训练得到的权重参数,可以得到未切分的数据集的损失向量(总损失向量)。
140、根据节点损失以及总损失,调整初始切分比例,得到目标切分比例,以便根据目标切分比例切分待切分数据集,待切分数据集包括测试数据集。
例如,可以通过由节点损失以及总损失之间的差异度,来确定一个差异值,并以该差异值与初始切分比例进行减法运算,得到调整后的切分比例。若仅做一次调整操作,则可以将该调整后的切分比例确定为目标切分比例,若进行了多次调整操作,则可以将最后一次调整操作得到的调整后的切分比例确定为目标切分比例。
在实际应用中,可以将本申请实施例得到的目标切分比例用于切分待切分数据集,并将切分后的数据用于联邦模型训练或学习。本申请实施例中,将测试数据集分为多个子测试集,分散在联邦模型的多个成员节点中得到成员损失,可以提升计算效率。基于整体测试数据集以及初始切分比例得到的总损失,可以使按照切分比例得到的总损失最小,以缩减误差。
在一些实施方式中,可以通过更新数据集,对节点损失以及总损失进行多次更新迭代,使得到的节点损失以及总损失更准确。具体地,根据节点损失以及总损失,调整初始切分比例,得到目标切分比例之前,还可以包括:
对测试数据集进行更新;
在每次更新过程中,执行步骤获取测试数据集以及成员节点的节点权重,步骤针对成员节点,比较子测试集以及节点特征数据,确定成员节点的节点损失,以及步骤比较测试数据集以及总特征数据,确定总损失,直至满足预设的更新终止条件。
其中,预设的更新终止条件可以指根据实际需要设置的终止条件。例如,预设的更新终止条件可以为总损失和/或节点损失收敛,如,预设的更新终止条件可以为连续两次更新过程得到的节点损失之间的差值小于预设值,和/或连续两次更新过程得到的总损失之间的差值小于预设值。
例如,可以通过对数据子集重新抽样、调整预设抽样比例、增删测试数据集中测试子集数量等方式更新测试数据集。并将更新后的测试集用于再次计算得到节点损失以及总损失。需说明的是,步骤对测试数据集进行更新可以在针对所述成员节点,比较与所述成员节点对应的子测试集以及与所述成员节点对应的节点特征数据,确定所述成员节点的节点损失之后,也可以在比较所述测试数据集以及总特征数据,确定总损失,所述总特征数据由所述节点权重对所述测试数据集加权得到之后执行。例如,在步骤120以及步骤130之后,如图1d所示,可以对测试数据集进行更新,依次执行步骤获取测试数据集以及成员节点的节点权重,步骤针对成员节点,比较子测试集以及节点特征数据,确定成员节点的节点损失,以及步骤比较测试数据集以及总特征数据,并以此重复直至满足预设的更新终止条件,以结束更新。
在一些实施方式中,可以重新对数据子集进行随机抽样,以得到更新后的子测试集,以此针对任一成员节点,在更新过程中可以由同一子数据集得到不同的子测试集。具体地,对测试数据集进行更新,可以包括:
针对成员节点,根据预设抽样比例,从与成员节点对应的子数据集中进行随机抽样,得到与成员节点对应的子训练集;
将成员节点对应的子数据集中,除成员节点对应的子训练集以外的数据,确定为与成员节点对应的子测试集。
例如,可以预设的抽样比例为a,0<a<1。在第一次确定节点损失以及总损失后,可以对任一成员节点,可以根据抽样比例a,从该成员节点对应的子数据集中随机抽取数据,直至抽取得到的数据占比为a,以此将抽取的数据构成第一子训练集,将子数据集中剩余的占比1-a的数据构成第一子测试集。在计算节点损失以及总损失后,可以根据预设的抽样比例为a,再次随机抽取数据得到占比为a的第二子训练集以及占比1-a的第二子测试集。以此,使得每次更新过程中的子训练集以及子测试集均来自于同一子数据集,且在随机抽取中使得子数据集中的每个个体有相等的机会被抽取,因而使得抽取得到的子训练集以及子测试集保持与总体子数据集有相同的结构,或者说具有最大的可能使得总体子数据集中的某些特征在子训练集以及子测试集中得以表现。因此,通过这种有放回的随机重新抽样方式,能够在最大可能性上减少随机误差。以此,本申请实施例在确定节点损失和总损失时,采用有放回的随机重新抽样方式来构建子测试集以及子训练集,能增加拟合模型的泛化能力。
在一些实施方式中,可以由每次更新过程中得到的损失构成损失集,以通过该损失集调整初始切分比例,以结合多次更新得到的损失调整初始切分比例。具体地,根据节点损失以及总损失,调整初始切分比例,得到目标切分比例,可以包括:
获取节点损失集以及总损失集,节点损失集包括更新过程中的节点损失,总损失集包括更新过程中的总损失;
根据节点损失集以及总损失集,调整初始切分比例,得到目标切分比例。
例如,在通过随机抽样的方式的得到子测试集,以更新测试数据集时,每次更新得到的测试数据集中的子测试集可以视为对每个成员节点对应的子数据集的不同形式的表现,因此,结合多次更新的测试数据集得到的损失,可以更全面地融合每个成员节点对应的子数据集的特征,以提升得到的目标切分比例的准确性。
在一些实施方式中,可以通过对切分比例的多次迭代,使得到的目标切分比例最优,以能更合理地切分待切分数据集。具体地,根据节点损失以及总损失,调整初始切分比例,得到目标切分比例,可以包括:
根据节点损失、总损失以及初始切分比例,计算得到中间切分比例;
将中间切分比例更新为初始切分比例;
返回执行步骤根据节点损失、总损失以及目标切分比例,计算得到中间切分比例,直至满足预设的收敛条件;
将最近一次得到的中间切分比例,确定为目标切分比例。
其中,预设的收敛条件可以指根据实际需要设置的收敛条件。例如,预设的收敛条件可以为中间切分比例收敛,如,预设的收敛条件可以为连续两次返回执行得到的中间切分比例之间的差值小于预设值,可以理解的是一次返回执行过程即为对切分比例的一次迭代过程。
例如,可以根据节点损失以及总损失之间的差异度,来确定一个差异值,并以该差异值与初始切分比例进行减法运算,得到调整后的切分比例即中间切分比例。如图1e所示,可以将中间切分比例作为初始切分比例,再次由根据节点损失以及总损失之间的差异度,来确定一个差异值,计算得到新的中间切分比例,以此重复,迭代更新中间切分比例,直至得到的中间切分比例收敛,将最后一次得到的中间切分比例确定为目标切分比例。
在一些实施方式中,可以将初始切分比例作为节点损失的权重,从而按比例聚合多个节点损失,以此调整切分比例,提升得到的中间切分比例的精准度。具体地,根据节点损失、总损失以及初始切分比例,计算得到中间切分比例,可以包括:
根据初始切分比例,对节点损失进行加权求和,得到总节点损失;
根据总损失以及总节点损失之间的差值,调整初始切分比例,得到中间切分比例。
例如,在根据节点损失以及总损失,调整初始切分比例,得到目标切分比例的过程中,节点损失以及总损失可以分别为节点损失集以及总损失集。如,可以由节点损失集{Lji|j=1,...,p;i=1,...,k}以及总损失集{Lj,total|j=1,...,p},p表示得到节点损失以及总损失的次数,构建损失回归模型并根据损失最小原则,得到损失回归模型的权重参数计算公式:其中,Lji表示第i个成员节点在第j次返回执行过程中得到的节点损失,Lji表示在第j次返回执行过程中得到的总损失,β表示学习率,β可以为根据经验设定的一个常数。
以此,针对任一成员节点i,可以根据节点损失集{Lji|j=1,...,p;i=1,...,k}以及总损失集{Lj,total|j=1,...,p},以及初始切分比例 代入上述权重参数计算公式,得到第一次迭代的中间切分比例的公式从而求解得到第一次迭代得到的中间切分比例
针对任一成员节点i,在第一次迭代后,可以根据节点损失集{Lji|l=1,...,p;i=1,...,k}以及总损失集{Lj,total|j=1,...,p},以及第一次迭代得到的中间切分比例代入上述权重参数计算公式,进行第二次迭代,得到第二次迭代的中间切分比例的公式从而求解得到第二次迭代得到的中间切分比例以此类推,迭代直至连续两次得到的中间切分比例之间的差值小于预设阈值,将最后一次迭代得到的中间切分比例作为目标切分比例
以此,本申请实施例针对联邦学习得到的损失向量预测值与总损失向量之间再次构建损失函数:通过每个成员节点的损失向量和真实的损失向量之间的损失函数最小化的原则下,得到每个成员节点损失的权重,将该权重作为每个成员节点的切分比例,从而按该比例进行切分得到的总损失最小,以达到误差缩减的目标。此外,本申请实施例通过保存历史的损失向量权重,采用t-1期的损失向量权重作为t期的数据集切分比例,能够有效解决数据科学切分的问题。
本申请实施例的方法可以应用于联邦模型训练过程或联邦模型使用过程,例如,可以根据最优切割比例切分待切分数据集{Y,X},并将切分后的k个子数据集分别发送联邦模型的k个服务器(成员节点)中,以协同训练该联邦模型,或由该k个服务器协同处理后,输出处理结果。
本申请实施例提供的数据切分方案可以应用在各种人工智能技术应用场景中。比如,以应用于车联网为例,获取测试数据集以及成员节点的节点权重,测试数据集包括根据初始切分比例切分得到的多个子测试集,子测试集与成员节点对应;针对成员节点,比较与成员节点对应的子测试集以及与成员节点对应的节点特征数据,确定成员节点的节点损失,节点特征数据由节点权重对子测试集加权得到;比较测试数据集以及总特征数据,确定总损失,总特征数据由节点权重对测试数据集加权得到;根据节点损失以及总损失,调整初始切分比例,得到目标切分比例,以便根据目标切分比例切分待切分数据集,待切分数据集包括测试数据集。
采用本申请实施例提供的方案根据初始切分比例对数据集进行切分,将数据集分散在联邦模型的多个分布式的成员节点中。以此,将切分后的数据集分散到对应的成员节点中进行联邦学习,能够有效提高联邦模型的学习效率,并且有效缩减误差。此外,基于整体测试数据集以及初始切分比例得到的总损失,可以使按照切分比例得到的总损失最小,以缩减误差。
根据上述实施例所描述的方法,以下将作进一步详细说明。
在本实施例中,将以应用于自动驾驶领域的大规模数据训练为例,对本申请实施例的方法进行详细说明。
其中,联邦模型可以通过协调多个云端服务器联合训练该模型。多个云端服务器可以包括master worker(主节点服务器)以及post worker中(子节点服务器)。
如图2a所示,一种数据切分方法具体流程如下:
210、获取待切分数据集。
例如,可以将大规模数据集(待切分数据集){Y,X}输入联邦模型,其中,Y表示大规模数据集中的目标变量向量(标签数据,即样本标签),X表示大规模数据集中的特征向量(特征数据,即样本特征)。
220、根据初始切分比例,将待切分数据集切分得到多个子数据集,子数据集与成员节点对应。
例如,将待切分数据集,按照初始切分比例进行k等分切割,得到k分子数据集,每份子数据集的维度为[n/k]*m,表示为:{Y1,X1}[n/k]×m,{Y2,X2}[n/k]×m,…,{Yk,Xk}[n/k]×m,每一等分的维度为:[n/k]×m,并将每份份子数据集打散到k个云端服务器中,其中,数据子集{Y1,X1}[n/k]×m上传到masterworker(主节点服务器)中,其它k-1个数据子集存放在postworker中(子节点服务器),对这些子数据集构建横向联邦学习,其中,m≤[n/k]≤m+1。
在对待切分数据集进行切分后,可以根据每个服务器对应的子数据集,构建联邦学习参数模型:
230、从子数据集中进行数据抽样,得到子训练集以及子测试集。
例如,在每个服务器(成员节点)中对每个子数据集按照一定比例进行随机抽样,划分为训练样本即子训练集(a)和测试样本即子测试集(1-a)。如,对于服务器1(第一个成员节点)的子数据集划分为训练样本和测试样本对于服务器i=2,…,k中的数据集,按照同样的比例划分训练样本和测试样本
240、根据成员节点的训练数据,调整成员节点的初始权重,得到成员节点的节点权重。
例如,在每个服务器中代入训练样本的数据集,其中服务器i(i=1,…,k)输入数据集在每个服务器中初始化权重向量{Wi 0|i=1,...,k},在每个服务器中代入训练样本得到 将第2,…k个服务器的结果加密上传到第一个服务器中,在第一个服务器中解密后,采用参数模型迭代公式:其中,η表示学习率,η可以为根据经验设定一个常数。得到第一次迭代下的权重参数(节点权重) 将服务器1第一次得到的参数并代入训练样本计算并加密发送到第2,…,k个服务器中,代入每个服务器的训练样本,得到第一次迭代的每个服务器样本中的权重参数{Wi 1|i=2,...,k}。重复上述迭代,得到最终的联邦模型的联邦权重参数(节点权重的参数模型)在每个服务器中输入测试样本,其中在服务器i(i=1,…,k)中输入测试样本输入联邦权重参数得到服务器i的联邦学习回归测试结果(节点特征数据):
250、针对成员节点,比较与成员节点对应的子测试集以及与成员节点对应的节点特征数据,确定成员节点的节点损失。
例如,可以根据服务器i的联邦学习回归测试结果:计算每个服务器如服务器i中的子数据集损失向量(节点损失)
260、比较测试数据集以及总特征数据,确定总损失。
例如,可以将步骤240得到的联邦权重参数输入整体测试样本(测试数据集)代入得到整体测试样本下的预测结果并计算的到总损失向量(总损失):
在步骤260之后,还可以重复上述步骤210~260,得到每个服务器数据子集的损失序列(节点损失集){Lji|j=1,...,p;i=1,...,k}及总数据集损失序列(总损失集){Lj,total|j=1,...,p}。从而构建损失回归模型,并根据损失最小原则,得到损失回归模型的权重参数计算公式: 其中,β表示学习率,β可以为根据经验设定一个常数。
270、根据节点损失以及总损失,调整初始切分比例,得到目标切分比例。
例如,输入每个服务器数据子集的损失序列{Lji|j=1,...,p;i=1,...,k}及总数据集损失序列{Lj,total|j=1,...,p}。代入初始化比例序列 得到第一次迭代的比例:从而得到第一次迭代的切割比例(中间切分比例)
重复执行上述迭代过程,输入每个服务器数据子集的损失序列{Lji|j=1,...,p;i=1,...,k}及总数据集损失序列{Lj,total|j=1,...,p},代入初始化比例序列代入得到 如此类推,得到最优切割比例(目标切分比例):
280、根据目标切分比例切分待切分数据集。
若本申请实施例的方法应用于联邦模型训练或联邦模型使用,例如,如图2b所示,可以根据目标切分比例切分待切分数据集{Y,X},并将切分后的k个子数据集分别发送联邦模型的k个服务器中,以协同训练该联邦模型,得到训练后的联邦模型,或由该k个服务器协同处理后,输出处理结果。
在车联网中,往往涉及大规模的数据训练和图像训练,从而容易造成训练误差较大的情形。为了降低模型方差,提高模型准确度和泛化性,在训练时候通常采用误差缩减技术,误差缩减技术是指缩分后样品中有用组分的含量与加工前原始样品中有用组分实际含量之间的偏差的一种技术。常用的误差缩减技术是采用样本重复抽样方法即对样本数据进行多次重复,然而,多次重复后的样本会造成模型失真,且多次重复抽样也降低了模型的计算效率。
例如,在车联网出行服务推荐中,需要对大量的数据进行训练,这些数据包括但不限于对象在小程序中各个模块中每个操作的点击、收藏、评论、支付等行为,从数据源(日志数据)中解析出来的特征数据包括6000多单变量特征,而将在数据训练过程中,将这些单变量特征进行两两交叉处理,将得到6000*6000=36000000个特征,如果该数据集的样本量为1亿个对象,因此会形成非常庞大的样本特征数据集(数据集维度达到100000000*36000000=36000000亿)。
然而,本申请实施例针对该业务场景的样本数据集构建数据切分,能极大提升计算效率。此外,本申请实施例中对原数据样本集进行又放回的重抽样方式,例如,在初始阶段,将上述数据集按照样本量切分成10000份,每份样本量为10000,每份的维度为10000*36000000,这样切分使得每份样本的特征保持一致,而每份的对象降低为10000个,且每份的对象量重合度较低。将10000份样本打散到集群中的10000个服务器中,分别按照本申请实施例的步骤如此类推,进行分布式并行计算,分别计算每份测试样本的损失、总测试样本的损失,并通过梯度下降法得到最优权重(目标切分比例)。
显然,本申请实施例无需通过对样本进行上采样的抽样方法来达到缩减误差,而是通过将样本通过分布式打散的方法,按照t-1的比例进行数据集切分,将切分后数据打散到对应的服务器中进行联邦模型,能够有效提高模型的训练效率,并且有效缩减误差。以此本申请实施例应用于自动驾驶领域的大规模数据训练,通过数据切分方法,能够有效降低自动驾驶或者车联网领域的大规模模型训练中的训练误差,提升自动驾驶或车联网领域的计算精度,增加自动驾驶或车联网领域的准确率,提高自动驾驶的安全性。
为了更好地实施以上方法,本申请实施例还提供一种数据切分装置,该数据切分装置具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
比如,在本实施例中,将以数据切分装置具体集成在服务器为例,该数据切分装置应用于联邦模型,联邦模型包括多个成员节点,对本申请实施例的方法进行详细说明。
例如,如图3所示,该数据切分装置可以包括获取单元310、比较单元320以及调整单元330,如下:
(一)获取单元310
获取单元,用于获取测试数据集以及成员节点的节点权重,测试数据集包括根据初始切分比例切分得到的多个子测试集,子测试集与成员节点对应。
在一些实施方式中,获取单元310还可以用于:
获取待切分数据集;
根据初始切分比例,将待切分数据集切分得到多个子数据集,子数据集与成员节点对应;
从子数据集中进行数据抽样,得到子训练集以及子测试集。
在一些实施方式中,获取单元310还可以用于:
获取成员节点的训练数据,训练数据由初始权重对与初始权重对应的子训练集加权得到,子训练集由初始切分比例切分得到;
根据成员节点的训练数据,调整成员节点的初始权重,得到成员节点的节点权重。
在一些实施方式中,子训练集包括特征数据以及标签数据,获取成员节点的训练数据,可以包括:
针对成员节点,根据成员节点的初始权重,对与成员节点对应的特征数据的进行加权处理,得到加权后的特征数据;
根据加权后的特征数据与成员节点对应的标签数据之间的差值,确定成员节点的训练数据。
在一些实施方式中,根据成员节点的训练数据,调整成员节点的初始权重,得到成员节点的节点权重,可以包括:
根据所有成员节点的训练数据,调整第一成员节点的初始权重,得到第一成员节点的节点权重,第一成员节点为多个成员节点中的一个成员节点;
根据第一成员节点的节点权重,对与第一成员节点对应的子训练集进行加权处理,得到中间数据;
根据中间数据以及第二成员节点对应的子训练集,计算得到第二成员节点的节点权重,第二成员节点为多个成员节点中除第一成员节点以外的成员节点。
在一些实施方式中,根据所有成员节点的训练数据,调整第一成员节点的初始权重,得到第一成员节点的节点权重,可以包括:
对所有成员节点的训练数据进行加和处理,得到聚合训练数据;
根据聚合训练数据以及与第一成员节点对应的子训练集,调整第一成员节点的初始权重,得到第一成员节点的节点权重。
在一些实施方式中,获取单元310还可以用于:
将第一成员节点的节点权重确定为第一成员节点的初始权重;
返回执行步骤根据所有成员节点的训练数据,调整第一成员节点的初始权重,至步骤根据中间数据以及第二成员节点对应的子训练集,计算得到第二成员节点的节点权重,直至满足预设的迭代条件。
(二)比较单元320
比较单元,用于针对成员节点,比较与成员节点对应的子测试集以及与成员节点对应的节点特征数据,确定成员节点的节点损失,节点特征数据由节点权重对子测试集加权得到。
比较单元,还可以用于比较测试数据集以及总特征数据,确定总损失,总特征数据由节点权重对测试数据集加权得到。
在一些实施方式中,比较单元320还可以用于:
对测试数据集进行更新;
在每次更新过程中,执行步骤获取测试数据集以及成员节点的节点权重,步骤针对成员节点,比较子测试集以及节点特征数据,确定成员节点的节点损失,以及步骤比较测试数据集以及总特征数据,确定总损失,直至满足预设的更新终止条件。
(三)调整单元330
调整单元,用于根据节点损失以及总损失,调整初始切分比例,得到目标切分比例,以便根据目标切分比例切分待切分数据集,待切分数据集包括测试数据集。
在一些实施方式中,调整单元330具体可以用于:
获取节点损失集以及总损失集,节点损失集包括更新过程中的节点损失,总损失集包括更新过程中的总损失;
根据节点损失集以及总损失集,调整初始切分比例,得到目标切分比例。
在一些实施方式中,调整单元330具体可以用于:
根据节点损失、总损失以及初始切分比例,计算得到中间切分比例;
将中间切分比例更新为初始切分比例;
返回执行步骤根据节点损失、总损失以及目标切分比例,计算得到中间切分比例,直至满足预设的收敛条件;
将最近一次得到的中间切分比例,确定为目标切分比例。
在一些实施方式中,根据节点损失、总损失以及初始切分比例,计算得到中间切分比例,可以包括:
根据初始切分比例,对节点损失进行加权求和,得到总节点损失;
根据总损失以及总节点损失之间的差值,调整初始切分比例,得到中间切分比例。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。由此,本申请实施例可以根据初始切分比例对数据集进行切分,将数据集分散在联邦模型的多个分布式的成员节点中。以此,将切分后的数据集分散到对应的成员节点中进行联邦学习,能够有效提高联邦模型的学习效率,并且有效缩减误差。此外,基于整体测试数据集以及初始切分比例得到的总损失,可以使按照切分比例得到的总损失最小,以缩减误差。
本申请实施例还提供一种电子设备,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑,等等;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,等等。
在一些实施例中,该数据切分装置还可以集成在多个电子设备中,比如,数据切分装置可以集成在多个服务器中,由多个服务器来实现本申请的数据切分方法。
在本实施例中,将以本实施例的电子设备是服务器为例进行详细描述,比如,如图4所示,其示出了本申请实施例所涉及的服务器的结构示意图,具体来讲:
该服务器可以包括一个或者一个以上处理核心的处理器410、一个或一个以上计算机可读存储介质的存储器420、电源430、输入模块440以及通信模块450等部件。本领域技术人员可以理解,图4中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器410是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器420内的数据,执行服务器的各种功能和处理数据。在一些实施例中,处理器410可包括一个或多个处理核心;在一些实施例中,处理器410可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器410中。
存储器420可用于存储软件程序以及模块,处理器410通过运行存储在存储器420的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器420还可以包括存储器控制器,以提供处理器410对存储器420的访问。
服务器还包括给各个部件供电的电源430,在一些实施例中,电源430可以通过电源管理系统与处理器410逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源430还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入模块440,该输入模块440可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
该服务器还可包括通信模块450,在一些实施例中通信模块450可以包括无线模块,服务器可以通过该通信模块450的无线模块进行短距离无线传输,从而为用户提供了无线的宽带互联网访问。比如,该通信模块450可以用于帮助用户收发电子邮件、浏览网页和访问流式媒体等。
尽管未示出,服务器还可以包括显示单元等,在此不再赘述。具体在本实施例中,服务器中的处理器410会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器420中,并由处理器410来运行存储在存储器420中的应用程序,从而实现各种功能,如下:
获取测试数据集以及成员节点的节点权重,测试数据集包括根据初始切分比例切分得到的多个子测试集,子测试集与成员节点对应;针对成员节点,比较与成员节点对应的子测试集以及与成员节点对应的节点特征数据,确定成员节点的节点损失,节点特征数据由节点权重对子测试集加权得到;比较测试数据集以及总特征数据,确定总损失,总特征数据由节点权重对测试数据集加权得到;根据节点损失以及总损失,调整初始切分比例,得到目标切分比例,以便根据目标切分比例切分待切分数据集,待切分数据集包括测试数据集。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本申请实施例可以根据初始切分比例对数据集进行切分,将数据集分散在联邦模型的多个分布式的成员节点中。以此,将切分后的数据集分散到对应的成员节点中进行联邦学习,能够有效提高联邦模型的学习效率,并且有效缩减误差。此外,基于整体测试数据集以及初始切分比例得到的总损失,可以使按照切分比例得到的总损失最小,以缩减误差。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种数据切分方法中的步骤。例如,该指令可以执行如下步骤:
获取测试数据集以及成员节点的节点权重,测试数据集包括根据初始切分比例切分得到的多个子测试集,子测试集与成员节点对应;针对成员节点,比较与成员节点对应的子测试集以及与成员节点对应的节点特征数据,确定成员节点的节点损失,节点特征数据由节点权重对子测试集加权得到;比较测试数据集以及总特征数据,确定总损失,总特征数据由节点权重对测试数据集加权得到;根据节点损失以及总损失,调整初始切分比例,得到目标切分比例,以便根据目标切分比例切分待切分数据集,待切分数据集包括测试数据集。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机程序/指令,该计算机程序/指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序/指令,处理器执行该计算机程序/指令,使得该计算机设备执行上述实施例中提供的各种可选实现方式中提供的方法。
由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一种数据切分方法中的步骤,因此,可以实现本申请实施例所提供的任一种数据切分方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种数据切分方法、装置、电子设备和介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (15)
1.一种数据切分方法,其特征在于,应用于联邦模型,所述联邦模型包括多个成员节点,包括:
获取测试数据集以及所述成员节点的节点权重,所述测试数据集包括根据初始切分比例切分得到的多个子测试集,所述子测试集与所述成员节点对应;
针对所述成员节点,比较与所述成员节点对应的子测试集以及与所述成员节点对应的节点特征数据,确定所述成员节点的节点损失,所述节点特征数据由所述节点权重对所述子测试集加权得到;
比较所述测试数据集以及总特征数据,确定总损失,所述总特征数据由所述节点权重对所述测试数据集加权得到;
根据所述节点损失以及所述总损失,调整所述初始切分比例,得到目标切分比例,以便根据所述目标切分比例切分待切分数据集,所述待切分数据集包括所述测试数据集。
2.如权利要求1所述的数据切分方法,其特征在于,所述获取测试数据集以及成员节点的节点权重之前,还包括:
获取所述成员节点的训练数据,所述训练数据由所述初始权重对与所述初始权重对应的所述子训练集加权得到,所述子训练集由所述初始切分比例切分得到;
根据所述成员节点的训练数据,调整所述成员节点的初始权重,得到所述成员节点的节点权重。
3.如权利要求2所述的数据切分方法,其特征在于,所述子训练集包括特征数据以及标签数据,所述获取所述成员节点的训练数据,包括:
针对所述成员节点,根据所述成员节点的初始权重,对与所述成员节点对应的所述特征数据的进行加权处理,得到加权后的特征数据;
根据所述加权后的特征数据与所述成员节点对应的所述标签数据之间的差值,确定所述成员节点的训练数据。
4.如权利要求2所述的数据切分方法,其特征在于,所述根据所述成员节点的训练数据,调整所述成员节点的初始权重,得到所述成员节点的节点权重,包括:
根据所有所述成员节点的训练数据,调整第一成员节点的初始权重,得到所述第一成员节点的节点权重,所述第一成员节点为所述多个成员节点中的一个所述成员节点;
根据所述第一成员节点的节点权重,对与所述第一成员节点对应的所述子训练集进行加权处理,得到中间数据;
根据所述中间数据以及第二成员节点对应的所述子训练集,计算得到所述第二成员节点的节点权重,所述第二成员节点为所述多个成员节点中除所述第一成员节点以外的所述成员节点。
5.如权利要求4所述的数据切分方法,其特征在于,所述根据所有所述成员节点的训练数据,调整第一成员节点的初始权重,得到所述第一成员节点的节点权重,包括:
对所有所述成员节点的训练数据进行加和处理,得到聚合训练数据;
根据聚合训练数据以及与所述第一成员节点对应的所述子训练集,调整第一成员节点的初始权重,得到所述第一成员节点的节点权重。
6.如权利要求4所述的数据切分方法,其特征在于,所述根据所述中间数据以及第二成员节点对应的所述子训练集,计算得到所述第二成员节点的节点权重之后,还包括:
将所述第一成员节点的节点权重确定为所述第一成员节点的初始权重;
返回执行步骤根据所有所述成员节点的训练数据,调整第一成员节点的初始权重,至步骤根据所述中间数据以及第二成员节点对应的所述子训练集,计算得到所述第二成员节点的节点权重,直至满足预设的迭代条件。
7.如权利要求2所述的数据切分方法,其特征在于,所述获取测试数据集以及成员节点的节点权重之前,还包括:
获取所述待切分数据集;
根据所述初始切分比例,将所述待切分数据集切分得到多个子数据集,所述子数据集与所述成员节点对应;
从所述子数据集中进行数据抽样,得到所述子训练集以及所述子测试集。
8.如权利要求1所述的数据切分方法,其特征在于,所述根据所述节点损失以及所述总损失,调整所述初始切分比例,得到目标切分比例之前,还包括:
对所述测试数据集进行更新;
在每次更新过程中,执行步骤获取测试数据集以及成员节点的节点权重,步骤针对所述成员节点,比较所述子测试集以及节点特征数据,确定所述成员节点的节点损失,以及步骤比较所述测试数据集以及总特征数据,确定总损失,直至满足预设的更新终止条件。
9.如权利要求8所述的数据切分方法,其特征在于,所述根据所述节点损失以及所述总损失,调整所述初始切分比例,得到目标切分比例,包括:
获取节点损失集以及总损失集,所述节点损失集包括所述更新过程中的所述节点损失,所述总损失集包括所述更新过程中的所述总损失;
根据所述节点损失集以及所述总损失集,调整所述初始切分比例,得到目标切分比例。
10.如权利要求1所述的数据切分方法,其特征在于,所述根据所述节点损失以及所述总损失,调整所述初始切分比例,得到目标切分比例,包括:
根据所述节点损失、所述总损失以及所述初始切分比例,计算得到中间切分比例;
将所述中间切分比例更新为所述初始切分比例;
返回执行步骤根据所述节点损失、所述总损失以及目标切分比例,计算得到中间切分比例,直至满足预设的收敛条件;
将最近一次得到的所述中间切分比例,确定为目标切分比例。
11.如权利要求10所述的数据切分方法,其特征在于,所述根据所述节点损失、所述总损失以及所述初始切分比例,计算得到中间切分比例,包括:
根据所述初始切分比例,对所述节点损失进行加权求和,得到总节点损失;
根据所述总损失以及所述总节点损失之间的差值,调整所述初始切分比例,得到中间切分比例。
12.一种数据切分装置,应用于联邦模型,所述联邦模型包括多个成员节点,其特征在于,包括:
获取单元,用于获取测试数据集以及所述成员节点的节点权重,所述测试数据集包括根据初始切分比例切分得到的多个子测试集,所述子测试集与所述成员节点对应;
比较单元,用于针对所述成员节点,比较与所述成员节点对应的子测试集以及与所述成员节点对应的节点特征数据,确定所述成员节点的节点损失,所述节点特征数据由所述节点权重对所述子测试集加权得到;
比较单元,还用于比较所述测试数据集以及总特征数据,确定总损失,所述总特征数据由所述节点权重对所述测试数据集加权得到;
调整单元,用于根据所述节点损失以及所述总损失,调整所述初始切分比例,得到目标切分比例,以便根据所述目标切分比例切分待切分数据集,所述待切分数据集包括所述测试数据集。
13.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行如权利要求1~11任一项所述的数据切分方法中的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1~11任一项所述的数据切分方法中的步骤。
15.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现权利要求1~11任一项所述的数据切分方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211112019.6A CN117033997A (zh) | 2022-09-13 | 2022-09-13 | 数据切分方法、装置、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211112019.6A CN117033997A (zh) | 2022-09-13 | 2022-09-13 | 数据切分方法、装置、电子设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117033997A true CN117033997A (zh) | 2023-11-10 |
Family
ID=88634149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211112019.6A Pending CN117033997A (zh) | 2022-09-13 | 2022-09-13 | 数据切分方法、装置、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117033997A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11991245B1 (en) * | 2023-08-16 | 2024-05-21 | Mastercard International Incorporated | Compliant and optimized peer data generation |
-
2022
- 2022-09-13 CN CN202211112019.6A patent/CN117033997A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11991245B1 (en) * | 2023-08-16 | 2024-05-21 | Mastercard International Incorporated | Compliant and optimized peer data generation |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhu et al. | From federated learning to federated neural architecture search: a survey | |
DE112021004908T5 (de) | Computerbasierte systeme, rechenkomponenten und rechenobjekte, die eingerichtet sind, dynamische ausreisser-verzerrungs-verringerung bei maschinenlernmodellen zu implementieren | |
US10963817B2 (en) | Training tree-based machine-learning modeling algorithms for predicting outputs and generating explanatory data | |
CN111932386B (zh) | 用户账号确定方法及装置、信息推送方法及装置、电子设备 | |
WO2023065859A1 (zh) | 物品推荐方法、装置及存储介质 | |
Fan et al. | Federated generative adversarial learning | |
CN113065974B (zh) | 一种基于动态网络表示学习的链路预测方法 | |
CN115102763B (zh) | 基于可信联邦学习多域DDoS攻击检测方法与装置 | |
KR20210040248A (ko) | 물질의 생성 구조-특성 역 계산 공동 설계 | |
EP4350572A1 (en) | Method, apparatus and system for generating neural network model, devices, medium and program product | |
CN110138595A (zh) | 动态加权网络的时间链路预测方法、装置、设备及介质 | |
CN112231592B (zh) | 基于图的网络社团发现方法、装置、设备以及存储介质 | |
Azzouz et al. | Steady state IBEA assisted by MLP neural networks for expensive multi-objective optimization problems | |
CN113822315A (zh) | 属性图的处理方法、装置、电子设备及可读存储介质 | |
CN115130536A (zh) | 特征提取模型的训练方法、数据处理方法、装置及设备 | |
CN114511063A (zh) | 电力数据预测模型构建方法、装置、设备、介质及程序 | |
CN115730631A (zh) | 联邦学习的方法和装置 | |
CN114116995B (zh) | 基于增强图神经网络的会话推荐方法、系统及介质 | |
Gurung et al. | Decentralized quantum federated learning for metaverse: Analysis, design and implementation | |
CN117033997A (zh) | 数据切分方法、装置、电子设备和介质 | |
Mills et al. | Faster Federated Learning With Decaying Number of Local SGD Steps | |
Zhang et al. | A novel hybrid framework based on temporal convolution network and transformer for network traffic prediction | |
Reddy et al. | A Beginner's Guide to Federated Learning | |
CN112286996A (zh) | 一种基于网络链接和节点属性信息的节点嵌入方法 | |
Morell et al. | A multi-objective approach for communication reduction in federated learning under devices heterogeneity constraints |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |