联邦学习方法、装置以及设备与流程

文档序号:25617783发布日期:2021-06-25 16:19阅读:219来源:国知局
联邦学习方法、装置以及设备与流程

1.本说明书涉及机器学习技术领域,尤其涉及联邦学习方法、装置以及设备。


背景技术:

2.随着计算机技术的发展,机器学习在各行各业都发挥着越来越大的作用,机器学习模型的性能也随着数据量的增大而增大。但是,由于各个机构之间存在隐私约束和信任问题,无法互相交换数据,形成了数据孤岛。为了解决这个问题,提出了联邦学习的概念。即利用一个可信的第三方,各个机构将数据传输给第三方,第三方在云端计算梯度后,再下发给各个机构,各个机构则可以进行模型更新。如此一来,各个机构在没有进行直接数据交换的情况下,得到了由更多数据计算的梯度,从而提升了性能。
3.基于此,还需要更为高效的联邦学习方案。


技术实现要素:

4.本说明书一个或多个实施例提供联邦学习方法、装置、设备以及存储介质,用以解决如下技术问题:需要更为高效的联邦学习方案。
5.为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
6.本说明书一个或多个实施例提供的一种联邦学习方法,包括:
7.确定根据客户端之间的相似度进行聚类得到的多个客户端组,以及所述客户端组中的代表客户端;
8.通过所述代表客户端,向所述客户端组发送训练请求;
9.接收所述代表客户端反馈的所述客户端组中部分客户端的训练数据,所述部分客户端由预先训练的弹性上传预测模型根据客户端状态确定;
10.通过所述训练数据确定梯度数据,并向所述代表客户端发送所述梯度数据,以使所述客户端组中的客户端进行梯度更新。
11.本说明书一个或多个实施例提供的另一种联邦学习方法,包括:
12.代表客户端接收云端发送的训练请求,所述代表客户端属于客户端组,所述客户端组为预先根据客户端之间的相似度进行聚类得到的;
13.接收所述客户端组中部分客户端的训练数据,所述部分客户端由预先训练的弹性上传预测模型根据客户端状态确定;
14.将所述训练数据发送至所述云端,以使所述云端通过所述训练数据确定梯度数据;
15.接收所述云端返回的所述梯度数据;
16.将所述梯度数据发送至所述部分客户端,以使所述部分客户端进行梯度更新。
17.本说明书一个或多个实施例提供的一种联邦学习装置,包括:
18.确定模块,确定根据客户端之间的相似度进行聚类得到的多个客户端组,以及所述客户端组中的代表客户端;
19.训练请求发送模块,通过所述代表客户端,向所述客户端组发送训练请求;
20.第一训练数据接收模块,接收所述代表客户端反馈的所述客户端组中部分客户端的训练数据,所述部分客户端由预先训练的弹性上传预测模型根据客户端状态确定;
21.第一梯度数据发送模块,通过所述训练数据确定梯度数据,并向所述代表客户端发送所述梯度数据,以使所述客户端组中的客户端进行梯度更新。
22.本说明书一个或多个实施例提供的另一种联邦学习装置,包括:
23.训练请求接收模块,代表客户端接收云端发送的训练请求,所述代表客户端属于客户端组,所述客户端组为预先根据客户端之间的相似度进行聚类得到的;
24.第二训练数据接收模块,接收所述客户端组中部分客户端的训练数据,所述部分客户端由预先训练的弹性上传预测模型根据客户端状态确定;
25.训练数据发送模块,将所述训练数据发送至所述云端,以使所述云端通过所述训练数据确定梯度数据;
26.梯度数据接收模块,接收所述云端返回的所述梯度数据;
27.第二梯度数据发送模块,将所述梯度数据发送至所述部分客户端,以使所述部分客户端进行梯度更新。
28.本说明书一个或多个实施例提供的一种联邦学习设备,包括:
29.至少一个处理器;以及,
30.与所述至少一个处理器通信连接的存储器;其中,
31.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
32.确定根据客户端之间的相似度进行聚类得到的多个客户端组,以及所述客户端组中的代表客户端;
33.通过所述代表客户端,向所述客户端组发送训练请求;
34.接收所述代表客户端反馈的所述客户端组中部分客户端的训练数据,所述部分客户端由预先训练的弹性上传预测模型根据客户端状态确定;
35.通过所述训练数据确定梯度数据,并向所述代表客户端发送所述梯度数据,以使所述客户端组中的客户端进行梯度更新。
36.本说明书一个或多个实施例提供的另一种联邦学习设备,包括:
37.至少一个处理器;以及,
38.与所述至少一个处理器通信连接的存储器;其中,
39.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
40.代表客户端接收云端发送的训练请求,所述代表客户端属于客户端组,所述客户端组为预先根据客户端之间的相似度进行聚类得到的;
41.接收所述客户端组中部分客户端的训练数据,所述部分客户端由预先训练的弹性上传预测模型根据客户端状态确定;
42.将所述训练数据发送至所述云端,以使所述云端通过所述训练数据确定梯度数据;
43.接收所述云端返回的所述梯度数据;
44.将所述梯度数据发送至所述部分客户端,以使所述部分客户端进行梯度更新。
45.本说明书一个或多个实施例提供的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
46.确定根据客户端之间的相似度进行聚类得到的多个客户端组,以及所述客户端组中的代表客户端;
47.通过所述代表客户端,向所述客户端组发送训练请求;
48.接收所述代表客户端反馈的所述客户端组中部分客户端的训练数据,所述部分客户端由预先训练的弹性上传预测模型根据客户端状态确定;
49.通过所述训练数据确定梯度数据,并向所述代表客户端发送所述梯度数据,以使所述客户端组中的客户端进行梯度更新。
50.本说明书一个或多个实施例提供的一种非易失性计算机存储介质,应用于代表客户端,所述介质存储有计算机可执行指令,所述计算机可执行指令设置为:
51.接收云端发送的训练请求,所述代表客户端属于客户端组,所述客户端组为预先根据客户端之间的相似度进行聚类得到的;
52.接收所述客户端组中部分客户端的训练数据,所述部分客户端由预先训练的弹性上传预测模型根据客户端状态确定;
53.将所述训练数据发送至所述云端,以使所述云端通过所述训练数据确定梯度数据;
54.接收所述云端返回的所述梯度数据;
55.将所述梯度数据发送至所述部分客户端,以使所述部分客户端进行梯度更新。
56.本说明书一个或多个实施例采用的上述至少一个技术方案能够达到以下有益效果:通过将客户端进行聚类得到客户端组,在客户端组中选出代表客户端与云端进行数据交互,能够减少与云端连接客户端的数量,减少云端压力;并且客户端通过预先训练的模型来判断当前状态是否适合参与训练,从而减少了对客户端的其他工作或者客户端所在设备(比如,持续运行的物联网设备)的正常工作的影响,达到兼顾业务与模型更新的需求,有助于更高效地进行联邦学习过程。
附图说明
57.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
58.图1为本说明书一个或多个实施例提供的云端侧的一种联邦学习方法的流程示意图;
59.图2为本说明书一个或多个实施例提供的代表客户端侧的一种联邦学习方法的流程示意图;
60.图3为本说明书一个或多个实施例提供的一种联邦学习方法的流程概括示意图;
61.图4为本说明书一个或多个实施例提供的云端侧的一种联邦学习装置的结构示意图;
62.图5为本说明书一个或多个实施例提供的代表客户端侧的一种联邦学习装置的结构示意图;
63.图6为本说明书一个或多个实施例提供的云端侧的一种联邦学习设备的结构示意图;
64.图7为本说明书一个或多个实施例提供的代表客户端侧的一种联邦学习设备的结构示意图。
具体实施方式
65.本说明书实施例提供联邦学习方法、装置、设备以及存储介质。
66.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
67.在本说明书一个或多个实施例中,预先根据不同客户端之间的相似度进行聚类,得到相应的客户端组,并在客户端组中确定出能够代表该客户端组的代表客户端,如此云端只需要与代表客户端进行通信交互。并且在客户端数据上传与模型更新时,基于客户端状态采用弹性上传和弹性更新的方式,达到兼顾业务与模型更新的需求。下面基于这样的思路,具体进行说明。
68.首先结合图1~图3对方案流程进行说明,图3为本说明书一个或多个实施例提供的一种联邦学习方法的流程概括示意图。该方法可以应用于不同的业务领域,比如,互联网金融业务领域、电商业务领域、即时通讯业务领域、游戏业务领域、公务业务领域等。该流程可以由相应领域的计算设备执行,流程中的某些输入参数或者中间结果允许人工干预调节,以帮助提高准确性。
69.图1为图3中所示的方法在云端侧的流程示意图,可以包括以下步骤:
70.s100:确定根据客户端之间的相似度进行聚类得到的多个客户端组,以及所述客户端组中的代表客户端。
71.预先采集各客户端的相关特征,根据该相关特征来确定出各客户端之间的相似度。并根据相似度进行聚类,将相似度较高的客户端划分在一个类中,组成一个客户端组。客户端组中选取出至少一个客户端作为代表客户端,代表客户端能够较好地反映客户端组中客户端的共性特征。
72.在本说明书一个或多个实施例中,云端只需要与代表客户端进行数据交互,即可实现与客户端组中的其他客户端进行联邦学习的过程,减少了与云端连接的客户端的数量,降低了云端的负担。比如,将n个客户端聚类成m个客户端组时,为了能够有效降低云端的负担,m通常远小于n。
73.具体地,客户端比如应用在物联网设备上,以互联网领域为例,物联网设备可以包括自动售货机、收银设备、公共区域摄像头。智能闸机、智能水电表等,客户端所具有的特征至少包括位置特征(比如,地图坐标、所在城市、所在商场、所在线路、所在楼层等)以及业务特征,以具有交易功能的物联网设备为例,则业务特征包括交易特征,下面沿用这样的例子
继续说明。
74.位置特征以及交易特征也对客户端之间的相似度产生影响。比如,对于位置特征,客流量较大的区域中,客户端所需要的处理能力通常较高,而客流量较小的区域中,客户端所需要的处理能力则无需过高要求;对于交易特征,不同客户端在执行不同类型的交易时,所需要执行的动作、处理过程也都不同。因此,可以将位置特征和交易特征作为判断客户端之间相似度的特征之一。
75.基于此,在进行聚类时,首先获取各客户端的位置特征以及交易特征。然后在指定空间中根据该特征确定得到客户端之间的空间距离。指定空间指的由所选择的多个特征维度(比如,位置特征以及交易特征中直接包含的原始维度,或者对这些原始维度进行融合或者扩维等处理得到的新维度)构成的空间,在该空间中,客户端以点的形式存在,不同客户端之间通过边进行连接,边表示所连接的两个客户端之间的空间距离,空间距离的长短表示所连接的两个客户端之间的相似度。通常情况下,空间距离越小,表示两个客户端之间的相似度越高,越适合统一管理。
76.在得到客户端之间的空间距离后,可通过该空间距离进行聚类,实现对客户端的聚类,聚类所得到的类称为客户端组。聚类所基于的规则可以是多种的,比如,每个客户端组中,空间距离最大的两个客户端之间的空间距离低于预设阈值;或者,每个客户端组中的客户端的数量一定,选取空间距离最小的若干个客户端组成一个客户端组。并且,越靠近空间的中心位置,越能代表该空间,因此,可以将距离客户端组的中心最近的客户端选做代表客户端。
77.s102:通过所述代表客户端,向所述客户端组发送训练请求。
78.在本说明书一个或多个实施例中,云端每隔一段时间,向各客户端组下发训练请求,客户端组中的客户端接收到训练请求后可以向云端返回训练数据,云端即可通过训练数据来计算得到相应的梯度数据。而为了减轻云端的压力,云端只需将训练请求发送至客户端组内的代表客户端,然后由代表客户端转发至其他客户端。
79.s104、接收所述代表客户端反馈的所述客户端组中部分客户端的训练数据,所述部分客户端由预先训练的弹性上传预测模型根据客户端状态确定。
80.代表客户端在接收并转发了训练数据后,由于各客户端可能由于网络、正在处理的业务等问题,暂时无法进行数据上传。因此,在客户端组内的各客户端可以通过预先训练的弹性上传预测模型,来判断自身在当前的客户端状态下是否适合数据上传,并将预测结果反馈给代表客户端。代表客户端基于客户端组内其他客户端的反馈来确定本客户端组是否适合训练数据上传。如果适合,则将客户端组内的部分客户端所提供的训练数据加密后上传至云端。如果不适合,则该客户端组不参与本次训练数据上传。具体地,部分客户端指的是,通过弹性上传预测模型预测后,本次能够进行训练数据上传的客户端。
81.需要说明的是,在云端接受的情况下,这部分客户端也可以自行连接云端,向云端直接上传自己提供的训练数据,而未必要通过代表客户端上传,如此能够减少代表客户端的压力,提高方案的容错性。在实际应用中,是优先降低云端压力还是降低代表客户端的压力可以根据具体情况动态选择。
82.在本说明书一个或多个实施例中,若某个客户端组中的代表客户端出现异常难以正常工作,可以从客户端组推举新的代表客户端。或者,还可以将该客户端组与其他至少一
个正常的客户端组(比如,选择客户端数量相对少的客户端组、或者相似度相对高的客户端组等)直接合并,由合并后组内正常的代表客户端接管工作。
83.在本说明书一个或多个实施例中,当一个客户端组不符合条件时,客户端组不参与本次训练过程,代表客户端向云端发送拒绝训练响应。其中,满足条件指的是,客户端组内有足够数量的客户端处于可训练状态,能够提供训练数据,足够数量可以基于实际情况的要求进行设定,比如,超过半数的客户端。
84.s106:通过所述训练数据确定梯度数据,并向所述代表客户端发送所述梯度数据,以使所述客户端组中的客户端进行梯度更新。
85.云端接收到训练数据后,先进行解密得到训练数据,然后基于该训练数据计算本次模型训练所对应的梯度数据,然后向本次提供了训练数据的代表客户端反馈梯度数据。代表客户端接收到梯度数据后,将其发送至客户端组内的其他客户端,或者将其发送至本次提供了训练数据的部分客户端,以使客户端根据该梯度数据,对自身的模型进行梯度更新。
86.当然,对于本次未提供训练数据的客户端,云端或者代表客户端仍然可以尝试给这样的客户端发送本次的梯度数据,如此,使得更多的客户端得到更新机会,也有助于促进这些客户端后续积极参与训练。
87.在本说明书一个或多个实施例中,根据位置特征以及交易特征确定空间距离时,可以根据各客户端的全球定位系统(global positioning system,gps)信息得到客户端所在的地理位置,并基于地理位置得到客户端之间的地理距离。其中,当客户端表示为软件程序时,其对应的地理距离即为所在物联网设备之间的地理距离。
88.不同客户端之间的功能、作用、操作方式是多样的,一些方面相差可能较大,另一些方面又可能很一致,为了提高对相似度度量的准确性,可以综合地考虑多样的交易特征,比如,交易特征中所包含的属性可以包括商品数据、员工数据、顾客数据、商店数据等。一些客户端应用在相应商店的物联网设备中,在这种情况下,交易特征中包括商店类型、商店规模等商店数据。商店类型可以包括小卖部、超市、咖啡厅等,不同类型的商店中,即使是同样作用的客户端,其在工作过程中的差异也较明显,比如,对于收银设备,在大型超市中其所需要识别的商品种类较多,而在咖啡厅中其所需要识别的商品种类则比较单一,在小卖部中甚至都不需要配备收银设备。因此,可以将交易特征中的商店类型作为判断客户端之间相似度的重要特征之一。
89.在本说明书一个或多个实施例中,在判断客户端之间的相似度时,可以预先为不同商店类型定义相应的相似度参数。比如,将超市与小卖部之间的相似度参数定义为1,将超市与咖啡鼎之间的相似度参数定义为2等。然后,基于相似度参数以及客户端所对应的商店类型即可得到交易特征所对应的特征距离。
90.在得到地理距离以及特征距离后,将地理距离与特征距离相结合,最终计算得到客户端之间的空间距离。比如,将地理距离进行归一化处理后与特征距离相加,或者将地理距离与特征距离赋予相应的权重。空间距离表示客户端在指定空间中的距离,也表示客户端之间的相似度。
91.在本说明书一个或多个实施例中,在指定空间中,各客户端所组成的结构可以以图结构进行表示。在这种情况下,因此在根据位置特征以及交易特征确定空间距离时,传统
的卷积神经网络可能不便于确定空间距离,基于此,预先训练并使用相应的图卷积神经网络(graph convolutional network,gcn),用于更加精确的度量客户端之间的空间距离。在训练gcn时,各客户端都可以由包含多个客户端的局部拓扑与自身之间的对应关系,来得到自身所对应的多维特征,并基于各客户端的多维特征进一步准确的得到客户端之间的空间距离。
92.具体地,针对一个客户端,可以在指定空间中选择与其最近的其他若干个客户端,组成局部拓扑。然后,在该局部拓扑内,确定该客户端与局部拓扑之间的对应关系。比如,选择除自身之外的两个其他客户端,然后通过公式f=fully_connected([f,f
neighbour1
,f
neighbour2
])得到该客户端的多维特征,其中,f表示该客户端,f
neighbour1
、f
neighbour2
表示最接近的两个客户端,fully_connected表示将三者进行关联求得多维特征。通过图卷积神经网络确定客户端在局部拓扑内的对应关系,能够更有效准确的对客户端在指定空间中的位置进行定位,也就能够提高空间距离判断的准确性。
[0093]
在本说明书一个或多个实施例中,在确定了空间距离进行聚类时,可以采用层次聚类法、k

means聚类等聚类方法,聚类时的度量为空间距离。完成了聚类后,得到k个客户端组,每个客户端组表示了一组客户端,可以通过p
k
={pk1,pk2,

,pk
m
}进行表示,其中,p
k
表示客户端组,pk1,pk2,

,pk
m
表示各客户端。
[0094]
图2为图3中所示的方法在代表客户端侧的流程示意图,图2所示的联邦学习方法与图1所示的联邦学习方法基于同样的思路,只是描述的侧重点不同,故上述实施例中已经描述过的内容在此不再赘述。
[0095]
图2中的流程可以包括以下步骤:
[0096]
s200:代表客户端接收云端发送的训练请求,所述代表客户端属于客户端组,所述客户端组为预先根据客户端之间的相似度进行聚类得到的。
[0097]
s202:接收所述客户端组中部分客户端的训练数据,所述部分客户端由预先训练的弹性上传预测模型根据客户端状态确定。
[0098]
代表客户端接收到训练请求后,将其发送至所在客户端组内的其他客户端中。其他客户端在接收到训练请求后,通过预先训练的弹性上传模型,根据自身的客户端状态确定本次是否适合上传训练数据,然后将相应的预测结果(在此称作第一预测结果)反馈至代表客户端。代表客户端对第一预测结果进行统计,如果超过一定数量的客户端处于可训练状态,即本次可以进行训练数据上传,则认为该客户端组本次适合训练数据上传,代表客户端即可接收适合数据上传的部分客户端所提供的训练数据,然后将其加密后发送至云端。当然,若是通过第一预测结果最终确定该客户端组中,没有足够数量的客户端处于可训练状态,则向云端发送拒绝训练响应,该客户端本次不再反馈训练数据。
[0099]
在训练弹性上传预测模型时,首先采集训练样本。在采集训练样本时,云端可以直接对各客户端下发训练请求,或者在聚类结束后,通过代表客户端向各客户端下发训练请求。客户端接收到训练请求后,将包含有自身客户端状态的训练样本上传至云端。客户端状态与客户端处理的业务、所在的物联网设备状态、需要提供的训练数据等相关。云端采集到训练样本后,即可通过训练样本所对应的标签,进行有监督训练得到弹性上传预测模型。
[0100]
其中,客户端处理的业务可以包括该客户端的业务请求频率q。通常情况下,客户端在执行业务时,难以同时进行模型训练,因此业务请求频率高的客户端难以进行数据上
传。所在的物联网设备状态可以包括网络状态s、物联网设备的资源占有率r,网络状态差的物联网设备,其内所包含的客户端也难以与其他设备进行数据交互,也就难以进行模型训练;而当物联网设备的资源占用率较高时,表示其他的软件程序占用了较多的资源,客户端也就没有足够的资源进行模型训练。需要提供的训练数据可以包括数据量大小size,通常数据量越大,在上传训练数据时也就更加困难。基于此,客户端在上传训练样本时,可以将训练样本d={x,y}={{q,s,r,size},ret!=null}上传至云端。其中,x为客户端状态,y为标签,表示客户端当前状态下是否适合进行数据上传。当ret为空(null)时表示没有实时连接,当前客户端状态不适合进行数据上传,不为空时表示数据上传成功,当前客户端状态适合进行数据上传。
[0101]
在训练模型的过程中,可以通过多层感知器(multi

layer perceptron,mlp)、支持向量机(support vector machines,svm)等进行二分类训练,得到上传概率p。如果p达到相应阈值,比如达到0.5,则认为该客户端为可训练状态,若未达到该相应阈值,则认为该客户端为不可训练状态。其中,在训练模型时,损失函数为二分类交叉熵损失。
[0102]
s204:将所述训练数据发送至所述云端,以使所述云端通过所述训练数据确定梯度数据。
[0103]
s206:接收所述云端返回的所述梯度数据。
[0104]
代表客户端将训练数据发送至云端后,云端通过训练数据计算得到梯度数据后,将梯度数据返回至代表客户端。
[0105]
s208:将所述梯度数据发送至所述部分客户端,以使所述部分客户端进行梯度更新。
[0106]
代表客户端接收到梯度数据后,若直接将梯度数据下发至本客户端组中提供了训练数据的部分客户端,则与训练数据上传时类似地,这部分客户端可能由于客户端状态的问题不适合进行梯度更新。
[0107]
基于此,代表客户端先将更新请求发送至部分客户端。各客户端通过预先训练的弹性更新预测模型进行预测,判断自身当前的客户端状态是否适合进行梯度更新,然后向代表客户端反馈预测结果(在此称作第二预测结果)。代表客户端对第二预测结果进行统计,如果超过一定数量的客户端处于可更新状态,本次可以进行梯度更新,则认为该客户端组本次适合梯度更新,代表客户端即可将更新指令以及解密后的梯度数据发送至可更新状态的客户端。当然,若是通过第二预测结果最终确定该客户端组中,没有足够数量的客户端处于可更新状态,则向云端发送拒绝更新响应,该客户端本次不再进行梯度更新。
[0108]
另外,存在一些客户端,在进行数据上传时,可能由于网络状态不佳,或者正在处理业务等原因,导致当时不适合进行训练数据上传。但是在进行梯度更新时,客户端状态为可更新状态。因此,在代表客户端发送更新请求时,可以将更新请求发送至所在客户端组中的所有其他客户端中。
[0109]
基于同样的思路,本说明书一个或多个实施例还提供了上述方法对应的装置和设备,如图4~图7所示。
[0110]
图4为本说明书一个或多个实施例提供的云端侧的一种联邦学习装置的结构示意图,图中的虚线方框表示可选的模块,所述装置包括:
[0111]
确定模块400,确定根据客户端之间的相似度进行聚类得到的多个客户端组,以及
所述客户端组中的代表客户端;
[0112]
训练请求发送模块402,通过所述代表客户端,向所述客户端组发送训练请求;
[0113]
第一训练数据接收模块404,接收所述代表客户端反馈的所述客户端组中部分客户端的训练数据,所述部分客户端由预先训练的弹性上传预测模型根据客户端状态确定;
[0114]
第一梯度数据发送模块406,通过所述训练数据确定梯度数据,并向所述代表客户端发送所述梯度数据,以使所述客户端组中的客户端进行梯度更新。
[0115]
可选地,还包括:
[0116]
第一拒绝训练响应模块408,接收所述多个中至少一个客户端组中的代表客户端的拒绝训练响应;
[0117]
其中,所述拒绝训练响应表示对应的代表客户端由于不符合条件本次不反馈训练数据,所述条件包括根据弹性上传预测模型确定对应的客户端组有足够数量的客户端处于可训练状态。
[0118]
可选地,所述确定模块400包括特征获取模块4000、空间距离确定模块4002、聚类模块4004;
[0119]
所述特征获取模块4000,获取客户端的位置特征和交易特征;
[0120]
所述空间距离确定模块4002,根据所述位置特征和所述交易特征,在指定空间中确定反映所述客户端之间相似度的空间距离;
[0121]
所述聚类模块4004,根据所述空间距离进行聚类得到多个客户端组。
[0122]
可选地,所述空间距离确定模块4002,根据所述位置特征,确定所述客户端之间的地理距离;
[0123]
确定所述交易特征至少包含的商店类型;
[0124]
根据所述地理距离、所述交易特征,以及预先为不同商店类型定义的相似度参数,在指定空间中确定所述客户端之间的空间距离。
[0125]
可选地,所述空间距离确定模块4002,根据图卷积神经网络,确定指定空间中包含多个客户端的局部拓扑与单个客户端之间的对应关系;
[0126]
根据所述对应关系,以及所述多个客户端的所述位置特征和所述交易特征,确定反映所述单个客户端与其他客户端之间相似度的空间距离。
[0127]
图5为本说明书一个或多个实施例提供的代表客户端侧的一种联邦学习装置的结构示意图,图中的虚线方框表示可选的模块,所述装置包括:
[0128]
训练请求接收模块500,代表客户端接收云端发送的训练请求,所述代表客户端属于客户端组,所述客户端组为预先根据客户端之间的相似度进行聚类得到的;
[0129]
第二训练数据接收模块502,接收所述客户端组中部分客户端的训练数据,所述部分客户端由预先训练的弹性上传预测模型根据客户端状态确定;
[0130]
训练数据发送模块504,将所述训练数据发送至所述云端,以使所述云端通过所述训练数据确定梯度数据;
[0131]
梯度数据接收模块506,接收所述云端返回的所述梯度数据;
[0132]
第二梯度数据发送模块508,将所述梯度数据发送至所述部分客户端,以使所述部分客户端进行梯度更新。
[0133]
可选地,还包括:
[0134]
第二拒绝训练响应模块510,向所述客户端组中的其他客户端发送所述训练请求,以使所述其他客户端通过预先训练的弹性上传预测模型根据客户端状态确定第一预测结果;
[0135]
接收所述其他客户端反馈的所述第一预测结果,并根据所述第一预测结果若确定所述客户端组中没有足够数量的客户端处于可训练状态,则向所述云端发送拒绝训练响应,以表示本次不反馈训练数据。
[0136]
可选地,所述客户端搭载于物联网设备上,所述弹性上传预测模型的训练过程包括:
[0137]
采集训练样本,所述训练样本包括客户端状态,所述客户端状态与客户端处理的业务、所在的物联网设备状态、需要提供的训练数据中的至少一种相关;
[0138]
根据所述训练样本,以及所述训练样本对应的标签,训练得到弹性上传预测模型。
[0139]
可选地,所述第二梯度数据发送模块508,将更新请求发送至所述部分客户端,以使所述部分客户端通过预先训练的弹性更新预测模型根据客户端状态确定第二预测结果;
[0140]
接收所述部分客户端反馈的所述第二预测结果,并根据所述第二预测结果确定所述客户端组中有足够数量的客户端处于可更新状态;
[0141]
向处于所述可更新状态的客户端发送所述更新指令,以使处于所述可更新状态的客户端根据所述梯度数据进行梯度更新。
[0142]
图6为本说明书一个或多个实施例提供的一种云端侧的一种联邦学习设备的结构示意图,所述设备包括:
[0143]
至少一个处理器;以及,
[0144]
与所述至少一个处理器通信连接的存储器;其中,
[0145]
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
[0146]
确定根据客户端之间的相似度进行聚类得到的多个客户端组,以及所述客户端组中的代表客户端;
[0147]
通过所述代表客户端,向所述客户端组发送训练请求;
[0148]
接收所述代表客户端反馈的所述客户端组中部分客户端的训练数据,所述部分客户端由预先训练的弹性上传预测模型根据客户端状态确定;
[0149]
通过所述训练数据确定梯度数据,并向所述代表客户端发送所述梯度数据,以使所述客户端组中的客户端进行梯度更新。
[0150]
图7为本说明书一个或多个实施例提供的一种代表客户端侧的一种联邦学习设备的结构示意图,所述设备包括:一种联邦学习设备,包括:
[0151]
至少一个处理器;以及,
[0152]
与所述至少一个处理器通信连接的存储器;其中,
[0153]
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
[0154]
代表客户端接收云端发送的训练请求,所述代表客户端属于客户端组,所述客户端组为预先根据客户端之间的相似度进行聚类得到的;
[0155]
接收所述客户端组中部分客户端的训练数据,所述部分客户端由预先训练的弹性
上传预测模型根据客户端状态确定;
[0156]
将所述训练数据发送至所述云端,以使所述云端通过所述训练数据确定梯度数据;
[0157]
接收所述云端返回的所述梯度数据;
[0158]
将所述梯度数据发送至所述部分客户端,以使所述部分客户端进行梯度更新。
[0159]
基于同样的思路,本说明书一个或多个实施例还提供了对应于上述方法的一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
[0160]
确定根据客户端之间的相似度进行聚类得到的多个客户端组,以及所述客户端组中的代表客户端;
[0161]
通过所述代表客户端,向所述客户端组发送训练请求;
[0162]
接收所述代表客户端反馈的所述客户端组中部分客户端的训练数据,所述部分客户端由预先训练的弹性上传预测模型根据客户端状态确定;
[0163]
通过所述训练数据确定梯度数据,并向所述代表客户端发送所述梯度数据,以使所述客户端组中的客户端进行梯度更新。
[0164]
基于同样的思路,本说明书一个或多个实施例还提供了对应于上述方法的一种非易失性计算机存储介质,应用于代表客户端,所述介质存储有计算机可执行指令,所述计算机可执行指令设置为:
[0165]
代表客户端接收云端发送的训练请求,所述代表客户端属于客户端组,所述客户端组为预先根据客户端之间的相似度进行聚类得到的;
[0166]
接收所述客户端组中部分客户端的训练数据,所述部分客户端由预先训练的弹性上传预测模型根据客户端状态确定;
[0167]
将所述训练数据发送至所述云端,以使所述云端通过所述训练数据确定梯度数据;
[0168]
接收所述云端返回的所述梯度数据;
[0169]
将所述梯度数据发送至所述部分客户端,以使所述部分客户端进行梯度更新。
[0170]
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmable logic device,pld)(例如现场可编程门阵列(field programmable gate array,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardware description language,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advanced boolean expression language)、ahdl(altera hardware description language)、confluence、cupl(cornell university programming language)、hdcal、jhdl
(java hardware description language)、lava、lola、myhdl、palasm、rhdl(ruby hardware description language)等,目前最普遍使用的是vhdl(very

high

speed integrated circuit hardware description language)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
[0171]
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc 625d、atmel at91sam、microchip pic18f26k20以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0172]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0173]
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0174]
本领域内的技术人员应明白,本说明书实施例可提供为方法、系统、或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0175]
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0176]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0177]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0178]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0179]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0180]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0181]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0182]
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0183]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0184]
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0185]
以上所述仅为本说明书的一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书的一个或多个实施例可以有各种更改和变化。凡在本说明书的一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在
本说明书的权利要求范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1