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

数据处理方法、模型的训练方法及装置与流程

2022-11-02 03:21:22 来源:中国专利 TAG:


1.本技术涉及人工智能领域,并且更具体地,涉及一种数据处理方法、模型的训练方法 及装置。


背景技术:

2.人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器 模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、 技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质, 并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各 种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能领域 的研究包括机器人,自然语言处理,计算机视觉,决策与推理,人机交互,推荐与搜索, ai基础理论等。
3.在ai领域中,模型通常是利用大量的数据训练得到的。训练数据的质量和数量极大 地影响了模型的性能。在实际场景中,由于数据隐私或商业机密等原因,很多数据是存储 在多个孤立的节点上的,例如,节点可以为用户的手机、地方机构(例如,医院)等,节 点之间不共享数据,仅利用节点自身的数据可能无法训练得到较好的模型。
4.目前主要是通过在节点间传输模型的参数进行训练。各个节点利用自身的数据训练出 一个模型,并将该模型的参数上传至中心节点,中心节点整合所有模型的参数后融合出一 个相对完备的模型。以联邦学习为例,中心节点在收集到多个节点上传的模型的参数后, 根据各节点的数据量计算该节点的权重,进而根据该权重对模型的参数进行加权平均,以 得到融合后的模型参数,并将融合后的模型的参数下发至各个节点,重复上述过程。由于 各个节点仅上传模型的参数而非数据,能够避免数据隐私的泄露。然而,若各个节点之间 的数据分布差异较大,上述融合方式的效果会急剧降低。
5.因此,如何提高模型的性能成为一个亟待解决的问题。


技术实现要素:

6.本技术提供一种数据处理方法、模型的训练方法及装置,能够提高处理结果的准确性。
7.第一方面,提供了一种数据处理方法,包括:获取待处理的数据;利用域分类器对待 处理的数据进行处理,以得到待处理的数据所属设备的指示信息,域分类器是根据m个 设备的本地数据的数据分布的指示信息得到的,待处理的数据所属设备为m个设备中的 一个,m为大于1的整数;根据待处理的数据所属设备的指示信息利用m个设备的模型 对待处理的数据进行处理,其中,m个设备的模型分别是基于m个设备的本地数据训练 得到的。
8.根据本技术实施例的方案,域分类器是通过各个设备的本地数据的数据分布的指示信 息构建的,利用域分类器得到各个设备的模型所擅长的数据范围,基于域分类器的输出结 果指导各个设备的模型处理输入数据,能够充分发挥各个设备的模型的优势,在不同
模型对待处理的数据进行处理,包括:在待处理的数据所属设备的模型不是第一模型的情 况下,利用m个设备中的n个设备的模型分别对待处理的数据进行处理,输出待处理的 数据的n个特征,其中,n为大于1的整数,n≤m,n个设备的模型包括待处理的数据所 属设备的模型;将待处理的数据的n个特征进行拼接,以得到拼接后的特征;对拼接后的 特征进行降维处理,以得到降维处理后的特征。
24.在第一模型的泛化能力更好的情况下,第一模型的处理结果的准确性更高,在待处理 的数据所属设备的模型不是第一模型的情况下,该模型处理结果的准确性可能难以保证, 通过将多个特征进行拼接,即升维处理,引入不同模型的处理结果,以提高模型输出的准 确性。
25.示例性地,第一模型可以是预先定义的模型。
26.第一模型可以是m个设备的模型中泛化能力最好的模型,这样,第一模型的处理结 果的准确性更高。
27.示例性地,第一模型可以是根据模型结构确定的。
28.例如,第一模型可以是m个设备的模型中参数量最大的模型。在该情况下,判断待 处理的数据所属设备的模型的参数量是否是该m个设备的模型的参数量中的最大者。若 是,则待处理的数据所属设备的模型是第一模型;若不是,则待处理的数据所属设备的模 型不是第一模型。
29.再如,第一模型可以是m个设备的模型中卷积层数最多的模型。在该情况下,判断 待处理的数据所属设备的模型的卷积层数是否是该m个设备的模型的卷积层数中的最大 者,若是,则待处理的数据所属设备的模型是第一模型;若不是,则待处理的数据所属设 备的模型不是第一模型。可替换地,第一模型可以是根据模型的训练数据确定的。
30.例如,第一模型可以是m个设备的模型中训练数据的数据量最大的模型。在该情况 下,判断待处理的数据所属设备的模型的训练数据的数据量是否是该m个设备的模型的 训练数据的数据量中的最大者。若是,则待处理的数据所属设备的模型是第一模型;若不 是,则待处理的数据所属设备的模型不是第一模型。
31.或者,第一模型可以是m个设备的模型中训练数据的覆盖范围最广的模型。比如, 覆盖范围最广也可以理解为采集区域最广。在该情况下,判断待处理的数据所属设备的模 型的训练数据的覆盖范围是否是该m个设备的模型的训练数据的覆盖范围的最大者。若 是,则待处理的数据所属设备的模型是第一模型;若不是,则待处理的数据所属设备的模 型不是第一模型。
32.降维处理可以采用多种降维方法,例如,主成分分析(principal component analysis, pca)。
33.具体地,降维处理后的特征与模型对模型对待处理的数据进行处理后得到的特征的维 度是相同的。
34.结合第一方面,在第一方面的某些实现方式中,在拼接过程中,由待处理的数据所属 设备的模型得到的特征对应的权重值大于由n个设备中的其他设备的模型得到的特征对 应的权重值。
35.根据本技术实施例的方案,待处理的数据所属设备的模型更有可能擅长处理该待处理 的数据,通过为待处理的数据所属设备的模型得到的特征设置更高的权重,提高该设
最大概率对应的设备的模型的处理结果准确的可能性更高,利用该结果确定目标候选框, 能够进一步提高处理结果的准确性。
45.结合第一方面,在第一方面的某些实现方式中,根据待处理的数据所属设备的指示信 息确定目标候选框和目标候选框的标签,包括:若至少两个候选框的标签所指示的目标物 体的类别相同,合并至少两个候选框,将合并后的候选框作为目标候选框,将至少两个候 选框的标签作为目标候选框的标签。
46.根据本技术实施例的方案,充分利用m个设备的模型,以得到更全面的目标检测的 结果,在候选框发生重合且标签没有冲突的情况下,对没有冲突的重合的候选框进行合并, 进一步提高处理结果的准确性和鲁棒性。
47.结合第一方面,在第一方面的某些实现方式中,合并至少两个候选框,包括:根据至 少两个候选框的权重合并至少两个候选框,其中,至少两个候选框的权重是根据待处理的 数据属于至少两个候选框对应的设备的概率确定的。
48.结合第一方面,在第一方面的某些实现方式中,根据待处理的数据所属设备的指示信 息利用m个设备的模型对待处理的数据进行处理,包括:根据待处理的数据所属设备的 指示信息将m个设备的模型进行融合处理,以得到一个融合模型;利用融合模型对待处 理的数据进行处理。
49.结合第一方面,在第一方面的某些实现方式中,根据待处理的数据所属设备的指示信 息将m个设备的模型进行融合处理,以得到一个融合模型,包括:根据m个设备的模型 对应的权重对m个设备的模型的参数进行加权平均处理,以得到融合模型,m个设备的 模型对应的权重是根据待处理的数据所属设备的指示信息确定的。
50.结合第一方面,在第一方面的某些实现方式中,本地数据的数据分布的指示信息包括 以下至少一项:数据模型、本地数据中的部分或全部(例如,非隐私数据)、本地数据的 特征中的部分或全部、数据生成器、特征生成器或域单分类器,其中,数据模型为指示本 地数据的数据分布的模型,数据生成器用于生成与本地数据的数据分布一致或相近的伪数 据,特征生成器用于生成与本地数据的数据分布一致或相近的伪特征,域单分类器用于判 断输入至域单分类器中的数据与本地数据的数据分布是否一致或相近。
51.示例性地,数据生成器可以采用生成式对抗网络(generative adversarial nets,gan) 或变分自动编码器(variational auto-encoder,vae)等。
52.示例性地,特征生成器可以采用生成式对抗网络或变分自动编码器等。
53.示例性地,设备的域单分类器可以包括该设备的本地数据的类中心或支持向量等。
54.域单分类器的输出结果可以包括:输入至该域单分类器中的数据与本地数据的数据分 布一致或相近或者输入至该域单分类器中的数据与本地数据的数据分布不一致。或者,域 单分类器的输出结果可以包括:输入至该域单分类器中的数据与本地数据的数据分布一致 或相近的概率。应理解,以上仅为示例,域单分类器的输出结果还可以表示为其他形式, 只要输出结果能够指示输入数据与本地数据的数据分布是否一致或相近即可,本技术实施 例对域单分类器的输出结果的形式不做限定。
55.第二方面,提供了一种模型的训练方法,包括:获取m个设备的模型和m个设备的 本地数据的数据分布的指示信息,m个设备的模型是m个设备根据m个设备的本地数据 训练
得到的,m为大于1的整数;根据m个设备的本地数据的数据分布的指示信息构建 域分类器,域分类器用于得到输入数据所属设备的指示信息,m个设备的模型用于根据输 入数据所属设备的指示信息对输入数据进行处理。
56.根据本技术实施例的方案,通过各个设备的本地数据的数据分布的指示信息构建域分 类器,利用域分类器得到各个设备的模型所擅长的数据范围,基于域分类器的输出结果指 导各个设备的模型处理输入数据,能够充分发挥各个设备的模型的优势,在不同设备上的 数据非同分布时,避免发生模型融合冲突的情况,即处理结果的准确性不会受到不同设备 上的数据分布差异的影响,提高了处理结果的准确性,扩大了模型的覆盖范围,提高了模 型的鲁棒性。而且,各个设备仅共享本地数据的数据分布的指示信息以及模型,有利于保 护用户隐私。此外,各个设备的模型的结构可以相同,也可以不同,支持异构模型,使得 各个设备能够基于各自的处理性能选择合适的模型进行训练,各个设备能够选择合适的算 法,提高了各个设备的模型的性能,增加了灵活性和鲁棒性,有利于进一步提高模型的性 能。
57.本技术的方案只需要传输一次模型即可超过联邦学习传输多次模型的效果,大大减少 了通信功耗,提高了模型的训练效率。
58.此外,若采用中心节点执行本技术实施例的方案,能够合理利用各个设备的计算力, 预先基于本地数据对模型进行训练,中心节点基于各个设备提供的模型进行处理,大大减 小了中心节点的硬件消耗。
59.不同设备的模型的拓扑结构可以相同,也可以不同。不同设备上可以采用相同的训练 方法得到本地的模型,也可以采用不同的训练方法得到本地的模型。本技术实施例对此不 作限定。
60.示例性地,根据m个设备的本地数据的数据分布的指示信息进行训练或整合,以得 到域分类器。
61.构建域分类器的具体方式与数据分布的指示信息的数据类型有关。
62.结合第二方面,在第二方面的某些实现方式中,本地数据的数据分布的指示信息包括 以下至少一项:数据模型、本地数据中的部分或全部、本地数据的特征中的部分或全部、 数据生成器、特征生成器或域单分类器,其中,数据模型为指示本地数据的数据分布的模 型,数据生成器用于生成与本地数据的数据分布一致或相近的伪数据,特征生成器用于生 成与本地数据的数据分布一致或相近的伪特征,域单分类器用于判断输入至域单分类器中 的数据与本地数据的数据分布是否一致或相近。
63.结合第二方面,在第二方面的某些实现方式中,根据m个设备的本地数据的数据分 布的指示信息构建域分类器,包括:根据与m个设备的本地数据的数据分布一致或相近 的数据对分类模型进行训练,以得到域分类器,其中,与m个设备的本地数据的数据分 布一致或相近的数据是根据本地数据的数据分布的指示信息确定的。
64.训练的目标是使得域分类器能够判断输入至域分类器中的数据所属的设备。
65.示例性地,数据分布的指示信息为数据生成器,则基于m个设备的数据生成器生成 的伪数据,该伪数据即为与本地数据的数据分布一致或相似的数据,基于伪数据对分类模 型进行训练,以得到训练好的分类模型,即为域分类器。例如,分类模型可以为神经网络 模型。
66.结合第二方面,在第二方面的某些实现方式中,根据m个设备的本地数据的数据分 布的指示信息构建域分类器,包括:根据m个设备的本地数据中的部分或全部分别构建m 个设备的域单分类器,m个设备的域单分类器包括m个设备的本地数据的类中心或支持 向量,域分类器包括m个设备的域单分类器。
67.结合第二方面,在第二方面的某些实现方式中,方法还包括:将域分类器和/或m个 设备的模型发送至多个设备。
68.该多个设备可以包括该m个设备中的部分或全部。该多个设备也可以不包括该m个 设备中的全部设备,也就是说,将域分类器和m个设备的模型发送至该m个设备以外的 其他设备。
69.结合第二方面,在第二方面的某些实现方式中,方法还包括:将域分类器和/或m个 设备的模型发送至该m个设备。
70.结合第二方面,在第二方面的某些实现方式中,方法还包括:将域分类器和m个设 备的模型进行模型压缩,以得到压缩后的模型。
71.示例性地,可以通过知识蒸馏、模型剪枝或模型量化等方式对域分类器和m个设备 的模型进行压缩。
72.结合第二方面,在第二方面的某些实现方式中,将域分类器和m个设备的模型进行 模型压缩,以得到压缩后的模型,包括:利用域分类器对输入数据进行处理,以得到输入 数据所属设备的指示信息;根据输入数据所属设备的指示信息利用m个设备的模型对输 入数据进行处理,以得到第一处理结果;利用第一处理结果对第一学生模型进行训练,第 一学生模型的参数量小于域分类器和m个设备的模型的参数量。
73.结合第二方面,在第二方面的某些实现方式中,方法还包括:将压缩后的模型发送至 多个设备。
74.该多个设备可以包括该m个设备中的部分或全部。该多个设备也可以不包括该m个 设备中的全部设备,也就是说,将压缩后的模型发送至该m个设备以外的其他设备。
75.结合第二方面,在第二方面的某些实现方式中,方法还包括:将压缩后的模型发送至 m个设备。
76.本技术实施例的方案可以应用于联邦学习框架下,通过多次训练迭代得到所需的模 型,进一步提高模型的性能,在域分类器的指导下模型的输出结果,能够提高模型的收敛 速度和处理结果的准确性。
77.第三方面,提供了一种数据处理方法,包括:第二设备获取第二设备的模型;第二设 备将第二设备的模型和本地数据的数据分布的指示信息发送至第三设备;第二设备接收第 三设备发送的模型。
78.结合第三方面,在第三方面的某些实现方式中,第三设备发送的模型包括域分类器和 m个设备的模型或者是处理后的域分类器和m个设备的模型。m个设备的模型用于根据 域分类器的输出结果对输入数据进行处理。域分类器是根据m个设备的本地数据的数据 分布的指示信息得到的,该域分类器用于得到输入数据所属设备的指示信息。该m个设 备包括第二设备。处理后的域分类器和m个设备的模型可以为对域分类器和m个设备的 模型进行模型压缩处理后的域分类器和m个设备的模型。
79.第四方面,提供了一种数据处理方法,包括:获取待处理的数据;利用目标模型对
待 处理的数据进行处理,以得到待处理的数据的处理结果。其中,目标模型是根据域分类器 和m个设备的模型确定的,m个设备的模型用于根据域分类器的输出结果对输入数据进 行处理,域分类器是根据m个设备的本地数据的数据分布的指示信息构建的,域分类器 用于得到输入数据所属设备的指示信息,m个设备的模型是根据m个设备的本地数据训 练得到的,m为大于1的整数。
80.结合第四方面,在第四方面的某些实现方式中,目标模型是根据域分类器和m个设 备的模型确定的,包括:目标模型包括域分类器和m个设备的模型。
81.结合第四方面,在第四方面的某些实现方式中,目标模型是根据域分类器和m个设 备的模型确定的,包括:目标模型是通过对域分类器和m个设备的模型进行模型压缩后 得到的。
82.结合第四方面,在第四方面的某些实现方式中,目标模型是通过对域分类器和m个 设备的模型进行知识蒸馏处理得到的。
83.第五方面,提供了一种数据处理装置,该装置包括用于执行上述第一方面至第四方面 的任意一种实现方式的方法的单元。
84.应理解,在上述第一方面中对相关内容的扩展、限定、解释和说明也适用于第二方面、 第三方面、第四方面和第五方面中相同的内容。
85.第六方面,提供了一种数据处理装置,该装置包括:存储器,用于存储程序;处理器, 用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执 行第一方面至第四方面的任意一种实现方式中的方法。
86.上述第六方面中的处理器既可以是中央处理器(central processing unit,cpu),也可 以是cpu与神经网络运算处理器的组合,这里的神经网络运算处理器可以包括图形处理 器(graphics processing unit,gpu)、神经网络处理器(neural-network processing unit, npu)和张量处理器(tensor processing unit,tpu)等等。其中,tpu是谷歌(google) 为机器学习全定制的人工智能加速器专用集成电路。
87.第七方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代 码,该程序代码包括用于执行第一方面至第四方面中的任意一种实现方式中的方法。
88.第八方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运 行时,使得计算机执行上述第一方面至第四方面中的任意一种实现方式中的方法。
89.第九方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数 据接口读取存储器上存储的指令,执行上述第一方面至第四方面中的任意一种实现方式中 的方法。
90.可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令, 所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执 行第一方面至第四方面中的任意一种实现方式中的方法。
附图说明
91.图1为一种人工智能主体框架示意图;
92.图2为本技术实施例提供的一种系统架构的结构示意图;
93.图3为本技术实施例提供的一种芯片的硬件结构示意图;
94.图4为本技术实施例提供的一种系统架构的示意图;
95.图5为本技术实施例提供的一种数据处理方法的示意性流程图;
96.图6为本技术实施例提供的一种数据处理方法的示意性框图;
97.图7为本技术实施例提供的一种数据处理方法的示意性框图;
98.图8为本技术实施例提供的另一种数据处理方法的示意性流程图;
99.图9为本技术实施例提供的域分类器的构建方法的示意性流程图;
100.图10为本技术实施例提供的一种数据处理流程的示意图;
101.图11为本技术实施例提供的又一种数据处理方法的示意性框图;
102.图12为本技术实施例提供的另一种数据处理流程的示意图;
103.图13是本技术实施例提供的数据处理装置的示意性框图;
104.图14是本技术实施例提供的另一种数据处理装置的示意性框图。
具体实施方式
105.下面将结合附图,对本技术中的技术方案进行描述。
106.图1是一种人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流 程,适用于通用的人工智能领域需求。
107.下面从“智能信息链”(水平轴)和“信息技术(information technology,it)价值 链”(垂直轴)两个维度对上述人工智能主题框架进行详细的阐述。
[0108]“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感 知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过 程中,数据经历了“数据—信息—知识—智慧”的凝练过程。
[0109]“it价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产 业生态过程,反映人工智能为信息技术产业带来的价值。
[0110]
(1)基础设施:
[0111]
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平 台实现支撑。
[0112]
基础设施可以通过传感器与外部沟通,基础设施的计算能力可以由智能芯片提供。
[0113]
这里的智能芯片可以是中央处理器(central processing unit,cpu)、神经网络处理器 (neural-network processing unit,npu)、图形处理器(graphics processing unit,gpu)、 专门应用的集成电路(application specific integrated circuit,asic)以及现场可编程门阵列 (field programmable gate array,fpga)等硬件加速芯片。
[0114]
基础设施的基础平台可以包括分布式计算框架及网络等相关的平台保障和支持,可以 包括云存储和计算、互联互通网络等。
[0115]
例如,对于基础设施来说,可以通过传感器和外部沟通获取数据,然后将这些数据提 供给基础平台提供的分布式计算系统中的智能芯片进行计算。
[0116]
(2)数据:
[0117]
基础设施的上一层的数据用于表示人工智能领域的数据来源。该数据涉及到图形、图 像、语音、文本、序列,还涉及到传统设备的物联网数据,包括已有系统的业务数据以
及 力、位移、液位、温度、湿度等感知数据。
[0118]
应理解,序列可以理解为数据序列,最常见的有时序序列数据,即时序数据,例如一 段时间内的天气预报数据(温度、风向等),又例如股市数据、人体血糖变化数据等生理 数据的序列等等。
[0119]
(3)数据处理:
[0120]
上述数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等处理方 式。
[0121]
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、 预处理、训练等。
[0122]
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利 用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
[0123]
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
[0124]
(4)通用能力:
[0125]
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用 的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处 理,语音识别,图像的识别等等。
[0126]
(5)智能产品及行业应用:
[0127]
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决 方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、 智能交通、智能家居、智能医疗、智能安防、自动驾驶、平安城市以及智能终端等。
[0128]
本技术实施例可以应用在人工智能中的很多领域,例如,智能制造、智能交通、智能 家居、智能医疗、智能安防、自动驾驶、平安城市、智能终端等领域。
[0129]
具体地,本技术实施例可以具体应用在各类数据处理的领域,例如图像分类、图像检 索、图像语义分割、图像超分辨率等图像类数据相关的处理任务,又例如语音合成、语音 识别、语音搜索等语音类数据相关的处理任务,又例如智能翻译、语义提取等文字类数据 相关的处理任务,又例如草图绘制、手势控制等涉及图形数据的相关处理任务。图像类数 据相关的处理任务还可以是视频类图像数据,例如可以应用于视频搜索、视频分类、关键 人物追踪等任务。此外,本技术实施例还可以应用于数据序列的处理任务,例如时序数据。
[0130]
本技术实施例的方案可以用于完成多种类型的任务,例如,检索任务、检测任务和推 荐任务。下面分别对本技术实施例的方案应用于检索任务、检测任务以及推荐任务上的多 种场景进行举例说明。
[0131]
一、检索任务
[0132]
检索任务指的是利用检索模型查找与输入数据相关的数据。检索任务也可以理解为识 别任务。
[0133]
以图像处理领域为例,检索任务包括人脸识别、行人重识别(person re-identification, reid)、风景检索、视频搜索、手势识别以及以图识图等。
[0134]
以语音处理领域为例,检索任务包括语音识别、声纹识别等。
[0135]
应理解,此处仅以图像处理领域和语音处理领域为例对检索任务进行说明,不对
本申 请实施例的检索任务构成限定。
[0136]
检索模型通过对输入数据进行特征提取,将提取到的特征与数据库中的数据的特征进 行比较,以得到数据库中与输入数据相关的数据。
[0137]
例如,在风景检索任务中,输入图像可以为一个景点的图片,检索模型对该图片进行 特征提取,将提取到的特征与数据库中的风景图片的特征进行比较,可以找到该景点的其 他图片。
[0138]
再如,在行人重识别任务中,输入数据可以为摄像头拍摄的图像,检索模型对该图像 进行特征提取,将提取到的特征与数据库中的人体特征进行比较,找到与图像中的行人匹 配的人。
[0139]
不同区域或者不同采集方式采集的数据可能存在较大差异。例如,机构a在白天强光 下的城市1#采集的数据,机构b在夜间的城市1#采集的数据,机构c在城市2#采集的数 据。这三个机构采集的数据存在较大差异,基于本地数据训练得到的模型的适用性较低, 难以满足其他场景的检索需求。
[0140]
训练数据的覆盖范围越广,则检索模型的适应性越高,能够覆盖的场景也越广。但由 于通用数据保护条例(general data protection regulation,gdpr)或商业秘密等原因,很多 数据无法共享。
[0141]
在本技术实施例的方案中,各个节点可以共享自身的检索模型和本地数据的数据分布 的指示信息,例如,共享给中心节点。中心节点根据各个节点的本地数据的数据分布的指 示信息得到域分类器,在域分类器的指导下利用各个节点的模型处理数据。这样,可以在 保护用户隐私的同时,以得到提高处理结果的准确性。
[0142]
此外,不同的设备的性能不同,例如,不同的手机的处理能力不同,能够处理的模型 的复杂程度不同。
[0143]
本技术实施例的方案中,各个节点可以根据各自的处理能力选择合适的模型进行训 练,充分适应不同节点的性能上限,进一步提高处理结果的准确性。
[0144]
二、检测任务
[0145]
检测任务指的是利用检测模型找出输入数据中所有感兴趣的目标/物体,例如,目标 检测。
[0146]
以2d目标检测为例,2d目标检测的任务为找出图像中感兴趣的物体,确定物体的类 别以及位置。
[0147]
2d目标检测广泛应用于自动驾驶领域。自动驾驶对模型的覆盖面要求较高,期望检 测模型在各种情况下均能够实现准确的检测。例如,在各种天气、光照、城市等条件下均 能够准确检测出行人、车辆或交通标志等。
[0148]
不同的机构或车主受到自身的驾驶习惯或地域等影响,采集的数据往往存在较大的差 异。仅依靠单一的数据采集机构或单一的车主采集的数据难以训练出较好的检测模型,往 往需要多个数据采集机构或大量的车主采集的数据,才能覆盖不同的场景。然而行车数据 中包括隐私数据,受到gdpr等条例的限制,无法实现数据共享。
[0149]
在本技术实施例中,各个机构或车辆可以基于本地数据完成检测模型的训练,进而共 享模型和本地数据的数据分布的指示信息,例如,共享给中心节点。中心节点根据各个节 点的本地数据的数据分布的指示信息得到域分类器,在域分类器的指导下利用各个
于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统150中。
[0190]
最后,i/o接口112将处理结果,如上述得到的数据的处理结果返回给客户设备140, 从而提供给用户。
[0191]
值得说明的是,训练设备120可以针对不同的目标或不同的任务,基于不同的训练数 据生成相应的目标模型/规则101,该相应的目标模型/规则101即可以用于实现上述目标 或完成上述任务,从而为用户提供所需的结果。
[0192]
在图2中所示情况下,用户可以手动给定输入数据,该手动给定可以通过i/o接口112 提供的界面进行操作。另一种情况下,客户设备140可以自动地向i/o接口112发送输入 数据,如果要求客户设备140自动发送输入数据需要获得用户的授权,则用户可以在客户 设备140中设置相应权限。用户可以在客户设备140查看执行设备110输出的结果,具体 的呈现形式可以是显示、声音、动作等具体方式。客户设备140也可以作为数据采集端, 采集如图所示输入i/o接口112的输入数据及输出i/o接口112的输出结果作为新的样本 数据,并存入数据库130。当然,也可以不经过客户设备140进行采集,而是由i/o接口 112直接将如图所示输入i/o接口112的输入数据及输出i/o接口112的输出结果,作为 新的样本数据存入数据库130。
[0193]
值得注意的是,图2仅是本技术实施例提供的一种系统架构的示意图,图中所示设备、 器件、模块等之间的位置关系不构成任何限制,例如,在图2中,数据存储系统150相对 执行设备110是外部存储器,在其它情况下,也可以将数据存储系统150置于执行设备 110中。
[0194]
如图2所示,根据训练设备120训练得到目标模型/规则101,该目标模型/规则101 在本技术实施例中可以是本技术中的神经网络,具体地,可以为cnn等。
[0195]
图3为本技术实施例提供的一种芯片的硬件结构,该芯片包括神经网络处理器50。 该芯片可以被设置在如图2所示的执行设备110中,用以完成计算模块111的计算工作。 该芯片也可以被设置在如图2所示的训练设备120中,用以完成训练设备120的训练工作 并输出目标模型/规则101。本技术实施例中的方法可在如图3所示的芯片中得以实现。
[0196]
神经网络处理器npu 50作为协处理器挂载到主中央处理器(central processing unit, cpu)(host cpu)上,由主cpu分配任务。npu的核心部分为运算电路503,控制器 504控制运算电路503提取存储器(权重存储器或输入存储器)中的数据并进行运算。
[0197]
在一些实现中,运算电路503内部包括多个处理单元(process engine,pe)。在一些 实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执 行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路503是通用 的矩阵处理器。
[0198]
举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路从权重存储器502 中取矩阵b相应的数据,并缓存在运算电路中每一个pe上。运算电路从输入存储器501 中取矩阵a数据与矩阵b进行矩阵运算,以得到的矩阵的部分结果或最终结果,保存在 累加器(accumulator)508中。
[0199]
向量计算单元507可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运 算,对数运算,大小比较等等。例如,向量计算单元507可以用于神经网络中非卷积/非 fc层的网络计算,如池化(pooling),批归一化(batch normalization,bn),局部响应 归一
类器和m个设备的模型。或者,目标模型可以是通过对域分类器和m个设备的模型进行 模型压缩得到的。
[0214]
示例性地,该m个设备可以为m个用户设备。用户可以操作各自的用户设备(例如 本地设备301和本地设备302)与执行设备310进行交互。每个本地设备可以表示任何计 算设备,例如个人计算机、计算机工作站、智能手机、平板电脑、智能摄像头、智能汽车 或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。
[0215]
每个用户的本地设备可以通过任何通信机制/通信标准的通信网络与执行设备310进 行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。
[0216]
在一种实现方式中,本地设备301、本地设备302从执行设备310获取到目标模型的 相关参数,将目标模型部署在本地设备301、本地设备302上,利用目标模型进行图像分 类、进行图像处理、语音处理或者文本处理等等。
[0217]
在另一种实现中,执行设备310上可以直接部署目标模型,执行设备310通过从本地 设备301和本地设备302获取待处理数据,并采用目标模型对待处理数据进行处理,进一 步地,可以将处理结果返回至本地设备301和本地设备302。
[0218]
上述执行设备310也可以为云端设备,此时,执行设备310可以部署在云端;或者, 上述执行设备310也可以为终端设备,此时,执行设备310可以部署在用户终端侧,本申 请实施例对此并不限定。
[0219]
模型通常是通过大量的数据训练得到的。训练数据的质量和数量极大地影响了模型的 性能。通常,训练数据的涵盖面越广,数量越大,训练得到的模型的质量越好,普适性更 高,即覆盖的场景更多。
[0220]
实际场景中,很多数据都存储在多个孤立的节点上,例如,用户的终端(比如,手机、 车辆)或地方机构(比如,医院、公安机关)等。若能够利用多个节点上的数据训练模型, 则能够提高训练数据的数量以及质量,进而提高模型的性能。但由于数据隐私以及商业机 密等原因,节点上的数据无法实现共享。
[0221]
目前主流的方法是通过节点间传输模型进行训练。上传的模型通常包括模型的拓扑结 构以及模型的矩阵参数。具体来说,节点根据自身的数据训练出一个模型并上传至中心节 点,然后由中心节点融合收集到的模型,以得到一个相对完备的模型,该过程可能会迭代 数次。各个节点仅上传模型而非数据,这样可以在保护数据隐私的同时提高模型的性能。
[0222]
然而,现有的模型融合的方法仍存在一些问题。例如,在利用联邦平均算法融合模型 的过程中,中心节点在收集到多个节点的模型后,根据每个节点的数据量计算该节点的权 重大小,一个节点的数据量越大,则该节点的权重越大。根据该节点的权重对该多个节点 的模型中的参数逐一进行加权平均,加权平均后得到的参数即为融合后的模型参数。中心 节点将融合后的模型下发给多个节点,重复上述过程。也就是说,联邦平均算法通常需要 进行多次通信迭代。然而,在不同的节点存储的数据差异较大时,模型的融合结果会大幅 下降。或者说,当各节点的数据为非独立同分布(non independent and identically distributed, non i.i.d.)时,联邦平均算法会将结果收敛到一个较差的解上。这是由于联邦学习算法的 先验假设为随机均匀采样,当各个节点上的数据分布不同时,算法的先验假设不再成立, 联邦学习算法的效果也随之下降。而且,深度网络中通常还包括批归一化
nets,gan) 或变分自动编码器(variational auto-encoder,vae)等。
[0248]
gan通过生成器和判别器对抗产生伪数据,使得生成器生成的伪数据特征与真实数 据的特征越来越一致,并且使得判别器尽可能地区分真实数据和伪数据。换而言之,生成 器的目标是使得伪数据和真实数据区别越来越小,无法判别输入数据到底是伪数据还是生 成数据,而判别器的目标则是尽可能区分出伪数据和真实数据。
[0249]
vae则是通过学习真实数据的数据分布并进行还原,来生成伪数据。vae则是使得 伪数据和真实数据具有尽可能相同的数据分布,从而能够使得伪数据也能代替真实数据。
[0250]
特征生成器用于生成与本地数据分布一致或相近的伪特征。或者说,特征生成器生成 的特征能够反映本地数据的数据特征。
[0251]
示例性地,特征生成器可以采用生成式对抗网络或变分自动编码器等。
[0252]
基于设备的本地数据能够训练得到设备的域单分类器。设备上的域单分类器能够用于 判断输入至该域单分类器中的数据与该设备的本地数据的数据分布是否一致或相近。或者 说,设备的域单分类器能够用于判断输入至该单分类中的数据是否属于该设备。
[0253]
本技术实施例中数据是否属于一个设备,即该数据是否属于该设备的模型擅长的数据 范围,可以理解为该数据是否与该设备的本地数据同源,或者说,该数据是否与该设备的 本地数据的数据分布一致或相近。
[0254]
设备的模型是基于设备的本地数据训练得到的,当一个数据与一个设备的本地数据的 数据分布一致或相近,则该数据更有可能落入该设备的模型擅长的数据范围。
[0255]
域单分类器的输出结果可以包括:输入至该域单分类器中的数据与本地数据的数据分 布一致或相近或者输入至该域单分类器中的数据与本地数据的数据分布不一致。或者,域 单分类器的输出结果可以包括:输入至该域单分类器中的数据与本地数据的数据分布一致 或相近的概率。应理解,以上仅为示例,域单分类器的输出结果还可以表示为其他形式, 只要输出结果能够指示输入数据与本地数据的数据分布是否一致或相近即可,本技术实施 例对域单分类器的输出结果的形式不做限定。
[0256]
示例性地,设备的域单分类器可以包括该设备的本地数据的类中心或支持向量等。
[0257]
若设备的域单分类器为设备的本地数据的类中心,输入至该域单分类器中的数据与本 地数据的数据分布一致或相近的概率可以根据输入至该域单分类器中的数据与本地数据 的类中心之间的距离确定。
[0258]
例如,本地数据的类中心可以为本地数据的特征的平均值。即对本地数据进行特征提 取,计算提取到的特征的平均值,将该平均值作为本地数据的类中心。
[0259]
应理解,以上方式仅为示例,数据分布的指示信息还可以为其他形式,例如,由数据 生成器生成的伪数据,本技术实施例对此不做限定。
[0260]
需要说明的是,该m个设备的数据分布的指示信息的形式可以相同,也可以不同。
[0261]
例如,如图6所示,设备1的本地数据的数据分布的指示信息为数据生成器1,数据 生成器1用于生成与设备1的本地数据分布一致或相近的伪数据,设备2的本地数据的数 据分布的指示信息为设备2的本地数据(数据2)中的部分或全部,例如非隐私数据。设 备m的本地数据的数据分布的指示信息为数据生成器m,数据生成器m用于生成与设备 m的本地数据一致的伪数据。
[0262]
s520,根据该m个设备的本地数据的数据分布的指示信息得到域分类器,该域分类 器用于得到输入数据所属设备的指示信息。m个设备的模型用于根据输入数据所属设备的 指示信息对输入数据进行处理。
[0263]
也就是说,域分类器能够用于判断输入数据与该m个设备的本地数据的数据分布的 一致性的情况。
[0264]
示例性地,根据m个设备的本地数据的数据分布的指示信息进行训练或整合,以得 到域分类器。
[0265]
输入至域分类器中的数据所属设备的指示信息可以是多种形式的。具体形式可以根据 需要设置。
[0266]
示例性地,输入至域分类器中的数据所属设备的指示信息可以为输入至域分类器中的 数据所属设备的地址信息或者能指示待处理的数据所属设备的身份代号,也可以为输入至 域分类器中的数据属于该m个设备的概率中的最大概率以及最大概率对应的设备,也可 以为输入至域分类器中的数据属于该m个设备的概率。
[0267]
构建域分类器的具体方式与数据分布的指示信息的数据类型有关。
[0268]
可选地,根据与m个设备的本地数据的数据分布一致或相近的数据对分类模型进行 训练,以得到域分类器。其中,与m个设备的本地数据的数据分布一致或相近的数据是 根据本地数据的数据分布的指示信息确定的。训练的目标是使得域分类器能够判断输入至 域分类器中的数据所属的设备。例如,分类模型可以为神经网络模型。
[0269]
示例性地,数据分布的指示信息为数据生成器,则基于m个设备的数据生成器生成 的伪数据即为与该m个设备的本地数据的数据分布一致或相近的数据。基于伪数据对分 类模型进行训练得到域分类器。
[0270]
例如,如图9所示,设备1上的本地数据可以称为数据1,设备2上的本地数据可以 称为数据2。设备1的数据生成器生成伪数据1,设备2的数据生成器生成伪数据2。伪 数据1与数据1是同分布的,伪数据2与数据2是同分布的。基于伪数据1和伪数据2训 练得到一个二分类器,该二分类器即为域分类器。将数据输入域分类器中,域分类器输出 该数据与数据1同分布的概率以及与该数据与数据2同分布的概率,也即该数据属于设备 1的概率以及待处理的数据属于设备2的概率。
[0271]
示例性地,数据分布的指示信息可以包括本地数据中的部分或全部。与m个设备的 本地数据的数据分布一致或相近的数据即为本地数据中的部分或全部。基于该m个设备 的本地数据中的部分或全部对分类模型进行训练,以得到训练好的分类模型,即为域分类 器。
[0272]
可选地,根据m个设备的本地数据中的部分或全部分别构建m个设备的域单分类器, m个设备的域单分类器包括m个设备的本地数据的类中心或支持向量,域分类器包括m 个设备的域单分类器。
[0273]
域单分类器的具体构建方式可以参考步骤s510,此处不再赘述。
[0274]
示例性地,数据分布的指示信息可以为域单分类器。也就是说,由该m个设备分别 构建该m个设备的域单分类器。聚合该多个设备的域单分类器即可得到域分类器。
[0275]
例如,域单分类器为本地数据的类中心。根据输入至该域单分类器中的数据与本地数 据的类中心之间的距离确定输入至该域单分类器中的数据与本地数据同分布的概
率。聚合 m个设备的域单分类器得到的域分类器,可以根据输入至域分类器中的数据与各域单分类 器的类中心之间的距离确定输入至域分类器中的数据属于该m个设备的概率。或者说, 输入数据属于一个设备的概率可以通过输入数据与该设备的本地数据的类中心之间的距 离表示。
[0276]
应理解,以上仅为示例,在数据分布的指示信息的数据类型为其他类型时,相应地, 可以通过其他方式确定域分类器,本技术实施例对此不做限定。
[0277]
在一种实现方式中,方法500还包括步骤s530。
[0278]
s530,对域分类器和m个设备的模型进行处理,以得到处理后的域分类器和m个设 备的模型。
[0279]
在步骤s530中,可以将域分类器和m个设备的模型理解为一个模型,即对该模型进 行处理,以得到处理后的模型。
[0280]
m个设备的模型用于根据域分类器的输出结果对输入数据进行处理。
[0281]
例如,根据域分类器的输出结果选择适合的模型对输入数据进行处理。具体的处理方 法可以参见后文中的方法800。
[0282]
步骤s530可以包括:将域分类器和m个设备的模型进行模型压缩,以得到压缩后的 模型。可以理解为,将域分类器和m个设备的模型视为一个模型,对该模型进行模型压 缩。
[0283]
示例性地,可以通过知识蒸馏、模型剪枝或模型量化等方式对域分类器和m个设备 的模进行压缩。
[0284]
可选地,通过知识蒸馏对域分类器和m个设备的模型进行压缩,以得到压缩后的模 型。
[0285]
可选地,通过知识蒸馏对域分类器和m个设备的模型进行压缩,以得到压缩后的模 型,包括:利用域分类器对输入数据进行处理,以得到输入数据所属设备的指示信息;根 据输入数据所属设备的指示信息利用m个设备的模型对输入数据进行处理,以得到第一 处理结果;利用第一处理结果对第一学生模型进行训练,以得到压缩后的模型。
[0286]
具体地,利用第一处理结果对第一学生模型进行训练,包括:利用第一学生模型对输 入数据进行处理,以得到第二处理结果,第一学生模型的参数量小于域分类器和m个设 备的模型的参数量;以减小损失函数的值为目标对第一学生模型进行训练,以得到压缩后 的模型。损失函数用于计算第一处理结果和第二处理结果之间的差异。训练好的第一学生 模型即为压缩后的模型。第一学生模型的参数量小于域分类器和m个设备的模型的参数 量指的是第一学生模型的参数量小于域分类器的参数量和m个设备的模型的参数量之和。
[0287]
第一处理结果即为域分类器和m个设备的模型对输入数据进行处理得到的结果。也 就是说,将域分类器和m个设备的模型视为一个模型,并将该模型作为教师模型,将第 一学生模型作为学生模型,利用域分类器和m个设备的模型的输出结果指导第一学生模 型的训练过程,训练好的第一学生模型即为压缩后的模型。
[0288]
第一学生模型可以是根据该m个设备的模型确定的。
[0289]
例如,第一学生模型可以为该m个设备的模型中的一个。
[0290]
或者,第一学生模型也可以是自行构建的神经网络模型。本技术实施例对第一学生模 型的具体结构不做限定,只要第一学生模型的参数量小于域分类器和m个设备的模型的 参数量即可。
[0291]
应理解,以上仅为知识蒸馏方式的一种示例,还可以通过其他方式进行知识蒸馏。
[0292]
可选地,通过模型剪枝对域分类器和m个设备的模型进行压缩,以得到压缩后的模 型。
[0293]
可选地,通过模型剪枝对域分类器和m个设备的模型进行压缩,以得到压缩后的模 型,包括:对域分类器和m个设备的模型进行剪枝处理,对剪枝处理后的模型进行微调 (fine-tune)处理,以得到压缩后的模型。
[0294]
具体地,对域分类器和m个设备的模型进行剪枝处理包括:删除域分类器和m个设 备的模型中的部分权重参数。例如,删除该m个设备的模型中的部分或全部模型中的部 分权重参数。
[0295]
对剪枝处理后的模型进行微调(fine-tune)处理,指的是,利用训练数据对剪枝处理 后的模型进行训练。具体的训练方法可以采用现有的方案,本技术实施例对此不做限定。
[0296]
进一步地,方法500还包括步骤s540。
[0297]
s540,将处理后的域分类器和m个设备的模型发送至多个设备。
[0298]
例如将压缩后的模型发送至多个设备。
[0299]
该多个设备可以包括该m个设备中的部分或全部。该多个设备也可以不包括该m个 设备中的全部设备,也就是说,将压缩后的模型发送至该m个设备以外的其他设备。
[0300]
该多个设备可以部署压缩后的模型进行推理。
[0301]
可选地,将压缩后的模型发送至该m个设备。
[0302]
在方法500不包括步骤s530的情况下,步骤s540可以包括:将域分类器和/或m个 设备的模型的部分或全部发送至多个设备。
[0303]
该多个设备可以包括该m个设备中的部分或全部。该多个设备也可以不包括该m个 设备中的全部设备,也就是说,将域分类器和m个设备的模型发送至该m个设备以外的 其他设备。
[0304]
即该多个设备可以部署域分类器和m个设备的模型进行推理。
[0305]
进一步地,接收到压缩后的模型的设备,例如,该m个设备,可以对压缩后的模型 进行训练。
[0306]
或者,接收到域分类器和m个设备的模型的设备,例如,该m个设备,可以对域分 类器和m个设备的模型进行训练。
[0307]
进一步地,接收到域分类器和m个设备的模型的设备,例如,该m个设备,可以对 域分类器和m个设备的模型进行压缩,进行对压缩后的模型进行训练。
[0308]
可选地,将步骤s510中的m个设备的模型更新为训练后的模型,重复步骤s510至 步骤s530,直至得到训练好的模型。该训练后的模型指的是对域分类器和m个设备的模 型或压缩后的模型进行训练得到的模型。也就是说,本技术实施例的方案可以应用于联邦 学习框架下,通过多次训练迭代得到所需的模型。示例性地,方法500可以由中心节点执 行,该m个设备可以为m个子节点,中心节点和子节点之间可以不断重复中心节点下发 模型、子节点训练模型、子节点上传模型、中心节点处理模型这一循环过程。
[0309]
应理解,将步骤s510中的m个设备的模型更新为训练后的模型,重复步骤s510至 步骤s530,在该过程中,每次更新后的模型的数量与设备的数量可以相同,也可以不同。 例
如,将步骤s510中的m个设备的模型更新为m个设备的训练后的模型,在该情况下, 更新后的模型的数量与设备的数量相同。再如,将步骤s510中的m个设备的模型更新为 m个设备中的部分设备的训练后的模型,在该情况下,更新后的模型的数量与设备的数量 不同。
[0310]
例如,如图7所示,通过知识蒸馏的方式对域分类器和m个设备的模型进行压缩, 以得到压缩后的模型,即训练好的第一学生模型,然后将第一学生模型下发至m个设备, 由m个设备对第一学生模型进行训练,重复步骤s510至步骤s540,直至得到所需的模型。
[0311]
应理解,图7仅为示例,不对本技术实施例的方案构成限定。例如,还可以将压缩后 的模型发送至其他设备,由其他设备对压缩后的模型进行训练,然后重复步骤s510至步 骤s540。再如,还可以将域分类器和m个设备的模型发送至m个设备,由m个设备对域 分类器和m个设备的模型进行训练,重复步骤s510至步骤s540,直至得到所需的模型。
[0312]
在另一种实现方式中,方法500不包括步骤s530和步骤s540,方法500还可以包括 s550。
[0313]
s550,根据输入数据所属设备的指示信息将m个设备的模型进行融合处理,以得到 一个融合模型。
[0314]
具体地,根据输入数据所属设备的指示信息将m个设备的模型进行融合处理,以得 到一个融合模型,包括:在m个设备的模型的结构相同的情况下,根据输入数据所属设 备的指示信息确定该m个设备对应的权重,根据该m个设备对应的权重对该m个设备的 模型的参数进行加权平均处理,以得到的参数即为融合模型的参数。
[0315]
输入数据所属设备的指示信息包括输入数据属于该m个设备的概率。在该情况下, 根据输入数据属于该m个设备的概率确定该m个设备对应的权重。
[0316]
示例性地,输入数据属于该m个设备中的一个设备的概率越高,该设备对应的权重 越高。
[0317]
示例性地,在输入数据属于该m个设备的概率中的概率小于或等于第一阈值的设备 对应的权重为0。
[0318]
也就是说,当输入数据与该m个设备中的一个或多个设备的本地数据同源的概率较 低的情况下,在对模型进行融合处理的过程中,不考虑该模型的参数。
[0319]
示例性地,在输入数据属于该m个设备的概率中的概率小于或等于第一阈值的设备 对应的权重为0,概率大于第一阈值的设备对应的权重相同。
[0320]
也就是说,当输入数据与该m个设备中的一个或多个设备的本地数据同源的概率较 低的情况下,在对模型进行融合处理的过程中,不考虑该模型的参数。当输入数据与该m 个设备中的一个或多个设备的本地数据同源的概率较高的情况下,采用相同的权重对模型 的参数进行平均处理。
[0321]
应理解,以上仅为示例,还可以通过其他方式确定该m个设备对应的权重,本技术 实施例对此不做限定。
[0322]
进一步地,方法500还包括s560。
[0323]
s560,对融合模型进行模型压缩,以得到压缩后的融合模型。
[0324]
示例性地,可以通过知识蒸馏、模型剪枝或模型量化等方式对融合模型进行模型压缩。
[0325]
可选地,通过知识蒸馏对融合模型进行压缩,以得到压缩后的融合模型。
[0326]
可选地,通过知识蒸馏对融合模型进行压缩,以得到压缩后的融合模型,包括:利用 融合模型对输入数据进行处理,以得到第三处理结果;利用第三处理结果对第二学生模型 进行训练,以得到压缩后的融合模型,第二学生模型的参数量小于融合模型的参数量。
[0327]
具体地,利用第三处理结果对第二学生模型进行训练,包括:利用第二学生模型对输 入数据进行处理,以得到第四处理结果;以减小损失函数的值为目标对第二学生模型进行 训练,以得到压缩后的融合模型。损失函数用于计算第三处理结果和第四处理结果之间的 差异。
[0328]
也就是说,将融合模型作为教师模型,将第二学生模型作为学生模型,利用融合模型 的输出结果指导第二学生模型的训练过程,训练好的第二学生模型即为压缩后的融合模 型。
[0329]
第二学生模型可以是根据该m个设备的模型确定的。
[0330]
例如,第二学生模型可以为该m个设备的模型中的一个。
[0331]
或者,第二学生模型也可以是自行构建的神经网络模型。本技术实施例对第二学生模 型的具体结构不做限定,只要第二学生模型的参数量小于融合模型的参数量即可。
[0332]
应理解,以上仅为知识蒸馏方式的一种示例,还可以通过其他方式进行知识蒸馏。
[0333]
可选地,通过模型剪枝对融合模型进行压缩,以得到压缩后的融合模型。
[0334]
可选地,通过模型剪枝对融合模型进行压缩,以得到压缩后的融合模型,包括:对融 合模型进行剪枝处理,对剪枝处理后的模型进行微调(fine-tune)处理,以得到压缩后的 融合模型。
[0335]
具体地,对融合模型进行剪枝处理包括:删除融合模型中的部分权重参数。
[0336]
对剪枝处理后的模型进行微调(fine-tune)处理,指的是,利用训练数据对剪枝处理 后的模型进行训练。具体的训练方法可以采用现有的方案,本技术实施例对此不做限定。
[0337]
可选地,在方法500包括步骤s560的情况下,方法500还可以包括s570。
[0338]
s570,将压缩后的融合模型发送至多个设备。
[0339]
例如将压缩后的融合模型发送至多个设备。
[0340]
该多个设备可以包括该m个设备中的部分或全部。该多个设备也可以不包括该m个 设备中的全部设备,也就是说,将压缩后的融合模型发送至该m个设备以外的其他设备。
[0341]
该多个设备可以部署压缩后的融合模型进行推理。
[0342]
可选地,将压缩后的融合模型发送至该m个设备。
[0343]
进一步地,接收到压缩后的融合模型的设备,例如,该m个设备,可以对压缩后的 融合模型进行训练。
[0344]
或者,将域分类器和m个设备的模型发送至多个设备。接收到域分类器和m个设备 的模型的设备,例如,该m个设备,可以分别根据输入数据所属设备的指示信息将m个 设备的模型进行融合处理,以得到融合模型,对融合模型进行压缩,进而对压缩后的融合 模型进行训练。
[0345]
可选地,将步骤s510中的m个设备的模型更新为训练后的模型,重复步骤s510、s520、 s550、s560和s570,直至得到训练好的模型。该训练后的模型指的是对融合模型或压缩 后的融合模型进行训练得到的模型。也就是说,本技术实施例的方案可以应用于联邦学
习 框架下,通过多次训练迭代得到所需的模型。示例性地,方法500可以由中心节点执行, 该m个设备可以为m个子节点,中心节点和子节点之间可以不断重复中心节点下发模型、 子节点训练模型、子节点上传模型、中心节点处理模型这一循环过程。
[0346]
例如,通过知识蒸馏的方式对融合模型进行压缩,以得到压缩后的融合模型,即训练 好的第二学生模型,然后将第二学生模型下发至m个设备,由m个设备对第二学生模型 进行训练,重复s510、s520、s550、s560和s570,直至得到所需的模型。
[0347]
应理解,以上仅为示例,不对本技术实施例的方案构成限定。例如,还可以将压缩后 的融合模型发送至其他设备,由其他设备对压缩后的融合模型进行训练,然后重复步骤 s510、s520、s550、s560和s570。
[0348]
应理解,将步骤s510中的m个设备的模型更新为训练后的模型,重复步骤s510、s520、 s550、s560和s570,在该过程中,每次更新后的模型的数量与设备的数量可以相同,也 可以不同。例如,将步骤s510中的m个设备的模型更新为m个设备的训练后的模型,在 该情况下,更新后的模型的数量与设备的的数量相同。再如,将步骤s510中的m个设备 的模型更新为m个设备中的部分设备的训练后的模型,在该情况下,更新后的模型的数 量与设备的数量不同。
[0349]
根据本技术实施例的方案,通过各个设备的本地数据的数据分布的指示信息构建域分 类器,利用域分类器得到各个设备的模型所擅长的数据范围,基于域分类器的输出结果指 导各个设备的模型处理输入数据,能够充分发挥各个设备的模型的优势,在不同设备上的 数据非同分布时,避免发生模型融合冲突的情况,即处理结果的性能不会受到不同设备上 的数据分布差异的影响,提高了处理结果的准确性,扩大了模型的覆盖范围,提高了模型 的鲁棒性。而且,各个设备仅共享本地数据的数据分布的指示信息以及模型,有利于保护 用户隐私。此外,各个设备的模型的结构可以相同,也可以不同,支持异构模型,使得各 个设备能够基于各自的处理性能选择合适的模型进行训练,各个设备能够选择合适的算 法,提高了各个设备的模型的性能,增加了灵活性和鲁棒性,有利于进一步提高模型的性 能。
[0350]
本技术的方案只需要传输一次模型即可超过联邦学习传输多次模型的效果,大大减少 了通信功耗,提高了模型的训练效率。此外,本技术的方案也可以通过多次通信迭代进一 步提高模型的性能,在域分类器的指导下对模型进行处理,能够提高模型的收敛速度和处 理结果的准确性。
[0351]
此外,若采用中心节点执行本技术实施例的方案,能够合理利用各个设备的计算力, 预先基于本地数据对模型进行训练,中心节点对各个设备提供的模型进行处理,大大减小 了中心节点的硬件消耗。
[0352]
图8示出了本技术实施例提供的数据处理方法800的示意性流程图,该方法可以由能 够进行数据处理的装置或设备执行,例如,该装置可以是云服务设备,也可以是终端设备, 例如,电脑、服务器等运算能力足以用来执行数据处理方法的装置,也可以是由云服务设 备和终端设备构成的系统。示例性地,方法800可以由图2中的执行设备110、图3中的 神经网络处理器50或图4中的执行设备310或本地设备执行。
[0353]
例如,方法800具体可以由如图2所示的执行设备110执行,方法800中的待处理数 据可以是如图2所示的客户设备140给出的输入数据。
[0354]
再如,本技术实施例的方案能够部署于终端上,即由终端执行本技术实施例的方法, 以实现数据处理。或者,本技术实施例的方案能够部署于终端上的应用程序(application, app)中,即通过app调用执行本技术实施例的方法,以实现数据处理。
[0355]
图8中的数据处理方法800中使用的模型可以是通过上述图5中的方法构建的。方法 800中的具体实现方式可以参照前述方法500,为了避免不必要的重复,下面在介绍方法 800时适当省略重复的描述。
[0356]
方法800包括步骤s810至步骤s830,下面对步骤s810至步骤s830进行描述。
[0357]
s810,获取待处理的数据。
[0358]
待处理的数据的类型与模型的任务有关。例如,模型用于图像处理任务,则该待处理 的数据可以为图像。具体地,图像处理任务包括图像分类、图像检测、图像分割、图像识 别或图像生成等。再如,模型用于文本处理任务,则该待处理的数据可以为文本。具体地, 文本处理任务包括文本识别或文本翻译等。再如,模型用于语音处理任务,则该待处理的 数据可以为语音数据。具体地,语音处理任务包括语音识别等。本技术实施例对待处理的 数据的类型不做限定。
[0359]
示例性地,待处理的数据为图像,待处理的图像可以是终端设备(或者电脑、服务器 等其他装置或设备)通过摄像头拍摄到的图像,或者,该待处理的图像还可以是从终端设 备(或者电脑、服务器等其他装置或设备)内部获得的图像(例如,终端设备的相册中存 储的图像,或者终端设备从云端获取的图像),本技术实施例对此并不限定。
[0360]
在一种实现方式中,方法800可以由m个设备中的任一设备执行。示例性地,一个 设备(例如,中心节点)执行方法500,以得到域分类器和m个设备的模型。m个设备中 的任一设备接收该域分类器和m个设备的模型,并执行方法800。
[0361]
在另一种实现方式中,方法800可以由该m个设备以外的其他设备执行。示例性地, 中心节点执行方法500,以得到域分类器和m个设备的模型,中心节点基于该域分类器和 m个设备的模型执行方法800。
[0362]
s820,利用域分类器对待处理的数据进行处理,以得到待处理的数据所属设备的指示 信息,域分类器是根据m个设备的本地数据的数据分布的指示信息得到的,待处理的数 据所属设备为m个设备中的一个,m为大于1的整数。
[0363]
示例性地,待处理的数据所属设备的指示信息可以为输入至域分类器中的数据所属设 备的地址信息或者能指示数据所属设备的身份代号,也可以为待处理的数据属于该m个 设备的概率中的最大概率以及最大概率对应的设备,也可以为待处理的数据属于该m个 设备的概率。
[0364]
具体的域分类器的确定方法可以参见方法500,此处不再赘述。
[0365]
s830,根据待处理的数据所属设备的指示信息利用m个设备的模型对待处理的数据 进行处理,其中,m个设备的模型分别是基于m个设备的本地数据训练得到的。
[0366]
m个设备的模型是基于m个设备的本地数据训练得到的,m个设备的模型擅长的数 据范围为与本地数据的数据分布一致或相近的数据。域分类器能够判断待处理的数据与该m个设备的本地数据的数据分布是否具有一致性,也就是说,域分类器能够判断待处理的 数据落入哪个设备的模型所擅长的数据范围内,进而为待处理的数据选择更合适的模型进 行处理,例如,选择更擅长该数据范围的模型进行处理,以提高数据处理的准确性。
[0367]
可选地,步骤s830包括:利用m个设备中的至少一个设备的模型对待处理的数据进 行处理,至少一个设备的模型是根据待处理的数据所属设备的指示信息确定的。
[0368]
可选地,步骤s830包括:利用m个设备的模型中的待处理的数据所属设备的模型对 待处理的数据进行处理。
[0369]
通过域分类器判断待处理的数据属于哪个设备的模型所擅长的数据范围中,选择最合 适的模型,即待处理的数据所属设备的模型对待处理的数据进行处理,能够提高处理结果 的准确性。
[0370]
可选地,步骤s830包括:利用m个设备中的n个设备的模型分别对待处理的数据进 行处理,以得到待处理的数据的n个特征,将待处理的数据的n个特征进行拼接;对拼接 后的特征进行降维处理,以得到降维处理后的特征。n个设备包括待处理的数据所属的设 备。其中,由待处理的数据所属设备的模型得到的特征对应的权重值大于n个设备中的其 他设备的模型得到的特征对应的权重值。n为大于1的整数,n≤m。
[0371]
降维处理可以采用多种降维方法,例如,主成分分析(principal component analysis, pca)。
[0372]
降维处理后的特征与模型对模型对待处理的数据进行处理后得到的特征的维度可以 是相同的。
[0373]
进一步地,n个设备的模型包括第一模型。
[0374]
第一模型可以根据需要设定。
[0375]
示例性地,第一模型可以是预先定义的模型。
[0376]
第一模型可以是m个设备的模型中泛化能力最好的模型,这样,第一模型的处理结 果的准确性更高。
[0377]
示例性地,第一模型可以是根据模型结构确定的。
[0378]
例如,第一模型可以是m个设备的模型中参数量最大的模型。在该情况下,判断待 处理的数据所属设备的模型的参数量是否是该m个设备的模型的参数量中的最大者。若 是,则待处理的数据所属设备的模型是第一模型;若不是,则待处理的数据所属设备的模 型不是第一模型。
[0379]
再如,第一模型可以是m个设备的模型中卷积层数最多的模型。在该情况下,判断 待处理的数据所属设备的模型的卷积层数是否是该m个设备的模型的卷积层数中的最大 者,若是,则待处理的数据所属设备的模型是第一模型;若不是,则待处理的数据所属设 备的模型不是第一模型。可替换地,第一模型可以是根据模型的训练数据确定的。
[0380]
例如,第一模型可以是m个设备的模型中训练数据的数据量最大的模型。在该情况 下,判断待处理的数据所属设备的模型的训练数据的数据量是否是该m个设备的模型的 训练数据的数据量中的最大者。若是,则待处理的数据所属设备的模型是第一模型;若不 是,则待处理的数据所属设备的模型不是第一模型。
[0381]
或者,第一模型可以是m个设备的模型中训练数据的覆盖范围最广的模型。比如, 覆盖范围最广也可以理解为采集区域最广。在该情况下,判断待处理的数据所属设备的模 型的训练数据的覆盖范围是否是该m个设备的模型的训练数据的覆盖范围的最大者。若 是,则待处理的数据所属设备的模型是第一模型;若不是,则待处理的数据所属设备的模 型不是第一模型。
后的模型之后,还可以继续对接收到的模型进行训练,重复步骤s11至步骤s13,进一步 提高模型的性能。
[0450]
根据本技术实施例的方案,通过各个设备的本地数据的数据分布的指示信息构建域分 类器,利用域分类器得到各个设备的模型所擅长的数据范围,基于域分类器的输出结果指 导各个设备的模型处理输入数据,能够充分发挥各个设备的模型的优势,在不同设备上的 数据非同分布时,避免发生模型融合冲突的情况,即处理结果的准确性不会受到不同设备 上的数据分布差异的影响,提高了模型的性能。本技术的方案只需要传输一次模型即可超 过联邦学习传输多次模型的效果,大大减少了通信功耗,提高了模型的训练效率。
[0451]
若第一模型的处理结果的准确性更高,具有更好的参考价值,利用第一模型得到的特 征和待处理的数据所属设备得到的特征进行拼接,能够提高处理结果的准确性,此外,通 过为待处理的数据所属设备的模型得到的特征设置更大的权重,能够提高该特征的影响 力,进一步提高了处理结果的准确性。
[0452]
在一个检索数据集上验证效果如表1所示。表1示出了联邦学习和本技术的方案在一 个检索数据集上的检索精度,或者说,预测结果的准确率。
[0453]
表1
[0454][0455]
模型1是基于环境11#、环境12#以及环境13#中采集到的数据训练得到的,模型2 是基于环境2#中采集到的数据训练得到的。如表1所示,模型1在环境11#、环境12#以 及环境13#采集到的数据上的检索精度均大于模型2,模型2在环境2#采集到的数据上的 检索精度大于模型1。期望结果指的是模型1和模型2中的检索精度中的较大值。本技术 的方案的检索精度均大于期望结果,整体来说,检索精度优于联邦学习的方案。
[0456]
需要说明的是,此处仅以检索任务为例对本技术实施例的方案进行说明,本技术实施 例也可以应用于模型的输入和输出的数据形式与检索模型的输入和输出的数据形式类似 的其他任务中。例如,上述方案还可以应用于模型的输出包括n维的特征的其他任务中。
[0457]
检测任务
[0458]
检测任务可以包括2d目标检测或3d目标检测等。此处仅以自动驾驶场景中的目标 检测为例对本技术实施例的方案进行说明。
[0459]
在自动驾驶场景下,对检测模型的覆盖面和鲁棒性具有较高的要求。在车辆上使用的 检测模型需要覆盖更全面的场景。并且,能够随着城市建设、天气变化等情况实时更新。 因此,车辆上的检测模型需要不断采集新的数据,以覆盖新的场景。但由于用户的个人
为电线杆,若输入数据属于设备1的概率大于输入数据属于设备2的概率,则输出模型1 推理得到的候选框1及其标签;若输入数据属于设备2的概率大于输入数据属于设备1的 概率,则输出模型2推理得到的候选框2及其标签。
[0476]
s233,对重合的候选框进行合并,输出合并后的候选框及其标签。
[0477]
具体地,根据域分类器输出的权重对重合的候选框进行合并,输出合并后的候选框及 其标签。
[0478]
例如,根据域分类器输出的权重进行merge nms合并多个重合的候选框,以得到合 并后的候选框及其标签。
[0479]
进一步地,还可以对域分类器和m个设备的模型进行模型压缩,以得到压缩后的模 型。
[0480]
示例性地,利用知识蒸馏等方式将域分类器和m个设备的模型进行模型压缩,以得 到一个较小的模型。压缩后的模型可以发送至各节点,各节点可以部署该压缩后的模型进 行推理。
[0481]
应理解,模型压缩为可选步骤。也就是说,中心节点还可以将域分类器和m个设备 的模型发送至各节点,各节点可以部署该域分类器和m个设备的模型。或者,各节点也 可以对域分类器和m个设备的模型进行压缩,进而部署压缩后的模型进行推理。
[0482]
进一步地,各个节点接收到域分类器和m个设备的模型或者压缩后的模型之后,还 可以继续对接收到的模型进行训练,重复执行上述步骤,进一步提高模型的性能。
[0483]
根据本技术实施例的方案,通过各个设备的本地数据的数据分布的指示信息构建域分 类器,利用域分类器得到各个设备的模型所擅长的数据范围,基于域分类器的输出结果指 导各个设备的模型处理输入数据,能够充分发挥各个设备的模型的优势,在不同设备上的 数据非同分布时,避免发生模型融合冲突的情况,即处理结果的准确性不会受到不同设备 上的数据分布差异的影响,提高了模型的性能。本技术实施例的方案在各设备上的本地数 据差异较大时具有较好的处理效果,即模型的准确率较高。例如,在自动驾驶场景中,不 同设备的本地数据中的道路标识符可能不同、不同城市采集的数据的颜色差异可能较大, 本技术实施例的方案能够在保护数据隐私的前提下,以得到覆盖范围较广的模型,有利于 达到自动驾驶场景中对模型的场景覆盖全面的要求。此外,还可以合理利用端侧的计算力, 减少进行模型处理的设备的负担,例如,中心节点的负担。
[0484]
本技术的方案只需要传输一次模型即可超过联邦学习传输多次模型的效果,大大减少 了通信功耗,提高了模型的训练效率。
[0485]
本技术实施例提供还提供了一种数据处理方法1300,该方法可以由能够进行数据处 理的装置或设备执行,例如,该装置可以是云服务设备,也可以是终端设备,例如,电脑、 服务器等运算能力足以用来执行数据处理方法的装置,也可以是由云服务设备和终端设备 构成的系统。示例性地,方法1300可以由图2中的训练设备120、图3中的神经网络处 理器50或图4中的执行设备310或本地设备执行。例如,该装置可以为车辆、手机或无 人机等。
[0486]
方法1300中的具体实现方式可以参照前述方法500,为了避免不必要的重复,下面 在介绍方法1300时适当省略重复的描述。
[0487]
方法1300包括步骤s1310至步骤s1330,下面对步骤s1310至步骤s1330进行描述。
[0488]
s1310,第二设备获取第二设备的模型。
[0489]
第二设备的模型是基于第二设备的本地数据训练得到的。
[0490]
在一种可能的实现方式中,该第二设备的模型可以是其他设备发送至第二设备的,也 就是说,第二设备的模型可以是由其他设备基于各自的本地数据训练得到的,并发送给第 二设备。在该情况下,其他设备的本地数据即视为第二设备的本地数据,其他设备训练得 到的模型也可以视为第二设备的模型。为了便于描述,本技术实施例中仅以第二设备训练 得到第二设备的模型为例进行说明,不对本技术实施例的方案构成限定。
[0491]
第二设备为方法500中的m个设备中的一个。
[0492]
第二设备上的初始模型可以是由第二设备自行设置的,或者,也可以是从其他设备接 收到的。第二设备基于第二设备的本地数据对初始模型进行训练,以得到训练好的模型, 即为第二设备的模型。
[0493]
s1320,第二设备将第二设备的模型和本地数据的数据分布的指示信息发送至第三设 备。
[0494]
本地数据的数据分布的指示信息的具体描述可以参见方法500,此处不再赘述。
[0495]
该第三设备即为方法500的执行设备。
[0496]
第三设备执行方法500以得到域分类器和m个设备的模型或者处理后的域分类器和m 个设备的模型,并将该域分类器和m个设备的模型或处理后的域分类器和m个设备的模 型发送至第二设备。
[0497]
s1330,第二设备接收第三设备发送的模型。
[0498]
第三设备发送的模型包括域分类器和m个设备的模型或者是处理后的域分类器和m 个设备的模型。m个设备的模型用于根据域分类器的输出结果对输入数据进行处理。域分 类器是根据m个设备的本地数据的数据分布的指示信息得到的,该域分类器用于得到输 入数据所属设备的指示信息。该m个设备包括第二设备。
[0499]
处理后的域分类器和m个设备的模型可以为对域分类器和m个设备的模型进行模型 压缩后的域分类器和m个设备的模型。
[0500]
可选地,第二设备可以基于本地数据对第三设备发送的模型进行训练,并将训练好的 模型更新为第二设备的模型,重复执行步骤s1320至步骤s1330,直至得到满足需求的模 型。
[0501]
本技术实施例提供还提供了一种数据处理方法1400,该方法可以由能够进行数据处 理的装置或设备执行,例如,该装置可以是云服务设备,也可以是终端设备,例如,电脑、 服务器等运算能力足以用来执行数据处理方法的装置,也可以是由云服务设备和终端设备 构成的系统。示例性地,方法1400可以由图2中的执行设备110、图3中的神经网络处 理器50或图4中的执行设备310或本地设备执行。
[0502]
本技术实施例的方案能够部署于终端上,即由终端执行本技术实施例的方法,以实现 数据处理。或者,本技术实施例的方案能够部署于终端上的应用程序(application,app) 中,即通过app调用执行本技术实施例的方法,以实现数据处理。
[0503]
数据处理方法1400中使用的模型可以是通过上述图5中的方法构建的。方法1400中 的具体实现方式可以参照前述方法500,为了避免不必要的重复,下面在介绍方法1400 时适当省略重复的描述。
[0504]
方法1400包括步骤s1410至步骤s1420,下面对步骤s1410至步骤s1420进行描述。
[0505]
s1410,获取待处理的数据。
[0506]
待处理的数据的类型与模型的任务有关。例如,模型用于图像处理任务,则该待处理 的数据可以为图像。具体地,图像处理任务包括图像分类、图像检测、图像分割、图像识 别或图像生成等。再如,模型用于文本处理任务,则该待处理的数据可以为文本。具体地, 文本处理任务包括文本识别或文本翻译等。再如,模型用于语音处理任务,则该待处理的 数据可以为语音数据。具体地,语音处理任务包括语音识别等。本技术实施例对待处理的 数据的类型不做限定。
[0507]
示例性地,待处理的数据为图像,待处理的图像可以是终端设备(或者电脑、服务器 等其他装置或设备)通过摄像头拍摄到的图像,或者,该待处理的图像还可以是从终端设 备(或者电脑、服务器等其他装置或设备)内部获得的图像(例如,终端设备的相册中存 储的图像,或者终端设备从云端获取的图像),本技术实施例对此并不限定。
[0508]
s1420,利用目标模型对待处理的数据进行处理,以得到待处理的数据的处理结果。 其中,目标模型是根据域分类器和m个设备的模型确定的,m个设备的模型用于根据域 分类器的输出结果对输入数据进行处理,域分类器是根据m个设备的本地数据的数据分 布的指示信息构建的,域分类器用于得到输入数据所属设备的指示信息,m个设备的模型 是根据m个设备的本地数据训练得到的,m为大于1的整数。
[0509]
可选地,目标模型是根据域分类器和m个设备的模型确定的,包括:目标模型包括 域分类器和m个设备的模型。
[0510]
可选地,目标模型是根据域分类器和m个设备的模型确定的,包括:目标模型是通 过对域分类器和m个设备的模型进行模型压缩后得到的。
[0511]
可选地,目标模型是通过对域分类器和m个设备的模型进行知识蒸馏处理得到的。
[0512]
下面结合图13至图14对本技术实施例的装置进行说明。应理解,下面描述的装置能 够执行前述本技术实施例的方法,为了避免不必要的重复,下面在介绍本技术实施例的装 置时适当省略重复的描述。
[0513]
图13是本技术实施例的装置的示意性框图。图13所示的装置3000包括获取单元3010 和处理单元3020。
[0514]
获取单元3010和处理单元3020可以用于执行本技术实施例的数据处理方法,具体地, 可以用于执行方法500、方法800、方法1300或方法1400。
[0515]
在一种可能的实现方式中,获取单元3010用于获取待处理的数据。处理单元3020用 于利用域分类器对待处理的数据进行处理,以得到待处理的数据所属设备的指示系信息, 域分类器是根据m个设备的本地数据的数据分布的指示信息得到的,待处理的数据所属 设备为m个设备中的一个,m为大于1的整数;根据待处理的数据所属设备的指示信息 利用m个设备的模型对待处理的数据进行处理,其中,m个设备的模型分别是基于m个 设备的本地数据训练得到的。
[0516]
可选地,作为一个实施例,处理单元3020具体用于:利用m个设备中的至少一个设 备的模型对待处理的数据进行处理,至少一个设备的模型是根据待处理的数据所属设备的 指示信息确定的。
[0517]
可选地,作为一个实施例,处理单元3020具体用于:在待处理的数据所属设备的模 型不是第一模型的情况下,利用m个设备中的n个设备的模型分别对待处理的数据进行 处
理,输出待处理的数据的n个特征,其中,n为大于1的整数,n≤m,n个设备的模型 包括待处理的数据所属设备的模型;将待处理的数据的n个特征进行拼接,以得到拼接后 的特征;对拼接后的特征进行降维处理,以得到降维处理后的特征。
[0518]
可选地,作为一个实施例,在拼接过程中,由待处理的数据所属设备的模型得到的特 征对应的权重值大于由n个设备中的其他设备的模型得到的特征对应的权重值。
[0519]
可选地,作为一个实施例,处理单元3020具体用于:在待处理的数据所属设备的模 型是第一模型的情况下,利用第一模型对待处理的数据进行处理,输出待处理的数据的特 征;将待处理的数据的特征进行升维处理;将升维处理后的特征进行降维处理。
[0520]
可选地,作为一个实施例,处理单元3020具体用于:利用m个设备的模型中的多个 模型对待处理的数据进行处理,以得到多个模型的处理结果;根据待处理的数据所属设备 的指示信息对多个模型的处理结果进行融合处理。
[0521]
可选地,作为一个实施例,待处理的数据包括图像,以及处理单元3020具体用于: 利用m个设备的模型分别对图像进行目标检测,以得到m个设备的模型的处理结果,m 个设备的模型的处理结果包括图像上的多个候选框和候选框的标签,候选框用于指示目标 物体所在区域,候选框的标签用于指示目标物体所属类别;在多个候选框中的至少两个候 选框之间的重合度大于设定阈值的情况下,根据待处理的数据所属设备的指示信息确定目 标候选框和目标候选框的标签。
[0522]
可选地,作为一个实施例,待处理的数据所属设备的指示信息包括:待处理的数据属 于m个设备的概率,以及处理单元3020具体用于:若至少两个候选框的标签所指示的目 标物体的类别不同,将至少两个候选框中的第一候选框作为目标候选框,将第一候选框的 标签作为目标候选框的标签,其中,第一目标候选框是由第一设备的模型处理得到的,待 处理的数据属于第一设备的概率为待处理的数据属于至少两个候选框对应的设备的概率 中最大的概率,第一设备属于至少两个候选框对应的设备。
[0523]
可选地,作为一个实施例,处理单元3020具体用于:若至少两个候选框的标签所指 示的目标物体的类别相同,合并至少两个候选框,将合并后的候选框作为目标候选框,将 至少两个候选框的标签作为目标候选框的标签。
[0524]
可选地,作为一个实施例,处理单元3020具体用于:根据至少两个候选框的权重合 并至少两个候选框,其中,至少两个候选框的权重是根据待处理的数据属于至少两个候选 框对应的设备的概率确定的。
[0525]
可选地,作为一个实施例,处理单元3020具体用于:根据待处理的数据所属设备的 指示信息将m个设备的模型进行融合处理,以得到一个融合模型;利用融合模型对待处 理的数据进行处理。
[0526]
可选地,作为一个实施例,处理单元3020具体用于:根据m个设备的模型对应的权 重对m个设备的模型的参数进行加权平均处理,以得到融合模型,m个设备的模型对应 的权重是根据待处理的数据所属设备的指示信息确定的。
[0527]
可选地,作为一个实施例,本地数据的数据分布的指示信息包括以下至少一项:本地 数据中的部分或全部、本地数据的特征中的部分或全部、数据生成器、特征生成器或域单 分类器,其中,数据生成器用于生成与本地数据的数据分布一致或相近的伪数据,特征生 成器用于生成与本地数据的数据分布一致或相近的伪特征,域单分类器用于判断输入
至域 单分类器中的数据与本地数据的数据分布是否一致或相近。
[0528]
在另一种可能的实现方式中,获取单元3010用于获取m个设备的模型和m个设备的 本地数据的数据分布的指示信息,m个设备的模型是m个设备根据m个设备的本地数据 训练得到的,m为大于1的整数;处理单元3020用于:根据m个设备的本地数据的数据 分布的指示信息构建域分类器,域分类器用于得到输入数据所属设备的指示信息;m个设 备的模型用于根据输入数据所属设备的指示信息对输入数据进行处理。
[0529]
可选地,作为一个实施例,本地数据的数据分布的指示信息包括以下至少一项:数据 模型、本地数据中的部分或全部、本地数据的特征中的部分或全部、数据生成器、特征生 成器或域单分类器,其中,数据模型为指示本地数据的数据分布的模型,数据生成器用于 生成与本地数据的数据分布一致或相近的伪数据,特征生成器用于生成与本地数据的数据 分布一致或相近的伪特征,域单分类器用于判断输入至域单分类器中的数据与本地数据的 数据分布是否一致或相近。
[0530]
可选地,作为一个实施例,处理单元3020具体用于:根据与m个设备的本地数据的 数据分布一致或相近的数据对分类模型进行训练,以得到域分类器,其中,与m个设备 的本地数据的数据分布一致或相近的数据是根据本地数据的数据分布的指示信息确定的。
[0531]
可选地,作为一个实施例,处理单元3020具体用于:根据m个设备的本地数据中的 部分或全部分别构建m个设备的域单分类器,m个设备的域单分类器包括m个设备的本 地数据的类中心或支持向量,域分类器包括m个设备的域单分类器。
[0532]
可选地,作为一个实施例,处理单元3020还用于:将域分类器和m个设备的模型进 行模型压缩,以得到压缩后的模型。
[0533]
可选地,作为一个实施例,处理单元3020具体用于:利用域分类器对输入数据进行 处理,以得到输入数据所属设备的指示信息;根据输入数据所属设备的指示信息利用m 个设备的模型对输入数据进行处理,以得到第一处理结果;利用第一处理结果对第一学生 模型进行训练,以得到压缩后的模型,第一学生模型的参数量小于域分类器和m个设备 的模型的参数量。
[0534]
可选地,作为一个实施例,装置3000还包括发送单元3030,用于将压缩后的模型发 送至m个设备。
[0535]
需要说明的是,上述装置3000以功能单元的形式体现。这里的术语“单元”可以通 过软件和/或硬件形式实现,对此不作具体限定。
[0536]
例如,“单元”可以是实现上述功能的软件程序、硬件电路或二者结合。所述硬件电 路可能包括应用特有集成电路(application specific integrated circuit,asic)、电子电路、 用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器 等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。
[0537]
因此,在本技术的实施例中描述的各示例的单元,能够以电子硬件、或者计算机软件 和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的 特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所 描述的功能,但是这种实现不应认为超出本技术的范围。
[0538]
图14是本技术实施例提供的数据处理装置的硬件结构示意图。图14所示的数据处理 装置5000(该装置5000具体可以是一种计算机设备)包括存储器5001、处理器5002、 通
信接口5003以及总线5004。其中,存储器5001、处理器5002、通信接口5003通过总 线5004实现彼此之间的通信连接。
[0539]
存储器5001可以是只读存储器(read only memory,rom),静态存储设备,动态存 储设备或者随机存取存储器(random access memory,ram)。存储器5001可以存储程序, 当存储器5001中存储的程序被处理器5002执行时,处理器5002用于执行本技术实施例 的数据处理方法的各个步骤。具体地,处理器5002可以执行上文中方法500中的步骤s520 至步骤s530,或者,方法800中的步骤s820至步骤s830,或者,方法1300中的步骤s1310, 或者,方法1400中的步骤s1420。
[0540]
处理器5002可以采用通用的中央处理器(central processing unit,cpu),微处理器, 应用专用集成电路(application specific integrated circuit,asic),图形处理器(graphicsprocessing unit,gpu)或者一个或多个集成电路,用于执行相关程序,以实现本技术方法 实施例的数据处理方法。
[0541]
处理器5002还可以是一种集成电路芯片,具有信号的处理能力,例如,可以是图4 所示的芯片。在实现过程中,本技术的数据处理方法的各个步骤可以通过处理器5002中 的硬件的集成逻辑电路或者软件形式的指令完成。
[0542]
上述处理器5002还可以是通用处理器、数字信号处理器(digital signal processing, dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执 行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该 处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体 现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软 件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程 存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器5001,处理器5002 读取存储器5001中的信息,结合其硬件完成图13所示的装置中包括的单元所需执行的功 能,或者,执行本技术方法实施例的数据处理方法。
[0543]
通信接口5003使用例如但不限于收发器一类的收发装置,来实现装置5000与其他设 备或通信网络之间的通信。例如,可以通过通信接口5003获取待处理的数据,或者,获 取获取m个设备的模型和m个设备的本地数据的数据分布的指示信息。
[0544]
总线5004可包括在装置5000各个部件(例如,存储器5001、处理器5002、通信接 口5003)之间传送信息的通路。
[0545]
应注意,尽管上述装置5000仅仅示出了存储器、处理器、通信接口,但是在具体实 现过程中,本领域的技术人员应当理解,装置5000还可以包括实现正常运行所必须的其 他器件。同时,根据具体需要,本领域的技术人员应当理解,装置5000还可包括实现其 他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置5000也可仅仅包括实 现本技术实施例所必须的器件,而不必包括图14中所示的全部器件。
[0546]
本技术实施例还提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程 序代码,该程序代码包括用于执行本技术实施例中的数据处理方法。
[0547]
本技术实施例还提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机 上运行时,使得计算机执行本技术实施例中的数据处理方法。
[0548]
本技术实施例还提供一种芯片,该芯片包括处理器与数据接口,该处理器通过该数据 接口读取存储器上存储的指令,执行本技术实施例中的数据处理方法。
[0549]
可选地,作为一种实现方式,该芯片还可以包括存储器,该存储器中存储有指令,该 处理器用于执行该存储器上存储的指令,当该指令被执行时,该处理器用于执行本技术实 施例中的数据处理方法。
[0550]
应理解,本技术实施例中的处理器可以为中央处理单元(central processing unit,cpu), 该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专 用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(fieldprogrammable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、 分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器 等。
[0551]
还应理解,本技术实施例中的存储器可以是易失性存储器或非易失性存储器,或可包 括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只 读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom, eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram), 其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(randomaccess memory,ram)可用,例如静态随机存取存储器(static ram,sram)、动态随 机存取存储器(dram)、同步动态随机存取存储器(synchronous dram,sdram)、 双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强 型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存 储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram, dr ram)。
[0552]
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使 用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机 程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指 令或计算机程序时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机 可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可 以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存 储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通 过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心 进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一 个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介 质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质 可以是固态硬盘。
[0553]
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存 在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b 这三种情况,其中a,b可以是单数或者复数。另外,本文中字符“/”,一般表示前后关 联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后 文进行理解。
[0554]
本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下 至
少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项 (个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或 a-b-c,其中a,b,c可以是单个,也可以是多个。
[0555]
应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的 先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程 构成任何限定。
[0556]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及 算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以 硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可 以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本 申请的范围。
[0557]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装 置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0558]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通 过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的 划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组 件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显 示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间 接耦合或通信连接,可以是电性,机械或其它的形式。
[0559]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的 部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络 单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0560]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各 个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0561]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储 在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现 有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机 软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计 算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而 前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机 存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的 介质。
[0562]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟 悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖 在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献