1.本技术涉及机器学习技术领域,尤其涉及一种数据处理方法、机器学习的训练方法及相关装置、设备。
背景技术:2.在互联网、大数据和机器学习的助推下,人工智能技术日新月异,刷脸支付、辅助诊断、个性化服务等逐步走人大众视野并深刻改变着人类的生产与生活方式。然而,在这些外表光鲜的智能产品背后,用户的生理特征、医疗记录、社交网络等大量个人敏感数据无时无刻不在被各类企业、机构肆意收集。大规模数据收集能够带动机器学习性能的提升,实现经济效益和社会效益的共贏,但也令个人隐私保护面临更大的风险与挑战,主要表现在2方面:首先,由不可靠的数据收集者导致的数据泄露事件频发,不仅对企业造成重大经济和信誉损失,也对社会稳定和国家安全构成极大威胁;其次,大量研究表明,攻击者通过分析机器学习模型的输出结果,能够逆向推理出训练数据中个体的敏感信息。
3.传统的机器学习训练中,各方数据首先被数据收集者集中收集,然后由数据分析者进行模型训练,此模式称为集中学习(centralized learning),其中,数据收集者与数据分析者可以是同一方,如移动应用开发者;也可以是多方,如开发者将数据共享给其他数据分析机构。可见集中学习模式下,用户一旦被收集数据,便很难再拥有对数据的控制权,其数据将被用于何处、如何使用也不得而知。近年来,一部分研究者尝试令各方数据保留在本地的同时训练全局模型,此工作的典型代表为2017年google提出的联邦学习(federated learning)。具体来说,联邦学习系统中的联邦客户端在模型训练时不用给出己方数据,而是根据服务器端下发的全局模型参数和客户端的本地的数据集来训练本地模型,并返回本地模型参数供服务器端聚合更新全局模型参数,更新后的全局模型参数重新下发到客户端,以使客户端可以根据更新后的全局模型参数再次通过本地数据进行训练,多次重复执行“上传”“下发”的步骤,直至服务器确定训练好的机器学习模型满足收敛状态,从而可以完成联邦学习的训练过程。在实际应用中,客户端的本地数据和客户端的本地模型不会进行传输,本地数据也不会被反猜,联邦学习在较高程度保持数据完整性的同时,可以保护数据隐私。
4.由此可见,联邦学习在不需要共享本地数据到服务器的情况下,可以完成模型训练,达到传统集中学习训练的效果。然而,由于联邦学习的训练过程往往涉及大量的数据的传输,且训练过程涉及多次“上传”“下发”的步骤,这一实现方式容易带来网络传输开销大的问题。因此,如何减小上述训练过程中的网络传输开销是亟需解决的技术问题。
技术实现要素:5.本技术提供了一种数据处理方法、机器学习的训练方法及相关装置、设备,可以减少网络传输开销。
6.第一方面,提供了一种机器学习的训练方法,该方法应用于机器学习系统,机器学
习系统包括第一设备和m个第二设备,其中,m为大于等于1的正整数,第一设备与m个第二设备之间建立有通信连接(例如,可以通过有线或无线的方式进行通信);上述方法可以包括如下步骤:首先,第一设备分别向m个第二设备发送第一机器学习模型;其中,第一机器学习模型用于m个第二设备中的每个第二设备根据各自获取到的目标剪枝参数对第一机器学习模型进行剪枝,得到剪枝后的第一机器学习模型和剪枝位置信息;剪枝后的第一机器学习模型用于m个第二设备中的每个第二设备通过本地数据对剪枝后的第一机器学习模型进行训练,得到训练好的模型参数,并按照获取到的目标量化参数对模型参数进行量化,得到量化后的模型参数;其次,第一设备获取m个第二设备各自量化后的模型参数和剪枝位置信息;第一设备根据m个第二设备各自量化后的模型参数和剪枝位置信息进行聚合,得到第二机器学习模型;最后,在第二机器学习模型满足收敛状态的情况下,第一设备将第二机器学习模型确定为机器学习系统训练好的结果。
7.实施本技术实施例,在通过联邦学习系统对机器学习模型进行训练时,第二设备根据获取的目标剪枝参数对第一机器学习模型进行剪枝,得到剪枝后的第一机器学习模型和剪枝位置信息;通过本地数据对剪枝后的第一机器学习模型进行训练,得到训练好的模型参数,并按照获取的目标量化参数对模型参数进行量化,得到量化后的模型参数。之后,第二设备将量化后的模型参数和剪枝位置信息发送给第一设备,从而第一设备可以根据第二设备各自量化后的模型参数和剪枝位置信息进行聚合,以得到训练好的第二机器学习模型。由于目标剪枝参数和目标量化参数可以在减少第一设备与第二设备之间传输的数据量的同时,还可以提高联邦学习系统训练第一机器学习模型的收敛速度,通过这一实现方式,大大减少了网络传输开销。
8.在一种可能的实现方式中,方法还可以包括如下步骤:第一设备获取第k设备的设备信息,第k设备的设备信息包括第k设备与第一设备进行通信时的信道状态信息和第k设备的计算能力;其中,第k设备为m个第二设备中的任意一个设备;这里,信道状态信息用于指示信道质量的好坏。计算能力为每秒浮点运算次数;第一设备以m个第二设备各自完成本地训练所需的时间与各自上传量化后的模型参数所需的时间小于所有设备最大允许的训练时延,且m个第二设备对应的模型参数的范数最小为第一约束,根据m个第二设备各自对应的设备信息,将满足第一约束时的剪枝参数和量化参数作为目标剪枝参数和目标量化参数。由于这一实现方式综合考虑了所有第二设备的设备信息,可以提高整个机器学习系统训练机器学习模型的性能。
9.在一种可能的实现方式中,上述方法还可以包括如下步骤:第一设备获取m个第二设备中第k设备的设备信息,第k设备的设备信息包括第k设备与第一设备进行通信时的信道状态信息和第k设备的计算能力;第一设备以第k设备完成本地训练所需的时间与第k设备上传量化后的模型参数所需的时间小于单个设备最大允许的训练时延,且第k设备对应的模型参数的范数最小为第二约束,根据第k设备的设备信息,将满足第二约束时的剪枝参数和量化参数作为目标剪枝参数和目标量化参数。由于这一实现方式只单一考虑了一个第二设备的设备信息,可以提高信令开销上的收益。
10.在一种可能的实现方式中,目标剪枝参数和目标量化参数为m个第二设备中的第k设备以第k设备完成本地训练所需的时间与第k设备上传量化后的模型参数所需的时间小于单个设备最大允许的训练时延,且第k设备对应的模型参数的范数最小为第二约束,根据
自身的设备信息获取的参数;其中,设备信息包括第k设备与第一设备进行通信时的信道状态信息和第k设备的计算能力;第k设备为m个第二设备中的任意一个设备。
11.在一种可能的实现方式中,第一设备根据m个第二设备各自量化后的模型参数和剪枝位置信息进行聚合,得到第二机器学习模型的实现过程可以包括:第一设备根据剪枝位置信息对m个量化后的模型参数进行均值计算,得到全局模型参数,并根据全局模型参数得到第二机器学习模型。相较于现有技术而言,该实现方式中还考虑了剪枝位置信息,可以减少模型的规模,从而可以提高整个机器学习系统训练机器学习模型的收敛速度。
12.在一种可能的实现方式中,第一机器学习模型为全连接网络;剪枝位置信息用于指示以下信息中的至少一种:一个神经元与另一个神经元之间的权值被剪枝、一个神经元与另一个神经元之间的权值未被剪枝。
13.在一种可能的实现方式中,剪枝位置信息承载于位图表,位图表中包括权值的标识信息,通过第一值指示一个神经元与另一个神经元之间的权值被剪枝,通过第二值指示一个神经元与另一个神经元之间的权值未被剪枝。
14.在一种可能的实现方式中,第一机器学习模型为卷积神经网络;剪枝位置信息用于指示以下信息中的至少一种:卷积层中的卷积核被剪枝、卷积层中的卷积核未被剪枝。
15.在一种可能的实现方式中,剪枝位置信息承载于位图表,位图表中包括卷积核的标识信息,通过第一值指示卷积层中的卷积核被剪枝、通过第二值指示卷积层中的卷积核未被剪枝。
16.在一种可能的实现方式中,目标剪枝参数和目标量化参数承载于调制与编码策略mcs索引表,mcs索引表中包括mcs索引标识,每个msc索引标识分别与目标剪枝参数和目标量化参数一一对应。
17.在一种可能的实现方式中,目标剪枝参数和目标量化参数承载于信道质量指示cqi索引表,cqi索引表中包括cqi索引标识,每个cqi索引标识分别与目标剪枝参数和目标量化参数一一对应。
18.第二方面,本技术实施例提供了另一种机器学习的训练方法,方法应用于机器学习系统,机器学习系统包括第一设备和m个第二设备,其中,m为大于等于1的正整数,第一设备与m个第二设备之间建立有通信连接;方法可以包括如下步骤:首先,第k设备从第一设备获取第一机器学习模型;其中,第k设备为m个第二设备中的任意一个设备;其次,第k设备根据获取到的目标剪枝参数对第一机器学习模型进行剪枝,得到剪枝后的第一机器学习模型和剪枝位置信息;通过本地数据对剪枝后的第一机器学习模型进行训练,得到训练好的模型参数,并按照获取到的目标量化参数对模型参数进行量化,得到量化后的模型参数;最后,第k设备将量化后的模型参数和剪枝位置信息发送给第一设备;在第一设备根据m个第二设备各自量化后的模型参数和剪枝位置信息进行聚合,得到满足收敛状态的第二机器学习模型的情况下,第一设备将第二机器学习模型确定为机器学习系统训练好的结果。
19.实施本技术实施例,在通过联邦学习系统对机器学习模型进行训练时,m个第二设备均可以根据获取的目标剪枝参数对第一机器学习模型进行剪枝,得到剪枝后的第一机器学习模型和剪枝位置信息;通过本地数据对剪枝后的第一机器学习模型进行训练,得到训练好的模型参数,并按照获取的目标量化参数对模型参数进行量化,得到量化后的模型参数。之后,每个第二设备将量化后的模型参数和剪枝位置信息发送给第一设备,从而第一设
备可以根据m个第二设备各自量化后的模型参数和剪枝位置信息进行聚合,以得到训练好的第二机器学习模型。由于目标剪枝参数和目标量化参数可以在减少第一设备与第二设备之间传输的数据量的同时,还可以提高联邦学习系统训练第一机器学习模型的收敛速度,通过这一实现方式,大大减少了网络传输开销。
20.在一种可能的实现方式中,上述方法还可以包括如下步骤:第k设备获取自身的设备信息,设备信息包括第k设备与第一设备进行通信时的信道状态信息和第k设备的计算能力;以第k设备完成本地训练所需的时间与第k设备上传量化后的模型参数所需的时间小于单个设备最大允许的训练时延,且第k设备对应的模型参数的范数最小为第二约束,根据第k设备的设备信息,将满足第二约束时的剪枝参数和量化参数作为目标剪枝参数和目标量化参数。
21.在一种可能的实现方式中,目标剪枝参数和目标量化参数为第一设备以m个第二设备各自完成本地训练所需的时间与各自上传量化后的模型参数所需的时间小于所有设备最大允许的训练时延,且m个第二设备对应的模型参数的范数最小为第一约束,根据m个第二设备各自对应的设备信息获取的参数;其中,m个第二设备各自对应的设备信息包括每个第二设备与第一设备进行通信时的信道状态信息和每个第二设备的计算能力。
22.在一种可能的实现方式中,目标剪枝参数和目标量化参数为第一设备以第k设备完成本地训练所需的时间与第k设备上传量化后的模型参数所需的时间小于单个设备最大允许的训练时延,且第k设备对应的模型参数的范数最小为第二约束,根据第k设备的设备信息获取的参数;其中,第k设备的设备信息包括第k设备与第一设备进行通信时的信道状态信息和第k设备的计算能力。
23.在一种可能的实现方式中,第一机器学习模型为全连接网络;剪枝位置信息用于指示以下信息中的至少一种:一个神经元与另一个神经元之间的权值被剪枝、一个神经元与另一个神经元之间的权值未被剪枝。
24.在一种可能的实现方式中,剪枝位置信息承载于位图表,位图表中包括权值的标识信息,通过第一值指示一个神经元与另一个神经元之间的权值被剪枝,通过第二值指示一个神经元与另一个神经元之间的权值未被剪枝。
25.在一种可能的实现方式中,第一机器学习模型为卷积神经网络;剪枝位置信息用于指示以下信息中的至少一种:卷积层中的卷积核被剪枝、卷积层中的卷积核未被剪枝。
26.在一种可能的实现方式中,剪枝位置信息承载于位图表,位图表中包括卷积核的标识信息,通过第一值指示卷积层中的卷积核被剪枝、通过第二值指示卷积层中的卷积核未被剪枝。
27.第三方面,本技术实施例提供了一种数据处理方法,该方法包括:接收输入数据;将所述输入数据输入到训练好的第二机器学习模型,通过所述第二机器学习模型对所述输入数据进行处理,得到处理结果;其中,所述训练好的第二机器学习模型为通过上述第一方面或第二方面中任一项所述的机器学习的训练方法得到的;输出所述处理结果。
28.实施本技术实施例,由于第二机器学习模型为通过m个第二设备各自对应的本地数据进行训练得到的,在每个第二设备的本地数据差异性很大或差异性不大的情况下,这一实现方式都可以使得训练好的第二机器学习模型具有很强的泛化能力,当通过训练好的第二机器学习模型对输入数据进行处理时,可以提高输入数据的处理精度。例如,当输入数
据为图像时,可以提高图像的识别精度;又例如,当输入数据为语音时,可以提高语音的识别精度。
29.第四方面,本技术实施例提供了一种第一设备,第一设备应用于机器学习系统,该机器学习系统包括第一设备和m个第二设备,其中,m为大于等于1的正整数,第一设备与m个第二设备之间建立有通信连接,第一设备可以包括:发送单元,用于分别向m个第二设备发送第一机器学习模型;其中,所述第一机器学习模型用于所述m个第二设备中的每个第二设备根据各自获取到的目标剪枝参数对所述第一机器学习模型进行剪枝,得到剪枝后的所述第一机器学习模型和剪枝位置信息;所述剪枝后的第一机器学习模型用于所述m个第二设备中的每个第二设备通过本地数据对所述剪枝后的第一机器学习模型进行训练,得到训练好的模型参数,并按照获取到的目标量化参数对所述模型参数进行量化,得到量化后的模型参数;获取单元,用于获取所述m个第二设备各自量化后的模型参数和剪枝位置信息;训练单元,用于根据所述m个第二设备各自量化后的模型参数和所述剪枝位置信息进行聚合,得到第二机器学习模型;确定单元,用于在所述第二机器学习模型满足收敛状态的情况下,所述第一设备将所述第二机器学习模型确定为所述机器学习系统训练好的结果。
30.在一种可能的实现方式中,第一设备还可以包括:第一获取信息单元,用于获取第k设备的设备信息,所述第k设备的设备信息包括所述第k设备与所述第一设备进行通信时的信道状态信息和所述第k设备的计算能力;其中,所述第k设备为所述m个第二设备中的任意一个设备;第一确定参数单元,用于以所述m个第二设备各自完成本地训练所需的时间与各自上传所述量化后的模型参数所需的时间小于所有设备最大允许的训练时延,且所述m个第二设备对应的模型参数的范数最小为第一约束,根据所述m个第二设备各自对应的设备信息,将满足所述第一约束时的剪枝参数和量化参数作为所述目标剪枝参数和所述目标量化参数。
31.在一种可能的实现方式中,第一设备还可以包括:第二获取信息单元,用于获取所述m个第二设备中第k设备的设备信息,所述第k设备的设备信息包括所述第k设备与所述第一设备进行通信时的信道状态信息和所述第k设备的计算能力;第二确定参数单元,用于以所述第k设备完成本地训练所需的时间与所述第k设备上传所述量化后的模型参数所需的时间小于单个设备最大允许的训练时延,且所述第k设备对应的模型参数的范数最小为第二约束,根据所述第k设备的设备信息,将满足所述第二约束时的剪枝参数和量化参数作为所述目标剪枝参数和所述目标量化参数。
32.在一种可能的实现方式中,所述目标剪枝参数和所述目标量化参数为所述m个第二设备中的第k设备以所述第k设备完成本地训练所需的时间与所述第k设备上传所述量化后的模型参数所需的时间小于单个设备最大允许的训练时延,且所述第k设备对应的模型参数的范数最小为第二约束,根据自身的设备信息获取的参数;其中,所述设备信息包括所述第k设备与所述第一设备进行通信时的信道状态信息和所述第k设备的计算能力;所述第k设备为所述m个第二设备中的任意一个设备。
33.在一种可能的实现方式中,训练单元,具体用于:根据所述剪枝位置信息对所述m个量化后的模型参数进行均值计算,得到全局模型参数,并根据所述全局模型参数得到所述第二机器学习模型。
34.在一种可能的实现方式中,所述第一机器学习模型为全连接网络;所述剪枝位置
信息用于指示以下信息中的至少一种:一个神经元与另一个神经元之间的权值被剪枝、一个神经元与另一个神经元之间的权值未被剪枝。
35.在一种可能的实现方式中,所述剪枝位置信息承载于位图表,所述位图表中包括所述权值的标识信息,通过第一值指示一个神经元与另一个神经元之间的权值被剪枝,通过第二值指示一个神经元与另一个神经元之间的权值未被剪枝。
36.在一种可能的实现方式中,所述第一机器学习模型为卷积神经网络;所述剪枝位置信息用于指示以下信息中的至少一种:卷积层中的卷积核被剪枝、卷积层中的卷积核未被剪枝。
37.在一种可能的实现方式中,所述剪枝位置信息承载于位图表,所述位图表中包括所述卷积核的标识信息,通过第一值指示卷积层中的卷积核被剪枝、通过第二值指示卷积层中的卷积核未被剪枝。
38.在一种可能的实现方式中,所述目标剪枝参数和所述目标量化参数承载于调制与编码策略mcs索引表,所述mcs索引表中包括mcs索引标识,每个msc索引标识分别与所述目标剪枝参数和所述目标量化参数一一对应。
39.在一种可能的实现方式中,所述目标剪枝参数和所述目标量化参数承载于信道质量指示cqi索引表,所述cqi索引表中包括cqi索引标识,每个cqi索引标识分别与所述目标剪枝参数和所述目标量化参数一一对应。
40.第五方面,本技术实施例提供了一种第二设备,第二设备应用于机器学习系统,该机器学习系统包括第一设备和m个第二设备,其中,m为大于等于1的正整数,第一设备与m个第二设备之间建立有通信连接,m个第二设备中的第k设备包括:获取单元,用于从所述第一设备获取第一机器学习模型;其中,第k设备为所述m个第二设备中的任意一个设备;剪枝单元,用于根据获取到的目标剪枝参数对所述第一机器学习模型进行剪枝,得到剪枝后的所述第一机器学习模型和剪枝位置信息;量化训练单元,用于通过本地数据对所述剪枝后的第一机器学习模型进行训练,得到训练好的模型参数,并按照获取到的目标量化参数对所述模型参数进行量化,得到量化后的模型参数;发送单元,将所述量化后的模型参数和剪枝位置信息发送给所述第一设备;在所述第一设备根据所述m个第二设备各自量化后的模型参数和剪枝位置信息进行聚合,得到满足收敛状态的第二机器学习模型的情况下,所述第一设备将所述第二机器学习模型确定为所述机器学习系统训练好的结果。
41.在一种可能的实现方式中,第二设备还可以包括:获取信息单元,用于获取自身的设备信息,所述设备信息包括所述第k设备与所述第一设备进行通信时的信道状态信息和所述第k设备的计算能力;确定参数单元,用于以所述第k设备完成本地训练所需的时间与所述第k设备上传所述量化后的模型参数所需的时间小于单个设备最大允许的训练时延,且所述第k设备对应的模型参数的范数最小为第二约束,根据所述第k设备的设备信息,将满足所述第二约束时的剪枝参数和量化参数作为所述目标剪枝参数和所述目标量化参数。
42.在一种可能的实现方式中,所述目标剪枝参数和所述目标量化参数为所述第一设备以所述m个第二设备各自完成本地训练所需的时间与各自上传所述量化后的模型参数所需的时间小于所有设备最大允许的训练时延,且所述m个第二设备对应的模型参数的范数最小为第一约束,根据所述m个第二设备各自对应的设备信息获取的参数;其中,所述m个第二设备各自对应的设备信息包括每个第二设备与第一设备进行通信时的信道状态信息和
每个第二设备的计算能力。
43.在一种可能的实现方式中,所述目标剪枝参数和所述目标量化参数为所述第一设备以所述第k设备完成本地训练所需的时间与所述第k设备上传所述量化后的模型参数所需的时间小于单个设备最大允许的训练时延,且所述第k设备对应的模型参数的范数最小为第二约束,根据所述第k设备的设备信息获取的参数;其中,所述第k设备的设备信息包括所述第k设备与所述第一设备进行通信时的信道状态信息和所述第k设备的计算能力。
44.在一种可能的实现方式中,所述第一机器学习模型为全连接网络;所述剪枝位置信息用于指示以下信息中的至少一种:一个神经元与另一个神经元之间的权值被剪枝、一个神经元与另一个神经元之间的权值未被剪枝。
45.在一种可能的实现方式中,所述剪枝位置信息承载于位图表,所述位图表中包括所述权值的标识信息,通过第一值指示一个神经元与另一个神经元之间的权值被剪枝,通过第二值指示一个神经元与另一个神经元之间的权值未被剪枝。
46.在一种可能的实现方式中,所述第一机器学习模型为卷积神经网络;所述剪枝位置信息用于指示以下信息中的至少一种:卷积层中的卷积核被剪枝、卷积层中的卷积核未被剪枝。
47.在一种可能的实现方式中,所述剪枝位置信息承载于位图表,所述位图表中包括所述卷积核的标识信息,通过第一值指示卷积层中的卷积核被剪枝、通过第二值指示卷积层中的卷积核未被剪枝。
48.第六方面,本技术实施例提供了一种数据处理装置,该装置可以包括:接收单元,用于接收输入数据;处理单元,用于将所述输入数据输入到训练好的第二机器学习模型,通过所述第二机器学习模型对所述输入数据进行处理,得到处理结果;其中,所述训练好的第二机器学习模型为通过如上述第一方面或第二方面中任一项所述的机器学习的训练方法得到的;输出单元,用于输出所述处理结果。
49.实施本技术实施例,由于第二机器学习模型为通过m个第二设备各自对应的本地数据进行训练得到的,在每个第二设备的本地数据差异性很大或差异性不大的情况下,这一实现方式都可以使得训练好的第二机器学习模型具有很强的泛化能力,当通过训练好的第二机器学习模型对输入数据进行处理时,可以提高输入数据的处理精度。例如,当输入数据为图像时,可以提高图像的识别精度;又例如,当输入数据为语音时,可以提高语音的识别精度。
50.第七方面,本技术实施例提供了另一种第一设备,该第一设备可以包括存储器和处理器,所述存储器用于存储支持第一设备执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。
51.第八方面,本技术实施例提供了另一种第二设备,该第二设备可以包括存储器和处理器,所述存储器用于存储支持第二设备执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第二方面的方法。
52.第九方面,本技术实施例提供了一种数据处理设备,该设备可以包括存储器和处理器,所述存储器用于存储支持数据处理设备执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第三方面的方法。
53.第十方面,本技术实施例还提供一种计算机可读存储介质,所述计算机存储介质
存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
54.第十一方面,本技术实施例还提供一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第二方面的方法。
55.第十二方面,本技术实施例还提供一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第三方面的方法。
56.第十三方面,本技术实施例还提供了一种计算机程序,所述计算机程序包括计算机软件指令,所述计算机软件指令当被计算机执行时使所述计算机执行如第一方面所述的任一种机器学习的训练方法。
57.第十四方面,本技术实施例还提供了一种计算机程序,所述计算机程序包括计算机软件指令,所述计算机软件指令当被计算机执行时使所述计算机执行如第二方面所述的任一种机器学习的训练方法。
58.第十五方面,本技术实施例还提供了一种计算机程序,所述计算机程序包括计算机软件指令,所述计算机软件指令当被计算机执行时使所述计算机执行如第三方面所述的任一种数据处理方法。
附图说明
59.图1a为本技术实施例提供的一种联邦学习系统的网络架构示意图;
60.图1b为本技术实施例提供的一种联邦机器学习的过程示意图;
61.图1c为本技术实施例提供的一种第一应用场景的示意图;
62.图1d为本技术实施例提供的一种第二应用场景的示意图;
63.图2a为本技术实施例提供的一种系统架构200的结构示意图;
64.图2b为本技术实施例提供的一种卷积神经网络的结构示意图;
65.图2c为本技术实施例提供的另一种卷积神经网络的结构示意图;
66.图2d为本技术实施例提供的一种全连接网络的结构示意图;
67.图3为本技术摔死了提供的一种芯片的硬件结构示意图;
68.图4为本技术实施例提供的一种机器学习的训练方法的流程示意图;
69.图5a为本技术实施例提供的一种全连接网络中权值的剪枝位置信息的示意图;
70.图5b为本技术实施例提供的一种卷积神经网络中卷积核的剪枝位置信息的示意图;
71.图6a为本技术实施例提供的一种确定目标剪枝参数和目标量化参数的方法的流程示意图;
72.图6b为本技术实施例提供的另一种确定目标剪枝参数和目标量化参数的方法的流程示意图;
73.图6c为本技术实施例提供的另一种确定目标剪枝参数和目标量化参数的方法的流程示意图;
74.图7a为本技术实施例提供的一种数据处理方法的流程示意图;
75.图7b为本技术实施例提供的一种数据处理过程的示意图;
76.图8为本技术实施例提供的一种第一设备的结构示意图;
77.图9为本技术实施例提供的一种第二设备的结构示意图;
78.图10为本技术实施例提供的一种数据处理装置100的结构示意图;
79.图11为本技术实施例提供的另一种第一设备的结构示意图;
80.图12为本技术实施例提供的另一种第二设备的结构示意图;
81.图13为本技术实施例提供的一种数据处理设备的结构示意图。
具体实施方式
82.下面结合附图对本技术实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。
83.本技术的说明书以及附图中的术语“第一”和“第二”等是用于区分不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。此外,本技术的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一些列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。需要说明的是,本技术实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方法不应被解释为比其他实施例或设计方案更优地或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。在本技术实施例中,“a和/或b”表示a和b,a或b两个含义。“a,和/或b,和/或c”表示a、b、c中的任一个,或者,表示a、b、c中的任两个,或者,表示a和b和c。下面将结合附图,对本技术中的技术方案进行描述。
84.在本技术方案中,机器学习系统可以包括但不限于联邦学习系统。出于阐述的便利,以机器学习系统为联邦学习系统为例进行阐述。
85.随着人工智能技术(artificial intelligence,ai)的发展,算法的准确率高度往往依赖于海量用户数据的训练分析,来进一步提供个性化的推荐、情景感知等服务,因此需要把大量用户个人信息传输给不同算法和系统,这种情况无疑加大了用户个人信息泄露的风险。同时,一些第三方应用未经用户授权而私自使用用户数据的行为时有发生。隐私数据安全问题在ai终端上进一步凸显,如何平衡隐私保护与技术应用成为ai终端产业发展需要考虑的问题。基于此,谷歌提出的联邦学习网络可作为端侧人工智能的算法,具有即时响应、可靠性提升、保护隐私等优点,逐渐成为模型训练的发展趋势之一。
86.在本技术实施例中,联邦学习,又称联合学习、联盟学习,是指在满足隐私保护和数据安全的前提下,设计一个机器学习框架,使各个机构在不交换数据的情况下进行协作,提升机器学习的效果。其核心就是解决数据孤岛和数据隐私保护的问题,通过建立一个数据“联邦”,让参与各方都获益,推动技术整体持续进步。
87.在本技术实施例中,联邦学习的实现策略是:建立一个虚拟的共享模型。这个虚拟的共享模型为根据聚合起来的数据建立得到的最优模型(又称全局模型)。在实际应用中,在建立虚拟模型时,数据本身不移动,因此,这种实现方式不会泄露隐私,也不违反法律规定。再者,建立好的共享模型仅在各自的区域为本地的目标服务,在这样一个联邦机制下,
各个参与者的身份和地位相同,实现“共同富裕”。这里,共享模型可以具体为机器学习模型。
88.本技术实施例中,“机器学习模型”也称“模型”,如“第一机器学习模型”、“第二机器学习模型”或“第三机器学习模型”,可以接收输入数据,并根据接收的输入数据和当前的模型参数生成预测输出。该机器学习模型可以是回归模型、神经网络(artificial neural network,ann)、深度神经网络(deep neural network,dnn)、支持向量机(support vector machine,svm)或其他的机器学习模型等。
89.图1a为本技术实施例提供的一种联邦学习系统的网络架构示意图。如图1a所示,该网络架构示意图可以包括多个第二设备(例如,第二设备1,第二设备2,......,第二设备m)和第一设备。在一些实施例中,第一设备也可以为服务器、基站,还可以为协作终端,此处不多加限定。
90.在实际应用中,上述网络架构可以应用于5g、卫星通信等无线通信系统中。一般来说,无线通信系统通常由小区组成,每个小区包含一个基站(base station,bs),基站向多个移动台(mobile station,ms)提供通信服务。其中基站包含bbu(baseband unit,基带单元)和rru(remote radio unit,远端射频单元)。bbu和rru可以放置在不同的地方,例如:rru拉远,放置于高话务量的区域,bbu放置于中心机房。bbu和rru也可以放置在同一机房。bbu和rru也可以为一个机架下的不同部件。
91.需要说明的是,本技术方案提及的无线通信系统包括但不限于:窄带物联网系统(narrow band-internet of things,nb-iot)、全球移动通信系统(global system for mobile communications,gsm)、增强型数据速率gsm演进系统(enhanced data rate for gsm evolution,edge)、宽带码分多址系统(wideband code division multiple access,wcdma)、码分多址2000系统(code division multiple access,cdma2000)、时分同步码分多址系统(time division-synchronization code division multiple access,td-scdma),长期演进系统(long term evolution,lte)以及下一代5g移动通信系统的三大应用场景embb,urllc和emtc。
92.在本技术中,基站是一种部署在无线接入网中为ms提供无线通信功能的装置。上述基站可以包括各种形式的宏基站,微基站(也称为小站),中继站,接入点等。在采用不同的无线接入技术的系统中,具备基站功能的设备的名称可能会有所不同,例如,在lte系统中,称为演进的节点b(evolved nodeb,enb或者enodeb),在第三代(3rd generation,3g)系统中,称为节点b(node b)等。为方便描述,本技术所有实施例中,上述为ms(移动台)提供无线通信功能的装置统称为网络设备或基站或bs。
93.本技术方案中所涉及到的ms可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备。所述ms也可以称为终端(terminal),还ms可以是用户单元(subscriber unit)、蜂窝电话(cellular phone)、智能手机(smart phone)、无线数据卡、个人数字助理(personal digital assistant,pda)电脑、平板型电脑、无线调制解调器(modem)、手持设备(handset)、膝上型电脑(laptop computer)、机器类型通信(machine type communication,mtc)终端等。
94.本技术方案中,第一设备可以作为联邦学习系统的中心节点,第二设备作为联邦学习的客户端。
95.在本技术实施例中,上述“多个”,应用理解为至少2个,例如,可以为2个,也可以为3个,还可以为4个等等。
96.现有技术中,联邦机器学习的过程可以如图1b所示,可以包括以下步骤:
97.步骤a1、第一设备将共享的机器学习模型下发给各个第二设备;
98.步骤a2、每个第二设备使用自身的本地数据训练该模型,将训练后的模型参数(例如,权重)上传给第一设备;
99.步骤a3、第一设备对第二设备上传的模型参数进行加权取平均,得到一个新的机器学习模型;
100.步骤a4、第一设备将更新后的全局模型参数下发给每个第二设备,第二设备再次通过自身的本地数据对该模型进行训练,得到新的模型参数,并将重新训练得到的模型参数上传给第一设备进行训练,在满足第一设备上训练好的机器学习模型处于收敛状态或训练次数达到设定的阈值的情况下,停止训练。
101.步骤a5、第一设备将训练好的机器学习模型下发给联邦学习系统中的各个第二设备。
102.直至,通过联邦学习系统完成了对机器学习模型的训练过程。
103.在这一实现方式中,由于联邦学习的训练过程往往涉及大量的数据的传输,且训练过程涉及多次“上传”“下发”的步骤,这一实现方式容易带来网络传输开销大的问题。
104.基于此,本技术对传输的数据量以及模型的收敛速度进行了改进,例如,第二设备根据获取的目标剪枝参数对第一机器学习模型进行剪枝,得到剪枝后的第一机器学习模型和剪枝位置信息;并通过本地数据对剪枝后的第一机器学习模型进行训练,得到训练好的模型参数(例如,模型参数可以包括但不限于:权值,梯度信息),并按照获取到的目标量化参数对模型参数进行量化,得到量化后的模型参数。之后,将上述量化后的模型参数和剪枝位置信息发送给第一设备,从而第一设备可以根据第二设备各自量化后的模型参数和剪枝位置信息进行聚合,以得到训练好的第二机器学习模型。由于目标剪枝参数和目标量化参数为第二设备各自完成本地训练所需的时间与第二设备各自上传所述量化后的本地梯度信息所需的时间小于所有设备最大允许的训练时延,且所有第二设备的模型参数的范数最小时的参数(也即:该目标剪枝参数和目标量化参数的确定,综合考虑了联邦学习系统中所有第二设备的计算能力和信道状态信息,以获取所有第二设备的剪枝参数和量化参数),或者,目标剪枝参数和目标量化参数为单一设备完成本地训练所需的时间与上传量化后的本地梯度信息所需的时间小于单个设备最大允许的训练时延,且该单一设备对应的模型参数的范数最小时的参数(也即:该目标剪枝参数和目标量化参数的确定,综合考虑了联邦学习系统中单一设备的计算能力和信道状态信息,以获取单一设备的剪枝参数和量化参数),可以在减少第一设备与第二设备之间传输的数据量的同时,还可以提高联邦学习系统训练第一机器学习模型的收敛速度,通过这一实现方式,大大减少了网络传输开销。
105.本技术实施例提供了一种机器学习的训练方法,该训练方法可以应用于特定任务/预测模型(以下简称为任务模型)的训练。具体地,可以用于训练基于深度学习网络构建的各种任务模型,可以包括但不限于分类模型、识别模型、分割模型、检测模型,等等。通过本技术所描述的训练方法得到的任务模型(例如,第二机器学习模型)可广泛应用到图像识别、音频识别等多种具体的应用场景,以实现应用场景的智能化。
106.第一应用场景:
107.以图像识别应用场景为例,在一种具体的实施场景,如图1c所示,一轿车103在道路上高速行驶,一路人101使用数码相机102拍下了该轿车103的车牌号,但是由于轿车103具有较高的车速v,数码相机的输入信号104发生了运动模糊现象,该输入信号为二维数字图像信号,该数码相机102中配备有机器学习模型100,具体来说,该机器学习模型为根据本技术描述的通过如图1a所示的联邦学习系统训练好的机器学习模型,例如,第二机器学习模型。具体地,当通过联邦学习系统对机器学习模型进行训练,使得第一设备上的机器学习模型处于收敛状态(例如,损失函数收敛)时,表示已经完成了对机器学习模型的训练阶段,终端可以进入机器学习模型的应用阶段。在实际应用中,该机器学习模型可以是以专用电路的形式在芯片中实现,也可以是运行在图像信号处理器中的软件模块。输入信号104在数码相机102中的机器学习模型中经过处理后,该处理包括轿车运动模型估计、运动模糊去除等,得到输出信号105,输出信号中包含的车牌号信息清晰度得以提高,可得到准确辨识。
108.第二应用场景:
109.以音频识别为例,在一种具体的实施场景,如图1d所示,智能手机102和104已内置神经网络相关的处理器,这里,该机器学习模型为根据本技术描述的通过如图1a所示的联邦学习系统训练好的机器学习模型,例如,第二机器学习模型。当通过联邦学习系统对机器学习模型进行训练,使得第一设备上的机器学习模型处于收敛状态(例如,损失函数收敛)时,表示已经完成了对机器学习模型的训练阶段,第二设备可以进入机器学习模型的应用阶段。例如,移动智能手机客户101向移动智能手机客户105发起语音呼叫,语音信号经智能手机102发出,经基站103转送给智能手机104,由于发起语音呼叫时暴雨骤起且伴有强烈的电闪雷鸣,导致输入信号106被严重削弱且含有较大的噪声。这里,该输入信号可以为一维数字语音信号。由于智能手机104中配备有机器学习模型,具体地,该机器学习模型可以是以专用电路的形式在芯片中实现,也可以是运行在中央处理单元(central processing unit,cpu)或其他处理器中的程序指令。输入信号106在智能手机104中的机器学习模型中经过处理,该处理包括噪声去除以及有效信号增强等,得到输出信号107,该输出信号完整的保留了主叫用户传送的语音信息,避免了恶劣自然环境对信号的干扰。
110.需要说明的是,上述例举的第一应用场景和第二应用场景均只是作为一种示例,不应构成限定。还需要说明的是,第一应用场景和第二应用场景为基于终端侧在实际应用时的场景。
111.在本技术实施例中,联邦学习可以应用在不同的领域中。
112.例如,在金融领域,多家机构联合建模的风控模型能更准确地识别信贷风险,联合反欺诈。多家银行建立的联邦反洗钱模型,能解决该领域样本少,数据质量低的问题。
113.又例如,在智慧零售领域,联邦学习能有效提升信息和资源匹配的效率。例如,银行拥有用户购买能力的特征,社交平台拥有用户个人偏好特征,电商平台则拥有产品特点的特征,传统的机器学习模型无法直接在异构数据上进行学习,联邦学习却能在保护三方数据隐私的基础上进行联合建模,为用户提供更精准的产品推荐等服务,从而打破数据壁垒,构建跨领域合作。
114.又例如,在医疗健康领域,联邦学习对于提升医疗行业协作水平更具有突出意义。在推进智慧医疗的过程中,病症、病理报告、检测结果等病人隐私数据常常分散在多家医院
诊所等跨区域不同类型的医疗机构、联邦学习使机构间可以跨地域协作而数据不出本地。多方合作建立的预测模型能够更准确地预测癌症、基因疾病等疑难病。如果所有的医疗机构能建立一个联邦学习联盟或许可以使人类的医疗卫生事业迈上一个全新的台阶。
115.下面从模型训练侧和模型应用侧对本技术提供的方法进行描述:
116.本技术实施例提供的机器学习的训练方法,可以涉及计算机视觉的处理或自然语言的处理等等,具体可以应用于数据训练、机器学习、深度学习等数据处理方法,对训练数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等,最终得到训练好的机器学习模型(也即:目标模型/规则);并且,本技术实施例提供的数据处理方法可以运用上述训练好的机器学习模型,将输入数据(如本技术中的图片,语音片段)输入到所述训练好的机器学习模型中,得到输出数据(如,图片的识别结果)。需要说明的是,本技术实施例提供的机器学习的训练方法和数据处理方法是基于同一个构思产生的发明,也可以理解为一个系统中的两个部分,或一个整体流程的两个阶段:模型训练阶段和模型应用阶段。
117.由于本技术实施例涉及大量机器学习模型的应用,为了便于理解,下面先对本技术实施例涉及的相关术语及神经网络等相关概念进行介绍。
118.(1)图像/视频识别
119.本技术实施例中,图像/视频识别是利用图像处理和机器学习、计算机图形学等相关方法,根据图像识别图像所属的分类或者图像的属性等。例如,第一应用场景中,识别车牌所属的分类。
120.(2)文本识别
121.本技术实施例中,文本识别也成为自然语言识别,是利用语言学、计算机科学、人工智能等相关方法,根据文本识别文本所表达的意图、情感或者其他属性等。例如,第二应用场景中,识别文本所表达的意图。
122.需要说明的是,在本技术所描述的机器学习模型的特定功能中,图像/视频识别、文本识别等均只是一种示例,不应构成限定。
123.(3)神经网络
124.神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距b为输入的运算单元,该运算单元的输出可以为:
[0125][0126]
其中,s=1、2、
……
n,n为大于1的自然数,ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
[0127]
(4)深度神经网络
[0128]
深度神经网络(deep neural network,dnn),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从dnn按不同层的位置划分,dnn内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,
最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然dnn看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,是输入向量,是输出向量,b是偏移向量,w是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量由于dnn层数多,则系数w和偏移向量b的数量也就很多了。这些参数在dnn中的定义如下所述:以系数w为例:假设在一个三层的dnn中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数w所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结就是:第l-1层的第k个神经元到第l层的第j个神经元的系数定义为需要注意的是,输入层是没有w参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量w形成的权重矩阵)。
[0129]
(5)卷积神经网络
[0130]
卷积神经网络(convolutional neuron network,cnn)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的数据(如图像数据,以图像数据为例描述)或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
[0131]
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
[0132]
(6)循环神经网络
[0133]
循环神经网络(recurrent neural networks,rnn)是用来处理序列数据的。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然对很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。rnn之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层
的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,rnn能够对任何长度的序列数据进行处理。对于rnn的训练和对传统的cnn或dnn的训练一样。同样使用误差反向传播算法,不过有一点区别:即,如果将rnn进行网络展开,那么其中的参数,如w,是共享的;而如上举例上述的传统神经网络却不是这样。并且在使用梯度下降算法中,每一步的输出不仅依赖当前步的网络,还依赖前面若干步网络的状态。该学习算法称为基于时间的反向传播算法back propagation through time(也即:bptt)。
[0134]
既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去(__)。这里填空,人类应该都知道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?rnn就应运而生了。rnn旨在让机器像人一样拥有记忆的能力。因此,rnn的输出就需要依赖当前的输入信息和历史的记忆信息。
[0135]
(7)损失函数
[0136]
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
[0137]
例如,在本技术实施例中,目标模型/规则可以为训练好的机器学习模型,例如,训练好的神经网络为第二机器学习模型,目标模型/规则可以实现对输入数据的处理,例如,当输入数据为图像时,可以准确识别图像;又例如,当输入图像为文本时,可以准确识别文本。因此,通过比较目标模型/规则对输入数据的判定结果与和真正想要的真实结果,再根据两者之间的差异情况来更新初始模型中每一层神经网络的权重向量(当然,在第一次更新之前通常会有过程,即为初始模型中的各层预先配置参数),比如,如果目标模型/规则的判定结果的值高了,就调整权重向量让它的值低一些,不断的调整,直到目标模型/规则能够预测出与真实结果非常接近的值。因此,就需要预先定义“如何比较判定结果和真实结果之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量判定结果和真实结果的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么初始模型的训练就变成了尽可能缩小这个loss的过程。
[0138]
(8)反向传播算法
[0139]
卷积神经网络可以采用误差反向传播(back propagation,bp)算法在训练过程中修正初始模型中参数的大小,使得初始模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始模型中参数,从
而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的目标模型的参数,例如权重矩阵。
[0140]
(9)剪枝操作和剪枝率
[0141]
在本技术实施例中,剪枝操作是指,针对神经网络的权值矩阵,将一部分元素设置为无效的数值。在一个实施例中,可以将需要剪枝的元素设置为0。比如,将权值矩阵中绝对值小于或等于一定门限的权值设置为0。
[0142]
在本技术实施例中,剪枝率用于表示权值矩阵中被剪枝的元素个数与权值矩阵中总的元素个数的比值。比如,剪枝率为70%,表示将权值矩阵中70%的元素进行剪枝,示例性地,将权值矩阵中70%的元素设置为0。
[0143]
(10)量化
[0144]
在本技术实施例中,量化是将一组原始值域范围内的数,通过一个数学变换将原始值域映射到另一个目标值域范围的过程。例如,将神经网络的模型参数由浮点数转换为整型数。可采用的方法如查表、移位、截位等。其中,往往采用线性变换,通常使用乘法完成这个变换。
[0145]
下面介绍本技术实施例设计的一种系统架构。参见附图2a,本技术实施例提供了一种系统架构200。如所述系统架构200所示,联合的训练设备220包括一个或多个第二设备221和第一设备222。其中,多个第二设备221中的每个设备均有各自对应的数据库。数据采集设备260用于采集或生成训练数据,本技术实施例中训练数据可以为:带标签的多张图像或多个语音片段等;并将训练数据存入数据库230,第二设备221中的每个第二设备对第一设备222下发的机器学习模型根据获取到的目标剪枝参数对第一机器学习模型进行剪枝,得到剪枝后的第一机器学习模型和剪枝位置信息,之后,基于各自对应的数据库230中维护的训练数据对剪枝后的第一机器学习模型进行训练,得到训练好的模型参数;之后,按照获取到的目标量化参数对模型参数进行量化,得到量化后的模型参数。然后,将上述量化后的模型参数和剪枝位置信息上传给第一设备,以使第一设备222根据m个第二设备221各自量化后的模型参数和剪枝位置信息进行聚合,生成目标模型/规则201。
[0146]
具体来说,通过联合的训练设备220对机器学习模型的训练过程可以包括:以第k设备为例,第k设备为一个或多个第二设备221中任意一个设备,第k设备221接收第一设备222下发的第一机器学习模型,第k设备221根据获取到的目标剪枝参数对第一机器学习模型进行剪枝,得到剪枝后的第一机器学习模型和剪枝位置信息,并通过自身存储的本地数据(例如,本地数据可以为从数据库230中获取的)对剪枝后的第一机器学习模型进行训练,得到模型参数,之后,将自身训练得到的模型参数按照获取到的目标量化参数进行量化,从而可以得到量化后的模型参数和剪枝位置信息;第k设备221将上述量化后的模型参数和剪枝位置信息上传至第一设备222,从而第一设备222可以获取到m个第二设备各自量化后的模型参数和剪枝位置信息,之后,第一设备222可以根据m个第二设备各自量化后的模型参数和剪枝位置信息进行聚合,得到第二机器学习模型;在第一设备222确定第二机器学习模型不满足收敛状态(例如,损失函数收敛)或者,训练第二机器学习模型的次数未达到设置的阈值的情况下,联合的训练设备220进入迭代训练过程。具体来说,该迭代训练过程可以包括:第一设备将第二机器学习模型下发给第k设备221,以使第k设备221再次进行训练,得到重新量化后的模型参数和剪枝位置信息;并再次将上述量化后的模型参数和剪枝位置信
息上传给第一设备222进行聚合,直至第一设备222确定第二机器学习模型满足收敛状态或者训练次数达到设定的阈值,表示已经完成了训练过程。关于联合的训练设备220如何基于训练数据集得到训练好的第二机器学习模型的详细描述可参见后续实施例中的相关描述,此处不对此展开。该训练好的第二机器学习模型能够用于实现本技术实施例提供的数据处理方法,即,输入数据输入到训练好的第二机器学习模型,通过第二机器学习模型对输入数据进行处理,得到处理结果。这里,输入数据可以图像、文本等。
[0147]
在本技术提供的实施例中,该目标模型/规则201是通过训练机器学习模型得到的(例如,机器学习模型为深度神经网络)。需要说明的是,在实际的应用中,每个第二设备各自对应的所述数据库230中维护的训练数据不一定都来自于数据采集设备260的采集,也有可能是从其他设备接收得到的。另外需要说明的是,每个第二设备也不一定完全基于数据库230维护的训练数据进行目标模型/规则201的训练,也有可能从云端获取或者自己生成训练数据进行模型训练,上述描述不应该作为对本技术实施例的限定。
[0148]
根据联合的训练设备220训练得到的目标模型/规则201可以应用于不同的系统或设备中,如应用于图2a所示的执行设备210,所述执行设备210可以是终端,如手机终端,平板电脑,笔记本电脑,ar/vr,车载终端等,还可以是基站或者云端等。执行设备210可以执行本技术实施例中数据处理方法,例如,该数据处理方法可以包括图像处理方法、文本处理方法等。在附图2a中,执行设备210配置有i/o接口212,用于与外部设备进行数据交互,用户可以通过客户设备240向i/o接口212输入数据,所述输入数据在本技术实施例中可以包括:待识别的图像、视频或待识别的语音片段。
[0149]
在执行设备210的计算模块211执行计算等相关的处理过程中,执行设备210可以调用数据存储系统270中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统270中。
[0150]
最后,i/o接口212将处理结果,如图像、视频或语音的识别结果或分类结果返回给客户设备240,从而客户设备240可以提供给用户设备250。该用户设备250可以是需要使用目标模型/规则201的轻量级终端,如手机终端、笔记本电脑、ar/vr终端或车载终端等,以用于响应于终端用户的相应需求,如对终端用户输入的图像进行图像识别输出识别结果给该终端用户,或对终端用户输入的文本进行文本分类输出分类结果给该终端用户等。
[0151]
值得说明的是,联合的训练设备220可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型/规则201,该相应的目标模型/规则201即可以用于完成上述任务,从而为用户提供所需的结果。
[0152]
在附图2a中所示情况下,用户可以手动指定输入执行设备210中的数据,例如,在i/o接口212提供的界面中操作。另一种情况下,客户设备240可以自动地向i/o接口212输入数据并获得结果,如果客户设备240自动输入数据需要获得用户的授权,用户可以在客户设备240中设置相应权限。用户可以在客户设备240查看执行设备210输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备240也可以作为数据采集端将采集到图片数据、视频数据或语音数据存入数据库230。
[0153]
客户设备240在接收到输出结果后,可以将结果传输给用户设备250,用户设备250可以是终端,如手机终端,平板电脑,笔记本电脑,ar/vr,车载终端等。在其中一个示例中,用户设备250可以运行目标模型/规则201,以实现特定的功能。
[0154]
值得注意的是,附图2a仅是本技术实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在附图2a中,数据存储系统270相对执行设备210是外部存储器,在其它情况下,也可以将数据存储系统270置于执行设备210中。
[0155]
如图2a所示,根据联合的训练设备220训练得到目标模型/规则201,该目标模型/规则201可以是第一应用场景中的图像识别模型、第二应用场景中的语音识别模型,具体的,本技术实施例提供的目标模型/规则201,例如,图像识别模型;又例如,语音识别模型等等,在实际应用中,图像识别模型、语音识别模型都可以是卷积神经网络模型。
[0156]
为了便于理解以及出于阐述的便利,在本技术实施例中,机器学习模型可以包括卷积神经网络、全连接网络等。如前文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,cnn是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。
[0157]
在一些可能的实现方式中,如图2b所示,卷积神经网络(cnn)300可以包括输入层310,卷积层/池化层320(其中池化层为可选的),以及神经网络层330。
[0158]
卷积层/池化层320:
[0159]
卷积层:
[0160]
如图2b所示卷积层/池化层320可以包括如示例321-326层,举例来说:在一种实现中,321层为卷积层,322层为池化层,323层为卷积层,324层为池化层,325为卷积层,326为池化层;在另一种实现方式中,321、322为卷积层,323为池化层,324、325为卷积层,326为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
[0161]
下面将以卷积层321为例,介绍一层卷积层的内部工作原理。
[0162]
卷积层321可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素,这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行
×
列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行
×
列)相同,经过该多个尺寸相同的权重矩阵提取后的特征图的尺寸也相同,再将提取到的多个尺寸相同的特征图合并形成卷积运算的输出。
[0163]
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络300进行正确的预测。
[0164]
当卷积神经网络300有多个卷积层的时候,初始的卷积层(例如321)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络300深度的加深,越往后的卷积层(例如326)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
[0165]
池化层:
[0166]
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图2b中卷积层/池化层320所示例的321-326各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。具体来说,池化层,用于对数据进行采样,降低数据的数量。例如,以数据为图像数据为例,在图像处理过程中,通过池化层,可以减少图像的空间大小。一般情况下,池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
[0167]
神经网络层330:
[0168]
在经过卷积层/池化层320的处理后,卷积神经网络300还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层320只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络300需要利用神经网络层330来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层330中可以包括多层隐含层(如图2b所示的331、332至33n)以及输出层340,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。
[0169]
在神经网络层330中的多层隐含层之后,也就是整个卷积神经网络300的最后层为输出层340,该输出层340具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络300的前向传播(如图2b由310至340方向的传播为前向传播)完成,反向传播(如图2b由340至310方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络300的损失,及卷积神经网络300通过输出层输出的结果和理想结果之间的误差。
[0170]
需要说明的是,如图2b所示的卷积神经网络300仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在。例如,如图2c所示的多个卷积层/池化层并行,将分别提取的特征均输入给神经网络层330进行处理。
[0171]
又例如,上述机器学习模型为全连接网络。全连接网络是指对n-1层和n层而言,n-1层的任意一个节点(又称为神经元),都和n层的所有节点有连接。具体地,参见图2d,是本技术实施例提供的一种神经网络的一维全连接层的结构示意图,如图2d所示,该神经网络
包括输入层、隐含层以及输出层,其中,输入层到隐含层之间的这一全连接层的二维参数矩阵为(3,4),该二维参数矩阵(3,4)表示在输入层到隐含层之间的全连接层结构中,输入神经元的个数为3,输出神经元的个数为4,权值数量为12。可以理解的是,神经元与神经元之间均具有连接关系。
[0172]
下面介绍本技术实施例提供的一种芯片硬件结构。
[0173]
图3为本技术实施例提供的一种芯片硬件结构,该芯片包括人工智能处理器30。该芯片可以被设置在如图2a所示的执行设备210中,用以完成计算模块211的计算工作。该芯片也可以被设置在如图2a所示的联合的训练设备220中,具体地,可以被设置在一个或多个第二设备221中,也可以设置在第一设备222中,用以完成联合的训练设备220的训练工作并输出目标模型/规则201。如图2b以及图2c以及所示的卷积神经网络中各层的算法均可在如图3所示的芯片中得以实现。
[0174]
人工智能处理器30可以是神经网络处理器(network processingunit,npu),张量处理器(tensor processing unit,tpu),或者图形处理器(graphics processing unit,gpu)等一切适合用于大规模异或运算处理的处理器。以npu为例:npu可以作为协处理器挂载到主cpu(host cpu)上,由主cpu为其分配任务。npu的核心部分为运算电路303,通过控制器304控制运算电路303提取存储器(301和302)中的矩阵数据并进行乘加运算。
[0175]
在一些实现中,运算电路303内部包括多个处理单元(process engine,pe)。在一些实现中,运算电路303是二维脉动阵列。运算电路303还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路303是通用的矩阵处理器。
[0176]
举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路303从权重存储器302中取矩阵b的权重数据,并缓存在运算电路303中的每一个pe上。运算电路303从输入存储器301中取矩阵a的输入数据,根据矩阵a的输入数据与矩阵b的权重数据进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)308中。
[0177]
统一存储器306用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(dmac,direct memory access controller)305,被搬运到权重存储器302中。输入数据也通过dmac被搬运到统一存储器306中。
[0178]
总线接口单元(biu,bus interface unit)310,用于dmac和取指存储器(instruction fetch buffer)309的交互;总线接口单元310还用于取指存储器309从外部存储器获取指令;总线接口单元310还用于存储单元访问控制器305从外部存储器获取输入矩阵a或者权重矩阵b的原数据。
[0179]
dmac主要用于将外部存储器ddr中的输入数据搬运到统一存储器306中,或将权重数据搬运到权重存储器302中,或将输入数据搬运到输入存储器301中。
[0180]
向量计算单元307可以包括多个运算处理单元,在需要的情况下,对运算电路303的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。向量计算单元307主要用于神经网络中非卷积层,或全连接层(fc,fully connected layers)的计算,具体可以处理:pooling(池化),normalization(归一化)等的计算。例如,向量计算单元307可以将非线性函数应用到运算电路303的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元307生成归一化的值、合并值,或二者均有。
[0181]
在一些实现中,向量计算单元307将经处理的向量存储到统一存储器306。在一些实现中,经向量计算单元307处理过的向量能够用作运算电路303的激活输入,例如用于神经网络中后续层中的使用,如图2b所示,若当前处理层是隐含层1(231),则经向量计算单元307处理过的向量还可以被用到隐含层2(232)中的计算。
[0182]
控制器304连接的取指存储器(instruction fetch buffer)309,用于存储控制器304使用的指令;
[0183]
统一存储器306,输入存储器301,权重存储器302以及取指存储器309均为on-chip存储器。外部存储器独立于该npu硬件架构。
[0184]
其中,图2b、图2c所示的卷积神经网络中各层的运算可以由运算电路303或向量计算单元307执行。
[0185]
下面详细描述本技术实施例涉及的方法。图4为本技术实施例提供的一种机器学习的训练方法,该方法可以由如图1a所示的机器学习系统(例如,该机器学习系统可以为联邦学习系统)执行,其中,机器学习系统可以由m个第二设备及第一设备组成,其中,m为大于等于1的正整数,且m个第二设备与第一设备之间建立有通信连接。该方法可以包括但不限于如下步骤:
[0186]
步骤s401、第一设备分别向m个第二设备发送第一机器学习模型。
[0187]
步骤s402、第k设备接收第一设备发送的第一机器学习模型,其中,第k设备为m个第二设备中的任意一个设备。
[0188]
步骤s403、第k设备根据获取到的目标剪枝参数对第一机器学习模型进行剪枝,得到剪枝后的第一机器学习模型和剪枝位置信息。
[0189]
在本技术实施例中,目标剪枝参数可以是指剪枝率。在第一机器学习模型为全连接网络时,例如,剪枝率为30%表示将全连接网络中30%的权值进行剪枝。在第一机器学习模型为卷积神经网络时,例如,剪枝率为30%表示将卷积神经网络中30%的卷积核进行剪枝。
[0190]
在本技术实施例中,剪枝位置信息用于指示第一机器学习模型中被剪枝的权值的位置或者未被剪枝的权值的位置。
[0191]
在本技术实施例中,在第一机器学习模型为全连接网络时,可以确定每个权值的l2范数(例如,权值的l2范数可以表示为),并基于每个权值的l2范数进行排序(例如,按照范数从大到小进行排序),得到排序结果,之后,根据获取到的目标剪枝率将排序结果中后y(y的取值由目标剪枝率确定)个范数对应的权值进行剪枝,例如,将该权值设置为0,以在保证全连接网络性能的同时,还可以减少全连接网络的规模。在这种情况下,剪枝位置信息用于指示以下信息中的至少一种:一个神经元与另一个神经元之间的权值被剪枝、一个神经元与另一个神经元之间的权值未被剪枝。进一步地,上述剪枝位置信息可以承载于位图表,可以通过第一值指示一个神经元与另一个神经元之间的权值被剪枝,通过第二值指示一个神经元与另一个神经元之间的权值未被剪枝。例如,可以通过第一值“0”指示一个神经元与另一个神经元之间的权值被剪枝,通过第二值“1”指示一个神经元与另一个神经元之间的权值未被剪枝。需要说明的是,上述关于第一值、第二值的举例只是一种示例,不应构成限定。
[0192]
参见图5a,为本技术实施例提供的一种全连接网络中权值的剪枝位置信息的示意
图。其中,两两神经元之间的实线表示:该权值未被剪枝,两两神经元之间的虚线表示:该权值被剪枝。出于阐述的便利,有如下约定:
[0193]nij
表示第i层中第j个神经元。例如,n11表示第1层中第1个神经元。
[0194]
如图5a所示,对输入层和第一个隐藏层来说,输入层神经元的数量为3个,可以表示为:n11、n12和n13;第一个隐藏层神经元的数量为4个,可以表示为:n21、n22、n23和n24,权值数量为12,其中,每个权值均具有各自对应的标识,例如,上述12个权值对应的标识分别为n11-n21、h11-n22、n11-n23、n11-n24、n12-n21、n12-n22、n12-n23、n12-n24、n13-n21、n13-n22、n13-n23、n13-n24。具体地,该位图表可以表示为如表1所示:
[0195]
表1
[0196] n21n22n23n23n111011n121010n130010
[0197]
需要说明的是,在一些实施例中,上述权值的标识信息可以与权值的位置有关。也即:通过该标识信息可以知道每个位置的权值的剪枝状态。
[0198]
在本技术实施例中,在第一机器学习模型为卷积神经网络时,可以确定每个卷积核的l2范数(例如,卷积核的l2范数可以表示为其中,wv表示卷积核中的参数值),并基于每个卷积核的范数进行排序(例如,按照范数从大到小进行排序),得到排序结果,之后,根据获取到的目标剪枝率将排序结果中后y(y的取值由目标剪枝率确定)个范数对应的卷积核进行剪枝,例如,将卷积核中的参数值设置为0,以在保证卷积神经网络性能的同时,还可以减少卷积神经网络的规模。在这种情况下,剪枝位置信息用于指示以下信息中的至少一种:卷积层中的卷积核被剪枝、卷积层中的卷积核未被剪枝。进一步地,上述剪枝位置信息可以承载于位图表,可以通过第一值指示卷积层中的卷积核被剪枝,通过第二值指示卷积层中的卷积核未被剪枝。例如,通过第一值“0”指示卷积层中的卷积核被剪枝,通过第二值“1”指示卷积层中的卷积核未被剪枝。需要说明的是,上述关于第一值、第二值的举例只是一种示例,不应构成限定。
[0199]
参见图5b,为本技术实施例提供的一种卷积神经网络中卷积核的剪枝位置信息的示意图。其中,实线表示的卷积核表示该卷积核未被剪枝,虚线表示的卷积核表示该卷积核被剪枝。出于阐述的便利,有如下约定:
[0200]cst
表示第s个卷积层中第t个卷积核。例如,c11表示第1个卷积层中第1个卷积核。
[0201]
如图5b所示,第一个卷积层包括10个卷积核,可以表示为:c11、c12、
……
、c1x,其中,卷积核1被剪枝,卷积核2未被剪枝,卷积核3被剪枝、卷积核4未被剪枝、卷积核5未被剪枝、卷积核6被剪枝、卷积核7未被剪枝、卷积核8未被剪枝、卷积核9未被剪枝、卷积核10被剪枝。具体地,该位图表可以表示为如表2所示:
[0202]
表2
[0203]
c110c121
c130c141c151c160c171c181c191c1x0
[0204]
需要说明的是,在一些实施例中,上述卷积核的标识信息可以与卷积核的位置有关。也即:通过该标识信息可以知道每个卷积层中卷积核的剪枝状态。
[0205]
步骤s404、第k设备通过本地数据对剪枝后的第一机器学习模型进行训练,得到训练好的模型参数,并按照获取到的目标量化参数对模型参数进行量化,得到量化后的模型参数。
[0206]
以预测用户的行为为例,可以通过用户的原始特征x和用户的标签特征y对第一机器学习模型进行训练。具体来说,用户的原始特征x可以通过用户的基本数据来体现;用户的标签特征y是指,期望获得的答案。例如,在金融领域,用户的标签特征y是需要被预测的用户信用;又例如,在销售领域,用户的标签特征y是用户的购买欲望;又例如,在教育领域,用户的标签特征y是学生掌握知识的程度。这里,用户的原始特征x和用户的标签特征构成了完整的训练样本数据(x,y)。
[0207]
在本技术实施例中,每个第二设备各自对应的本地数据可以相同,也可以不同。以预测用户的行为为例,各个数据集的用户不完全相同,或,用户特征不完全相同。具体而言,以包含2个数据拥有方的联邦学习系统为例,数据分布可以分为如下情况:
[0208]
(1)、第二设备1对应的本地数据和第二设备2对应的本地数据的用户特征重叠部分较大,而用户重叠部分较小;
[0209]
(2)、第二设备1对应的本地数据和第二设备2对应的本地数据的用户重叠部分较大,而用户特征重叠部分较小;
[0210]
(3)、第二设备1对应的本地数据和第二设备2对应的本地数据的用户和用户特征重叠部分都比较小。
[0211]
可以理解的是,每个第二设备各自对应的本地数据可以包括训练样本数据,也可以包括测试样本数据。其中,训练样本数据,可以用于对机器学习模型进行训练;测试样本数据可以用于评估训练好的机器学习模型的好坏和精确度。
[0212]
在本技术实施例中,模型参数包括但不限于:权值、梯度等。
[0213]
在本技术实施例中,目标量化参数可以是指目标运算属性的值。具体来说,运算属性的值可以是指各个网络层的运算属性的值。这里,网络层可以包括但不限于卷积层、全连接层等。其中,网络层的运算属性表征该网络层中与运算相关的属性。例如,该网路层中模型参数的属性,如模型参数值的位宽,表示采用多少位来存储/表示该网络中层中的各模型参数的值;例如,该网络层中激活值的属性,如激活值的位宽,表示采用多少位来存储/表示该网络层涉及的运算过程中的中间运算值以及输出值等;例如,该网络层的宽度,如该网络层的输出通道数(或者是等价的输入通道数,因为该网络层的输入通道数等于与该网络层
的连接的上一网络层的输出通道数,该网络层的输出通道数等于与该网络层连接的下一网络层的输入通道数)。可以理解的是,某个网络层的模型参数值的位宽、激活值的位宽等运算属性的值越小,意味着该网络层的运算量越小。而且当网络层的模型参数值的位宽的值越小时,意味着存储该网络层的模型参数所需的存储空间较小。因此,当选择合适的运算属性的值时,可以降低量化得到的第一机器学习模型的模型文件所需的存储空间。
[0214]
在一些实施例中,可以通过第一设备确定满足第一约束时的目标剪枝参数和目标量化参数,其中,第一约束是指:m个第二设备各自完成本地训练所需的时间与各自上传量化后的模型参数所需的时间小于所有设备最大允许的训练时延,且m个第二设备对应的模型参数的范数最小,之后,第一设备将确定好的目标剪枝参数和目标量化参数下发给m个第二设备,从而m个第二设备可以根据获取到的目标剪枝参数对第一设备下发的第一机器学习模型进行剪枝,得到剪枝后的第一机器学习模型和剪枝位置信息。
[0215]
在一些实施例中,可以通过第一设备确定满足第二约束时的目标剪枝参数和目标量化参数,其中,第二约束是指:第k设备(也即:一个或多个第二设备中的某一个设备)完成本地训练所需的时间与第k设备上传量化后的模型参数所需的时间小于单个设备最大允许的训练时延,且第k设备对应的模型参数的范数最小,之后,第一设备将确定好的目标剪枝参数和目标量化参数下发给第k设备,从而第k设备可以根据获取到的目标剪枝参数和目标量化参数对第一设备下发的第一机器学习模型进行剪枝,得到剪枝后的第一机器学习模型和剪枝位置信息。
[0216]
在一些实施例中,可以通过第k设备确定满足第二约束时的目标剪枝参数和目标量化参数,其中,第二约束是指:第k设备(也即:一个或多个第二设备中的某一个设备)完成本地训练所需的时间与第k设备上传量化后的模型参数所需的时间小于单个设备最大允许的训练时延,且第k设备对应的模型参数的范数最小,从而第k设备可以根据自身确定好的目标剪枝参数和目标量化参数对第一设备下发的第一机器学习模型进行剪枝,得到剪枝后的第一机器学习模型和剪枝位置信息。下面对上述介绍的几种情形进行具体阐述:
[0217]
参见图6a,在执行上述步骤s403之前,还可以执行如下步骤,具体阐述了第一设备如何确定所有第二设备的目标剪枝参数和目标量化参数:
[0218]
步骤s1-1、第k设备向第一设备上传自身的设备信息,其中,该设备信息用于指示以下信息:第k设备与第一设备进行通信时的信道状态信息、第k设备的计算能力、第k设备上运行的第一机器学习模型的大小、第一机器学习模型中模型参数的数量、第k设备处理每个模型参数所需要的计算量以及与第一机器学习模型训练相关的参数。其中,第k设备为m个第二设备中的任意一个设备。
[0219]
步骤s2-1、第一设备以m个第二设备各自完成本地训练所需的时间与各自上传量化后的模型参数所需的时间小于所有设备最大允许的训练时延,且m个第二设备对应的模型参数的范数最小为第一约束,根据m个第二设备各自对应的设备信息,将满足第一约束时的剪枝参数和量化参数作为m个第二设备的目标剪枝参数和目标量化参数。
[0220]
以模型参数为梯度为例,一般来说,模型的收敛速率可以用梯度的范数的平均来表示,梯度的平均范数越小,表示模型的收敛速率越大;反之,收敛速率越小。具体地,梯度的范数与剪枝参数和量化参数之间的数学表达式可以为:
[0221]
c=θ0+θ1e+θ2ep
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1-1)
[0222]
其中,θ0、θ1、θ2为与第一机器学习模型训练有关的参数,e是所有第二设备的梯度量化误差之和,p表示所有第二设备的平均剪枝参数(例如,剪枝参数为剪枝率)。
[0223]
例如,e可以表示为:
[0224][0225]
其中,ek表示第二设备的量化误差。具体地,ek是量化参数(例如,该量化参数为量化位数)的函数,该函数可以表示为:f(qk)。可以理解的是,该函数与量化位数有关,一般地,该函数是量化位数的非线性递减函数。
[0226]
例如,p可以表示为:
[0227][0228]
在本技术实施例中,考虑到第一设备具有很强的计算能力,下行的参数可以通过广播发送。因此,下行传输以及平均汇总的时延都可以忽略,此时,机器学习系统训练产生的时延主要由上行传输的两个部分组成:
[0229]
(1)本地训练所需的时间
[0230]
在本技术实施例中,本地训练所需的时间与模型参数的数量b、剪枝参数pk、每个模型参数所需要的计算量fr以及第二设备的计算能力fk有关。具体地,本地训练所需的时间可以表示为:
[0231][0232]
这里,计算能力为每秒浮点运算次数(floating-point operarions per second,flops)。每秒运算浮点次数可以用如下公式计算:flops=核数*主频*每周期浮点运算次数,其中,核数为核心数,主频为每秒的计算周期数。
[0233]
(2)数据传输所需的时间
[0234]
在本技术实施例中,数据传输所需的时间可以表示为:
[0235][0236]
其中,q表示量化参数,s表示传输的数据的个数,rk表示第二设备上传的速率,其与第二设备与第一设备进行通信时的信道状态信息有关。需要说明的是,上述数据传输所需的时间应该理解为传输全部模型参数所需要的时间。
[0237]
对第一设备来说,第一设备需要获取到每个第二设备各自上传的模型参数之后,第一设备才可以多个模型参数进行处理。对于整个机器学习系统,单次训练的时延可以表示为:
[0238][0239]
基于上述阐述,建立第一约束,具体地,第一约束可以表示为:
[0240]
[0241]
t≤t
max
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1-8)
[0242]
其中,pk表示目标剪枝参数,qk表示目标量化参数,t
max
表示所有设备最大允许的训练时延。
[0243]
需要说明的是,基于上述公式(1-3)、(1-7)以及(1-8),可以得到:
[0244][0245]
在第一设备获取到m个第二设备各自对应的设备信息之后,第一设备可以根据m个第二设备各自对应的设备信息来确定目标剪枝参数pk和目标量化参数qk。该实现过程可以包括:通过内点法获取公式(1-9)对应的目标量化参数qk,之后,基于确定的目标量化参数qk来获取目标剪枝参数pk。需要说明的是,内点法(interior point methods)是一种求解线性规划或非线性凸优化问题的算法,关于如何通过内点法来获取目标量化参数请参考现有的实现方式,此处不多加赘述。
[0246]
步骤s3-1、第一设备将确定好的目标剪枝参数和目标量化参数下发给第k设备。
[0247]
步骤s4-1、第k设备接收目标剪枝参数和目标量化参数。
[0248]
实施本技术实施例,由于这一实现方式综合考虑了所有第二设备的设备信息,可以提高整个机器学习系统训练机器学习模型的性能。
[0249]
参见图6b,在执行上述步骤s403之前,还可以执行如下步骤,具体阐述了第一设备如何确定单一设备的目标剪枝参数和目标量化参数:
[0250]
步骤s1-2、第k设备向第一设备上传自身的设备信息,其中,该设备信息用于指示以下信息:第k设备与第一设备进行通信时的信道状态信息、第k设备的计算能力、第k设备上运行的第一机器学习模型的大小、第一机器学习模型中模型参数的数量、第k设备处理每个模型参数所需要的计算量以及与第一机器学习模型训练相关的参数。
[0251]
步骤s2-2、第一设备以第k设备完成本地训练所需的时间与第k设备上传量化后的模型参数所需的时间小于单个设备最大允许的训练时延,且第k设备对应的模型参数的范数最小为第二约束,根据设备信息,将满足第二约束时的剪枝参数和量化参数作为第k设备的目标剪枝参数和目标量化参数。
[0252]
基于上述阐述,建立第二约束,具体地,第二约束可以表示为:
[0253][0254][0255]
其中,pk表示目标剪枝参数,qk表示目标量化参数,t
max
表示单个设备最大允许的训练时延。在实际应用中,单个设备最大允许的训练时延可以为上述提及的所有设备最大允许的训练时延的1/m倍,还可以为设置的其他值(例如,基于多次机器学习系统的训练过程得到的统计值),此处不多加限定。
[0256]
在第一设备获取到某一个第二设备对应的设备信息之后,第一设备可以根据该第二设备对应的设备信息来确定目标剪枝参数pk和目标量化参数qk。该实现过程可以包括:通过内点法获取目标量化参数qk,之后,基于确定的目标量化参数qk来获取目标剪枝参数pk。
由于这一实现方式只单一考虑了一个第二设备的设备信息,可以提高信令开销上的收益。
[0257]
在一些实施例中,第一设备确定单个第二设备的目标剪枝参数和目标量化参数时,在给定机器学习模型的情况下,由于无需考虑其他第二设备的设备信息,在这种情况下,第一设备可以基于预先获取的m个第二设备的设备信息(例如,第二设备的计算能力和信道状态信息),分别确定每个第二设备的目标剪枝参数和目标量化参数。在此基础上,建立第二设备的设备信息与目标剪枝参数、目标量化参数之间的映射关系,当第一设备在获取到第二设备的设备信息之后,可以通过查找上述映射关系来获取与第二设备的设备信息匹配的目标剪枝参数和目标量化参数。通过这一实现方式,可以提高第一设备下发目标剪枝参数和目标量化参数的效率。示例性地,该映射关系可以表示为如表3所示:
[0258]
表3
[0259]
设备的计算能力信道状态信息目标剪枝参数目标量化参数f1h1p1q1
…………
fnhnpnqn
[0260]
需要说明的是,上述映射关系只是一种示例,不应构成限定。
[0261]
步骤s3-2、第一设备将确定好的目标剪枝参数和目标量化参数下发给第k设备。
[0262]
具体实现中,第一设备直接将确定好的目标剪枝参数和目标量化参数下发给k设备。
[0263]
步骤s4-2、第k设备接收目标剪枝参数和目标量化参数。
[0264]
需要说明的是,上述步骤s3-2以及步骤s4-2还可以通过其他方式实现,下面对其进行具体阐述:
[0265]
在一些实施例中,目标剪枝参数和目标量化参数可以承载于压缩指示(compression indicator,ci)表,该压缩指示表中包括压缩指示标识,每个压缩指示标识分别与目标剪枝参数和目标量化参数一一对应。示例性地,该压缩指示表可以如表4所示:
[0266]
表4
[0267][0268]
需要说明的是,上述压缩指示表的表现形态只是一种示例,不应构成限定。那么,在第k设备预先获取到上述压缩指示表的情况下,第k设备可以基于第一设备发送的压缩指示标识来获取对应的目标剪枝参数和目标量化参数。
[0269]
在一些实施例中,上述目标剪枝参数和目标量化参数承载于调制与编码策略mcs
索引表,mcs索引表中包括mcs索引标识,每个msc索引标识分别与目标剪枝参数和目标量化参数一一对应。
[0270]
示例性地,该mcs索引表可以如表5所示:
[0271]
表5
[0272][0273][0274]
需要说明的是,上述mcs索引表的表现形态只是一种示例,不应构成限定。
[0275]
那么,在第k设备预先获取到上述mcs索引表的情况下,第k设备可以基于第一设备发送的mcs索引标识来获取对应的目标剪枝参数和目标量化参数。
[0276]
参见图6c,在执行上述步骤s403之前,还可以执行如下步骤,具体阐述了m个第二
设备中的第k设备如何确定目标剪枝参数和目标量化参数:
[0277]
步骤s1-3、第k设备获取自身的设备信息,设备信息用于指示以下信息:第k设备与第一设备进行通信时的信道状态信息、第k设备的计算能力、第k设备上运行的第一机器学习模型的大小、第一机器学习模型中模型参数的数量、第k设备处理每个模型参数所需要的计算量以及与第一机器学习模型训练相关的参数;
[0278]
步骤s2-3、以第k设备完成本地训练所需的时间与第k设备上传量化后的模型参数所需的时间小于单个设备最大允许的训练时延,且第k设备对应的模型参数的范数最小为第二约束,根据第k设备的设备信息,将满足第二约束时的剪枝参数和量化参数作为第k设备的目标剪枝参数和目标量化参数。
[0279]
关于步骤s1-3-步骤s2-3的具体实现,请参考上述步骤s2-1-步骤s2-2,其区别在于步骤s2-1-步骤s2-2的执行主体为第一设备,而步骤s1-3-步骤s2-3的执行主体为m个第二设备中的第k设备。
[0280]
步骤s405、第k设备将量化后的模型参数和剪枝位置信息发送给第一设备。
[0281]
步骤s406、第一设备获取m个第二设备各自量化后的模型参数和剪枝位置信息。
[0282]
步骤s407、第一设备根据m个第二设备各自量化后的模型参数和剪枝位置信息进行聚合,得到第二机器学习模型。
[0283]
在本技术实施例中,第一设备根据m个第二设备各自量化后的模型参数和剪枝位置信息进行聚合的实现过程可以包括:第一设备根据剪枝位置信息对m个量化后的模型参数进行均值计算,得到全局模型参数,并根据全局模型参数得到第二机器学习模型。具体地,可以通过如下公式来获取全局模型参数:
[0284][0285]
其中,表示全局模型参数,dk表示局部数据集(也即:每个第二设备的数据集),表示第二设备基于局部数据集dk对接收到的全局模型参数进行e个epoch(时期)的训练得到的本地模型参数,s
t
表示第t轮上传的局部模型参数的第二设备集合,bitmap表示位图表。
[0286]
步骤s408、第一设备判断训练好的第二机器学习模型是否满足收敛状态或判断训练第二机器学习模型的次数是否达到设定的阈值,若是,执行步骤s409;若否执行步骤s4010。
[0287]
在本技术实施例中,第一设备可以根据第二机器学习模型的损失函数得到损失值,然后根据损失值判断第二机器学习模型是否满足收敛状态。具体地,第一设备存储有第一机器学习模型对应的第一损失值,第一设备根据第二机器学习模型的损失函数得到第二损失值,通过计算第一损失值与第二损失值之间的差值,并判断该差值是否小于或等于设定好的预设阈值,若该差值小于或等于设定好的预设阈值,则第一设备确定训练好的第二机器学习模型满足收敛状态,这意味着通过联邦学习系统完成了对待训练的第一机器学习模型的训练过程。若该差值大于设定好的预设阈值,则第一设备需要再次对第二机器学习模型进行训练。
[0288]
在实际训练过程中,设定好的预设阈值可以根据用户的需求来自行设定,本技术
实施例对预设阈值不作具体限定。
[0289]
步骤s409、在第一设备确定第二机器学习模型满足收敛状态的情况下,第一设备将第二机器学习模型确定为机器学习系统训练好的结果。
[0290]
步骤s4010、在第一设备确定第二机器学习模型不满足收敛状态的情况下,第一设备将第二机器学习模型下发给第k设备,以便第k设备通过自身存储的本地数据再次对第二机器学习模型进行训练,得到量化后的模型参数和剪枝位置信息,直至第一设备根据m个第二设备各自量化后的模型参数和剪枝位置信息,得到满足收敛状态的第二机器学习模型。
[0291]
步骤s4011、第一设备将第二机器学习模型发送给第k设备。
[0292]
步骤s4012、第k设备接收第二机器学习模型。
[0293]
可以理解的是,在第一设备确定第二机器学习模型满足收敛状态的情况下,第一设备将第二机器学习模型确定为联邦学习系统训练好的结果,此时,第一设备将第二机器学习模型发送给第k设备。那么,在这种情况下,第k设备可以将测试样本数据输入到第二机器学习模型中,以实现第二机器学习模型的特定功能。
[0294]
实施本技术实施例,在通过联邦学习系统对机器学习模型进行训练时,m个第二设备均可以根据获取的目标剪枝参数对第一机器学习模型进行剪枝,得到剪枝后的第一机器学习模型和剪枝位置信息;通过本地数据对剪枝后的第一机器学习模型进行训练,得到训练好的模型参数,并按照获取的目标量化参数对模型参数进行量化,得到量化后的模型参数。之后,每个第二设备将量化后的模型参数和剪枝位置信息发送给第一设备,从而第一设备可以根据m个第二设备各自量化后的模型参数和剪枝位置信息进行聚合,以得到训练好的第二机器学习模型。由于目标剪枝参数和目标量化参数可以在减少第一设备与第二设备之间传输的数据量的同时,还可以提高联邦学习系统训练第一机器学习模型的收敛速度,通过这一实现方式,大大减少了网络传输开销。
[0295]
需要说明的是,在上述实施例中,具体阐述了第二设备如何根据获取到的目标剪枝参数对第一设备下发的第一机器学习模型进行剪枝,以及如何根据获取到的目标量化参数对训练得到的模型参数进行量化,从而,第一设备可以基于m个第二设备各自量化后的模型参数和剪枝位置信息进行聚合,得到第二机器学习模型。出于未来发展前景的考虑,第一设备可以用于实现本技术描述的剪枝和量化操作,而第二设备用于实现多个模型参数的聚合,在这种情况下,上述目标剪枝参数和目标量化参数可以承载于信道质量指示cqi索引表,其中,cqi索引表中包括cqi索引标识,每个cqi索引标识分别与所述目标剪枝参数和所述目标量化参数一一对应。示例性地,该cqi索引表可以如表6所示:
[0296]
表6
[0297]
[0298][0299]
在表6中,qpsk表示正交相移键控,为quadrature phase shift keying的缩略语简称;16qam表示正交幅度调制,为quadrature amplitude modulation的缩略语简称;64qam表示相正交振幅调制,为quadrature amplitude modulation的缩略语简称。
[0300]
需要说明的是,上述cqi索引表的表现形态只是一种示例,不应构成限定。
[0301]
那么,在第一设备预先获取到上述cqi索引表的情况下,第一设备可以基于第二设备发送的cqi索引标识来获取对应的目标剪枝参数和目标量化参数,从而实现第一机器学习模型的剪枝和量化。
[0302]
前述实施例重点阐述了如何通过联邦学习系统对机器学习模型进行训练,以得到训练好的第二机器学习模型。接下来将具体阐述如何使用训练好的第二机器学习模型。
[0303]
在一些实施例中,在第一设备222得到训练好的机器学习模型后,可以将该训练好的机器学习模型发送给客户设备240(也即联邦学习系统中的第二设备),由客户设备240将该训练好的机器学习模型发送给用户设备250(终端)。
[0304]
在一些实施例中,第一设备222也可以将训练好的机器学习模型直接发送至用户设备250。用户设备250可以运行该训练好的机器学习模型以实现特定功能。下面结合图7a描述本技术实施例提供的一种数据处理方法,该方法可以包括但不限于如下部分或全部步骤:
[0305]
s700:接收输入数据;
[0306]
s702:将接收到的输入数据输入到训练好的第二机器学习模型,通过所述第二机器学习模型对所述输入数据进行处理,得到处理结果;
[0307]
s704:输出该处理结果。
[0308]
其中,输出的方式包括但不限于通过文本、图像、语音、视频等方式输出。
[0309]
其中,训练好的第二机器学习模型为通过上述任一实施例所述的机器学习的训练方法训练得到的。该输入数据可以是图像、文本等,与待训练的机器学习模型的具体功能有关。关于机器学习模型的训练过程可以参见上述实施例中相关描述,本技术实施例不再赘述。
[0310]
在本技术实施例的一种应用场景中,该数据处理方法具体为图像处理方法,包括:终端接收输入图像;将该输入图像输入到训练好的第二机器学习模型,例如,第二机器学习模型可以具体为卷积神经网络,通过该训练好的卷积神经网络对输入图像进行处理,得到处理结果。例如,该处理过程可以如图7b所示。其中,该处理结果的内容依赖于训练好的神
经网络的功能,而训练好的神经网络的功能依赖于待训练神经网络的功能,可以是对图像的分类结果、识别结果等。例如,待训练神经网络为人脸属性识别网络,用于识别输入的人脸图像所描述的人的属性,比如性别、年龄、种族等,那么,训练好的神经网络可以识别输入图像描述人的性别、年龄、种族等,该处理结果可以包括输入图像被识别到的性别、年龄和种族。
[0311]
在本技术实施例的另一种应用场景中,该数据处理方法具体为文本处理方法,包括:终端接收输入文本;将该输入文本输入到训练好的第二机器学习模型,例如,第二机器学习模型可以具体为循环神经网络,通过该训练好的循环神经网络对输入文本进行处理,得到处理结果。其中,该处理结果的内容依赖于训练好的神经网络的功能,而训练好的神经网络的功能依赖于待训练神经网络的功能,可以是对文本的分类结果、识别结果等。例如,待训练神经网络为文本识别网络,用于识别输入文本的描述的意图,那么,训练好的神经网络可以识别输入文本的意图,进而执行该识别到的意图对应的操作,例如,在识别到意图为“接通电话”,终端(如手机)可以接通当前的呼叫。
[0312]
实施本技术实施例,由于第二机器学习模型为通过第二设备各自对应的本地数据进行训练得到的,在每个第二设备的本地数据差异性很大或差异性不大的情况下,这一实现方式都可以使得训练好的第二机器学习模型具有很强的泛化能力,当通过训练好的第二机器学习模型对输入数据进行处理时,可以提高输入数据的处理精度。例如,当输入数据为图像时,可以提高图像的识别精度;又例如,当输入数据为语音时,可以提高语音的识别精度。
[0313]
下面结合附图介绍本技术实施例涉及的装置。
[0314]
图8为本技术实施例中一种第一设备的示意性框图。如图8所示,上述第一设备80可以包括:发送单元810、获取单元820、训练单元830和确定单元840。其中,
[0315]
发送单元810,用于分别向m个第二设备发送第一机器学习模型;其中,所述第一机器学习模型用于所述m个第二设备中的每个第二设备根据各自获取到的目标剪枝参数对所述第一机器学习模型进行剪枝,得到剪枝后的所述第一机器学习模型和剪枝位置信息;所述剪枝后的第一机器学习模型用于所述m个第二设备中的每个第二设备通过本地数据对所述剪枝后的第一机器学习模型进行训练,得到训练好的模型参数,并按照获取到的目标量化参数对所述模型参数进行量化,得到量化后的模型参数;
[0316]
获取单元820,用于获取所述m个第二设备各自量化后的模型参数和剪枝位置信息;
[0317]
训练单元830,用于根据所述m个第二设备各自量化后的模型参数和所述剪枝位置信息进行聚合,得到第二机器学习模型;
[0318]
确定单元840,用于在所述第二机器学习模型满足收敛状态的情况下,所述第一设备将所述第二机器学习模型确定为所述机器学习系统训练好的结果。
[0319]
在一种可能的实现方式中,所述第一设备80还可以包括:
[0320]
第一获取信息单元,用于获取第k设备的设备信息,所述第k设备的设备信息包括所述第k设备与所述第一设备进行通信时的信道状态信息和所述第k设备的计算能力;其中,所述第k设备为所述m个第二设备中的任意一个设备;
[0321]
第一确定参数单元,用于以所述m个第二设备各自完成本地训练所需的时间与各
自上传所述量化后的模型参数所需的时间小于所有设备最大允许的训练时延,且所述m个第二设备对应的模型参数的范数最小为第一约束,根据所述m个第二设备各自对应的设备信息,将满足所述第一约束时的剪枝参数和量化参数作为所述目标剪枝参数和所述目标量化参数。
[0322]
在一种可能的实现方式中,所述第一设备80还包括:
[0323]
第二获取信息单元,用于获取所述m个第二设备中第k设备的设备信息,所述第k设备的设备信息包括所述第k设备与所述第一设备进行通信时的信道状态信息和所述第k设备的计算能力;
[0324]
第二确定参数单元,用于以所述第k设备完成本地训练所需的时间与所述第k设备上传所述量化后的模型参数所需的时间小于单个设备最大允许的训练时延,且所述第k设备对应的模型参数的范数最小为第二约束,根据所述第k设备的设备信息,将满足所述第二约束时的剪枝参数和量化参数作为所述目标剪枝参数和所述目标量化参数。
[0325]
在一种可能的实现方式中,所述目标剪枝参数和所述目标量化参数为所述m个第二设备中的第k设备以所述第k设备完成本地训练所需的时间与所述第k设备上传所述量化后的模型参数所需的时间小于单个设备最大允许的训练时延,且所述第k设备对应的模型参数的范数最小为第二约束,根据自身的设备信息获取的参数;其中,所述设备信息包括所述第k设备与所述第一设备进行通信时的信道状态信息和所述第k设备的计算能力;所述第k设备为所述m个第二设备中的任意一个设备。
[0326]
在一种可能的实现方式中,所述训练单元830,具体用于:
[0327]
根据所述剪枝位置信息对所述m个量化后的模型参数进行均值计算,得到全局模型参数,并根据所述全局模型参数得到所述第二机器学习模型。
[0328]
在一种可能的实现方式中,所述第一机器学习模型为全连接网络;所述剪枝位置信息用于指示以下信息中的至少一种:一个神经元与另一个神经元之间的权值被剪枝、一个神经元与另一个神经元之间的权值未被剪枝。
[0329]
在一种可能的实现方式中,所述剪枝位置信息承载于位图表,所述位图表中包括所述权值的标识信息,通过第一值指示一个神经元与另一个神经元之间的权值被剪枝,通过第二值指示一个神经元与另一个神经元之间的权值未被剪枝。
[0330]
在一种可能的实现方式中,所述第一机器学习模型为卷积神经网络;所述剪枝位置信息用于指示以下信息中的至少一种:卷积层中的卷积核被剪枝、卷积层中的卷积核未被剪枝。
[0331]
在一种可能的实现方式中,其特征在于,所述剪枝位置信息承载于位图表,所述位图表中包括所述卷积核的标识信息,通过第一值指示卷积层中的卷积核被剪枝、通过第二值指示卷积层中的卷积核未被剪枝。
[0332]
在一种可能的实现方式中,所述目标剪枝参数和所述目标量化参数承载于调制与编码策略mcs索引表,所述mcs索引表中包括mcs索引标识,每个msc索引标识分别与所述目标剪枝参数和所述目标量化参数一一对应。
[0333]
在一种可能的实现方式中,所述目标剪枝参数和所述目标量化参数承载于信道质量指示cqi索引表,所述cqi索引表中包括cqi索引标识,每个cqi索引标识分别与所述目标剪枝参数和所述目标量化参数一一对应。
[0334]
本技术实施例中,各个的单元的具体实现可以参见上述实施例中的相关描述,此处不再赘述。
[0335]
实施本技术实施例,在通过联邦学习系统对机器学习模型进行训练时,m个第二设备均可以根据获取的目标剪枝参数对第一机器学习模型进行剪枝,得到剪枝后的第一机器学习模型和剪枝位置信息;通过本地数据对剪枝后的第一机器学习模型进行训练,得到训练好的模型参数,并按照获取的目标量化参数对模型参数进行量化,得到量化后的模型参数。之后,m个第二设备将量化后的模型参数和剪枝位置信息发送给第一设备,从而第一设备可以根据m个第二设备各自量化后的模型参数和剪枝位置信息进行聚合,以得到训练好的第二机器学习模型。由于目标剪枝参数和目标量化参数可以在减少第一设备与第二设备之间传输的数据量的同时,还可以提高联邦学习系统训练第一机器学习模型的收敛速度,通过这一实现方式,大大减少了网络传输开销。
[0336]
图9为本技术实施例中一种第二设备的示意性框图。如图9所示,上述第二设备90可以包括:获取单元910、剪枝单元920、量化训练单元930和发送单元940。其中,
[0337]
获取单元910,用于从所述第一设备获取第一机器学习模型;其中,第k设备为所述m个第二设备中的任意一个设备;
[0338]
剪枝单元920,用于根据获取到的目标剪枝参数对所述第一机器学习模型进行剪枝,得到剪枝后的所述第一机器学习模型和剪枝位置信息;
[0339]
量化训练单元930,用于通过本地数据对所述剪枝后的第一机器学习模型进行训练,得到训练好的模型参数,并按照获取到的目标量化参数对所述模型参数进行量化,得到量化后的模型参数;
[0340]
发送单元940,用于将所述量化后的模型参数和剪枝位置信息发送给所述第一设备;在所述第一设备根据所述m个第二设备各自量化后的模型参数和剪枝位置信息进行聚合,得到满足收敛状态的第二机器学习模型的情况下,所述第一设备将所述第二机器学习模型确定为所述机器学习系统训练好的结果。
[0341]
在一种可能的实现方式中,所述第k设备90还可以包括:
[0342]
获取信息单元,用于获取自身的设备信息,所述设备信息包括所述第k设备与所述第一设备进行通信时的信道状态信息和所述第k设备的计算能力;
[0343]
确定参数单元,用于以所述第k设备完成本地训练所需的时间与所述第k设备上传所述量化后的模型参数所需的时间小于单个设备最大允许的训练时延,且所述第k设备对应的模型参数的范数最小为第二约束,根据所述第k设备的设备信息,将满足所述第二约束时的剪枝参数和量化参数作为所述目标剪枝参数和所述目标量化参数。
[0344]
在一种可能的实现方式中,所述目标剪枝参数和所述目标量化参数为所述第一设备以所述m个第二设备各自完成本地训练所需的时间与各自上传所述量化后的模型参数所需的时间小于所有设备最大允许的训练时延,且所述m个第二设备对应的模型参数的范数最小为第一约束,根据所述m个第二设备各自对应的设备信息获取的参数;其中,所述m个第二设备各自对应的设备信息包括每个第二设备与第一设备进行通信时的信道状态信息和每个第二设备的计算能力。
[0345]
在一种可能的实现方式中,所述目标剪枝参数和所述目标量化参数为所述第一设备以所述第k设备完成本地训练所需的时间与所述第k设备上传所述量化后的模型参数所
需的时间小于单个设备最大允许的训练时延,且所述第k设备对应的模型参数的范数最小为第二约束,根据所述第k设备的设备信息获取的参数;其中,所述第k设备的设备信息包括所述第k设备与所述第一设备进行通信时的信道状态信息和所述第k设备的计算能力。
[0346]
在一种可能的实现方式中,所述第一机器学习模型为全连接网络;所述剪枝位置信息用于指示以下信息中的至少一种:一个神经元与另一个神经元之间的权值被剪枝、一个神经元与另一个神经元之间的权值未被剪枝。
[0347]
在一种可能的实现方式中,所述剪枝位置信息承载于位图表,所述位图表中包括所述权值的标识信息,通过第一值指示一个神经元与另一个神经元之间的权值被剪枝,通过第二值指示一个神经元与另一个神经元之间的权值未被剪枝。
[0348]
在一种可能的实现方式中,所述第一机器学习模型为卷积神经网络;所述剪枝位置信息用于指示以下信息中的至少一种:卷积层中的卷积核被剪枝、卷积层中的卷积核未被剪枝。
[0349]
在一种可能的实现方式中,所述剪枝位置信息承载于位图表,所述位图表中包括所述卷积核的标识信息,通过第一值指示卷积层中的卷积核被剪枝、通过第二值指示卷积层中的卷积核未被剪枝。
[0350]
本技术实施例中,各个的单元的具体实现可以参见上述实施例中的相关描述,此处不再赘述。
[0351]
实施本技术实施例,在通过联邦学习系统对机器学习模型进行训练时,m个第二设备均可以根据获取的目标剪枝参数对第一机器学习模型进行剪枝,得到剪枝后的第一机器学习模型和剪枝位置信息;通过本地数据对剪枝后的第一机器学习模型进行训练,得到训练好的模型参数,并按照获取的目标量化参数对模型参数进行量化,得到量化后的模型参数。之后,每个第二设备将量化后的模型参数和剪枝位置信息发送给第一设备,从而第一设备可以根据m个第二设备各自量化后的模型参数和剪枝位置信息进行聚合,以得到训练好的第二机器学习模型。由于目标剪枝参数和目标量化参数可以在减少第一设备与第二设备之间传输的数据量的同时,还可以提高联邦学习系统训练第一机器学习模型的收敛速度,通过这一实现方式,大大减少了网络传输开销。
[0352]
图10为本技术实施例中一种数据处理装置100(终端)的示意性框图,图10所示的数据处理装置100(该装置100具体可以是图2a中的用户设备250),可以包括:
[0353]
接收单元1000,用于接收输入数据;
[0354]
处理单元1002,用于将所述输入数据输入到训练好的第二机器学习模型,通过所述第二机器学习模型对所述输入数据进行处理,得到处理结果;其中,所述训练好的第二机器学习模型为通过上述实施例描述的任意一种机器学习的训练方法得到的;
[0355]
输出单元1004,用于输出处理结果。
[0356]
上述各个功能单元的具体实现可以参见上述方法实施例中的相关描述,本技术实施例不再赘述。
[0357]
如图11所示,本技术实施例提供的另一种第一设备,该第一设备可以包括处理器1101、存储器1102、通信总线1103和通信接口1104,所述处理器1101通过所述通信总线1103连接所述存储器1102和所述通信接口1104。
[0358]
处理器1101可以采用通用的中央处理器(central processing unit,cpu),微处
理器,应用专用集成电路(application specific integrated circuit,asic),图形处理器(graphics processing unit,gpu)、神经网络处理器(network processing unit,npu)或者一个或多个集成电路,用于执行相关程序,以执行本技术方法实施例的第一机器学习模型的训练方法。
[0359]
处理器1101还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术的机器学习的训练方法的各个步骤可以通过处理器1101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1101还可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1102,处理器1101读取存储器1102中的信息,结合其硬件执行本技术方法实施例的机器学习的训练方法。
[0360]
存储器1102可以是只读存储器(read only memory,rom),静态存储设备,动态存储设备或者随机存取存储器(random access memory,ram)。存储器1102可以存储程序和数据,例如本技术实施例中机器学习的训练方法的程序等。当存储器1102中存储的程序被处理器1101执行时,处理器1101和通信接口1104用于执行本技术实施例的机器学习的训练方法的各个步骤。
[0361]
例如,本技术实施例中用于实现本技术实施例中机器学习的训练方法的程序等。
[0362]
通信接口1104使用例如但不限于收发器一类的收发装置,来实现第一设备1100与其他设备或通信网络之间的通信。例如,可以通过通信接口1104获取训练好的神经网络,以实现与执行设备、客户设备、用户设备或者终端设备等的信息交互。
[0363]
可选地,该第一设备还可以包括人工智能处理器1105,人工智能处理器1105可以是神经网络处理器(network processing unit,npu),张量处理器(tensor processing unit,tpu),或者图形处理器(graphics processing unit,gpu)等一切适合用于大规模异或运算处理的处理器。人工智能处理器1105可以作为协处理器挂载到主cpu(host cpu)上,由主cpu为其分配任务。人工智能处理器1105可以实现上述机器学习的训练方法中涉及的一种或多种运算。例如,以npu为例,npu的核心部分为运算电路,通过控制器控制运算电路提取存储器1102中的矩阵数据并进行乘加运算。
[0364]
所述处理器1101用于调用所述存储器中的数据和程序代码,执行上述方法实施例中第一设备执行的具体操作,在此不再赘述。
[0365]
应理解,各个器件的实现还可以对应参照上述机器学习的训练方法实施例中的相应描述,本技术实施例不再赘述。
[0366]
如图12所示,本技术实施例提供的另一种第二设备,以m个第二设备中的第k设备为例,该第k设备可以包括处理器1201、存储器1202、通信总线1203和通信接口1204,所述处理器1201通过所述通信总线1203连接所述存储器1202和所述通信接口1204。
[0367]
处理器1201可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),图形处理器(graphics processing unit,gpu)、神经网络处理器(network processing unit,npu)或者一个或多个集成电路,用于执行相关程序,以执行本技术方法实施例的第一机器学习模型的训练方法。
[0368]
处理器1201还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术的机器学习的训练方法的各个步骤可以通过处理器1201中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1201还可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1202,处理器1201读取存储器1202中的信息,结合其硬件执行本技术方法实施例的机器学习的训练方法。
[0369]
存储器1202可以是只读存储器(read only memory,rom),静态存储设备,动态存储设备或者随机存取存储器(random access memory,ram)。存储器1202可以存储程序和数据,例如本技术实施例中机器学习的训练方法的程序等。当存储器1202中存储的程序被处理器1201执行时,处理器1201和通信接口1204用于执行本技术实施例的机器学习的训练方法的各个步骤。
[0370]
例如,本技术实施例中用于实现本技术实施例中机器学习的训练方法的程序等。
[0371]
通信接口1204使用例如但不限于收发器一类的收发装置,来实现第二设备1200与其他设备或通信网络之间的通信。例如,可以通过通信接口1204获取训练好的神经网络,以实现与执行设备、客户设备、用户设备或者终端设备等的信息交互。
[0372]
可选地,该第二设备还可以包括人工智能处理器1205,人工智能处理器1205可以是神经网络处理器(network processing unit,npu),张量处理器(tensor processing unit,tpu),或者图形处理器(graphics processing unit,gpu)等一切适合用于大规模异或运算处理的处理器。人工智能处理器1205可以作为协处理器挂载到主cpu(host cpu)上,由主cpu为其分配任务。人工智能处理器1205可以实现上述机器学习的训练方法中涉及的一种或多种运算。例如,以npu为例,npu的核心部分为运算电路,通过控制器控制运算电路提取存储器1202中的矩阵数据并进行乘加运算。
[0373]
所述处理器1201用于调用所述存储器中的数据和程序代码,执行上述方法实施例中第k设备执行的具体操作,在此不再赘述。
[0374]
应理解,各个器件的实现还可以对应参照上述机器学习的训练方法实施例中的相应描述,本技术实施例不再赘述。
[0375]
图13为本技术实施例中一种数据处理设备的结构示意图,如图13所示,该数据处理设备可以包括处理器1301、存储器1302、通信总线1303和通信接口1304,所述处理器1301
通过所述通信总线1303连接所述存储器1302和所述通信接口1304。
[0376]
处理器1301可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),图形处理器(graphics processing unit,gpu)、神经网络处理器(network processing unit,npu)或者一个或多个集成电路,用于执行相关程序,以执行本技术方法实施例的第一机器学习模型的训练方法。
[0377]
处理器1301还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术的数据处理方法的各个步骤可以通过处理器1301中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1301还可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1302,处理器1301读取存储器1302中的信息,结合其硬件执行本技术方法实施例的数据处理方法。
[0378]
存储器1302可以是只读存储器(read only memory,rom),静态存储设备,动态存储设备或者随机存取存储器(random access memory,ram)。存储器1302可以存储程序和数据,例如本技术实施例中机器学习的训练方法的程序等。当存储器1302中存储的程序被处理器1301执行时,处理器1301和通信接口1304用于执行本技术实施例的数据处理方法的各个步骤。
[0379]
例如,本技术实施例中用于实现本技术实施例中数据处理方法的程序等。
[0380]
通信接口1304使用例如但不限于收发器一类的收发装置,来实现数据处理设备1300与其他设备或通信网络之间的通信。例如,可以通过通信接口1304获取训练好的神经网络,以实现与执行设备、客户设备、用户设备或者终端设备等的信息交互。
[0381]
可选地,该数据处理设备还可以包括人工智能处理器1305,人工智能处理器1305可以是神经网络处理器(network processing unit,npu),张量处理器(tensor processing unit,tpu),或者图形处理器(graphics processing unit,gpu)等一切适合用于大规模异或运算处理的处理器。人工智能处理器1305可以作为协处理器挂载到主cpu(host cpu)上,由主cpu为其分配任务。人工智能处理器1305可以实现上述数据处理方法中涉及的一种或多种运算。例如,以npu为例,npu的核心部分为运算电路,通过控制器控制运算电路提取存储器1302中的矩阵数据并进行乘加运算。
[0382]
所述处理器1301用于调用所述存储器中的数据和程序代码,执行:
[0383]
接收输入数据;
[0384]
将所述输入数据输入到训练好的第二机器学习模型,通过所述第二机器学习模型对所述输入数据进行处理,得到处理结果;其中,所述训练好的第二机器学习模型为通过上述实施例中任一项所述的机器学习的训练方法得到的;
[0385]
输出所述处理结果。
[0386]
应理解,各个器件的实现还可以对应参照上述机器学习的训练方法实施例中的相应描述,本技术实施例不再赘述。
[0387]
本发明实施例还提供了一种计算机存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述任一个实施例所述方法中的一个或多个步骤。上述装置的各组成模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在所述计算机可读取存储介质中,基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机产品存储在计算机可读存储介质中。
[0388]
上述计算机可读存储介质可以是前述实施例所述的设备的内部存储单元,例如硬盘或内存。上述计算机可读存储介质也可以是上述设备的外部存储设备,例如配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,上述计算机可读存储介质还可以既包括上述设备的内部存储单元也包括外部存储设备。上述计算机可读存储介质用于存储上述计算机程序以及上述设备所需的其他程序和数据。上述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
[0389]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可通过计算机程序来指令相关的硬件来完成,该计算机的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可存储程序代码的介质。
[0390]
本技术实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
[0391]
本技术实施例装置中的模块可以根据实际需要进行合并、划分和删减。
[0392]
可以理解,本领域普通技术人员可以意识到,结合本技术各个实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0393]
本领域技术人员能够领会,结合本技术各个实施例中公开描述的各种说明性逻辑框、模块和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本技术中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
[0394]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0395]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以
通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0396]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0397]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0398]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,基站,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0399]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。