一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

模型更新的方法、终端和服务器与流程

2022-03-26 02:13:02 来源:中国专利 TAG:


1.本技术涉及人工智能技术领域,尤其涉及一种模型更新的方法、终端和服务器。


背景技术:

2.联邦学习是一种分布式的机器学习算法,在多个终端或边缘设备上进行训练的同时,不涉及各个设备私有数据之间的交换,可以保护用户隐私。联邦学习采用端云协同的架构形式,由中心化的云端结点,以及分布式的终端设备组成。端云协同一次迭代包含端侧训练,模型上传,云端聚合,模型分发过程。端侧模型训练完毕后上传至云端,进行聚合、处理、更新等操作,合并成为新的模型再次分发给端侧设备。
3.现有的端云协同技术中,模型聚合时,对相同结构的多个模型中相同位置的参数进行加权平均,生成新的参数。其中加权平均系数由各个模型的训练数据量确定。
4.由于现有的模型聚合方法中,模型参数的加权平均系数由各个模型的训练数据量确定。对于用户数据差异较大的场景,存在聚合后模型对用户知识遗忘较大,聚合模型准确率较低的问题。


技术实现要素:

5.本技术实施例提供了一种模型更新的方法,用于联邦学习场景中,可以使得聚合后的模型更大程度的保留用户的知识,提高聚合模型的性能。
6.本技术实施例的第一方面提供了一种模型更新的方法,包括:终端根据本地数据对模型进行训练,以获取训练后的模型的参数;所述终端获取所述本地数据的分布特征;所述终端将所述参数和所述分布特征发送给服务器,所述服务器用于基于至少两个所述终端发送的参数和所述分布特征进行模型聚合,以获取聚合后的模型的目标参数;所述终端接收所述服务器发送的所述目标参数,并根据所述目标参数更新所述训练后的模型以获取目标模型。本技术实施例中的终端包括应用于联邦学习场景中的终端。
7.本技术实施例提供的模型更新的方法,终端通过训练,不仅获取训练好的模型,还得到了用于训练模型的本地数据的分布特征,并将训练后的模型的参数以及该分布特征都发给云端,用本地数据的分布特征替代统一的加权系数,用于实现模型聚合,使得聚合后的模型更大程度的保留用户的知识,以提高聚合模型的性能。
8.在第一方面的一种可能的实现方式中,所述分布特征具体包括正交矩阵集合,所述正交矩阵集合包括第一正交矩阵,所述第一正交矩阵根据输入所述模型的第一网络层的第一数据确定,所述第一正交矩阵用于确定所述目标模型的第一网络层的第一目标参数,所述第一网络层为所述模型中的任意一个网络层。
9.本技术实施例提供的模型更新的方法,本地数据的分布特征包括与模型每个网络层对应的正交矩阵,模型融合中以该正交矩阵作为权重以确定该网络层的参数可以体现模型中不同参数的不同作用,聚合后模型对用户知识遗忘较小,聚合模型准确率提高。
10.在第一方面的一种可能的实现方式中,所述终端获取所述本地数据的分布特征具
体包括:所述终端获取输入所述模型的第一网络层的第一数据的特征图;所述终端根据所述第一网络层的卷积核尺寸从所述特征图中确定多个特征图区域;所述终端根据所述多个特征图区域获取所述第一正交矩阵。
11.本技术实施例提供的模型更新的方法,获取第一正交矩阵的一种具体方法为,根据输入第一网络层的数据的特征图,基于第一网络层的卷积核尺寸在特征图中滑动以获取特征图区域,根据特征图区域以预设计算方法得到正交矩阵,由此,正交矩阵可以体现输入的本地数据的分布特征,以正交矩阵作为权重确定模型聚合时该网络层的参数可以体现模型中不同参数的不同作用,聚合模型准确率提高。
12.在第一方面的一种可能的实现方式中,所述训练包括n次迭代训练过程;所述终端获取所述本地数据的分布特征具体包括:所述终端在第i 1次迭代训练过程中,基于输入所述第一网络层的数据的特征图,对第i次迭代训练过程中所述第一网络层对应的正交矩阵进行更新,以获取第i 1次迭代训练过程中所述第一网络层对应的第一正交矩阵,所述i大于0,且小于或等于所述n。
13.本技术实施例提供的模型更新的方法,获取第一正交矩阵的一种具体方法为,在训练的多次迭代过程中同步获取正交矩阵,并对每次迭代后的正交矩阵进行更新,基于该方案获取的正交矩阵,可以体现每次迭代中输出该网络层的数据的分布特征,聚合模型准确率提高。
14.在第一方面的一种可能的实现方式中,所述终端在第i 1次迭代训练过程中,基于输入所述第一网络层的数据的特征图,对第i次迭代训练过程中所述第一网络层对应的正交矩阵进行更新,以获取第i 1次迭代训练过程中所述第一网络层对应的第一正交矩阵具体包括:所述终端在第i 1次迭代训练过程中,基于输入所述第一网络层的数据和所述第一网络层的卷积核尺寸获取多个特征图区域;所述终端获取所述多个特征图区域的平均化后的目标特征图;所述终端根据所述目标特征图对第i次迭代训练过程中所述第一网络层对应的正交矩阵进行更新,以获取第i 1次迭代训练过程中所述第一网络层对应的正交矩阵。
15.本技术实施例提供的模型更新的方法,终端可以对依次迭代中多个输入数据获取的特征图区域进行平均化处理,得到平均化后的目标特征图用于进行正交矩阵更新,可以减少计算量,提高计算效率。
16.在第一方面的一种可能的实现方式中,在所述终端根据本地数据对模型进行训练之前,所述方法还包括:所述终端接收所述服务器发送的学习启动请求,所述学习启动请求用于指示所述终端训练所述模型。
17.本技术实施例提供的模型更新的方法,应用于联邦学习场景中,云端的服务器可以向所有参与模型聚合的终端发送指示终端训练模型的学习启动请求,以统一管理模型聚合过程,提升模型聚合效率。
18.在第一方面的一种可能的实现方式中,在所述终端根据本地数据对模型进行训练之前,所述方法还包括:所述终端接收所述服务器发送的所述模型和训练参数。
19.本技术实施例提供的模型更新的方法,应用于联邦学习场景中,云端的服务器可以向所有参与模型聚合的终端发送当前最新的模型以及训练参数,以指示终端根据本地的应用数据对模型进行训练,以便统一管理模型聚合过程,提升模型聚合效率。
20.本技术实施例的第二方面提供了一种模型更新的方法,服务器接收至少两个终端
中每个终端发送的训练后的模型的参数和所述终端用于训练模型的本地数据的分布特征;所述服务器根据所述参数和所述分布特征进行模型聚合,以获取聚合后的目标模型的目标参数;所述服务器将所述目标参数发送给所述至少两个终端,以使得所述至少两个终端中每个终端基于所述目标参数更新所述训练后的模型以获取所述目标模型。本技术实施例中的服务器包括应用于联邦学习场景中云端的服务器。
21.本技术实施例提供的模型更新的方法,服务器基于终端发送的模型的参数和应用数据的分布特征进行模型聚合,由于模型聚合过程考虑了应用数据的分布特征,即不同终端用户的应用数据的分布差异以及模型中不同参数的不同作用,聚合后模型对用户知识遗忘较小,聚合模型准确率提高。
22.在第二方面的一种可能的实现方式中,所述分布特征具体包括正交矩阵集合,所述正交矩阵集合包括第一正交矩阵,所述第一正交矩阵用于确定所述目标模型的第一网络层的第一目标参数,所述第一网络层为所述模型中的任意一个网络层。
23.本技术实施例提供的模型更新的方法,应用数据的分布特征包括与模型每个网络层对应的正交矩阵,模型融合中以该正交矩阵作为权重以确定该网络层的参数可以体现模型中不同参数的不同作用,聚合后模型对用户知识遗忘较小,聚合模型准确率提高。
24.在第二方面的一种可能的实现方式中,所述服务器接收至少两个终端中每个终端发送的训练后的模型的参数和所述终端用于训练模型的本地数据的分布特征具体包括:所述服务器接收第一终端发送的第一参数和第一分布特征,以及第二终端发送的第二参数和第二分布特征;所述服务器根据所述模型的参数和所述分布特征进行模型聚合,以获取聚合后的目标模型的目标参数具体包括:所述服务器根据所述第一分布特征,确定在多维空间中所述第一参数向所述第二参数方向聚合后的第一目标参数;所述服务器根据所述第二分布特征,确定在多维空间中所述第二参数向所述第一参数方向聚合后的第二目标参数;所述服务器根据所述第一目标参数和所述第二目标参数确定所述目标模型的目标参数。
25.本技术实施例提供的模型更新的方法,提供了两个终端的模型聚合的具体策略,聚合过程中,在参数的多维空间中,首先基于分布特征进行参数融合,在正交参数空间更新,获取第一目标参数和第二目标参数,由于发生在正交空间,因此更新后的模型不仅保留了原始模型的知识,同时获取了其他模型的知识,参数空间的距离更加接近,此时再进行平均聚合,模型对原始用户知识遗忘性更低。极限情况下,当两个模型正交空间存在相交时,一定可以找到同一个模型,能够完全保留各自模型原始的知识。可选地,第一目标参数和第二目标参数求平均即可获取目标参数。通过分布特征进行参数融合,可以降低目标模型对用户知识的遗忘,提高目标模型的准确率。
26.在第二方面的一种可能的实现方式中,所述服务器接收至少两个终端中每个终端发送的训练后的模型的参数和所述终端用于训练模型的本地数据的分布特征具体包括:所述服务器接收第一终端发送的第一参数和第一分布特征,以及第二终端发送的第二参数和第二分布特征,以及第三终端发送的第三参数和第三分布特征;所述服务器根据所述参数和所述分布特征进行模型聚合,以获取聚合后的目标模型的目标参数具体包括:所述服务器根据所述第一分布特征,确定在多维空间中所述第一参数向所述第二参数方向聚合后的第一目标参数;所述服务器根据所述第二分布特征,确定在多维空间中所述第二参数向所述第三参数方向聚合后的第二目标参数;所述服务器根据所述第三分布特征,确定在多维
空间中所述第三参数向所述第一参数方向聚合后的第三目标参数;所述服务器根据所述第一目标参数、所述第二目标参数和所述第三目标参数确定所述目标模型的目标参数。
27.本技术实施例提供的模型更新的方法,提供了三个终端的模型聚合的具体策略,在参数的多维空间中,基于分布特征,在正交空间进行迭代参数融合,分别获取第一目标参数、第二目标参数和第三目标参数,在保留原始模型的知识的基础上,获取了其他模型的知识,参数在多维空间中的距离更加接近,然后进一步聚合得到目标参数,可选地,第一目标参数、第二目标参数和第三目标参数求平均即可获取目标参数。通过分布特征进行参数融合,可以降低目标模型对用户知识的遗忘,提高目标模型的准确率。
28.在第二方面的一种可能的实现方式中,所述至少两个终端包括至少四个终端;所述方法还包括:所述服务器对所述至少四个终端进行分组,确定多个终端集合,所述多个终端集合中任意一个终端集合包括两个或三个终端;所述服务器根据所述参数和所述分布特征进行模型聚合,以获取聚合后的目标模型的目标参数具体包括:所述服务器分别获取所述多个终端集合中每个终端集合聚合后的参数;所述服务器根据所述每个终端集合聚合后的参数获取所述目标参数。
29.本技术实施例提供的模型更新的方法,提供了当参与模型聚合的终端的数量大于或等于四个时的模型聚合策略,即先对终端进行分组,得到的包含2个或3个终端的终端集合,每个终端集合分别进行聚合,然后进一步获取目标参数,可选地,对每个终端集合聚合后的参数求平均值得到目标参数。该方法通过分布特征进行参数融合,可以降低目标模型对用户知识的遗忘,提高目标模型的准确率。
30.在第二方面的一种可能的实现方式中,所述方法还包括:所述服务器向所述至少两个终端发送学习启动请求;
31.本技术实施例提供的模型更新的方法,应用于联邦学习场景中,云端的服务器可以向所有参与模型聚合的终端发送指示终端训练模型的学习启动请求,以统一管理模型聚合过程,提升模型聚合效率。
32.在第二方面的一种可能的实现方式中,所述方法还包括:所述服务器向所述至少两个终端发送模型和训练参数。
33.本技术实施例提供的模型更新的方法,应用于联邦学习场景中,云端的服务器可以向所有参与模型聚合的终端发送当前最新的模型以及训练参数,以指示终端根据本地数据对模型进行训练,以便统一管理模型聚合过程,提升模型聚合效率。
34.本技术实施例的第三方面提供了一种模型更新的方法,包括:第一终端根据本地数据对模型进行训练,以获取训练后的第一模型的参数;所述第一终端获取所述本地数据的第一分布特征;所述第一终端接收至少一个第二终端发送的第二模型的参数和第二分布特征,所述第二模型为所述第二终端训练后的模型,所述第二分布特征为用于所述本地数据的分布特征,所述第一模型和所述第二模型为同构模型;所述第一终端根据所述第一模型的参数、所述第一分布特征、所述第二模型的参数和所述第二分布特征进行模型聚合,以获取聚合后的目标模型;所述第一终端根据所述目标模型更新所述第一模型为所述目标模型。
35.在第三方面的一种可能的实现方式中,所述第一分布特征具体包括正交矩阵集合,所述正交矩阵集合包括第一正交矩阵,所述第一正交矩阵根据输入所述模型的第一网
络层的第一数据确定,所述第一正交矩阵用于确定所述目标模型的第一网络层的第一目标参数,所述第一网络层为所述模型中的任意一个网络层。
36.在第三方面的一种可能的实现方式中,所述第一终端获取所述本地数据的分布特征具体包括:所述第一终端获取输入所述模型的第一网络层的第一数据的特征图;所述第一终端根据所述第一网络层的卷积核尺寸从所述特征图中确定多个特征图区域;所述第一终端根据所述多个特征图区域获取所述第一正交矩阵。
37.在第三方面的一种可能的实现方式中,所述训练包括n次迭代训练过程;所述第一终端获取所述本地数据的第一分布特征具体包括:所述第一终端在第i 1次迭代训练过程中,基于输入所述第一网络层的数据的特征图,对第i次迭代训练过程中所述第一网络层对应的正交矩阵进行更新,以获取第i 1次迭代训练过程中所述第一网络层对应的第一正交矩阵,所述i大于0,且小于或等于所述n。
38.在第三方面的一种可能的实现方式中,所述第一终端在第i 1次迭代训练过程中,基于输入所述第一网络层的数据的特征图,对第i次迭代训练过程中所述第一网络层对应的正交矩阵进行更新,以获取第i 1次迭代训练过程中所述第一网络层对应的第一正交矩阵具体包括:所述第一终端在第i 1次迭代训练过程中,基于输入所述第一网络层的数据和所述第一网络层的卷积核尺寸获取多个特征图区域;所述第一终端获取所述多个特征图区域的平均化后的目标特征图;所述第一终端根据所述目标特征图对第i次迭代训练过程中所述第一网络层对应的正交矩阵进行更新,以获取第i 1次迭代训练过程中所述第一网络层对应的正交矩阵。
39.在第三方面的一种可能的实现方式中,所述第一终端接收至少一个第二终端发送的第二模型的参数和第二分布特征具体包括:所述第一终端接收一个所述第二终端发送的第二模型的参数和第二分布特征;所述第一终端根据所述第一模型的参数、所述第一分布特征、所述第二模型的参数和所述第二分布特征进行模型聚合,以获取聚合后的目标模型具体包括:所述第一终端根据所述第一分布特征,确定所述第一模型向所述第二模型方向聚合后的第一目标模型;所述第一终端根据所述第二分布特征,确定所述第二模型向所述第一模型方向聚合后的第二目标模型;所述第一终端根据所述第一目标模型和所述第二目标模型确定所述目标模型。
40.在第三方面的一种可能的实现方式中,所述第一终端接收至少一个第二终端发送的第二模型的参数和第二分布特征具体包括:所述第一终端接收两个所述第二终端分别发送的第二模型的参数和第二分布特征,以及第三模型的参数和第三分布特征;所述第一终端根据所述第一模型的参数、所述第一分布特征、所述第二模型的参数和所述第二分布特征进行模型聚合,以获取聚合后的目标模型具体包括:所述第一终端根据所述第一分布特征,确定所述第一模型向所述第二模型方向聚合后的第一目标模型;所述第一终端根据所述第二分布特征,确定所述第二模型向所述第三模型方向聚合后的第二目标模型;所述第一终端根据所述第三分布特征,确定所述第三模型向所述第一模型方向聚合后的第三目标模型;所述第一终端根据所述第一目标模型、所述第二目标模型和所述第三目标模型确定所述目标模型。
41.在第三方面的一种可能的实现方式中,所述至少一个第二终端包括至少三个第二终端;所述方法还包括:所述第一终端对所述至少三个第二终端以及第一终端进行分组,确
定多个终端集合,所述多个终端集合的任意一个终端集合中包括两个或三个终端;所述第一终端根据所述第一模型的参数、所述第一分布特征、所述第二模型的参数和所述第二分布特征进行模型聚合,以获取聚合后的目标模型具体包括:所述第一终端分别获取所述多个终端集合中每个终端集合聚合后的模型;所述第一终端根据所述每个终端集合聚合后的模型确定所述目标模型。
42.本技术实施例的第四方面提供了一种终端,包括:获取单元,用于根据本地数据对模型进行训练,以获取训练后的模型的参数;所述获取单元,还用于获取所述本地数据的分布特征;发送单元,用于将所述参数和所述分布特征发送给服务器,所述服务器用于基于至少两个所述终端发送的参数和所述分布特征进行模型聚合,以获取聚合后的模型的目标参数;接收单元,用于接收所述服务器发送的所述目标参数,并根据所述目标参数更新所述训练后的模型以获取目标模型。
43.在第四方面的一种可能的实现方式中,所述分布特征具体包括正交矩阵集合,所述正交矩阵集合包括第一正交矩阵,所述第一正交矩阵根据输入所述模型的第一网络层的第一数据确定,所述第一正交矩阵用于确定所述目标模型的第一网络层的第一目标参数,所述第一网络层为所述模型中的任意一个网络层。
44.在第四方面的一种可能的实现方式中,所述获取单元具体用于:获取所述本地数据的分布特征具体包括:获取输入所述模型的第一网络层的第一数据的特征图;根据所述第一网络层的卷积核尺寸从所述特征图中确定多个特征图区域;根据所述多个特征图区域获取所述第一正交矩阵。
45.在第四方面的一种可能的实现方式中,所述训练包括n次迭代训练过程;所述获取单元具体用于:在第i 1次迭代训练过程中,基于输入所述第一网络层的数据的特征图,对第i次迭代训练过程中所述第一网络层对应的正交矩阵进行更新,以获取第i 1次迭代训练过程中所述第一网络层对应的第一正交矩阵,所述i大于0,且小于或等于所述n。
46.在第四方面的一种可能的实现方式中,所述获取单元具体用于:在第i 1次迭代训练过程中,基于输入所述第一网络层的数据和所述第一网络层的卷积核尺寸获取多个特征图区域;获取所述多个特征图区域的平均化后的目标特征图;根据所述目标特征图对第i次迭代训练过程中所述第一网络层对应的正交矩阵进行更新,以获取第i 1次迭代训练过程中所述第一网络层对应的正交矩阵。
47.在第四方面的一种可能的实现方式中,所述接收单元还用于:接收所述服务器发送的学习启动请求,所述学习启动请求用于指示训练所述模型。
48.在第四方面的一种可能的实现方式中,所述接收单元还用于:接收所述服务器发送的所述模型和训练参数。
49.本技术实施例的第五方面提供了一种服务器,应用于联邦学习场景,包括:接收单元,用于接收至少两个终端中每个终端发送的训练后的模型的参数和所述终端用于训练模型的本地数据的分布特征;获取单元,用于根据所述参数和所述分布特征进行模型聚合,以获取聚合后的目标模型的目标参数;发送单元,用于将所述目标参数发送给所述至少两个终端,以使得所述至少两个终端中每个终端基于所述目标参数更新所述训练后的模型以获取所述目标模型。
50.在第五方面的一种可能的实现方式中,所述分布特征具体包括正交矩阵集合,所
述正交矩阵集合包括第一正交矩阵,所述第一正交矩阵用于确定所述目标模型的第一网络层的第一目标参数,所述第一网络层为所述模型中的任意一个网络层。
51.在第五方面的一种可能的实现方式中,所述接收单元具体用于:接收第一终端发送的第一参数和第一分布特征,以及第二终端发送的第二参数和第二分布特征;所述获取单元具体用于:根据所述第一分布特征,确定在多维空间中所述第一参数向所述第二参数方向聚合后的第一目标参数;根据所述第二分布特征,确定在多维空间中所述第二参数向所述第一参数方向聚合后的第二目标参数;根据所述第一目标参数和所述第二目标参数确定所述目标模型的目标参数。
52.在第五方面的一种可能的实现方式中,所述接收单元具体用于:接收第一终端发送的第一参数和第一分布特征,以及第二终端发送的第二参数和第二分布特征,以及第三终端发送的第三参数和第三分布特征;所述获取单元具体用于:根据所述第一分布特征,确定在多维空间中所述第一参数向所述第二参数方向聚合后的第一目标参数;根据所述第二分布特征,确定在多维空间中所述第二参数向所述第三参数方向聚合后的第二目标参数;根据所述第三分布特征,确定在多维空间中所述第三参数向所述第一参数方向聚合后的第三目标参数;根据所述第一目标参数、所述第二目标参数和所述第三目标参数确定所述目标模型的目标参数。
53.在第五方面的一种可能的实现方式中,所述至少两个终端包括至少四个终端;所述服务器还包括:处理单元,用于:对所述至少四个终端进行分组,确定多个终端集合,所述多个终端集合中任意一个终端集合包括两个或三个终端;所述获取单元具体用于:分别获取所述多个终端集合中每个终端集合聚合后的参数;根据所述每个终端集合聚合后的参数获取所述目标参数。
54.在第五方面的一种可能的实现方式中,所述发送单元还用于:向所述至少两个终端发送学习启动请求。
55.在第五方面的一种可能的实现方式中,所述发送单元还用于:向所述至少两个终端发送模型和训练参数。
56.本技术实施例的第六方面提供了终端,包括:获取单元,根据本地数据对模型进行训练,以获取训练后的第一模型的参数;所述获取单元还用于,获取所述本地数据的第一分布特征;接收单元,用于接收至少一个第二终端发送的第二模型的参数和第二分布特征,所述第二模型为所述第二终端训练后的模型,所述第二分布特征为用于所述本地数据的分布特征,所述第一模型和所述第二模型为同构模型;所述获取单元还用于,根据所述第一模型的参数、所述第一分布特征、所述第二模型的参数和所述第二分布特征进行模型聚合,以获取聚合后的目标模型;更新单元,用于根据所述目标模型更新所述第一模型为所述目标模型。
57.在第六方面的一种可能的实现方式中,所述第一分布特征具体包括正交矩阵集合,所述正交矩阵集合包括第一正交矩阵,所述第一正交矩阵根据输入所述模型的第一网络层的第一数据确定,所述第一正交矩阵用于确定所述目标模型的第一网络层的第一目标参数,所述第一网络层为所述模型中的任意一个网络层。
58.在第六方面的一种可能的实现方式中,所述获取单元具体用于:获取输入所述模型的第一网络层的第一数据的特征图;根据所述第一网络层的卷积核尺寸从所述特征图中
确定多个特征图区域;根据所述多个特征图区域获取所述第一正交矩阵。
59.在第六方面的一种可能的实现方式中,所述训练包括n次迭代训练过程;所述获取单元具体用于:在第i 1次迭代训练过程中,基于输入所述第一网络层的数据的特征图,对第i次迭代训练过程中所述第一网络层对应的正交矩阵进行更新,以获取第i 1次迭代训练过程中所述第一网络层对应的第一正交矩阵,所述i大于0,且小于或等于所述n。
60.在第六方面的一种可能的实现方式中,所述获取单元具体用于:在第i 1次迭代训练过程中,基于输入所述第一网络层的数据和所述第一网络层的卷积核尺寸获取多个特征图区域;获取所述多个特征图区域的平均化后的目标特征图;根据所述目标特征图对第i次迭代训练过程中所述第一网络层对应的正交矩阵进行更新,以获取第i 1次迭代训练过程中所述第一网络层对应的正交矩阵。
61.在第六方面的一种可能的实现方式中,所述接收单元具体用于:接收一个所述第二终端发送的第二模型的参数和第二分布特征;所述获取单元具体用于,根据所述第一分布特征,确定所述第一模型向所述第二模型方向聚合后的第一目标模型;根据所述第二分布特征,确定所述第二模型向所述第一模型方向聚合后的第二目标模型;根据所述第一目标模型和所述第二目标模型确定所述目标模型。
62.在第六方面的一种可能的实现方式中,所述接收单元具体用于:接收两个所述第二终端分别发送的第二模型的参数和第二分布特征,以及第三模型的参数和第三分布特征;所述获取单元具体用于,根据所述第一分布特征,确定所述第一模型向所述第二模型方向聚合后的第一目标模型;根据所述第二分布特征,确定所述第二模型向所述第三模型方向聚合后的第二目标模型;根据所述第三分布特征,确定所述第三模型向所述第一模型方向聚合后的第三目标模型;根据所述第一目标模型、所述第二目标模型和所述第三目标模型确定所述目标模型。
63.在第六方面的一种可能的实现方式中,所述至少一个第二终端包括至少三个第二终端;所述方法还包括:处理单元,用于对所述至少三个第二终端以及第一终端进行分组,确定多个终端集合,所述多个终端集合的任意一个终端集合中包括两个或三个终端;所述获取单元具体用于,分别获取所述多个终端集合中每个终端集合聚合后的模型;所述第一终端根据所述每个终端集合聚合后的模型确定所述目标模型。
64.本技术实施例第七方面提供了一种终端,包括:一个或多个处理器和存储器;其中,所述存储器中存储有计算机可读指令;所述一个或多个处理器读取所述计算机可读指令以使所述终端执行如上述第一方面或第三方面以及各种可能的实现方式中任一项所述的方法。
65.本技术实施例第八方面提供了一种服务器,包括:一个或多个处理器和存储器;其中,所述存储器中存储有计算机可读指令;所述一个或多个处理器读取所述计算机可读指令以使所述服务器执行如上述第二方面以及各种可能的实现方式中任一项所述的方法。
66.本技术实施例第九方面提供了一种模型更新系统,应用于联邦学习场景,包括至少两个如上述第四方面以及各种可能的实现方式中任一项所述的终端和如上述第五方面以及各种可能的实现方式中任一项所述的服务器。
67.本技术实施例第十方面提供了一种包含指令的计算机程序产品,其特征在于,当其在计算机上运行时,使得所述计算机执行如上述第一方面、第二方面以及各种可能的实
现方式中任一项所述的方法。
68.本技术实施例第十一方面提供了一种计算机可读存储介质,包括指令,其特征在于,当所述指令在计算机上运行时,使得计算机执行如上述第一方面、第二方面以及各种可能的实现方式中任一项所述的方法。
69.本技术实施例第十二方面提供了一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行上述任一方面任意可能的实现方式中的方法。可选地,该芯片该包括存储器,该存储器与该处理器通过电路或电线与存储器连接。进一步可选地,该芯片还包括通信接口,处理器与该通信接口连接。通信接口用于接收需要处理的数据和/或信息,处理器从该通信接口获取该数据和/或信息,并对该数据和/或信息进行处理,并通过该通信接口输出处理结果。该通信接口可以是输入输出接口。
70.其中,第四方面至第十二方面中任一种实现方式所带来的技术效果可参见第一方面至第二方面中相应实现方式所带来的技术效果,此处不再赘述。
71.从以上技术方案可以看出,本技术实施例具有以下优点:
72.终端根据本地数据进行训练后,将训练好的模型以及用于训练模型的本地数据的分布特征都发给云端,用应用数据的分布特征替代统一的加权系数,用于实现模型聚合,使得聚合后的模型更大程度的保留用户的知识,以提高聚合模型的性能。
附图说明
73.图1为联邦学习的系统架构图;
74.图2a为本技术实施例中系统框架的示意图;
75.图2b为本技术实施例中系统框架的另一个示意图;
76.图3a为本技术实施例中终端侧的模型更新的方法的实施例示意图;
77.图3b为本技术实施例中服务器侧的模型更新的方法的实施例示意图;
78.图3c为本技术实施例中模型更新方法的一个交互实施例示意图;
79.图4a为本技术实施例中模型更新的方法的另一个实施例示意图;
80.图4b为本技术实施例中模型更新方法的另一个交互实施例示意图;
81.图5a为本技术实施例中终端侧正交矩阵的获取方法的示意图;
82.图5b为本技术实施例中终端侧正交矩阵的获取方法的另一个示意图;
83.图6a为模型聚合的一个示意图;
84.图6b为本技术实施例中双模型聚合的一个实施例示意图;
85.图6c为本技术实施例中三模型聚合的一个实施例示意图;
86.图6d为本技术实施例中多模型聚合的一个实施例示意图;
87.图7为本技术实施例中终端的一个实施例示意图;
88.图8为本技术实施例中服务器的一个实施例示意图;
89.图9为本技术实施例中终端的另一个实施例示意图;
90.图10为本技术实施例中服务器的另一个实施例示意图。
具体实施方式
91.本技术实施例提供了一种模型更新的方法,用于用于实现模型聚合,使得聚合后
的模型更大程度的保留用户的知识,以提高聚合模型的性能。此外,还提出了模型聚合的策略,对多模型采用分组聚合模式,进一步提升了聚合后模型的性能。
92.为了便于理解,下面对本技术实施例涉及的部分技术术语进行简要介绍:
93.1、联邦学习:一种分布式的机器学习算法,在多个终端或边缘设备上进行训练的同时,不涉及各个设备私有的本地数据之间的交换。本地数据是用户在使用终端过程中产生的数据,可能包括私有敏感数据。传统中心化的机器学习方法需要获取所有终端设备的本地数据,或者需要上传至同一中心服务器上,联邦学习与其相比,最大的特点是隐私保护性强。
94.2、端云协同:联邦学习的一种实现架构形式,由中心化的云端结点,以及分布式的终端设备,如手机,电脑等组成。终端设备之间,终端设备与云端服务器之间,不进行本地数据(如用户图片,信息等)的交换。端云协同一次迭代包含:端侧训练,模型上传,云端聚合,模型分发过程。端侧模型训练完毕后上传至云端,进行聚合、处理、更新等操作,合并成为新的模型再次分发给端侧设备。
95.3、同构模型:指多个具有相同模型结构,但具有不同参数的模型。本技术实施例中,进行模型聚合的多个终端的模型均为同构模型。
96.4、参数聚合:指多个模型通过特定的方法聚合成为一个新的模型。
97.5、卷积神经网络:特指一种深度神经网络,通常应用于计算机视觉任务中,由多个卷积层构成,具有旋转平移不变性。
98.6、知识:知识表示模型能够有效处理的数据分布。
99.例如,对于用猫的图片训练的模型能够很好的对猫这种动物进行识别和分类,而无法对其他动物进行识别和分类。模型训练过程中,接受越多的猫的图片,其获取的猫相关知识越多,能够更好的对猫图片进行识别和分类。
100.7、遗忘:具有不同知识的两个或多个模型在聚合过程中,由于没有见过对方数据,导致聚合后的模型,分别对原有用户的知识产生遗忘。比如,两个终端用户分布学习了猫图片的知识(数据分布)和狗图片的知识(数据分布),虽然聚合后的模型同时获取了对方部分知识,但也产生了遗忘,使得聚合的模型,在某些原有模型可以很好识别的数据上,反而无法识别。例如,原有模型一可以识别所有的猫,但聚合后的模型对部分品种的猫无法识别,将这种现象称为遗忘性。
101.8、模型的参数
102.模型的参数可以视为高维空间内的点,例如模型参数w1和模型参数w2位于高维空间不同位置,则δw
21
=w
2-w1表示从w2到w1的矢量,也可称为从w2到w1的方向。
103.同构模型的模型聚合实质上就是模型参数聚合的过程,以模型1和模型2的聚合为例,模型1的模型参数为w1,模型2的模型参数为w2,w1向w2方向聚合时,w1的更新方向为δw
21
=w
2-w1,可选地,基于本技术实施例提供了模型聚合方法中得到的模型1训练过程的输入数据的分布特征,例如正交矩阵p1,正交矩阵可以作为模型聚合过程中的权重参数,考虑p1后的参数更新方向为δw

21
=p1δw
21
。类似的,模型2的模型参数w2的参数更新方向为δw

12
=p2δw
12

104.下面结合附图,对本技术的实施例进行描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场
景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
105.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本技术中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。
106.下面对联邦学习的相关背景进行简要介绍:基于大数据离线开发的图像识别算法在学术界和工业界已经趋于成熟,相关技术已经在手机、电脑等终端产品上得到商用,为用户带来智能化的产品体验。以手机智能相册为例,目前市场上大部分智能手机部署了相册智能识别系统,可以对上百甚至上千类常见物体,场景进行智能分类,为用户提供方便的搜索查询功能。支撑该应用的是深度学习的识别模型,通常情况下,通过采集大量图片,人工标注,在实验室环境进行离线训练获得具有较强识别能力的模型,在手机出厂时离线部署在系统内部。模型由开发者于实验室环境持续训练更新,随系统版本定期升级,推送给消费者。由于上述开发模式中模型更新完全依赖实验室开发,实验室的训练数据非常有限,无法覆盖所有用户场景,导致很多未见过的场景或类别识别错误或者不支持;不同消费者相册分布差异较大,统一部署的模型无法满足消费者的个性化需求,导致不同用户体验效果不同;产品更新节奏较慢,无法快速响应错误识别结果以及新的场景。
107.云端模型聚合方法是为解决上述问题而提出的一种方案,请参阅图1,该云端模型聚合方法,将多个用户在端侧训练的模型(model 1、model 2、model 3)传递至云端,汇聚成同一个新的模型(model*),实现了多个用户模型的汇聚。汇聚的模型重新返还至端侧,迭代进行端侧训练及云侧聚合过程,使得端侧和云侧模型不断更新,持续获取所有用户的知识,避免了离线训练过程中需要访问数据的问题,有效的保护了用户的隐私。本技术中将该方案称为联邦平均算法。
108.具体的,在联邦平均算法在模型聚合过程中,对相同结构的多个模型中相同位置的参数进行加权平均,生成新的参数。其中加权平均系数由各个模型的训练数据量确定。
109.由于加权平均系数由各个模型的训练数据量确定,只关注了用户数据量的差异,没有考虑到用户数据分布的差异情况,同时,模型具有大量的参数,由非线性的形式相互连接,统一的加权系数,忽视了模型中不同参数发挥的不同作用,因此存在聚合后模型对用户知识遗忘较大,聚合模型准确率较低的问题。
110.针对联邦平均方法中加权系数的来源,本技术针对用户数据分布提出了一种新的加权系数计算方法。其基本思路是,基于用户数据分布空间获得加权系数矩阵,替代联邦平均中统一的加权系数,实现模型聚合。此外,还提出了模型聚合的策略,对多模型采用分组聚合模式,有效提升了聚合后模型的性能,聚合模型准确率较高。
111.本技术提出的参数聚合方法适用于终端多种模型更新场景,例如:智能相册识别模型,用于对用户的图像进行识别或分类,此外,还可以对视频进行识别和分类;文字识别
模型,用于识别图像中的文字信息;自动驾驶领域的模型,用于对车道线或信号灯等进行识别。此类模型的特点在于,持续的学习和更新有助于提升模型的性能,为用户提供更精准的服务。模型的类型可以是卷积神经网络模型或全连接神经网络模型等等,神经网络模型的类型不限定。后续实施例中,将以终端中的智能相册识别模型的更新方法为例进行介绍,可以理解的是,这并不对模型的更新方法的应用场景造成限定。
112.下面对本技术实施例的系统框架进行介绍,请参阅图2a-图2b,为本技术实施例中系统框架的示意图。
113.如图2a所示,本技术提出的参数聚合方法应用于传统的联邦学习架构,即端侧-云端架构中。端侧,即用户侧,可以是移动终端、手机、个人电脑、车载、监控设备等终端或边缘计算节点。云端可以是数据中心、云服务器等中心化的计算设备。
114.以手机终端智能相册识别模型为例,在手机出厂时期,每个终端统一部署离线训练好的智能识别模型,该模型由开发人员在离线搜集的数据集上训练得到,该模型具有一定的识别能力。端侧模型用于端侧推理,在模型更新过程中,端侧数据用于对端侧模型进行端侧训练,训练获取的参数上传至云端,云端可以获取两个或两个以上的终端上传的参数,基于多终端的参数进行云端聚合,再将聚合后的模型发送给端侧,用于更新端侧模型。
115.本技术提出的参数聚合方法主要包括端侧训练阶段和云端聚合阶段:
116.端侧训练阶段,用户侧模型接受用户私有数据进行本地训练。本地训练包含多次迭代直至收敛或预先设定的最大迭代轮次,获取更新模型参数,以及每一层网络参数对应的正交矩阵,该正交矩阵根据该层网络的输入数据获取,用于表示数据的分布特征。本地训练完毕后,获得模型的参数以及模型每一层对应的正交矩阵,各层正交矩阵构成正交矩阵集合。
117.云侧聚合阶段,端侧模型以及正交矩阵集合上传至云侧,云端服务器利用每个端侧设备发送的模型和正交矩阵进行聚合,可选地,分别对多个用户模型进行更新,最后将所有新的模型进行平均得到最终聚合模型。其中,正交矩阵集合在聚合过程中用于模型更新中为每一层网络参数提供权重参数。正交矩阵根据云端用户数量的情况,云端多用户模型聚合分成双模型聚合、三模型聚合以及多模型聚合,后续实施例中将进行详细介绍。
118.如图2b所示,本技术提出的参数聚合方法应还可以应用于多终端联合进行模型更新的场景,即端侧-端侧架构中。与图2a所示的参数聚合方法类似,该方法包括端侧训练阶段和模型聚合阶段。区别之处在于,端侧训练得到的模型和正交矩阵集合不需要上传至云端,而是发送给其他端侧设备,该端侧设备也可以接收其他端侧设备发送的经训练得到的模型和正交矩阵集合。端侧设备根据获取的至少一个端侧设备的模型和正交矩阵集合,在本地进行模型聚合,并对端侧模型进行更新。需要说明的是,共享模型和正交矩阵集合的多个端侧设备可以是用户相互确认自主选择的,也可以是由云端推荐的,可以理解的是,对于同类型端侧用户而言,同类型用户例如植物爱好者群体、人像摄影师群体、建筑师群体等等,由于同类型用户往往具有相似的图像分类需求,经多终端共享数据进行模型更新的效率较高,更适应于该类型用户习惯。
119.下面介绍本技术实施例提供了联邦学习中终端更新模型的方法,基于该方法的应用场景分别进行介绍:
120.一、终端-云端架构。
121.端侧,即用户侧,可以是移动终端、手机、个人电脑、车载、监控设备等终端或边缘计算节点。端侧节点的数量可以为2个、3个或者3个以上,具体此处不做限定。
122.云端可以是数据中心、云服务器等中心化的计算设备。
123.该模型更新方法包括端侧训练和云端模型聚合两部分,下面分别进行介绍:
124.1)、端侧训练部分。
125.下面结合图3a对本技术实施例中终端侧的模型更新的方法进行介绍。
126.3011、终端接收云端发送的学习启动请求;
127.终端出厂前,通常会统一部署离线训练好的智能识别模型,该模型由开发人员在离线搜集的数据集上训练得到,具有一定的识别能力。
128.终端通过通信模块接收云端发送的学习启动请求,将模型发送给终端的相册应用,相册应用接受云端指令信息,开始启动训练准备。可选地,云端还可以向终端发送模型;可选地,云端还可以向终端发送模型的训练参数。
129.需要说明的是,步骤3011为可选步骤,可以执行,也可以不执行,具体此处不做限定,若不执行步骤3011,则终端可以根据预设的规则开启模型训练。
130.3012、终端加载模型和训练参数;
131.终端根据服务器的学习启动请求加载模型和训练参数,或者,终端根据预设的规则加载模型和训练参数。需要说明的是,模型以及训练参数,例如损失函数、优化器以及数据尺寸等参数可以是终端预设的,也可以是服务器发送的学习启动请求中携带的,具体此处不做限定。
132.若进行首次训练,则模型为当前手机中预置的模型;若承接上一次训练,则相册应用可以接受服务器发送来的模型,并替换终端的模型管理器中当前的模型。训练启动后,相册应用调用系统层媒体算法库,媒体算法库从模型管理器中读取当前模型,从应用层读入用户数据,例如相册应用中的图片,并载入硬件层的内存中。此外,终端还要配置训练参数,如学习率,迭代次数等。
133.3013、终端启动训练,获取训练后的模型的参数以及正交矩阵集合;
134.终端基于本地数据对第一模型进行训练。具体的,调用cpu处理器进行训练,训练持续时间由用户图像数目以及训练参数决定。
135.训练过程中,首先,用户数据被分成多个数据块,每个数据块包含batchsize张图像,连同模型和训练参数载入内存。
136.图像输入第一模型进行训练,经过多次迭代,得到训练后的第二模型,第二模型包括模型的参数。
137.此外,终端根据输入第一模型每一层网络进行训练的输入数据,获取模型每一层网络的参数对应正交矩阵,模型各层网络的正交矩阵构成正交矩阵集合。获取正交矩阵集合的方法请参考后续实施例中的详细介绍。
138.3014、终端将模型的参数以及正交矩阵集合发送给服务器;
139.终端训练完成后,得到的新模型被保存至模型管理器,释放相关资源。媒体算法库通知相册应用本地训练完成。
140.终端将训练后的模型的参数以及正交矩阵集合发送给服务器;模型包括模型的结构和模型的参数,可选地,终端仅向服务器发送模型的参数和正交矩阵集合,可选地,终端
向服务器发送模型和正交矩阵集合。
141.可选地,终端可以通过通信模块发送训练完成信息给服务器。
142.需要说明的是,本实施例中执行的端侧的模型训练过程的终端可以为两个、三个或多个,每个终端都将训练后的模型的参数以及正交矩阵集合发送给服务器。
143.3015、终端接收服务器发送的聚合后的目标参数;
144.终端接收服务器发送的聚合后的模型的目标参数,根据目标参数对模型进行更新。更新后的智能相册识别模型可以对用户相册图像进行重新识别。
145.2、模型聚合
146.下面结合图3b对本技术实施例中云端服务器侧的模型更新的方法进行介绍。
147.3021、服务器向终端发送学习启动请求;
148.云端的服务器通过通信模块向端侧发送联邦学习启动请求,可选地,服务器还可以向终端发送模型;可选地,服务器还可以向终端发送模型的训练参数,例如学习率、迭代次数等。
149.需要说明的是,步骤3021为可选步骤,可以执行也可以不执行,终端可以根据预设的规则自动开启训练过程。
150.3022、服务器接收终端发送的模型的参数和正交矩阵集合;
151.服务器接收终端发送的经过训练得到的模型的参数和正交矩阵集合,正交矩阵集合是该终端在模型训练过程中得到的,包括每一层网络的参数对应的正交矩阵,各层网络的正交矩阵构成该正交矩阵集合。可选地,由于服务器具有模型的结构,仅接收终端发送的模型的参数即可,可选地,服务器接收终端发送的模型,包括模型的结构和模型的参数。
152.云侧聚合发生在服务器上,涉及到硬件层,系统层及应用层的协同运行。具体包括:监听端侧相册指令,服务器监听每个终端发送的训练信息、模型文件及正交矩阵。
153.需要说明的是,服务器需要获取至少两个终端发送的各自训练后的模型的参数和正交矩阵集合。
154.当所有终端训练完毕后,服务器将所有终端模型发送到模型管理器,并载入内存中。
155.3023、服务器根据每个终端的模型的参数和正交矩阵集合,进行模型聚合,获取目标模型的目标参数;
156.服务器调用聚合算法库进行模型参数聚合,聚合过程:处理器根据端侧终端个数,分别选择相应的参数聚合策略,如果只有2个终端,则采用双模型聚合策略;如果包含3个终端,则采用3模型聚合策略;如果包含3个以上终端,则采用多模型聚合策略。多个终端模型及相应的正交矩阵被分成多个组,分组方式有多种,可以随机分组,还可以基于一定的策略进行分组,具体分组方式此处不做限定。每个组包含3个终端的模型及正交矩阵,采用上述3模型聚合方法,将每组模型由3个聚合成为1个模型,再将各个组的模型平均即可得到多终端最终聚合的目标模型。模型聚合的具体过程请参考后续实施例。
157.3024、服务器将目标参数发送给终端;
158.服务器将目标模型的目标参数发送给终端,可选地,服务器通过通信模块将聚合后的目标模型发送给各个终端,目标模型被保存至终端的模型管理器中。端侧相册应用接受模型并进行更新。更新后的智能相册识别模型可以对用户的相册图像进行重新识别。
159.图3c为本技术实施例中模型更新方法的一个交互实施例示意图;
160.301、服务器向终端发送学习启动请求;
161.302、终端加载模型和训练参数;
162.303、终端启动训练,获取训练后的模型的参数和正交矩阵集合;
163.304、终端向服务器发送模型和正交矩阵集合;
164.需要说明的是,向服务器发送训练后的模型和正交矩阵集合的终端至少有两个,每个终端执行的步骤类似,因此,图3c中仅以一个终端为例进行示意。
165.305、服务器进行模型聚合;
166.服务器根据联邦学习系统中发送向服务器发送模型和正交矩阵集合的终端的数量确定模型聚合策略,对于两个终端、三个终端或三个以上终端的场景分别根据不同的聚合算法进行模型聚合。
167.306、服务器向终端发送聚合后的目标参数;
168.服务器向至少两个终端分别发送聚合后的目标模型的目标参数。
169.307、终端根据目标参数更新模型;
170.步骤301至步骤307中终端或服务器执行的步骤与前述图3a-图3b对应的实施例中介绍的步骤类似,此处不再赘述。
171.二、终端-终端架构。
172.下面结合图4a和图4b,对本技术实施例提供的模型更新方法的另一个应用场景进行介绍。
173.4011、第一终端加载模型和训练参数;
174.4012、第一终端启动训练,获取训练后的模型以及正交矩阵集合;
175.第一终端可以根据预设的时间节点启动训练,或者根据用户指令开启训练,具体此处不做限定。
176.步骤4011至步骤4014与图3a对应的实施例中的步骤3012至步骤3013类似,具体此处不再赘述。
177.4013、第一终端接收第二终端发送的模型和正交矩阵集合;
178.共同进行模型聚合的至少两个终端都分布根据各自的本地数据对模型进行训练,然后将获取的模型的参数以及正交矩阵集合发送给其他终端,需要说明的是,第二终端的数量可以为一个或多个,具体此处不做限定。
179.4014、第一终端进行模型聚合,获取聚合后的模型;
180.步骤4013至步骤4014与图3b对应的实施例总的步骤3022至3023类似,具体此处不再赘述。
181.图4b为本技术实施例中模型更新方法的另一个交互实施例示意图;
182.401、第一终端加载模型和训练参数;
183.402、第一终端启动训练,获取训练后的模型的参数和正交矩阵集合;
184.403、第二终端加载模型和训练参数;
185.404、第二终端启动训练,获取训练后的模型的参数和正交矩阵集合;
186.405、第二终端向第一终端发送模型的参数和正交矩阵集合;
187.端侧节点的数量可以为2个、3个或者3个以上,具体此处不做限定。
188.406、第一终端进行模型聚合,并更新模型;
189.步骤401至步骤406与图3c中步骤302至步骤305类似,具体此处不再赘述。
190.需要说明的是,图4b中仅示意了两个终端,可以理解的是,对于三个或三个以上的终端共同进行模型聚合的场景同样适用,此处对于终端的数量不做限定。
191.下面结合图5a-图5b对终端侧正交矩阵的获取方法进行介绍。
192.端侧训练的过程如下:
193.1)端侧数据准备;
194.2)设置训练相关信息,包括:模型、损失函数、优化器及训练参数等;
195.3)端侧模型训练及正交矩阵计算。
196.根据输入模型每一层网络的数据,可以计算该层网络的参数对应的正交矩阵。计算正交矩阵的计算方法有多种,可选地,通过非迭代式(a)计算的方法获取,或者通过迭代式(b)计算的方法获取,下面分别进行详细介绍。
197.(a)非迭代式计算。主要包含两个步骤:模型训练及正交矩阵计算。
198.模型训练:采用常规的梯度下降方法进行模型训练直至收敛得到模型w
l
,表示模型总共包含l层参数。模型训练的具体过程为已有技术,此处不再赘述。
199.正交矩阵计算的过程请参阅图5a:
200.5011、获取每一网络层的输入数据的特征图;
201.将端侧所有数据重新输入到模型中,进行预测,并得到网络第l层的输出特征图n为输入模型的小批量数据个数,在该计算方式中,c为通道数,h、w表示每个通道特征图的尺寸,分别代表高度和宽度。
202.5012、根据每一网络层的卷积核尺寸确定特征图中的特征图区域;
203.网络第l层的输出特征图f
l
同时也表示第l 1层模型的输入,与第l 1层模型参数进行卷积计算。假设预置的l 1层模型的参数为(也称为卷积核),根据预置的卷积计算控制参数包括填充(padding)和步长(stride)在特征图f
l
上进行滑动卷积计算,每次滑动时,所有样本在第l层的特征图f
l
上第h行,w列位置f
l
(h,w)与卷积核对应的特征图区域为:
[0204][0205]
5013、根据网络每一层的卷积核尺寸在该层的特征图中进行滑动,获取特征图区域集合;
[0206]
滑动所有位置h∈{1,2,

,h},w∈{1,2,

,w}后得到所有特征图区域集合:
[0207][0208]
5014、基于正交投影矩阵计算公式对多个特征图区域进行计算,得到网络每一层参数对应的正交矩阵。
[0209]
根据可按以下公式计算l 1层卷积核w
l 1
对应的正交投影矩阵
[0210][0211]
[0212]
其中,i为单位矩阵,α为预设系数,例如为1*10-3
[0213]
最终,可以得到该模型所有网络层中每一层参数对应的正交矩阵的集合p
l

[0214]
p
l
={p
l
},l∈{1,2,

,l}
[0215]
(b)迭代式计算。
[0216]
迭代式计算的方法,是在模型训练的每一次迭代中更新模型参数以及正交矩阵。具体的,图像经过网络的每一层参数,进行前向计算,每一层的输出作为上一层的输入。根据每一层的输入,同步计算当前层网络参数的正交矩阵p。网络前向计算完成后,根据损失函数计算网络每层参数的梯度信息。利用梯度信息及正交矩阵,模型参数进行更新。至此,单个数据块完成一次迭代训练,保存该次迭代的模型和正交矩阵,并接受下一个数据块的输入,进入下一次迭代训练。训练过程持续e次迭代,最终保存最新更新的模型m及正交矩阵p。
[0217]
模型训练过程中,正交矩阵计算与模型参数更新同步进行。
[0218]
模型训练包括前向传播和反向传播两个部分,其中,迭代计算方式中正交矩阵计算发生在前向传播过程中。
[0219]
请参阅图5b,对前向传播及正交矩阵计算进行介绍:
[0220]
5021、在前向传播过程中,获取每一次迭代中,每一层网络参数的正交矩阵;
[0221]
对于第一次迭代,可以参考预设的模型参数和正交矩阵。
[0222]
假设第t 1次训练迭代开始时,模型的参数为w
l
(t),模型所有层参数的正交矩阵集合为p
l
(t)={p
l
(t)}。
[0223]
5022、根据网络每一层的卷积核在该层的输入数据的特征图中进行滑动,以得到特征图中的多个特征图区域;
[0224]
可选地,可以对多个特征图区域进行平均化处理,获取平均化的特征图区域,以减少计算量;前向传播过程为常规的神经网络前向传播过程。在该过程的第l层输出特征图f
l
,与第l 1层模型参数前向计算过程,与上述a2步骤类似,获得所有样本在第l层的特征图f
l
上第h行,w列位置f
l
(h,w)与卷积核对应的特征图区域:
[0225][0226]
在样本维度n进行平均化处理得到:
[0227][0228]
5023、根据上一轮迭代中,该层网络参数的正交矩阵和预设公式更新本轮迭代中该层网络参数的正交矩阵。
[0229]
采用上一次,即第t次迭代,第l 1层的正交矩阵p
l 1
(t),按以下公式计算第t 1次迭代第l 1层的正交矩阵p
l 1
(t 1):
[0230][0231]
k=p
l 1
(t)
·
(a
l
)
t
[0232]
p
l 1
(t 1)=p
l 1
(t)-kk
t
/(α a
l
k)
[0233]
其中,a
l
和k为中间参数,α为预设系数,取值不做限定,示例性的,α为1
×
10-3

[0234]
反向传播过程:
[0235]
第t 1次前向传播完成后,模型进行常规的损失函数计算,以及梯度计算,获得模
型所有层参数的梯度值δw
l
(t 1),接下来进行梯度更新过程。可选地,梯度更新过程可采用常规的更新方法,可选地,梯度更新过程也可结合正交矩阵进行更新。下面分别进行介绍:
[0236]
1):常规更新方法:
[0237]wl
(t 1)=w
l
(t 1)-ηδw
l
(t 1)
[0238]
其中,η为预置的学习率参数。
[0239]
2):结合正交矩阵梯度更新方法:
[0240]
δw
l
(t 1)=p
l 1
(t 1)
·
δw
l
(t 1)
[0241]wl
(t 1)=w
l
(t 1)-ηδw
l
(t 1)
[0242]
至此,获得第t 1次训练完成后每一层正交矩阵集合:
[0243]
每一层前向传播完成后,第t 1次训练迭代的模型所有层采纳数的正交矩阵集合:
[0244]
p
l
(t 1)={p
l
(t 1)},l∈{1,2,

,l}
[0245]
以及模型参数:
[0246]wl
(t 1)
[0247]
多轮迭代训练:模型经过t次迭代后,获得最终收敛的模型参数w
l
及正交矩阵集合p
l
[0248]
下面结合图6a至图6d,对本技术实施例中模型聚合的过程进行介绍,基于进行模型聚合的终端用户的数量为2个、3个或4个及以上分别进行说明。
[0249]
已有的模型聚合方法,直接对终端上传的模型进行聚合,加权平均系数由各个模型的训练数据量确定,只关注了用户数据量的差异,模型的多个参数均使用统一的加权系数。如图6a所示,聚合后的模型(model*)可能偏离原模型(model 1和model 2)的知识空间,聚合后的模型性能较差。
[0250]
一、双模型聚合:
[0251]
当只有两个终端模型上传至云端时,采用双模型参数聚合的方法:
[0252]
1)接收端侧用户发送的训练结果:正交矩阵p及模型m;
[0253]
2)假设用户1的模型为w1,正交矩阵为p1;用户2的模型为w2,正交矩阵为p2,在参数的多维空间中,模型1往模型2方向更新,更新方法如下,其中第l层参数更新方式为:
[0254][0255]
μ为预设系数,取值范围为大于0,小于或等于1。
[0256]
按照以上方法,模型2往模型1上更新,获得w21
[0257][0258]
两个模型更新完成后,进行平均计算,获得聚合后的模型:
[0259][0260]
示例性的,请参阅图6b,根据模型1对应的正交矩阵集合(p1)进行加权计算,模型1(w1)向模型2(w2)方向更新,得到模型(w12),类似地,模型2向模型1方向更新,得到w21,最后,根据w21和w12进行平均,得到聚合后的目标模型(w)。
[0261]
二、三模型聚合:
[0262]
当只有3个用户模型上传至云端时,采用三模型参数聚合:
[0263]
1)搜集端侧各个用户训练结果,包括正交矩阵p及模型参数m
[0264]
2)假设3个用户模型分别为w1,w2,w3以及对应的正交矩阵p1,p2,p3。则模型1往模型2方向更新,获得w12,更新的方法如下,其中第l层参数更新方式为:
[0265][0266]
按照以上方法,模型2往模型3方向更新,获得w23
[0267][0268]
按照以上方法,模型3往模型1方向更新,获得w31
[0269][0270]
3个模型更新完成后进行平均计算,获得该小组最终聚合模型w
[0271][0272]
示例性的,请参阅图6c,根据模型1对应的正交矩阵集合(p1)进行加权计算,模型1(w1)向模型2(w2)方向更新,得到模型w12,类似地,模型2向模型3方向更新,得到模型w23,模型3向模型1方向更新,得到模型w31,最后,根据w12、w23和w31进行平均,得到聚合后的目标模型(w)。
[0273]
三、多模型聚合:
[0274]
当超过3个用户模型上传至云端时,采用多模型参数聚合
[0275]
1)搜集端侧各个用户训练结果,包括正交矩阵p及模型参数m。
[0276]
2)将多用户随机分成多个小组,每组最多包含3个用户,每组中采用3模型聚合方案,假设小组包含w1,w2,w3三个模型以及对应的正交矩阵p1,p2,p3。则模型1往模型2方向更新,获得w12,更新的方法如下,其中第l层参数更新方式为:
[0277][0278]
按照以上方法,模型2往模型3方向更新,获得
[0279][0280]
按照以上方法,模型3往模型1方向更新,获得
[0281][0282]
3个模型更新完成后进行平均计算,获得该小组最终聚合模型w
l
[0283][0284]
4)多个小组模型聚合采用平均的方法,获得所有用户的最终聚合模型
[0285]wl
=avg(w
l
)
[0286]
至此,完成云端多用户模型参数聚合。
[0287]
示例性的,请参阅图6d,假设云端服务器接收到6个终端用户发送的模型以及正交矩阵集合,首先,可以对6个终端用户进行分组,可选地,将6个终端用户分为2个终端集合,第一个终端集合包括终端1、终端2和终端3,第二个终端集合包括终端4、终端5和终端6,可以理解的是,分组的方式有多种,例如还可以将6个终端用户分为3个终端集合,每个终端集合包括2个终端,具体分组方式此处不做限定,需要注意的是,每个终端集合中包括2个或3个终端。每个终端集合中的终端可以参考前面介绍的双模型聚合方法或三模型聚合方法进
行模型聚合,分别得到模型a和模型b,然后再将各个模型集合聚合后的模型进行平均,得到目标模型。
[0288]
上面介绍了本技术提供的模型更新的方法,下面对实现该模型更新的方法的终端进行介绍,请参阅图7,为本技术实施例中终端的一个实施例示意图。
[0289]
图7中的各个模块的只一个或多个可以软件、硬件、固件或其结合实现。所述软件或固件包括但不限于计算机程序指令或代码,并可以被硬件处理器所执行。所述硬件包括但不限于各类集成电路,如中央处理单元(cpu)、数字信号处理器(dsp)、现场可编程门阵列(fpga)或专用集成电路(asic)。
[0290]
该终端应用于联邦学习场景,包括:
[0291]
获取单元701,用于根据本地数据对模型进行训练,以获取训练后的模型的参数;
[0292]
所述获取单元701,还用于获取所述本地数据的分布特征;
[0293]
发送单元702,用于将所述参数和所述分布特征发送给服务器,所述服务器用于基于至少两个所述终端发送的参数和所述分布特征进行模型聚合,以获取聚合后的模型的目标参数;
[0294]
接收单元703,用于接收所述服务器发送的所述目标参数,并根据所述目标参数更新所述训练后的模型以获取目标模型。
[0295]
可选地,所述分布特征具体包括正交矩阵集合,所述正交矩阵集合包括第一正交矩阵,所述第一正交矩阵根据输入所述模型的第一网络层的第一数据确定,所述第一正交矩阵用于确定所述目标模型的第一网络层的第一目标参数,所述第一网络层为所述模型中的任意一个网络层。
[0296]
可选地,所述获取单元701具体用于:获取所述本地数据的分布特征具体包括:获取输入所述模型的第一网络层的第一数据的特征图;根据所述第一网络层的卷积核尺寸从所述特征图中确定多个特征图区域;根据所述多个特征图区域获取所述第一正交矩阵。
[0297]
可选地,所述训练包括n次迭代训练过程;所述获取单元701具体用于:在第i 1次迭代训练过程中,基于输入所述第一网络层的数据的特征图,对第i次迭代训练过程中所述第一网络层对应的正交矩阵进行更新,以获取第i 1次迭代训练过程中所述第一网络层对应的第一正交矩阵,所述i大于0,且小于或等于所述n。
[0298]
可选地,所述获取单元701具体用于:在第i 1次迭代训练过程中,基于输入所述第一网络层的数据和所述第一网络层的卷积核尺寸获取多个特征图区域;获取所述多个特征图区域的平均化后的目标特征图;根据所述目标特征图对第i次迭代训练过程中所述第一网络层对应的正交矩阵进行更新,以获取第i 1次迭代训练过程中所述第一网络层对应的正交矩阵。
[0299]
可选地,所述接收单元703还用于:接收所述服务器发送的学习启动请求,所述学习启动请求用于指示训练所述模型。
[0300]
可选地,所述接收单元703还用于:接收所述服务器发送的所述模型和训练参数。
[0301]
下面对实现该模型更新的方法的服务器进行介绍,请参阅图8,为本技术实施例中服务器的一个实施例示意图。
[0302]
图8中的各个模块的只一个或多个可以软件、硬件、固件或其结合实现。所述软件或固件包括但不限于计算机程序指令或代码,并可以被硬件处理器所执行。所述硬件包括
但不限于各类集成电路,如中央处理单元(cpu)、数字信号处理器(dsp)、现场可编程门阵列(fpga)或专用集成电路(asic)。
[0303]
该一种服务器应用于联邦学习场景,包括:
[0304]
接收单元801,用于接收至少两个终端中每个终端发送的训练后的模型的参数和所述终端用于训练模型的本地数据的分布特征;
[0305]
获取单元802,用于根据所述参数和所述分布特征进行模型聚合,以获取聚合后的目标模型的目标参数;
[0306]
发送单元803,用于将所述目标参数发送给所述至少两个终端,以使得所述至少两个终端中每个终端基于所述目标参数更新所述训练后的模型以获取所述目标模型。
[0307]
可选地,所述分布特征具体包括正交矩阵集合,所述正交矩阵集合包括第一正交矩阵,所述第一正交矩阵用于确定所述目标模型的第一网络层的第一目标参数,所述第一网络层为所述模型中的任意一个网络层。
[0308]
可选地,所述接收单元801具体用于:接收第一终端发送的第一参数和第一分布特征,以及第二终端发送的第二参数和第二分布特征;所述获取单元802具体用于:根据所述第一分布特征,确定在多维空间中所述第一参数向所述第二参数方向聚合后的第一目标参数;根据所述第二分布特征,确定在多维空间中所述第二参数向所述第一参数方向聚合后的第二目标参数;根据所述第一目标参数和所述第二目标参数确定所述目标模型的目标参数。
[0309]
可选地,所述接收单元801具体用于:接收第一终端发送的第一参数和第一分布特征,以及第二终端发送的第二参数和第二分布特征,以及第三终端发送的第三参数和第三分布特征;所述获取单元802具体用于:根据所述第一分布特征,确定在多维空间中所述第一参数向所述第二参数方向聚合后的第一目标参数;根据所述第二分布特征,确定在多维空间中所述第二参数向所述第三参数方向聚合后的第二目标参数;根据所述第三分布特征,确定在多维空间中所述第三参数向所述第一参数方向聚合后的第三目标参数;根据所述第一目标参数、所述第二目标参数和所述第三目标参数确定所述目标模型的目标参数。
[0310]
可选地,所述至少两个终端包括至少四个终端;所述服务器还包括:处理单元804,用于:对所述至少四个终端进行分组,确定多个终端集合,所述多个终端集合中任意一个终端集合包括两个或三个终端;所述获取单元802具体用于:分别获取所述多个终端集合中每个终端集合聚合后的参数;根据所述每个终端集合聚合后的参数获取所述目标参数。
[0311]
可选地,所述发送单元803还用于:向所述至少两个终端发送学习启动请求。
[0312]
可选地,所述发送单元803还用于:向所述至少两个终端发送模型和训练参数。
[0313]
请参阅图9,为本技术实施例中终端的另一个实施例示意图;
[0314]
本实施例提供的终端900,包括手机、平板电脑、车载设备或可穿戴设备等,本技术实施例中对其具体设备形态不做限定。
[0315]
该终端900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器901和存储器902,该存储器902中存储有程序或数据。
[0316]
其中,存储器902可以是易失性存储或非易失性存储。可选地,处理器901是一个或多个中央处理器(cpu,central processing unit,该cpu可以是单核cpu,也可以是多核cpu。处理器901可以与存储器902通信,在终端900上执行存储器902中的一系列指令。
[0317]
该终端900还包括一个或一个以上有线或无线网络接口903,例如以太网接口。
[0318]
可选地,尽管图9中未示出,终端900还可以包括一个或一个以上电源;一个或一个以上输入输出接口,输入输出接口可以用于连接显示器、鼠标、键盘、触摸屏设备或传感设备等,输入输出接口为可选部件,可以存在也可以不存在,此处不做限定。
[0319]
本实施例中终端900中的处理器901所执行的流程可以参考前述方法实施例中描述的方法流程,此处不加赘述。
[0320]
请参阅图10,为本技术实施例中服务器的另一个实施例示意图;
[0321]
本实施例提供的服务器1000,本技术实施例中对其具体设备形态不做限定。
[0322]
该服务器1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器1001和存储器1002,该存储器1002中存储有程序或数据。
[0323]
其中,存储器1002可以是易失性存储或非易失性存储。可选地,处理器1001是一个或多个中央处理器(cpu,central processing unit,该cpu可以是单核cpu,也可以是多核cpu。处理器1001可以与存储器1002通信,在服务器1000上执行存储器1002中的一系列指令。
[0324]
该服务器1000还包括一个或一个以上有线或无线网络接口1003,例如以太网接口。
[0325]
可选地,尽管图10中未示出,服务器1000还可以包括一个或一个以上电源;一个或一个以上输入输出接口,输入输出接口可以用于连接显示器、鼠标、键盘、触摸屏设备或传感设备等,输入输出接口为可选部件,可以存在也可以不存在,此处不做限定。
[0326]
本实施例中服务器1000中的处理器1001所执行的流程可以参考前述方法实施例中描述的方法流程,此处不加赘述。
[0327]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0328]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0329]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0330]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0331]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式
体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0332]
以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献