一种基于联邦学习的神经网络训练方法及设备与流程

文档序号:26987127发布日期:2021-10-19 20:15阅读:367来源:国知局
一种基于联邦学习的神经网络训练方法及设备与流程

1.本技术涉及联邦学习领域,尤其涉及一种基于联邦学习的神经网络训练方法及设备。


背景技术:

2.近年来,神经网络在计算机视觉领域(如,目标检测、图片分类、语义分割等应用场景)中被广泛应用,而优质数据对于神经网络的训练具有不可替代的重要作用,因此不同厂商对于数据的保护愈加重视,从而容易形成数据孤岛问题,即优质数据在不同厂商之间不进行流通。基于此,联邦学习(federated learning,fl)应运而生。联邦学习又称为联邦机器学习、联合学习、联盟学习等,其能有效帮助多个客户端设备在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。也就是联邦学习能够在不同客户端之间不共享数据的前提下,利用各个客户端上各自的数据共同训练神经网络,保护用户数据隐私的同时提高神经网络的性能。
3.业界目前已有多种基于联邦学习的神经网络训练方法,例如,一种联邦学习方法称为联邦平均(federated averaging,fedavg),fedavg结构上一般包括一个服务器(server)和一些客户端(client),适用于各个客户端的数据都有标签的场景。具体如图1所示,其技术流程主要包括网络参数下发和网络参数聚合过程,在网络参数下发过程,客户端从服务器下载神经网络的网络参数,在本地数据上训练,训练到一定程度后上传更新后的网络参数到服务器;网络参数聚合过程,服务器会收集各个客户端上传的网络参数,并进行网络参数融合,这两个过程会反复迭代直至神经网络收敛。
4.已有的联邦学习方法均是假设各个客户端上的本地数据均为有标签数据,实际上受限于时间与标记能力,客户端可能只对部分数据进行了标记。目前业界是通过将半监督学习和上述联邦学习方法结合起来,提出了一种联邦匹配(fed match)算法来解决客户端上只有部分数据有标签的问题,但前提是假设在服务器端存在标记数据进行辅助训练,这与联邦学习保护用户数据隐私的想法相违背。基于此,在每个客户端只有来自部分类别的部分标记数据、服务器不存在用于辅助训练的数据以及客户端与服务器之间只允许神经网络的参数进行传递的前提下,如何训练得到一个性能优秀的神经网络是亟待解决的问题。


技术实现要素:

5.本技术实施例提供了一种基于联邦学习的神经网络训练方法及设备,该方法通过构建一个不同于传统联邦学习方式下的目标损失函数,来解决在客户端(即第一设备)上只有部分标记数据的情况下进行联邦学习的问题,该目标损失函数不仅考虑到了有标签数据对该目标损失函数的贡献,还考虑到了无标签数据对该目标损失函数的贡献,提高了多个客户端(即第一设备以及第二设备)基于该目标损失函数联合训练得到的目标神经网络的性能。
6.基于此,本技术实施例提供以下技术方案:
7.第一方面,本技术实施例首先提供一种基于联邦学习的神经网络训练方法,可用于人工智能领域中,该方法包括:首先,第一设备根据第一损失函数以及第二损失函数得到目标损失函数,之后,第一设备(也可称为第一客户端)利用构建的目标损失函数,采用该第一设备上的训练集(即第一训练集)对第一设备上的目标神经网络(即本地目标神经网络)进行训练,从而得到该本地目标神经网络的第一权重矩阵,其中,该第一训练集既包括多个有标签数据(可称为第一有标签数据)又包括多个无标签数据(可称为第一无标签数据),需要注意的是,在本技术实施例中,该第一训练集中的无标签数据可以是属于多个分类类别的数据(只是未被标记而已)。第一设备在得到本地目标神经网络的第一权重矩阵后,会进一步将第一权重矩阵向服务设备(如,服务器,或其他客户端)发送。最后,第一设备接收由服务设备发送的整合权重矩阵,该整合权重矩阵由服务设备对第一权重矩阵以及第二权重矩阵整合得到,其中,第二权重矩阵为第二设备利用该目标损失函数,采用第二设备上的第二训练集对第二设备上的目标神经网络进行训练得到的权重矩阵的取值,类似地,该第二训练集也包括多个第二有标签数据以及多个第二无标签数据,该第二训练集中的无标签数据也可以是属于多个分类类别的数据(只是未被标记而已)。这里需要注意的是,第一设备上的目标神经网络和第二设备上的目标神经网络的网络结构是相同的,即初始网络模型都是一样的,只是在后续的训练过程中,各自训练得到的网络模型的权重矩阵各不相同。
8.在本技术上述实施方式中,通过构建一个不同于传统联邦学习方式下的目标损失函数,来解决在客户端(即第一设备)上只有部分标记数据的情况下进行联邦学习的问题,该目标损失函数不仅考虑到了有标签数据对该目标损失函数的贡献,还考虑到了无标签数据对该目标损失函数的贡献,提高了多个客户端(即第一设备以及第二设备)基于该目标损失函数联合训练得到的目标神经网络的性能。
9.在第一方面的一种可能的实现方式中,构建的目标损失函数中的第一损失函数具体可以包括第一子损失函数以及第二子损失函数,其中,第一子损失函数用于表征对输入神经网络的有标签数据进行预测,得到的预测结果不属于该有标签数据对应的分类类别的概率,而第二子损失函数则用于表征对输入神经网络的该有标签数据进行预测,得到的预测结果不属于预设分类类别的概率。
10.在本技术上述实施方式中,具体阐述了第一损失函数还可以包括两个子部分,每个子部分对整个目标神经网络的贡献各不相同,具备灵活性。
11.在第一方面的一种可能的实现方式中,第一损失函数具体可以是:第一子损失函数与第二子损失函数之间的差。
12.在本技术上述实施方式中,具体阐述了第一子损失函数与第二子损失函数构成该第一损失函数的具体形式,具备可实现性。
13.在第一方面的一种可能的实现方式中,第一设备根据第一损失函数以及第二损失函数得到目标损失函数的具体实现方式可以是:第一设备将第一损失函数与第二损失函数相加,得到目标损失函数。
14.在本技术上述实施方式中,具体阐述了第一损失函数与第二损失函数构成该目标损失函数的具体形式,具备可实现性。
15.在第一方面的一种可能的实现方式中,第一设备根据第一损失函数以及第二损失函数得到目标损失函数的具体实现方式还可以是:第一设备根据第一损失函数、第二损失
函数以及第三损失函数得到目标损失函数,其中,该第三损失函数用于表征对输入神经网络的目标有标签数据进行预测得到的预测结果不属于目标预设分类类别的概率,目标有标签数据属于第一设备上的第一有标签数据且不属于第二设备上的第二有标签数据,目标预设分类类别为在第二设备上预设的分类类别。为便于理解第三损失函数中的目标有标签数据以及目标预设分类类别,下面举例进行示意:假设客户端k1为第一设备,客户端k2为第二设备,那么针对第一设备来说,目标有标签数据就是指属于该第一设备上的第一有标签数据且不属于第二设备上的第二有标签数据。类似地,目标预设分类类别也是指第二设备上定义的预设分类类别,例如,假设一共有10个分类类别,其中,客户端k1上标记了其中第1~5类中的部分数据(即第一有标签数据),客户端k1上的第6~10类的数据全部未标记(即第一无标签数据),那么对于客户端k1来说,第1~5类对应的类别为目标分类类别,第6~10类对应的类别对于客户端k1来说就是指预设分类类别,又假设客户端k2上标记了其中的第6~10类中的部分数据(即第二有标签数据),客户端k2上的第1~5类的数据全部未标记(即第二无标签数据),那么对于客户端k2来说,第6~10类对应的类别为目标分类类别,第1~5类对应的类别对于客户端k2来说就是指预设分类类别。需注意的是,客户端k2的预设分类类别对于客户端k1来说就是目标预设分类类别。
16.在本技术上述实施方式中,具体阐述了构建的目标损失函数除了可以包括第一损失函数以及第二损失函数之外,还可以进一步包括第三损失函数,该第三损失函数的作用是对无标签数据中的各个类别进行进一步的区分,提高了目标损失函数的可靠性。
17.在第一方面的一种可能的实现方式中,第一设备根据第一损失函数、第二损失函数以及第三损失函数得到目标损失函数的具体实现方式可以是:首先,第一设备将第一损失函数与第二损失函数相加,得到相加结果,之后,第一设备将该相加结果与第三损失函数相减,得到该目标损失函数。
18.在本技术上述实施方式中,在本技术上述实施方式中,具体阐述了第一损失函数、第二损失函数以及第三损失函数构成该目标损失函数的具体形式,具备可实现性。
19.在第一方面的一种可能的实现方式中,第一设备在接收由服务设备发送的整合权重矩阵之后,该方法还包括:第一设备将该整合权重矩阵作为第一设备上的目标神经网络当前的权重矩阵,并再次执行利用目标损失函数,采用第一设备上的第一训练集对第一设备上的目标神经网络进行训练、将第一权重矩阵向服务设备发送、接收由服务设备发送的整合权重矩阵的步骤,之后,第一设备重复执行上一步骤,直至达到训练终止条件。
20.在本技术上述实施方式中,第一设备可重复利用更新的整合权重矩阵对本地目标神经网络进行训练,以提高目标神经网络的性能。
21.在第一方面的一种可能的实现方式中,在本技术的一些实施方式中,判断达到训练终止条件的方式包括但不限于:1)当整合权重矩阵的更新次数达到预设次数,则认为达到训练终止条件;2)相邻两次得到的整合权重矩阵之间的差值小于预设阈值,则认为达到训练终止条件。
22.在本技术上述实施方式中,具体阐述了几种达到训练终止条件的判断方式,具备灵活性。
23.本技术实施例第二方面还提供一种基于联邦学习的神经网络训练方法,该方法包括:首先,服务设备(如,服务器)接收第一设备发送的第一权重矩阵以及第二设备发送的第
二权重矩阵,该第一权重矩阵为第一设备利用目标损失函数,采用第一设备上的第一训练集对第一设备上的目标神经网络进行训练得到的权重矩阵,第二权重矩阵则为第二设备利用目标损失函数,采用第二设备上的第二训练集对第二设备上的目标神经网络进行训练得到的权重矩阵,这里需要注意的是,第一设备上的目标神经网络与第二设备上的目标神经网络的网络结构相同,即初始网络模型都是一样的,只是在后续的训练过程中,各自训练得到的网络模型的权重矩阵各不相同。还需要说明的是,目标神经网络是根据第一损失函数以及第二损失函数得到,第一损失函数用于表征对输入神经网络的有标签数据预测错误的概率,第二损失函数用于表征对输入神经网络的无标签数据进行预测得到的预测结果不属于预设分类类别的概率,第一训练集包括第一有标签数据以及第一无标签数据,第二训练集包括第二有标签数据以及第二无标签数据。需要注意的是,在本技术实施例中,该第一训练集中的无标签数据可以是属于多个分类类别的数据(只是未被标记而已),类似地,该第二训练集也包括多个第二有标签数据以及多个第二无标签数据,该第二训练集中的无标签数据也可以是属于多个分类类别的数据(只是未被标记而已)。服务设备接收到第一设备和第二设备各自发送的第一权重矩阵以及第二权重矩阵之后,将进一步根据第一权重矩阵以及第二权重矩阵得到整合权重矩阵(如,对第一权重矩阵与第二权重矩阵进行整合,得到整合权重矩阵),并将整合权重矩阵向第一设备,以使得第一设备将整合权重矩阵作为第一设备上的目标神经网络当前的权重矩阵。需要注意的是,在本技术的一些实施例中,目标设备除了向第一设备发送整合权重矩阵外,也可以向第二设备发送该整合权重矩阵,或者向第一设备和第二设备分别发送该整合权重矩阵。
24.在本技术上述实施方式中,通过构建一个不同于传统联邦学习方式下的目标损失函数,来解决在客户端上只有部分标记数据的情况下进行联邦学习的问题,该目标损失函数不仅考虑到了有标签数据对该目标损失函数的贡献,还考虑到了无标签数据对该目标损失函数的贡献,提高了多个客户端(即第一设备以及第二设备)基于该目标损失函数联合训练得到的目标神经网络的性能。
25.在第二方面的一种可能的实现方式中,服务设备将整合权重矩阵分别向第一设备以及第二设备发送之后,该方法还包括:服务设备重复执行上述步骤,直至达到训练终止条件。
26.在本技术上述实施方式中,服务设备在向第一设备和第二设备发送该整合权重矩阵之后,可重复执行上述过程,以使得第一设备、第二设备可重复利用更新的整合权重矩阵对本地目标神经网络进行训练,以提高目标神经网络的性能。
27.本技术实施例第三方面还提供一种数据处理方法,该方法包括:首先,执行设备获取待处理的输入数据,该输入数据与待执行的目标任务相关,例如,当目标任务是分类任务,那么输入数据就是指用于进行分类的数据。之后,执行设备根据通过训练后的目标神经网络对输入数据进行处理,从而得到输出数据(即预测分类结果),其中,该训练后的目标神经网络的权重矩阵由上述第一设备、第二设备基于构建的目标损失函数,各自利用本地的第一训练集、第二训练集联合训练得到,第一训练集包括第一有标签数据以及第一无标签数据,第二训练集包括第二有标签数据以及第二无标签数据。也就是说,该训练后的目标神经网络是基于上述第一方面或第一方面任意一种可能实现方式的方法构建的目标损失函数训练得到的。
28.在本技术上述实施方式中,具体阐述了一种如何通过训练后的目标神经网络对输入数据执行相应的任务,该训练后的目标神经网络则是通过上述构建的目标损失函数训练得到,加快了推理过程。
29.在第三方面的一种可能的实现方式中,输入数据可以是图像数据,也可以是音频数据,还可以是文本数据,其数据类型由待处理的目标任务决定,具体此处不做限定。
30.在本技术上述实施方式中,对输入数据的数据类型不做限定,具备广泛适用性。
31.本技术实施例第四方面提供一种训练设备,该训练设备作为第一设备(也就是联邦学习中涉及到的其中某一个客户端),具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能;该训练设备作为服务设备,具有实现上述第二方面或第二方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
32.本技术实施例第五方面提供一种执行设备,该执行设备具有实现上述第三方面或第三方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
33.本技术实施例第六方面提供一种训练设备,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于调用该存储器中存储的程序以执行本技术实施例第一方面或第一方面任意一种可能实现方式的方法,或,处理器用于调用该存储器中存储的程序以执行本技术实施例第二方面或第二方面任意一种可能实现方式的方法。
34.本技术实施例第七方面提供一种执行设备,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于调用该存储器中存储的程序以执行本技术实施例第三方面或第三方面任意一种可能实现方式的方法。
35.本技术第八方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面或第一方面任意一种可能实现方式的方法,或,使得计算机可以执行上述第二方面或第二方面任意一种可能实现方式的方法,或,使得计算机可以执行上述第三方面或第三方面任意一种可能实现方式的方法。
36.本技术实施例第九方面提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任意一种可能实现方式的方法,或,使得计算机可以执行上述第二方面或第二方面任意一种可能实现方式的方法,或,使得计算机可以执行上述第三方面或第三方面任意一种可能实现方式的方法。
37.本技术实施例第十方面提供了一种芯片,该芯片包括至少一个处理器和至少一个接口电路,该接口电路和该处理器耦合,至少一个接口电路用于执行收发功能,并将指令发送给至少一个处理器,至少一个处理器用于运行计算机程序或指令,其具有实现如上述第一方面或第一方面任意一种可能实现方式的方法的功能,或,其具有实现如上述第二方面或第二方面任意一种可能实现方式的方法的功能,该功能可以通过硬件实现,也可以通过软件实现,还可以通过硬件和软件组合实现,该硬件或软件包括一个或多个与上述功能相对应的模块。此外,该接口电路用于与该芯片之外的其它模块进行通信,例如,该接口电路可将芯片上联合训练得到的目标神经网络发送给其他终端设备(如,手机、个人电脑、智能手环等)进行图像、文本、音频等的处理,或,发送给各种智能行驶(如,无人驾驶、辅助驾驶
等)的智能体进行运动规划(如,驾驶行为决策、全局路径规划等)。
附图说明
38.图1为传统联邦学习的一个框架示意图;
39.图2为本技术实施例提供的人工智能主体框架的一种结构示意图;
40.图3为本技术实施例提供的任务处理系统的一种系统架构图;
41.图4为本技术实施例提供的基于联邦学习的神经网络训练方法的一种流程示意图;
42.图5为本技术实施例提供的正常二分类学习方法与传统二分类pu学习方法的一个对比示意图;
43.图6为本技术实施例提供的正常多分类学习方法与本技术提出的多分类pu学习方法的一个对比示意图;
44.图7为本技术实施例提供的基于联邦学习的神经网络训练方法的联合训练的框架图;
45.图8为本技术实施例提供的数据处理方法的一种流程示意图;
46.图9为本技术实施例提供的基于联邦学习的神经网络训练方法得到的共享神经网络模型的适用场景的一个示意图;
47.图10为本技术实施例提供的训练后的目标神经网络在终端手机上进行目标检测的一个应用场景的示意图;
48.图11为本技术实施例提供的训练后的目标神经网络在轮式移动设备上进行自动驾驶场景分割的一个应用场景的示意图;
49.图12为本技术实施例提供的训练后的目标神经网络在人脸识别应用上的一个应用场景的示意图;
50.图13为本技术实施例提供的训练后的目标神经网络在语音识别应用上的一个应用场景的示意图;
51.图14为本技术实施例提供的训练设备的一种示意图;
52.图15为本技术实施例提供的训练设备的另一示意图;
53.图16为本技术实施例提供的执行设备的一种示意图;
54.图17为本技术实施例提供的训练设备的另一示意图;
55.图18为本技术实施例提供的执行设备的另一示意图;
56.图19为本技术实施例提供的芯片的一种结构示意图。
具体实施方式
57.本技术实施例提供了一种基于联邦学习的神经网络训练方法及设备,该方法通过构建一个不同于传统联邦学习方式下的目标损失函数,来解决在客户端(即第一设备)上只有部分标记数据的情况下进行联邦学习的问题,该目标损失函数不仅考虑到了有标签数据对该目标损失函数的贡献,还考虑到了无标签数据对该目标损失函数的贡献,提高了多个客户端(即第一设备以及第二设备)基于该目标损失函数联合训练得到的目标神经网络的性能。
58.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本技术的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
59.本技术实施例涉及了许多关于神经网络以及联邦学习的相关知识,为了更好地理解本技术实施例的方案,下面先对本技术实施例可能涉及的相关术语和概念进行介绍。应理解的是,相关的概念解释可能会因为本技术实施例的具体情况有所限制,但并不代表本技术仅能局限于该具体情况,在不同实施例的具体情况可能也会存在差异,具体此处不做限定。
60.(1)神经网络
61.神经网络可以是由神经单元组成的,具体可以理解为具有输入层、隐含层、输出层的神经网络,一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。其中,具有很多层隐含层的神经网络则称为深度神经网络(deep neural network,dnn)。神经网络中的每一层的工作可以用数学表达式来描述,从物理层面,神经网络中的每一层的工作可以理解为通过五种对输入空间(输入向量的集合)的操作,完成输入空间到输出空间的变换(即矩阵的行空间到列空间),这五种操作包括:1、升维/降维;2、放大/缩小;3、旋转;4、平移;5、“弯曲”。其中1、2、3的操作由完成,4的操作由“+b”完成,5的操作则由“a()”来实现。这里之所以用“空间”二字来表述是因为被分类的对象并不是单个事物,而是一类事物,空间是指这类事物所有个体的集合,其中,w是神经网络各层的权重矩阵,该矩阵中的每一个值表示该层的一个神经元的权重值。该矩阵w决定着上文所述的输入空间到输出空间的空间变换,即神经网络每一层的w控制着如何变换空间。训练神经网络的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵。因此,神经网络的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩阵。
62.(2)损失函数(loss function)
63.在训练神经网络的过程中,因为希望神经网络的输出尽可能的接近真正想要预测的值,可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重矩阵(当然,在第一次更新之前通常会有初始化的过程,即为神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重矩阵让它预测低一些,不断的调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么神经网络的训练就变成了尽可能缩小这个loss的过程。
64.(3)反向传播算法
65.在神经网络的训练过程中,可以采用误差反向传播(back propagation,bp)算法修正初始的神经网络模型中参数的大小,使得神经网络模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初
始的神经网络模型中的参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如权重矩阵。
66.(4)有标签数据与无标签数据
67.在本技术实施例中,有标签数据是有标签数据,无标签数据可以是有标签数据,也可以是无标签数据。也就是说,标记了分类类别的训练数据一定是有标签数据,而没有标记分类类别的训练数据可能属于有标签数据,也可能属于无标签数据。
68.(5)有标签与无标记学习(positive and unlabelled learning,pu learning)
69.专指给定训练数据中,只有部分有标签数据被标记,其余有标签数据与所有的无标签数据均未被标记。在这种情况下学习训练一个二类分类器将正负两类数据分开,即为有标签与无标记学习。
70.(6)联邦学习(federated learning,fl)
71.联邦学习是一种用于保护用户隐私的机器学习方法。在机器学习领域的一些实际应用场景中,由于单个设备上的数据特征不充分或者样本数量较少等限制,很难单独训练出较好的机器学习模型,因此需要融合多个设备的数据在一起进行训练,从而得到一个质量较好的模型;在融合多个设备上的数据进行训练的同时还需要保证用户的数据隐私,即数据不能传送出用户的设备,只能在本地用于进行模型训练,联邦学习就是基于这一要求应运而生,其能有效帮助多个计算节点在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。
72.下面结合附图,对本技术的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
73.首先,对人工智能系统总体工作流程进行描述,请参见图2,图2示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“it价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“it价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
74.(1)基础设施
75.基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(cpu、npu、gpu、asic、fpga等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
76.(2)数据
77.基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
78.(3)数据处理
79.数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
80.其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
81.推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
82.决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
83.(4)通用能力
84.对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
85.(5)智能产品及行业应用
86.智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶、智慧城市等。
87.本技术实施例可以应用在对神经网络(如,卷积神经网络(convolutional neural networks,cnn)、循环神经网络(recurrent neural networks,rnn)等,具体不限定)的优化设计上,具体可应用在神经网络的损失函数的优化设计上。通过本技术优化过损失函数的神经网络具体可以应用在人工智能领域中,例如,可以应用在计算机视觉领域中的图像处理领域,如,图像分割、目标检测、超分辨率重建;也可以应用在文本处理领域、语音处理领域等中。具体的,结合图1来讲,以图像处理领域为例,本技术实施例中基础设施获取的数据集中的数据可以是通过监控摄像头、手机摄像模块等传感器获取到的多个图像数据(也可称为训练样本或训练数据,多个训练数据就构成训练集)或基于获取到的视频数据得到的图像数据,只要该训练集满足用于对神经网络进行迭代训练的功能即可,具体本技术实施例对训练集内的数据类型不限定。
88.接下来结合图3对本技术实施例提供的任务处理系统的整体框架进行介绍,请参阅图3,图3为本技术实施例提供的任务处理系统的一种系统架构图,在图3中,任务处理系统300包括执行设备210、第一训练设备2201、第二训练设备2202、数据库230、客户设备240、数据存储系统250和数据采集设备260,执行设备210中包括计算模块211和输入/输出(i/o)接口212,该计算模块211中包括训练好的目标神经网络201。需要注意的是,在本技术实施例中,第一训练设备2201可以看作是联邦学习中的其中一个客户端,第二训练设备2202可以看作是联邦学习中的另一个客户端,当联邦学习中的存在n个客户端时,对应就可以有n个训练设备(图3中未示出),此处不予赘述,n≥2,为便于理解,图3中以联邦学习中的客户端为2个为例进行说明,即训练设备为2个。
89.其中,在训练阶段,数据采集设备260可以用于获取用户需要的大规模数据集(即训练集),并将训练集存入数据库230中,该训练集中包括多个有标签数据以及多个无标签数据,这些数据可称为训练数据或训练样本,训练数据可以是图像数据,也可以是视频数据,还可以是音频数据、文本数据等,具体与待执行的目标任务相关,此处不做限定。在本技术实施例中,数据采集设备260获取的训练集以及数据库230中存入的该训练集只为第一训练设备2201服务,因此该训练集可以看作是第一训练设备2201的本地训练集,可称为第一
训练集,类似地,第二训练设备2202也有自己的数据采集设备、数据库等(图3中未示出),对应可基于类似的过程获得第二训练设备2202的本地训练集,即第二训练集,若联邦学习有n个客户端,那么对应的所有客户端均可按照第一训练设备2201类似的过程获得本地训练集,此次不予赘述。之后,第一训练设备2201利用本技术实施例构建的目标损失函数,通过训练设备2201本地的训练集(即第一训练集)对目标神经网络201进行训练,并对该目标神经网络201各个神经网络层的权重矩阵进行更新,类似地,联邦学习中的其他客户端(如,第二训练设备2202)也利用各自本地的训练集对各自本地的目标神经网络201进行训练,并同样各自对本地目标神经网络201各个神经网络层的权重矩阵进行更新,最后,可由其中某个客户端(如,第一训练设备2201)或额外部署的服务器(图3中未示出)对各客户端的目标神经网络201的权重矩阵进行聚合(例如,可以是对所有客户端的目标神经网络201的权重矩阵进行聚合,也可以是只对其中部分客户端的目标神经网络201的权重矩阵进行聚合,本技术对此不做限定),得到聚合权重矩阵,该聚合权重矩阵再由某个客户端(或额外部署的服务器)下发给各训练设备(如,下发给第一训练设备2201和第二训练设备2202),由第一训练设备2201和第二训练设备2202将获取的聚合权重矩阵作为各自本地的目标神经网络201当前的权重矩阵,继续各自利用本地训练集对各自的目标神经网络继续训练,各自得到的新的权重矩阵再进行聚合,直至在上述这种交替训练过程中,达到训练的迭代终止条件,此时就认为该目标神经网络201训练完成。而训练得到的目标神经网络201可以应用于不同的系统或设备(即执行设备210)中,例如,可以应用在手机、平板、笔记本电脑等端侧设备,也可以应用在智能手表、智能手环、智能眼镜等可穿戴设备,还也可以应用在智能汽车、网联汽车、机器人等智能移动体,还可以应用在监控系统(如,摄像头)、安防系统中的网联摄像机(ip camera,ipc)、增强现实(augmented reality,ar)、虚拟现实(virtual reality,vr)、身份识别装置(如,考勤机、打卡机等)、智能音箱等边缘设备上,具体地,上述训练得到的目标神经网络201并不限定只应用在计算资源有限的设备上,还可以应用在云服务器、计算平台等其他任意可部署神经网络的设备上,本技术对此不做限定。
90.在推理阶段,执行设备210可以调用数据存储系统250中的数据、代码等,也可以将数据、指令等存入数据存储系统250中。数据存储系统250可以置于执行设备210中,也可以为数据存储系统250相对执行设备210是外部存储器。计算模块211通过训练后得到的目标神经网络201再针对每个输入的数据(如,图像数据)进行对应目标任务的处理(如,超分辨重建、目标检测、图像分类等)。
91.在图3中,执行设备210配置有i/o接口212,与外部设备进行数据交互,“用户”可以通过客户设备240向i/o接口212输入数据。作为一种示例,假设目标任务是超分辨重建任务,那么客户设备240可以是监控系统的摄像设备,通过该摄像设备拍摄的图像作为输入数据输入至执行设备210的计算模块211,由计算模块211对输入的图像进行超分辨重建后得出增强图像,再将该增强图像输出至摄像设备,或直接在执行设备210的显示界面(若有)进行显示,或存储在执行设备210的存储模块便于后续使用,具体本技术实施例不限定对得到的增强图像的作何处理。
92.此外,在本技术的一些实施方式中,客户设备240也可以集成在执行设备210中,如,当执行设备210为手机时,假设目标任务是与图像超分辨重建任务,那么可以直接通过该手机获取到待处理的目标图像(如,可以通过该手机的摄像头拍摄到的图像,或,基于该
手机的摄像头拍摄的视频得到的图像等)或者接收其他设备(如,另一个手机)发送的待处理的目标图像,再由该手机内的计算模块211对该目标图像进行超分辨重建后得到图像的增强结果(即增强图像),并直接将该增强图像呈现在手机的显示界面,或进行存储。此处对执行设备210与客户设备240的产品形态不做限定。
93.值得注意的,图3仅是本技术实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图3中,数据存储系统250相对执行设备210是外部存储器,在其它情况下,也可以将数据存储系统250置于执行设备210中;在图3中,客户设备240相对执行设备210是外部设备,在其他情况下,客户设备240也可以集成在执行设备210中。
94.本技术的一些实施例中,例如图3中,第一训练设备2201、第二训练设备2202与执行设备210为分布独立的设备,但图3仅是本发明实施例提供的任务处理系统的一种架构示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制。此外,图3中的示例不用于限定每种设备的数量,例如,数据库230可以与多个客户设备240通信。
95.结合上述描述,下面开始对本技术实施例提供的数据处理方法的训练阶段和应用阶段的具体实现流程进行阐述。
96.一、训练阶段
97.本技术实施例中,训练阶段为上述图3中第一训练设备2201利用第一训练集中的训练样本对本地的目标神经网络201执行训练操作的过程以及第二训练设备2202利用第二训练集中的训练样本对本地的目标神经网络201执行训练操作的过程(即联邦学习中联合训练的过程)。需要注意的是,本技术是以两个客户端为例进行介绍,2个以上客户端参与的联邦学习与此类似,此处不予赘述。具体请参阅图4,图4为本技术实施例提供的基于联邦学习的神经网络训练方法的一种流程示意图,具体可以包括如下步骤:
98.401、第一设备利用构建的目标损失函数,采用第一设备上的第一训练集对第一设备上的目标神经网络进行训练,得到第一权重矩阵,第一训练集包括第一有标签数据以及第一无标签数据。
99.首先,第一设备(即第一训练设备2201)利用构建的目标损失函数,采用该第一设备上的训练集(即第一训练集)对第一设备上的目标神经网络(即本地目标神经网络)进行训练,从而得到该本地目标神经网络的第一权重矩阵,其中,该第一训练集既包括有标签数据(可称为第一有标签数据)又包括无标签数据(可称为第一无标签数据)。
100.需要说明的是,在本技术实施例中,在第一设备利用构建的目标损失函数对本地目标神经网络进行训练之前,需要构建目标损失函数,下面对本技术构建目标损失函数的背景以及构建过程进行阐述。
101.先对构建该目标损失函数的背景进行介绍:由于不同客户端标记数据的能力有限,本技术假设每个客户端仅仅对部分类别的部分数据进行了标记。例如,假设总共有10个类别的训练数据,第一设备(即联邦学习的其中一个客户端)只标记了其中的第1~5类中20%的训练数据,而第6~10类的训练数据全都没有标记;第二设备(即联邦学习的另一个客户端)只标记了其中的6

10类中40%的训练数据,而第1~5类的训练数据全都没有标记。如图5所示,图5为本技术实施例提供的正常二分类学习方法与传统二分类pu学习方法的一个对比示意图,图5中的(a)子示意图示意的是正常的二分类学习方法,其用于训练的数据
均为有标签数据,其中,
“×”
表示一个类别,“o”表示另一个类别;图5中的(b)子示意图示意的则是传统的二分类pu学习方法,其用于训练的数据只有部分为有标签数据其余的训练数据则为无标签数据,如,图5中的(b)子示意图中的“o”表示为标记了类别的训练数据,“?”表示为无标记的训练数据。
102.在上述基础上,本技术提出的是多分类pu学习方法,与传统的二分类pu学习方法不同的地方在于:本技术实施例中的无标签数据可能存在多个不同的分类类别,例如,假设有10个分类类别,其中5个类别中的部分数据标记为有标签数据,另外5个类别均未标记,都为无标签数据,也就是本技术实施例中,虽然都是无标签数据,但无标签数据具体可能属于什么类别无法得知;而传统的二分类pu学习方法中的无标签数据只包括一个分类类别(有标签数据的类别数量没有限制),例如,假设有10个分类类别,无标签数据都只能是其中的某一个类别,另外的9类必须都是有标签数据。为便于理解,具体可参阅图6,图6为本技术实施例提供的正常多分类学习方法与本技术提出的多分类pu学习方法的一个对比示意图。
103.传统的多分类学习方法由于采用的训练数据都是有标签数据,因此,其构造的损失函数一般如下式(1)所示:
[0104][0105]
其中,r(f)为正常多分类学习方法中采用的损失函数的表达式,c为类别数,r
i
(f)=p
i
(f(x)≠i)为类别为i的数据(也可称为第i类数据)的损失函数,x为神经网络的输入数据,f(x)为当该神经网络的输入数据为x时的输出数据(如,预测分类结果),p
i
(f(x)≠i)为输出的预测分类结果不是类别i的概率(即预测错误的概率),π
i
为第i类数据的类别先验(类似权重),因此总体的损失函数r(f)为各个类别对应的损失函数的线性组合。
[0106]
但在本技术的多分类pu学习方法中,由于无标签数据是没有任何标记的数据,若采用式(1)所述的正常多分类学习方法中常用的损失函数的话,则无法计算关于无标签数据的损失函数,基于此,本技术实施例构建了一个新的目标损失函数,该目标损失函数不仅包括有标签数据对该目标损失函数的贡献,还可以利用未标记数据与有标签数据的损失得到无标签数据对该目标损失函数的贡献。
[0107]
下面对本技术构建的目标损失函数的构建过程进行介绍:基于上述所述,该目标损失函数不仅包括有标签数据对该目标损失函数的贡献,还可以利用未标记数据与有标签数据的损失得到无标签数据对该目标损失函数的贡献。因此,可以根据第一损失函数以及第二损失函数构建得到目标损失函数,其中,第一损失函数用于表征对输入神经网络的有标签数据预测错误的概率,第二损失函数用于表征对输入神经网络的无标签数据进行预测得到的预测结果不属于预设分类类别的概率。具体地,在本技术的一些实施方式中,可以是将第一损失函数与第二损失函数相加,得到该目标损失函数。如下式(2)所示:
[0108][0109]
其中,r(f)为本技术构建的目标损失函数,i为当前客户端k1上标注为有标签的训练数据所对应的分类类别,m为当前客户端上的无标签数据可能对应的类别(可称为预设分
类类别),例如,假设一共有10个分类类别,其中,客户端k1上标记了其中第1~5类中的部分数据(即有标签数据),客户端k1上的第6~10类的数据全部未标记(即无标签数据),那么i的取值就为第1~5类对应的类别(即c
pk1
),m的取值就为第6~10类对应的类别。这里需要注意的是,所有客户端总的分类类别数是确定,依然以10个分类类别为例,那么每个客户端不管是有标签数据还是无标签数据,都不会超出这10个分类类别的范围(训练数据真实所述的类别可以少于这10个类别,但不能超出这10个类别)。为第一损失函数,r

i
(f)表示针对输入神经网络的第i类数据进行预测,得到的预测结果是错误的概率,p
u
(f(x)≠m)为对输入神经网络的无标签数据进行预测得到的预测结果不属于预设分类类别m的概率。
[0110]
这里需要注意的是,在式(2)中,类别先验π
i
实际是一个基于实际应用中真实数据预先设定的固定值,后续在训练过程中其值不会改变,类似权重,该类别先验与各个客户端上的具体训练数据的数量多少无关,而与实际应用中真实情况下的类别分布有关,例如,假设现实场景中,猫的数据占比30%,狗的数据占比45%,鸟的数据占比25%,那么狗的类别先验就大于猫的类别先验,猫的类别先验就大于鸟的类别先验,各个类别的类别先验与现实场景中各个类别的数据数量呈正相关关系。
[0111]
需要说明的是,在本技术的一些实施方式中,第一损失函数还可以进一步包括第一子损失函数以及第二子损失函数,其中,第一子损失函数用于表征对输入神经网络的有标签数据进行预测,得到的预测结果不属于有标签数据对应的分类类别的概率;而第二子损失函数用于表征对输入该神经网络的有标签数据进行预测,得到的预测结果不属于预设分类类别的概率。具体地,第一损失函数可以是第一子损失函数与第二子损失函数的差,如下述式(3)所示:
[0112][0113]
其中,为所述的第一子损失函数,为所述的第一子损失函数,为所述的第二子损失函数。
[0114]
此外,第一损失函数除了可以是第一子损失函数与第二子损失函数的差之外,还可以是别的表征形式,例如,第一损失函数还可以是第一子损失函数与预设系数a相乘后的乘积与第二子损失函数与预设系数b相乘后的乘积之间的差,其中,预设系数a+b=1,且a>0,b>0,具体可如下式(4)所示:
[0115][0116]
还需要说明的是,在本技术的另一些实施方式中,构建的目标损失函数除了可以包括第一损失函数以及第二损失函数之外,还可以进一步包括第三损失函数,该第三损失函数就用于表征对输入神经网络的目标有标签数据进行预测得到的预测结果不属于目标预设分类类别的概率,这里需要注意的是,第三损失函数的作用是对无标签数据中的各个类别进行进一步的区分,然而对于当前客户端k1来说,对本地无标签数据中的各个类别进
行进一步的区分是无法做到的,因为客户端k1没有关于本地无标签数据的任何标记。但是,由于联邦学习中每个客户端标记的训练数据是不一样的,因此,可以寻找其余客户端(如,客户端kq,q=2、3、
……
、n,n≥2),让客户端k1的无标签数据在客户端kq中都是有标记的有标签数据,之后,在客户端kq的帮助下计算客户端k1的第三损失函数,即如下述式(5)所示:
[0117]

[0118]
因此,对当前客户端k1来说,目标损失函数中的第三损失函数是用于计算其他客户端的目标损失函数的,由于该第三损失函数用于表征对输入神经网络的目标有标签数据进行预测得到的预测结果不属于目标预设分类类别(可记为m

)的概率,在本技术实施例中,对于当前客户端k1来说,目标有标签数据就是指当前客户端k1上的有标签数据,但该目标有标签数据不属于其他客户端kq上的有标签数据;同样地,目标预设分类类别m

就是指不属于当前客户端k1上定义的预设分类类别,但属于其他客户端kq上定义的预设分类类别。
[0119]
为便于理解第三损失函数中的目标有标签数据以及目标预设分类类别,下面举例进行示意:假设客户端k1为第一设备,客户端k2为第二设备,那么针对第一设备来说,目标有标签数据就是指属于该第一设备上的第一有标签数据且不属于第二设备上的第二有标签数据。类似地,目标预设分类类别也是指第二设备上定义的预设分类类别,例如,假设一共有10个分类类别,其中,客户端k1上标记了其中第1~5类中的部分数据(即第一有标签数据),客户端k1上的第6~10类的数据全部未标记(即第一无标签数据),那么对于客户端k1来说,i的取值就为第1~5类对应的类别(即),为目标分类类别,m的取值就为第6~10类对应的类别,这里的m对于客户端k1来说就是指预设分类类别,又假设客户端k2上标记了其中的第6~10类中的部分数据(即第二有标签数据),客户端k2上的第1~5类的数据全部未标记(即第二无标签数据),那么对于客户端k2来说,i的取值就为第6~10类对应的类别(即),为目标分类类别,m的取值就为第1~5类对应的类别,这里的m对于客户端k2来说就是指预设分类类别。需注意的是,客户端k2的预设分类类别对于客户端k1来说就是目标预设分类类别m


[0120]
综上所述,上式(5)表示的是若要计算客户端k1的第j类数据关于第三损失函数,然而客户端k1上没有任何关于第j类的标记数据,但客户端kq有第j类的标记数据,就可让客户端kq使用其本地的有标签数据来计算客户端k1的第三损失函数的值。
[0121]
因此,在本技术的一些实施方式中,在考虑了第三损失函数的情况下,构建的目标损失函数可以是:首先,将第一损失函数与第二损失函数相加,之后再减去第三损失函数,从而得到该目标损失函数,具体如下式(6)所示:
[0122][0123]
其中,π
j
与π
i
类似,为类别先验,具体请参阅上述对π
i
的说明,此处不予赘述。m

为上述所述的目标预设分类类别。
[0124]
还需要说明的是,在式(6)中,当前客户端k1上的目标损失函数的第三损失函数对所有其他客户端kq(q=2、3、
……
、n,n≥2)的目标损失函数的其中一部分进行了计算,在实际应用中,也可以只计算其中一个或多个客户端,以计算其中一个客户端为例,则目标损失函数还可以是如下式(7)所示:
[0125][0126]
还需要说明的是,在本技术的另一些实施方式中,若的展开形式是式(3)所示的形式,那么上述式(6)还可以展开为如下式(8)所示:
[0127][0128][0129]
类似地,上述式(7)还可以展开为如下式(9)所示:
[0130][0131]
在构建好目标损失函数之后,每个客户端均可基于该目标损失函数,采用本地训
练数据对每个客户端上的目标神经网络进行训练,训练过程就是更新本地目标神经网络的权重矩阵的过程,这里需要注意的是,每个客户端上的目标神经网络的网络模型(也可称为网络结构)都是一样的,只是由于各自本地数据的不同,训练得到的权重矩阵各不相同。对于第一设备来说,该过程就是:第一设备利用构建的目标损失函数,采用该第一设备上的训练集(即第一训练集)对第一设备上的目标神经网络(即本地目标神经网络)进行训练,从而得到该本地目标神经网络的第一权重矩阵,其中,该第一训练集既包括有标签数据(可称为第一有标签数据)又包括无标签数据(可称为第一无标签数据)。
[0132]
402、第二设备利用构建的目标损失函数,采用第二设备上的第二训练集对第二设备上的目标神经网络进行训练,得到第二权重矩阵,第二训练集包括第二有标签数据以及第二无标签数据。
[0133]
与第一设备类似,第二设备(即第二训练设备2202)同样可利用构建的目标损失函数,采用该第二设备上的训练集(即第二训练集)对第二设备上的目标神经网络(即本地目标神经网络)进行训练,从而得到该本地目标神经网络的第二权重矩阵,其中,该第二训练集既包括有标签数据(可称为第二有标签数据)又包括无标签数据(可称为第二无标签数据)。
[0134]
这里需要注意的是,步骤401和步骤402没有先后执行顺序的限制,可以先执行步骤401,再执行步骤402,也可以先执行步骤402,再执行步骤401,还可以步骤401和步骤402同时执行,具体此处不做限定。
[0135]
403、第一设备将该第一权重矩阵向服务设备发送。
[0136]
第一设备将本地目标神经网络的第一权重矩阵向服务设备发送。需要注意的是,在本技术实施例中,该服务设备可以是服务器,也可以是作为客户端的其他设备(如,第二设备),具体此处不做限定。为便于阐述,以下均默认服务设备为服务器。
[0137]
404、第二设备将该第二权重矩阵向服务设备发送。
[0138]
类似地,第二设备同样将本地目标神经网络的第二权重矩阵向服务设备发送。
[0139]
需要注意的是,步骤403和步骤404没有先后执行顺序的限制,可以先执行步骤403,再执行步骤404,也可以先执行步骤404,再执行步骤403,还可以步骤403和步骤404同时执行,具体此处不做限定。
[0140]
405、服务设备对第一权重矩阵以及第二权重矩阵进行整合,得到整合权重矩阵。
[0141]
服务设备在分别接收到第一设备发送的第一权重矩阵和第二设备发送的第二权重矩阵之后,就会进一步对该第一权重矩阵以及第二权重矩阵进行整合,以得到整合权重矩阵。
[0142]
为便于理解,下面对其中一种整合过程进行示意:假设第一设备上有n1个训练数据用于训练本地目标神经网络,第二设备上有n2个训练数据用于训练本地目标神经网络,在第t+1次迭代中第一设备训练好的权重矩阵记为在第t+1次迭代中第二设备训练好的权重矩阵记为那么服务设备整合得到的整合权重矩阵w
t+1
就可记为如下式(10)所示:
[0143]
[0144]
其中,n为第一设备和第二设备上训练数据的总和,即n=n1+n2。
[0145]
在本技术实施例中,第一设备在接收到整合权重之后,就可将该整合权重矩阵作为该目标神经网络的最终权重矩阵,对该目标神经网络进行应用。
[0146]
需要说明的是,在本技术的一些实施方式中,还可以进行迭代训练,以提高目标神经网络的应用性能,即本技术的一些实施方式还可以继续包括步骤406至步骤409。
[0147]
406、服务设备将整合权重矩阵分别向第一设备以及第二设备发送。
[0148]
服务设备将第一权重矩阵以及第二权重矩阵整合完成得到整合权重矩阵之后,会将该整合权重矩阵分别向第一设备以及第二设备发送。
[0149]
407、第一设备将本地目标神经网络的当前权重矩阵更新为整合权重矩阵。
[0150]
第一设备在接收到服务设备发送的整合权重矩阵之后,会将本地目标神经网络的当前权重矩阵更新为该整合权重矩阵。
[0151]
408、第二设备将本地目标神经网络的当前权重矩阵更新为整合权重矩阵。
[0152]
同样地,第二设备在接收到服务设备发送的整合权重矩阵之后,也会将本地目标神经网络的当前权重矩阵更新为该整合权重矩阵。
[0153]
需要说明的是,在本技术的一些实施方式中,步骤406中的服务设备也可以是将得到的整合权重矩阵只向联邦学习涉及的其中一个客户端(如,第一设备,或第二设备)发送,以使得这个客户端将本地目标神经网络的当前权重矩阵更新为整合权重矩阵;步骤406中的服务设备也可以是将得到的整合权重矩阵向联邦学习涉及的多个客户端(如,有n个客户端,只向其中的m个发送整合权重矩阵,n>m≥2)或全部客户端(如,向所有n个客户端发送整合权重矩阵)发送,以使得这多个客户端或全部客户端各自将本地目标神经网络的当前权重矩阵更新为整合权重矩阵,具体本技术对此不做限定。
[0154]
需要注意的是,步骤407和步骤408没有先后执行顺序的限制,可以先执行步骤407,再执行步骤408,也可以先执行步骤408,再执行步骤407,还可以步骤407和步骤408同时执行,具体此处不做限定。
[0155]
409、重复执行步骤401至步骤408,直至达到训练终止条件。
[0156]
第一设备以及第二设备在各自将本地目标神经网络的当前权重矩阵更新为该整合权重矩阵之后,可重复执行步骤401至步骤408,直至达到训练终止条件。
[0157]
需要说明的是,在本技术的一些实施方式中,判断达到训练终止条件的方式包括但不限于:1)当整合权重矩阵的更新次数达到预设次数,则认为达到训练终止条件;2)相邻两次得到的整合权重矩阵之间的差值小于预设阈值,则认为达到训练终止条件。
[0158]
还需要说明的是,图4对应的实施例中,是以客户端为2个为例进行说明,即第一设备和第二设备。在实际应用过程中,客户端可能不止2个,在这种情况下,不同的地方在于:1)每个客户端各自利用构建的目标损失函数,采用各自本地训练集对本地目标神经网络进行训练的过程是类似的,具体此处不予赘述。2)步骤405中服务设备就是对所有客户端发送的权重矩阵进行整合,得到整合权重矩阵。例如,假设有k个客户端,那么服务设备就可接收到k个权重矩阵,分别为第一权重矩阵、第二权重矩阵、
……
、第k权重矩阵,服务设备再基于第一权重矩阵、第二权重矩阵、
……
、第k权重矩阵得到整合权重矩阵。为便于理解,下面对其中一种整合过程进行示意:假设第一设备上有n1个训练数据用于训练本地目标神经网络,第二设备上有n2个训练数据用于训练本地目标神经网络,
……
,第k设备上有nk个训练
数据用于训练本地目标神经网络,同样地,在第t+1次迭代中第一设备训练好的权重矩阵记为在第t+1次迭代中第二设备训练好的权重矩阵记为
……
,第k设备训练好的权重矩阵记为那么服务设备整合得到的整合权重矩阵w
t+1
就可记为如下式(11)所示:
[0159][0160]
其中,n为第一设备、第二设备、
……
、第k设备上训练数据的总和,即n=n1+n2+
……
+nk。
[0161]
综上所述,本技术实施例所述的基于联邦学习的神经网络训练方法包括两个部分(具体可参阅图7所示):a、服务器整合各个客户端的本地目标神经网络的权重矩阵,并将更新后的整合权重矩阵返回给客户端;b、各个客户端利用各自的本地训练数据更新各自的本地目标神经网络的权重矩阵,并上传给服务器。上述两个部分迭代多次,直到网络参数收敛。
[0162]
在本技术上述实施方式中,通过构建一个不同于传统联邦学习方式下的目标损失函数,来解决在客户端上只有部分标记数据的情况下进行联邦学习的问题,该目标损失函数不仅考虑到了有标签数据对该目标损失函数的贡献,还考虑到了无标签数据对该目标损失函数的贡献,因此提高了多个客户端(即第一设备以及第二设备)基于该目标损失函数联合训练得到的目标神经网络的性能。
[0163]
二、推理阶段
[0164]
本技术实施例中,推理阶段描述的是上述图3中的执行设备210利用训练后的目标神经网络201对输入的数据(如,图像)进行处理的过程,具体请参阅图8,图8为本技术实施例提供的数据处理方法的一种流程示意图,具体可以包括如下步骤:
[0165]
801、执行设备获取与目标任务相关的输入数据。
[0166]
首先,执行设备获取待处理的输入数据,该输入数据与待执行的目标任务相关,例如,当目标任务是分类任务,那么输入数据就是指用于进行分类的数据。
[0167]
需要说明的是,在本技术实施例中,输入数据可以是图像数据,也可以是音频数据,还可以是文本数据,其数据类型由待处理的目标任务决定,具体此处不做限定。
[0168]
802、执行设备通过训练后的目标神经网络对输入数据进行处理,得到输出数据,该训练后的目标神经网络的权重矩阵由第一设备、第二设备基于构建的目标损失函数,各自利用本地的第一训练集、第二训练集联合训练得到,第一训练集包括第一有标签数据以及第一无标签数据,第二训练集包括第二有标签数据以及第二无标签数据。
[0169]
之后,执行设备根据通过训练后的目标神经网络对输入数据进行处理,从而得到输出数据(即预测分类结果),其中,该训练后的目标神经网络的权重矩阵由上述第一设备、第二设备基于构建的目标损失函数,各自利用本地的第一训练集、第二训练集联合训练得到,第一训练集包括第一有标签数据以及第一无标签数据,第二训练集包括第二有标签数据以及第二无标签数据。也就是说,该训练后的目标神经网络是基于上述图4对应的实施例构建的目标损失函数训练得到的。在本技术实施例中,具体该训练后的目标神经网络如何基于构建的目标损失函数训练得到可参阅上述图4对应实施例的相关描述,此处不予赘述。
[0170]
需要注意的是,上述是以2个客户端为例说明,若有多于2个的客户端,如,第一设
备、第二设备、
……
、第n设备,n>2,那么训练后的目标神经网络的权重矩阵则由第一设备、第二设备、
……
、第n设备基于构建的目标损失函数,各自利用本地的第一训练集、第二训练集、
……
、第n训练集联合训练得到,第一训练集包括第一有标签数据以及第一无标签数据,第二训练集包括第二有标签数据以及第二无标签数据、
……
、第n训练集包括第n有标签数据以及第n无标签数据。
[0171]
综上所述,通过本技术实施例的基于联邦学习的神经网络训练方法训练得到的共享神经网络模型(即训练后的目标神经网络,每个客户端的初始神经网络模型是一样的)可以使用在计算机视觉、自然语言处理、语音等各个应用场景中,并能够在可以运行神经网络的设备中,例如在手机、平板电脑、各种嵌入式和便携式设备上使用该目标神经网络,具体可如图9所示。
[0172]
为了对本技术实施例所带来的有益效果有更为直观的认识,以下对本技术实施例所带来的技术效果作进一步的对比。具体地,本技术在常用的两个数据集cifar

10和mnist上进行了测试。首先对于mnist数据集,假设每个客户端都拥有全部的10类数据,但只标记了其中的p

class类。结果如表1所示。
[0173]
表1、mnist数据集上的分类结果1
[0174][0175]
由上述表1可知,本技术方法大幅超越每个客户端仅采用本地有标签数据训练的结果,并非常接近每个客户端将本地所有训练数据都标记后再进行训练后的结果。
[0176]
之后,本技术对每个客户端标记了不同个数的有标签的情况进行了实验,结果如表2所示。
[0177]
表2、mnist数据集上的分类结果2
[0178][0179]
表1和表2的结果都假设每个客户端拥有全部类别的数据(只是有的标记了,有的
没有标记),这称为独立同分布(independently identically distribution,iid)数据。接下来,本技术假设每个客户端只拥有全部类别中的部分类别的数据,在非独立同分布(non

independently identically distribution,non

iid)的情况下,其分类结果如表3所示(共有10个客户端)。
[0180]
表3、mnist数据集上的分类结果3
[0181][0182]
其次,本技术在cifar

10数据集上进行了实验。结果如表4所示,由表4可知,本技术方法大幅超越每个客户端仅采用本地有标签数据训练的结果,并非常接近每个客户端将本地所有训练数据都标记后再进行训练后的结果。
[0183]
表4、cifar

10数据集上的分类结果
[0184][0185][0186]
由表4可得知,本技术方法要远好于每个客户端仅采用本地有标签数据训练的结果,并接近每个客户端将本地所有训练数据都标记后再进行训练后的结果。
[0187]
由于智能安防、智慧城市、智能终端等领域中都可以用到本技术实施例中的训练好的目标神经网络来进行任务处理(如,图像处理、音频处理、语义分析等),例如,本技术训练好的目标神经网络可应用于计算机视觉等领域的各种场景和问题,比如常见的一些任务:人脸识别、图像分类、目标检测、语义分割等,下面将对多个落地到产品的多个应用场景进行介绍。
[0188]
(1)目标检测
[0189]
作为一种示例,通过本技术实施例的训练方法练好的目标神经网络可用于终端(如,手机、智能手表、个人电脑等)的目标检测,具体请参阅图10,以终端为手机为例,当用户使用手机拍照时,自动抓取人脸、动物等目标,可以帮助手机自动对焦、美化等。本技术训练好的目标神经网络可应用于该手机,该训练好的目标神经网络在训练过程中由于采用的训练数据是多个客户端上的有标签数据及无标签数据,丰富的训练数据以及构建的目标损失函数提高了该目标神经网络的性能,这使得手机在执行上述目标检测时更为流畅,而流
畅可以给用户带来更好的用户体验,提升手机产品品质。
[0190]
(2)自动驾驶场景分割
[0191]
作为另一示例,本技术训练好的目标神经网络还可用于轮式移动设备(如,自动驾驶车辆、辅助驾驶车辆等)的自动驾驶场景分割,具体请参阅图11,以轮式移动设备为自动驾驶车辆为例,自动驾驶场景分割是一个语义分割问题。自动驾驶车辆的摄像头捕捉到道路画面,需要对画面进行分割,分出路面、路基、车辆、行人等不同物体,从而保持车辆行驶在正确的安全区域。对于安全型要求极高的自动驾驶,则需要实时对画面进行理解,那么能够实时运行的进行语义分割的目标神经网络至关重要,而本技术的目标神经网络在训练过程中由于采用的训练数据是多个客户端上的有标签数据及无标签数据,丰富的训练数据以及构建的目标损失函数提高了该目标神经网络的性能,其运行更快,能够很好的满足自动驾驶车辆上述对神经网络的一系列要求,因此本技术训练好的目标神经网络也可作为神经网络模型应用于轮式移动设备的自动驾驶场景分割。
[0192]
需要说明的是,本技术所述的轮式移动设备可以是轮式机器人、轮式施工设备、自动驾驶车辆等,只要是具备轮式可移动的设备均属于本技术所述的轮式移动设备。另外,还需要说明的是,本技术上述所述的自动驾驶车辆可以为轿车、卡车、摩托车、公共汽车、船、飞机、直升飞机、割草机、娱乐车、游乐场车辆、施工设备、电车、高尔夫球车、火车、和手推车等,本技术实施例不做特别的限定。
[0193]
(3)人脸识别
[0194]
作为另一示例,本技术训练好的目标神经网络还可用于人脸识别(如,入口闸机处的人脸验证),具体请参阅图12,人脸识别是一个图像相似度比对问题。在高铁、机场等入口的闸机上,乘客进行人脸认证时,摄像头会拍摄人脸图像,使用神经网络抽取特征,和存储在系统中的身份证件的图像特征进行相似度计算,如果相似度高就验证成功。其中,神经网络抽取特征是最耗时的,要快速进行人脸验证,需要高效的神经网络进行特征提取。而本技术训练好的目标神经网络在训练过程中由于采用的训练数据是多个客户端上的有标签数据及无标签数据,丰富的训练数据以及构建的目标损失函数提高了该目标神经网络的性能,其运行更快,能够很好的满足上述人脸识别的应用场景中对神经网络的一系列要求。
[0195]
(4)语音识别
[0196]
作为另一示例,本技术训练好的目标神经网络还可用于语音识别(如,翻译机同声传译),具体请参阅图13,翻译机同声传译是一个语音识别和机器翻译问题。在语音识别和机器翻译问题上,神经网络也是常用的一种识别模型,在需要同声传译的场景,必须达到实时语音识别并进行翻译,这就要求部署在设备上的神经网络需要计算速度快,而本技术训练好的目标神经网络在训练过程中由于采用的训练数据是多个客户端上的有标签数据及无标签数据,丰富的训练数据以及构建的目标损失函数提高了该目标神经网络的性能,其运行更快,也能够很好的满足上述语音识别的应用场景对神经网络的一系列要求。
[0197]
需要说明的是,本技术所述的基于联邦学习的神经网络训练方法训练好的目标神经网络不仅可以应用于上述图10至图13所述的应用场景中,还可以应用在人工智能领域的各个细分领域中,如,图像处理领域,计算机视觉领域,语义分析领域等等,只要能使用神经网络的领域和设备,都可应用本技术实施例提供的训练好的目标神经网络,此处不再举例示意。
[0198]
在上述实施例的基础上,为了更好的实施本技术实施例的上述方案,下面还提供用于实施上述方案的相关设备。具体参阅图14,图14为本技术实施例提供的一种训练设备的示意图,该训练设备1400作为第一设备,具体可以包括:获取模块1401、训练模块1402、发送模块1403以及接收模块1404,其中,获取模块1401,用于根据第一损失函数以及第二损失函数得到目标损失函数,该第一损失函数用于表征对输入神经网络的有标签数据预测错误的概率,该第二损失函数用于表征对输入该神经网络的无标签数据进行预测得到的预测结果不属于预设分类类别的概率;训练模块1402,用于利用该目标损失函数,采用该第一设备上的第一训练集对该第一设备上的目标神经网络进行训练,并将该第一设备上的目标神经网络当前的权重矩阵更新为第一权重矩阵,其中,该第一训练集包括第一有标签数据以及第一无标签数据;发送模块1403,用于将该第一权重矩阵向服务设备发送;接收模块1404,用于接收由该服务设备发送的整合权重矩阵,该整合权重矩阵由该服务设备对该第一权重矩阵以及第二权重矩阵整合得到,该第二权重矩阵为第二设备利用该目标损失函数,采用该第二设备上的第二训练集对该第二设备上的目标神经网络进行训练得到的权重矩阵的取值,该第二训练集包括第二有标签数据以及第二无标签数据,需要注意的是,第一设备上的目标神经网络和第二设备上的目标神经网络的网络结构是相同的,即初始网络模型都是一样的,只是在后续的训练过程中,各自训练得到的网络模型的权重矩阵各不相同。
[0199]
在本技术上述实施方式中,通过构建一个不同于传统联邦学习方式下的目标损失函数,来解决在客户端(即训练设备1400)上只有部分标记数据的情况下进行联邦学习的问题,该目标损失函数不仅考虑到了有标签数据对该目标损失函数的贡献,还考虑到了无标签数据对该目标损失函数的贡献,提高了多个客户端基于该目标损失函数联合训练得到的目标神经网络的性能。
[0200]
在一种可能的设计中,第一损失函数包括第一子损失函数以及第二子损失函数,其中,该第一子损失函数用于表征对输入该神经网络的有标签数据进行预测,得到的预测结果不属于该有标签数据对应的分类类别的概率;该第二子损失函数用于表征对输入该神经网络的有标签数据进行预测,得到的预测结果不属于该预设分类类别的概率。
[0201]
在本技术上述实施方式中,具体阐述了第一损失函数还可以包括两个子部分,每个子部分对整个目标神经网络的贡献各不相同,具备灵活性。
[0202]
在一种可能的设计中,该获取模块1401,具体用于:将该第一损失函数与该第二损失函数相加,得到该目标损失函数。
[0203]
在本技术上述实施方式中,具体阐述了第一损失函数与第二损失函数构成该目标损失函数的具体形式,具备可实现性。
[0204]
在一种可能的设计中,该获取模块1401,还用于:根据第一损失函数、第二损失函数以及第三损失函数得到目标损失函数,该第三损失函数用于表征对输入该神经网络的目标有标签数据进行预测得到的预测结果不属于目标预设分类类别的概率,该目标有标签数据属于该第一设备上的第一有标签数据且不属于该第二设备上的第二有标签数据,该目标预设分类类别为在该第二设备上预设的分类类别。
[0205]
在本技术上述实施方式中,具体阐述了构建的目标损失函数除了可以包括第一损失函数以及第二损失函数之外,还可以进一步包括第三损失函数,该第三损失函数的作用是对无标签数据中的各个类别进行进一步的区分,提高了目标损失函数的可靠性。
[0206]
在一种可能的设计中,该获取模块1401,具体还用于:将该第一损失函数与该第二损失函数相加,得到相加结果;将该相加结果与该第三损失函数相减,得到该目标损失函数。
[0207]
在本技术上述实施方式中,在本技术上述实施方式中,具体阐述了第一损失函数、第二损失函数以及第三损失函数构成该目标损失函数的具体形式,具备可实现性。
[0208]
在一种可能的设计中,该训练设备1400还包括触发模块1405,用于:将该整合权重矩阵作为该第一设备上的目标神经网络当前的权重矩阵,触发该训练模块1402、该发送模块1403以及该接收模块1404再次执行;重复执行上一步骤,直至达到训练终止条件。
[0209]
在本技术上述实施方式中,训练设备1400可重复利用更新的整合权重矩阵对本地目标神经网络进行训练,以提高目标神经网络的性能。
[0210]
需要说明的是,训练设备1400中各模块/单元之间的信息交互、执行过程等内容,与本技术中图4对应的方法实施例基于同一构思,具体内容可参见本技术前述所示的方法实施例中第一设备执行的步骤的叙述,此处不再赘述。
[0211]
本技术实施例还提供一种训练设备,具体参阅图15,图15为本技术实施例提供的一种训练设备的示意图,该训练设备1500作为服务设备,具体可以包括:接收模块1501、整合模块1502以及发送模块1503,其中,接收模块1501,用于接收第一设备发送的第一权重矩阵以及第二设备发送的第二权重矩阵,该第一权重矩阵为该第一设备利用目标损失函数,采用该第一设备上的第一训练集对该第一设备上的目标神经网络进行训练得到的权重矩阵,该第二权重矩阵为该第二设备利用该目标损失函数,采用该第二设备上的第二训练集对该第二设备上的目标神经网络进行训练得到的权重矩阵,其中,第一设备上的目标神经网络和第二设备上的目标神经网络的网络结构是相同的,即初始网络模型都是一样的,只是在后续的训练过程中,各自训练得到的网络模型的权重矩阵各不相同。此外,该目标神经网络根据第一损失函数以及第二损失函数得到,该第一损失函数以及该第二损失函数根据目标任务构建得到,该第一损失函数用于表征对输入神经网络的有标签数据预测错误的概率,该第二损失函数用于表征对输入该神经网络的无标签数据进行预测得到的预测结果不属于预设分类类别的概率,该有标签数据为标注了分类类别的训练数据,该无标签数据为没有标注分类类别的训练数据,该第一训练集包括第一有标签数据以及第一无标签数据,该第二训练集包括第二有标签数据以及第二无标签数据;整合模块1502,用于根据该第一权重矩阵以及该第二权重矩阵得到整合权重矩阵;发送模块1503,用于将该整合权重矩阵向该第一设备发送,以使得该第一设备将该整合权重矩阵作为第一设备上的目标神经网络当前的权重矩阵。
[0212]
在本技术上述实施方式中,通过构建一个不同于传统联邦学习方式下的目标损失函数,来解决在客户端上只有部分标记数据的情况下进行联邦学习的问题,该目标损失函数不仅考虑到了有标签数据对该目标损失函数的贡献,还考虑到了无标签数据对该目标损失函数的贡献,提高了多个客户端(即第一设备以及第二设备)基于该目标损失函数联合训练得到的目标神经网络的性能。
[0213]
在一种可能的设计中,该训练设备1500还包括触发模块1504,用于:触发该接收模块1501、该整合模块1502以及该发送模块1503重复执行上述步骤,直至达到训练终止条件。
[0214]
在本技术上述实施方式中,服务设备1500在向第一设备和第二设备发送该整合权
重矩阵之后,可重复执行上述过程,以使得第一设备、第二设备可重复利用更新的整合权重矩阵对本地目标神经网络进行训练,以提高目标神经网络的性能。
[0215]
需要说明的是,训练设备1500中各模块/单元之间的信息交互、执行过程等内容,与本技术中图4对应的方法实施例基于同一构思,具体内容可参见本技术前述所示的方法实施例中服务设备执行的步骤的叙述,此处不再赘述。
[0216]
本技术实施例还提供一种执行设备,具体参阅图16,图16为本技术实施例提供的一种执行设备的示意图,该执行设备1600具体可以包括:获取模块1601以及处理模块1602,其中,获取模块1601,用于获取与目标任务相关的输入数据;处理模块1602,用于通过训练后的目标神经网络对该输入数据进行处理,得到输出数据,其中,该训练后的目标神经网络的权重矩阵由上述图4对应实施例中该的方法得到的整合权重矩阵。
[0217]
需要说明的是,执行设备1600中各模块/单元之间的信息交互、执行过程等内容,与本技术中图8对应的方法实施例基于同一构思,具体内容可参见本技术前述所示的方法实施例中的叙述,此处不再赘述。
[0218]
接下来介绍本技术实施例提供的另一种训练设备,请参阅图17,图17为本技术实施例提供的训练设备的一种结构示意图,当训练设备1700作为第一设备时,该训练设备1700上可以部署有图14对应实施例中所描述的训练设备1400,用于实现图14对应实施例中训练设备1400的功能;当训练设备1700作为服务设备时,该训练设备1700上可以部署有图15对应实施例中所描述的训练设备1500,用于实现图15对应实施例中训练设备1500的功能。具体的,训练设备1700由一个或多个服务器实现,训练设备1700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,cpu)1722和存储器1732,一个或一个以上存储应用程序1742或数据1744的存储介质1730(例如一个或一个以上海量存储设备)。其中,存储器1732和存储介质1730可以是短暂存储或持久存储。存储在存储介质1730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对训练设备1700中的一系列指令操作。更进一步地,中央处理器1722可以设置为与存储介质1730通信,在训练设备1700上执行存储介质1730中的一系列指令操作。
[0219]
训练设备1700还可以包括一个或一个以上电源1726,一个或一个以上有线或无线网络接口1750,一个或一个以上输入输出接口1758,和/或,一个或一个以上操作系统1741,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
[0220]
本技术实施例中,中央处理器1722,用于执行图4对应实施例中的第一设备或服务设备所执行的步骤,具体此次不予赘述。
[0221]
接下来介绍本技术实施例提供的一种执行设备,请参阅图18,图18为本技术实施例提供的执行设备的一种结构示意图,执行设备1800具体可以表现为各种终端设备,如虚拟现实vr设备、手机、平板、笔记本电脑、智能穿戴设备、监控数据处理设备或者雷达数据处理设备等,此处不做限定。其中,执行设备1800上可以部署有图16对应实施例中所描述的执行设备1600,用于实现图16对应实施例中执行设备1600的功能。具体的,执行设备1800包括:接收器1801、发射器1802、处理器1803和存储器1804(其中执行设备1800中的处理器1803的数量可以一个或多个,图18中以一个处理器为例),其中,处理器1803可以包括应用处理器18031和通信处理器18032。在本技术的一些实施例中,接收器1801、发射器1802、处理器1803和存储器1804可通过总线或其它方式连接。
[0222]
存储器1804可以包括只读存储器和随机存取存储器,并向处理器1803提供指令和数据。存储器1804的一部分还可以包括非易失性随机存取存储器(non

volatile random access memory,nvram)。存储器1804存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
[0223]
处理器1803控制执行设备1800的操作。具体的应用中,执行设备1800的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
[0224]
本技术上述图8对应实施例揭示的方法可以应用于处理器1803中,或者由处理器1803实现。处理器1803可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1803中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1803可以是通用处理器、数字信号处理器(digital signal processing,dsp)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器1803可以实现或者执行本技术图8对应的实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1804,处理器1803读取存储器1804中的信息,结合其硬件完成上述方法的步骤。
[0225]
接收器1801可用于接收输入的数字或字符信息,以及产生与执行设备1800的相关设置以及功能控制有关的信号输入。发射器1802可用于通过第一接口输出数字或字符信息;发射器1802还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器1802还可以包括显示屏等显示设备。
[0226]
本技术实施例中,在一种情况下,处理器1803,用于通过训练后的目标神经网络对输入数据进行相应的数据处理,得到对应的输出数据(即预测分类结果)。该训练后的目标神经网络可以是经过本技术图4对应的训练方法得到,具体内容可参见本技术前述所示的方法实施例中的叙述,此处不再赘述。
[0227]
本技术实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述所示实施例描述的训练设备所执行的步骤,或者,使得计算机执行如前述图4或图8所示实施例描述的执行设备所执行的步骤。
[0228]
本技术实施例提供的训练设备、执行设备等具体可以为芯片,芯片包括:处理单元和通信单元,该处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使训练设备内的芯片执行上述所示实施例描述的训练设备所执行的步骤,或者,使得执行设备内的芯片执行如前述图4或图8所示实施例描述的执行设备所执行的步骤。
[0229]
可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单
元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read

only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)等。
[0230]
具体的,请参阅图19,图19为本技术实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器npu 200,npu 200作为协处理器挂载到主cpu(host cpu)上,由host cpu分配任务。npu的核心部分为运算电路2003,通过控制器2004控制运算电路2003提取存储器中的矩阵数据并进行乘法运算。
[0231]
在一些实现中,运算电路2003内部包括多个处理单元(process engine,pe)。在一些实现中,运算电路2003是二维脉动阵列。运算电路2003还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路2003是通用的矩阵处理器。
[0232]
举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路从权重存储器2002中取矩阵b相应的数据,并缓存在运算电路中每一个pe上。运算电路从输入存储器2001中取矩阵a数据与矩阵b进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)2008中。
[0233]
统一存储器2006用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(direct memory access controller,dmac)2005,dmac被搬运到权重存储器2002中。输入数据也通过dmac被搬运到统一存储器2006中。
[0234]
总线接口单元2010(bus interface unit,简称biu),用于axi总线与dmac和取指存储器(instruction fetch buffer,ifb)2009的交互。
[0235]
总线接口单元2010,用于取指存储器2009从外部存储器获取指令,还用于存储单元访问控制器2005从外部存储器获取输入矩阵a或者权重矩阵b的原数据。
[0236]
dmac主要用于将外部存储器ddr中的输入数据搬运到统一存储器2006或将权重数据搬运到权重存储器2002中或将输入数据数据搬运到输入存储器2001中。
[0237]
向量计算单元2007包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如batch normalization(批归一化),像素级求和,对特征平面进行上采样等。
[0238]
在一些实现中,向量计算单元2007能将经处理的输出的向量存储到统一存储器2006。例如,向量计算单元2007可以将线性函数和/或非线性函数应用到运算电路2003的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元2007生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路2003的激活输入,例如用于在神经网络中的后续层中的使用。
[0239]
控制器2004连接的取指存储器(instruction fetch buffer)2009,用于存储控制器2004使用的指令;
[0240]
统一存储器2006,输入存储器2001,权重存储器2002以及取指存储器2009均为on

chip存储器。外部存储器私有于该npu硬件架构。
[0241]
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,asic,或
一个或多个用于控制上述第一方面方法的程序执行的集成电路。
[0242]
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本技术提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
[0243]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本技术而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、u盘、移动硬盘、rom、ram、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本技术各个实施例所述的方法。
[0244]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
[0245]
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1