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

基于联邦学习训练神经网络模型的方法、装置和系统与流程

2021-12-17 21:33:00 来源:中国专利 TAG:


1.本公开的实施例涉及计算机技术领域,具体涉及基于联邦学习训练神经网络模型的方法和装置。


背景技术:

2.随着云计算、分布式存储等技术的发展,揭开了大数据时代的序幕。在大数据时代,各种信息,包括如企业的经营活动、项目或产品描述、用户行为数据、自然社会环境、经济和政治局势等等都可以被记录下来,形成宝贵的数据资产。而对于大数据的分析和利用以捕捉客观规律驱动了人工智能的发展和应用。
3.随着对人工智能的研究和应用,其在许多行业如无人驾驶、医疗保健、金融等都表现出了自身的优势。因此,研究人员开始期望在许多领域使用更复杂、更有效的人工智能技术。但是,目前许多领域所能使用的数据通常有限,甚至数据质量较差,这直接影响了人工智能技术的落地。基于此,有研究人员提出是否可以将不同数据源的数据融合在一起以解决数据有限和质量较差的问题,但打破不同数据源之间的障碍在许多情况下都是非常困难的。例如,不同企业分别具有不同的数据,而不同企业之间的数据隐私和数据安全性问题,使得各个企业的数据都是以孤岛形式存在,无法联合使用。
4.联邦学习是一种新兴的人工智能技术,其最初的设计目标是在保障数据交换时的数据安全和数据隐私、合法合规等前提下,在多个参与方(如多个计算结点、多个用户终端等)之间开展高效的机器学习,如支持向量机、xgboost(extreme gradient boosting)等模型的训练和应用等等。联邦学习所涉及的各个参与方通常具有同等的地位,共同参与贡献并分享成果。和传统的分布式学习相比,联邦学习可以使得数据交换过程合法合规、涉密或隐私数据无需迁移从而不泄露隐私数据等优点。


技术实现要素:

5.本公开的实施例提出了基于联邦学习训练神经网络模型的方法、装置和系统。
6.第一方面,本公开的实施例提供了一种基于联邦学习训练神经网络模型的方法,应用于参与端,该方法包括:接收服务端发送的未训练完成的神经网络模型;利用本地的训练数据训练未训练完成的神经网络模型,得到训练后的神经网络模型,以及将训练后的神经网络模型发送至服务端,其中,服务端用于执行如下处理步骤:聚合从各参与端接收的训练后的神经网络模型,得到聚合后的神经网络模型,响应于确定聚合后的神经网络模型训练完成,发送聚合后的神经网络模型至各参与端;存储训练完成的聚合后的神经网络模型。
7.在一些实施例中,上述处理步骤还包括:响应于确定聚合后的神经网络模型未训练完成,发送聚合后的神经网络模型至各参与端以继续训练。
8.在一些实施例中,上述训练数据不包括一维数据。
9.在一些实施例中,上述服务端为各参与端中的一个参与端。
10.在一些实施例中,上述训练数据为加密数据。
11.在一些实施例中,利用本地的训练数据训练未训练完成的神经网络模型,得到训练后的神经网络模型,包括:利用本地的训练数据训练未训练完成的神经网络模型,以及在训练过程中加密所训练的神经网络模型,得到训练后的神经网络模型。
12.在一些实施例中,利用本地的训练数据训练未训练完成的神经网络模型,得到训练后的神经网络模型,以及将训练后的神经网络模型发送至服务端,包括:利用预设加密算法对训练后的神经网络模型进行加密处理,得到加密的训练后的神经网络模型;确定加密的训练后的神经网络模型作为训练后的神经网络模型发送至服务端。
13.在一些实施例中,上述神经网络模型为卷积神经网络。
14.在一些实施例中,上述服务端与各参与端之间的数据传输基于预设加速库实现。
15.第二方面,本公开的实施例提供了一种人脸识别方法,包括:获取待识别的人脸图像;将人脸图像输入至预先训练的人脸识别模型,得到识别结果,其中,人脸识别模型通过如第一方面中任一实现方式描述的方法训练得到;根据识别结果,生成提示信息。
16.第三方面,本公开的实施例提供了一种基于联邦学习训练神经网络模型的系统,包括服务端和至少两个参与端;服务端向至少两个参与端分别发送未训练完成的神经网络模型;对于至少两个参与端中的参与端,该参与端利用本地的训练数据训练接收的未训练完成的神经网络模型,得到训练后的神经网络模型,以及将训练后的神经网络模型发送至服务端;服务端聚合接收的各训练后的神经网络模型,得到聚合后的神经网络模型,响应于确定聚合后的神经网络模型训练完成,发送聚合后的神经网络模型至少两个参与端;至少两个参与端存储接收到的训练完成的聚合后的神经网络模型。
17.在一些实施例中,服务端响应于确定聚合后的神经网络模型未训练完成,发送聚合后的神经网络模型至各参与端以继续训练。
18.在一些实施例中,上述训练数据不包括一维数据。
19.在一些实施例中,上述服务端为各参与端中的一个参与端。
20.在一些实施例中,上述训练数据为加密数据。
21.在一些实施例中,对于至少两个参与端中的参与端,该参与端利用本地的训练数据训练未训练完成的神经网络模型,以及在训练过程中加密所训练的神经网络模型,得到训练后的神经网络模型。
22.在一些实施例中,对于至少两个参与端中的参与端,该参与端利用预设加密算法对训练后的神经网络模型进行加密处理,得到加密的训练后的神经网络模型;确定加密的训练后的神经网络模型作为训练后的神经网络模型发送至服务端。
23.在一些实施例中,上述神经网络模型为卷积神经网络。
24.在一些实施例中,上述服务端与各参与端之间的数据传输基于预设加速库实现。
25.第四方面,本公开的实施例提供了一种基于联邦学习训练神经网络模型的装置,应用于参与端,该装置包括:接收单元,被配置成接收服务端发送的未训练完成的神经网络模型;训练单元,被配置成利用本地的训练数据训练未训练完成的神经网络模型,得到训练后的神经网络模型,以及将训练后的神经网络模型发送至服务端,其中,服务端用于执行如下处理步骤:聚合从各参与端接收的训练后的神经网络模型,得到聚合后的神经网络模型,响应于确定聚合后的神经网络模型训练完成,发送聚合后的神经网络模型至各参与端;存储单元,被配置成存储训练完成的聚合后的神经网络模型。
26.在一些实施例中,上述处理步骤还包括:响应于确定聚合后的神经网络模型未训练完成,发送聚合后的神经网络模型至各参与端以继续训练。
27.在一些实施例中,上述训练数据不包括一维数据。
28.在一些实施例中,上述服务端为各参与端中的一个参与端。
29.在一些实施例中,上述训练数据为加密数据。
30.在一些实施例中,上述训练单元进一步被配置成利用本地的训练数据训练未训练完成的神经网络模型,以及在训练过程中加密所训练的神经网络模型,得到训练后的神经网络模型。
31.在一些实施例中,上述训练单元进一步被配置成利用预设加密算法对训练后的神经网络模型进行加密处理,得到加密的训练后的神经网络模型;确定加密的训练后的神经网络模型作为训练后的神经网络模型发送至服务端。
32.在一些实施例中,上述神经网络模型为卷积神经网络。
33.在一些实施例中,上述服务端与各参与端之间的数据传输基于预设加速库实现。
34.第五方面,本公开的实施例提供了一种人脸识别装置,包括:获取单元,被配置成获取待识别的人脸图像;识别单元,被配置成将人脸图像输入至预先训练的人脸识别模型,得到识别结果,其中,人脸识别模型通过如上述第二方面描述的训练方法训练得到;生成单元,被配置成根据识别结果,生成提示信息。
35.第六方面,本公开的实施例提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一实现方式或第二方面描述的方法。
36.第七方面,本公开的实施例提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一实现方式或第二方面描述的方法。
37.本公开的实施例提供的基于联邦学习训练神经网络模型的方法、装置和系统,通过联邦学习的参与端利用其本地的训练数据训练同一神经网络模型,然后发送至服务端进行聚合,再由各参与端继续训练,直至服务端聚合后的神经网络模型训练完成,进而可以存储训练完成的神经网络模型以便于后续使用。由此可以实现联邦学习和神经网络的结合,以实现将联邦学习应用于神经网络的训练,从而可以合法合规地解决神经网络的、属于不同数据源的训练数据之间的隔离和数据碎片等问题,同时又可以提升训练完成的神经网络的处理能力和泛化性。
附图说明
38.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
39.图1是本公开的一个实施例可以应用于其中的示例性系统架构图;
40.图2是根据本公开的基于联邦学习训练神经网络模型的方法的一个实施例的流程图;
41.图3是根据本公开的人脸识别方法的一个实施例的流程图;
42.图4是根据本公开的基于联邦学习训练神经网络模型的系统的一个实施例的时序图;
43.图5是根据本公开的基于联邦学习训练神经网络模型的装置的一个实施例的结构示意图;
44.图6是根据本公开的人脸识别装置的一个实施例的结构示意图;
45.图7是适于用来实现本公开的实施例的电子设备的结构示意图。
具体实施方式
46.下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
47.需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
48.图1示出了可以应用本公开的基于联邦学习训练神经网络模型的方法或基于联邦学习训练神经网络模型的装置的实施例的示例性架构100。
49.如图1所示,系统架构100可以包括参与端101、102、103和服务端104。参与端101、102、103和服务端104之间通信连接,具体的连接方式和连接类型不限,例如有线、无线通信链路或者光纤电缆等等。
50.参与端101、102、103和服务端104之间可以进行数据交互,以接收或发送数据(如神经网络模型等等)。参与端101、102、103和服务端104上都可以安装有各种应用或工具等以实现不同的数据处理功能。例如,用于构建神经网络模型的框架、用于训练神经网络模型的工具等等
51.参与端101、102、103可以是硬件,也可以是软件。当参与端101、102、103为硬件时,可以是各种电子设备,包括但不限于各种终端设备(如膝上型便携计算机、台式计算机、平板电脑等等)和各种服务器等等。当参与端101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
52.服务端104可以是提供各种服务的服务器,例如对参与端101、102、103发送的神经网络模型进行聚合等操作的服务器。进一步地,服务器还可以将聚合后的神经网络模型发送至参与端101、102、103。
53.需要说明的是,本公开的实施例所提供的基于联邦学习训练神经网络模型的方法一般由参与端101、102、103执行,相应地,基于联邦学习训练神经网络模型的装置一般设置于参与端101、102、103中。
54.还需要指出的是,在一些情况下,参与端101、102、103中的一个参与端在作为参与端的同时,还可以作为服务端。
55.服务端104可以是硬件,也可以是软件。当服务端104为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务端104为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
56.应该理解,图1中的参与端和服务端的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
57.继续参考图2,其示出了根据本公开的基于联邦学习训练神经网络模型的方法的一个实施例的流程200。该基于联邦学习训练神经网络模型的方法包括以下步骤:
58.步骤201,接收服务端发送的未训练完成的神经网络模型。
59.在本实施例中,基于联邦学习训练神经网络模型的方法的执行主体(如图1所示的参与端101、102、103等)可以从服务端(如图1所示的服务端104)接收服务端发送的未训练完成的神经网络模型。
60.神经网络模型可以是各种类型的神经网络模型。例如,深度神经网络、循环神经网络、卷积神经网络等等。根据实际的应用需求和应用场景的不同,神经网络模型的处理数据、处理过程和处理结果可以不同。例如,神经网络模型可以用于人脸识别、语音识别、视频跟踪等等。未训练完成的神经网络模型可以是未经训练的或训练未完成的神经网络模型。
61.步骤202,利用本地的训练数据训练未训练完成的神经网络模型,得到训练后的神经网络模型,以及将训练后的神经网络模型发送至服务端。
62.在本实施例中,上述执行主体在从服务端接收到未训练完成的神经网络模型之后,可以利用其本地的训练数据对未训练完成的神经网络模型进行训练。根据神经网络模型的不同,对应的训练数据可以不同。举例来说,若神经网络模型用于人脸识别,则训练数据可以包括人脸图像和人脸图像对应的人脸识别结果。
63.具体地,可以利用机器学习的方法训练未训练完成的神经网络模型,直至满足预设的训练停止条件,从而得到训练后的神经网络模型。其中,训练停止条件可以根据实际的应用需求和应用场景灵活设置。例如,训练停止条件可以包括但不限于:训练时间达到预设时长、训练次数达到预设次数、损失函数的值或衰减幅度达到预设阈值等等。
64.上述执行主体在训练得到训练后的神经网络模型之后,可以进一步将训练后的神经网络模型发送至服务端。
65.需要说明的是,除了上述执行主体之外,还可以具有其它参与端。不同参与端的本地可以具有不同的训练数据。在一些情况下,不同参与端的本地的训练数据可以也可以存在交集。每个参与端都可以通过执行上述步骤201和202以得到利用其本地训练数据训练后的神经网络模型。一般地,每个参与端得到的训练后的神经网络模型不同。
66.服务端在接收到各个参与端(包括上述执行主体以及其它参与端)分别发送的训练后的神经网络模型之后,可以对各个训练后的神经网络模型进行聚合处理,以融合各个参与端所训练后的神经网络模型的特征,从而得到聚合后的神经网络模型。
67.其中,具体采用的聚合处理算法可以根据实际的应用需求和应用场景灵活设置。例如,聚合处理可以指对各个训练后的神经网络模型的网络参数进行求平均或求和计算等等。
68.在得到聚合后的神经网络模型之后,服务端可以先判断聚合后的神经网络模型是否训练完成。具体地,服务端可以根据预设的停止条件判断聚合后的神经网络模型是否训练完成。其中,预设的停止条件可以根据实际的应用需求和应用场景灵活设置。例如,预设的停止条件包括但不限于:训练时间达到预设时长、训练次数达到预设次数等等。
69.若聚合后的神经网络模型训练完成,则可以将聚合后的神经网络模型发送至各参与端,以使各参与端可以使用训练完成的神经网络模型处理对应数据。
70.步骤203,存储训练完成的聚合后的神经网络模型。
71.在本实施例中,上述执行主体在接收到服务端发送的训练完成的、聚合后的神经网络模型之后,可以对该聚合后的神经网络模型进行存储,以便于后续使用。其它参与端同样可以对训练完成的、聚合后的神经网络模型进行存储。
72.在本实施例的一些可选的实现方式中,在上述步骤202中,服务端若判断聚合后的神经网络模型未训练完成,可以将未训练完成的、聚合后的神经网络模型分别发送至各参与端,以使各参与端分别对未训练完成的、聚合后的神经网络模型继续进行训练。
73.具体地,每个参与端可以将从服务端接收到的未训练完成的、聚合后的神经网络模型确定为未训练完成的神经网络模型,并继续执行上述步骤201-202,直至神经网络模型训练完成。
74.需要说明的是,在未开始训练前,服务端可以获取初始模型作为未训练完成的神经网络模型,并将初始模型分别发送至各个参与端。之后,服务端可以将对各个参与端发送的训练后的神经网络模型的进行聚合后得到的神经网络模型作为未训练完成的神经网络模型。
75.另外,需要指出的是,本实施例所采用的联邦学习框架可以由技术人员根据实际的应用需求或应用场景进行选择。目前,常见的联邦学习框架包括tensorflow federated、pysyft、fate等等。作为示例,可以选择采用pysyft这一联邦学习框架构建并训练神经网络模型。
76.可选地,可以根据所要训练的神经网络模型的任务、各参与端的训练数据的特征等,选用不同的联邦学习方法来训练神经网络模型。一般地,联邦学习可以包括横向联邦学习(horizontal federated learning)、纵向联邦学习(vertical federated learning)与联邦迁移学习(federated transfer learning)。
77.作为示例,若神经网络模型的任务用于进行人脸识别,且不同参与端上的训练数据中的用户特征重复较多,但对应的用户重叠较少时,可以采用横向联邦学习的方法,将每个参与端上的训练数据进行横向切分,即从用户维度进行切分,然后取出用户特征相同但用户不同的训练数据训练神经网络模型。
78.在本实施例的一些可选的实现方式中,上述服务端可以为各参与端中的其中一个参与端。例如,上述执行主体可以在作为参与端的同时,也作为服务端。此时,上述执行主体可以将未训练完成的神经网络模型分别发送至其它各参与端,以使各参与端分别利用本地的训练数据对未训练完成的神经网络模型进行训练,形成训练后的神经网络模型,包括上述执行主体本身也利用其本地的训练数据对未训练完成的神经网络模型进行训练,形成训练后的神经网络模型。
79.然后上述执行主体可以接收各参与端分别发送的训练后的神经网络模型,并和本地训练后的神经网络模型一起聚合,得到聚合后的神经网络模型。若聚合后的神经网络模型训练完成,则可以存储聚合后的神经网络模型,同时将聚合后的神经网络模型分别发送至各参与端。若聚合后的神经网络模型未训练完成,可以将聚合后的神经网络模型确定为未训练完成的神经网络模型分别发送至各参与端继续进行训练。
80.这样一来,可以省去构建服务端,以及服务端与各参与端之间的信任确认等过程,简化神经网络模型的整体处理流程。
81.在本实施例的一些可选的实现方式中,上述用于训练未训练完成的神经网络模型
的训练数据可以不包括一维数据。即训练数据为二维或多维等高维数据。具体地,在神经网络模型的训练过程中,可以通过采用读取训练数据的原始存储路径的方式来读取训练数据进行训练。
82.现有技术中,基于联邦学习的机器学习模型的训练通常只支持一维数据的处理,例如信号数据、时序数据等等,而无法处理图像、视频、语音等这种以矩阵、多维list等形式表示的高维数据,因此,联邦学习技术无法应用于处理高维数据的神经网络模型的训练中。针对该问题,在神经网络模型训练时,通过读取训练数据的原始存储路径来加载使用训练数据以完成神经网络模型的训练,从而可以将联邦学习技术也应用于用于处理高维数据的神经网络模型的训练,进而提升神经网络模型的处理能力。
83.在本实施例的一些可选的实现方式中,每个参与端本地的训练数据可以为加密数据。具体地,可以采用现有的各种加密算法对训练数据进行加密。各个参与端所使用的加密算法可以相同。
84.由此,可以保护各个参与端的训练数据的安全性,而且也可以保障利用加密的训练数据对未训练的神经网络模型进行训练得到的训练后神经网络模型,从而服务端接收到参与端发送的训练后的神经网络模型后,较难根据训练后的神经网络模型了解参与端的训练数据的分布等信息,避免联合训练过程中泄露各个参与端的训练数据。
85.在本实施例的一些可选的实现方式中,对于每个参与端来说,在从服务端接收到未训练完成的神经网络模型之后,可以利用本地的训练数据对未训练完成的神经网络模型进行训练,并在训练过程中对所训练的未训练完成的神经网络模型进行加密,从而可以得到本身就是加密的训练后的神经网络模型。
86.具体地,可以在对未训练完成的神经网络模型进行训练时,对未训练完成的神经网络模型添加扰动(如添加随机噪声等)以加密该未训练完成的神经网络模型。在需要解密时,可以通过去掉对应扰动的方式解密训练后的神经网络模型。
87.通过这种方式,可以进一步保障各参与端在和服务端交换训练后的神经网络模型的过程的安全性,避免不法人士推过反推等方式了解训练后的神经网络模型的相关信息。
88.可选地,可以利用差分隐私技术对所训练的未训练完成的神经网络模型进行加密,以使神经网络模型在训练过程中自然进行加密,保证神经网络模型的安全和训练速度。
89.在本实施例的一些可选的实现方式中,每个参与端在得到训练后的神经网络模型之后,可以先利用预设加密算法对训练后的神经网络模型进行加密处理,得到加密的训练后的神经网络模型,然后再将加密的训练后的神经网络模型确定为训练后的神经网络模型发送至服务端。
90.具体地,可以采用现有的各种加密算法对训练后的神经网络模型进行加密处理。各种参与端所使用的加密算法可以相同。例如,可以利用同态加密技术对训练后的神经网络模型进行加密处理。
91.这种方式下,每个参与端在从服务端接收到聚合后的神经网络模型之后,可以按照所使用的加密算法对聚合后的神经网络模型进行解密,再利用本地训练数据对解密后得到的神经网络模型继续进行训练。由此,进一步地保证多个参与端联合训练神经网络模型的安全性。
92.在本实施例的一些可选的实现方式中,各个参与端基于联邦学习联合训练的神经
网络模型可以为卷积神经网络,以实现各种不同的卷积算子。具体地,在构建待训练的神经网络模型时,可以将神经网络模型加载封装成一个结构体,以此来支持卷积算子的应用。
93.现有技术中,应用联邦学习所训练的机器学习模型通常只支持xgbosot、支持向量机等简单的机器学习中的算子(如laplace operator拉普拉斯算子等),而无法支持较复杂的算子。针对该问题,通过将神经网络模型加载封装成一个结构体,并利用此来实现交付在的卷积算子,进一步提升应用联邦学习所训练的神经网络模型的处理能力。
94.在本实施例的一些可选的实现方式中,上述服务端与各参与端之间的数据传输可以基于预设加速库(如wsaccel加速库等)实现,以加速神经网络模型的训练过程,提升训练效率。
95.本公开的上述实施例提供的方法将联邦学习应用于神经网络模型的训练中,从而合法合规地解决不同参与端的训练数据之间的数据隔离的问题,同时保障各参与端的训练数据的安全性,由于利用不同参与端的训练数据联合训练神经网路模型,可以较大地提升训练完成的神经网络模型的处理能力和泛化能力,并提升处理精度。而且,还可以通过对训练过程的一些调整使得基于联邦学习所训练的神经网络模型可以支持高维数据的读取、支持较复杂的卷积算子、具有更强的数据保护能力、更快的数据传输速度等等,以进一步提升整个训练过程的效率和所训练的神经网络模型的处理能力。
96.进一步参考图3,其示出了人脸识别方法的一个实施例的流程300。该人脸识别方法的流程300,包括以下步骤:
97.步骤301,获取待识别的人脸图像。
98.在本实施例中,人脸图像可以指用于呈现人脸的图像。待识别的人脸图像可以任意的人脸图像。例如,可以是预先指定的人脸图像,也可以是当前检测或拍摄到的人脸图像。
99.人脸识别方法的执行主体可以从本地或其它电子设备获取待识别的人脸图像,也可以利用其具有的图像采集装置(如摄像头等)采集人脸图像。
100.步骤302,将人脸图像输入至预先训练的人脸识别模型,得到识别结果。
101.在本实施例中,人脸识别模型可以通过如上述图2实施例所示的方法训练得到。此时,图2实施例中的神经网络模型即可以为人脸识别模型。
102.人脸识别可以模型可以用于识别人脸图像对应的人脸所属者的身份。因此,利用人脸识别模型得到的识别结果即可以表征人脸图像对应的人脸所属者的身份。
103.步骤303,根据识别结果,生成提示信息。
104.在本实施例中,根据不同的应用场景和应用需求,可以根据识别结果生成不同的提示信息。例如,若识别结果用于表征人脸图像对应的人脸所属者属于指定用户群,则可以生成用于提示验证成功的提示信息。若识别结果用于表征人脸图像对应的人脸所属者不属于指定用户群,则可以生成用于提示验证失败的提示信息。
105.本公开的上述实施例提供的方法利用多参与端的训练数据联合训练人脸识别模型,解决了不同参与端的训练数据之间存在的数据隔离等问题且保障不同参与端的数据安全,又可以学习到各参与端的训练数据所训练出的模型的特征表达,从而使得训练完成的人脸识别模型具有更强的泛化性,可以应用于不同参与端所涉及的各种不同的应用场景下,提升人脸识别模型的识别精度。
106.进一步参考图4,其示出了基于联邦学习训练神经网络模型的系统的一个实施例的时序图400。本公开实施例中的基于联邦学习训练神经网络模型的系统可以包括服务端(如图1所示的服务端104)和至少一个参与端(如图1所示的参与端101、102、103)。需要说明的是,根据实际的应用场景,参与端的数目可以为两个以上。
107.如图4所示,在步骤401中,服务端向至少两个参与端分别发送未训练完成的神经网络模型。
108.在本实施例中,神经网络模型可以是各种类型的神经网络模型。例如,深度神经网络、循环神经网络、卷积神经网络等等。根据实际的应用需求和应用场景的不同,神经网络模型的处理数据、处理过程和处理结果可以不同。例如,神经网络模型可以用于人脸识别、语音识别、视频跟踪等等。未训练完成的神经网络模型可以是未经训练的或训练未完成的神经网络模型。
109.在步骤402中,每个参与端利用本地的训练数据训练接收的未训练完成的神经网络模型,得到训练后的神经网络模型。
110.在本实施例中,每个参与端在从服务端接收到未训练完成的神经网络模型之后,可以利用其本地的训练数据对未训练完成的神经网络模型进行训练。根据神经网络模型的不同,对应的训练数据可以不同。举例来说,若神经网络模型用于人脸识别,则训练数据可以包括人脸图像和人脸图像对应的人脸识别结果。
111.具体地,可以利用机器学习的方法训练未训练完成的神经网络模型,直至满足预设的训练停止条件,从而得到训练后的神经网络模型。其中,训练停止条件可以根据实际的应用需求和应用场景灵活设置。例如,训练停止条件可以包括但不限于:训练时间达到预设时长、训练次数达到预设次数、损失函数的值或衰减幅度达到预设阈值等等。
112.需要说明的是,不同参与端的本地可以具有不同的训练数据。在一些情况下,不同参与端的本地的训练数据可以也可以存在交集。一般地,每个参与端得到的训练后的神经网络模型不同。
113.步骤403,每个参与端将其训练后的神经网络模型发送至服务端。
114.步骤404,服务端聚合接收的各训练后的神经网络模型,得到聚合后的神经网络模型。
115.在本实施例中,服务端在接收到各个参与端分别发送的训练后的神经网络模型之后,可以对各个训练后的神经网络模型进行聚合处理,以融合各个参与端所训练后的神经网络模型的特征,从而得到聚合后的神经网络模型。
116.其中,具体采用的聚合处理算法可以根据实际的应用需求和应用场景灵活设置。例如,聚合处理可以指对各个训练后的神经网络模型的网络参数进行求平均或求和计算等等。
117.步骤405,响应于确定聚合后的神经网络模型训练完成,发送聚合后的神经网络模型至少两个参与端。
118.在本实施例中,在得到聚合后的神经网络模型之后,服务端可以先判断聚合后的神经网络模型是否训练完成。具体地,服务端可以根据预设的停止条件判断聚合后的神经网络模型是否训练完成。其中,预设的停止条件可以根据实际的应用需求和应用场景灵活设置。例如,预设的停止条件包括但不限于:训练时间达到预设时长、训练次数达到预设次
数等等。
119.若聚合后的神经网络模型训练完成,服务端可以将聚合后的神经网络模型发送至各参与端,以使各参与端可以使用训练完成的神经网络模型处理对应数据。
120.步骤406,各参与端存储接收到的训练完成的聚合后的神经网络模型。
121.可选地,在上述步骤405中,服务端若判断聚合后的神经网络模型未训练完成,可以将未训练完成的、聚合后的神经网络模型分别发送至各参与端,以使各参与端分别对未训练完成的、聚合后的神经网络模型继续进行训练。
122.具体地,每个参与端可以将从服务端接收到的未训练完成的、聚合后的神经网络模型确定为未训练完成的神经网络模型,并继续利用本地训练数据进行训练直至神经网络模型训练完成。
123.需要说明的是,在未开始训练前,服务端可以获取初始模型作为未训练完成的神经网络模型,并将初始模型分别发送至各个参与端。之后,服务端可以将对各个参与端发送的训练后的神经网络模型的进行聚合后得到的神经网络模型作为未训练完成的神经网络模型。
124.另外,需要指出的是,本实施例所采用的联邦学习框架可以由技术人员根据实际的应用需求或应用场景进行选择。目前,常见的联邦学习框架包括tensorflow federated、pysyft、fate等等。作为示例,可以选择采用pysyft这一联邦学习框架构建并训练神经网络模型。
125.可选地,可以根据所要训练的神经网络模型的任务、各参与端的训练数据的特征等,选用不同的联邦学习方法来训练神经网络模型。一般地,联邦学习可以包括横向联邦学习(horizontal federated learning)、纵向联邦学习(vertical federated learning)与联邦迁移学习(federated transfer learning)。
126.作为示例,若神经网络模型的任务用于进行人脸识别,且不同参与端上的训练数据中的用户特征重复较多,但对应的用户重叠较少时,可以采用横向联邦学习的方法,将每个参与端上的训练数据进行横向切分,即从用户维度进行切分,然后取出用户特征相同但用户不同的训练数据训练神经网络模型。
127.可选地,服务端可以为各参与端中的其中一个参与端。
128.可选地,每个参与端本地的、用于训练未训练完成的神经网络模型的训练数据可以不包括一维数据。
129.可选地,每个参与端本地的训练数据可以为加密数据。
130.可选地,每个参与端在从服务端接收到未训练完成的神经网络模型之后,可以利用本地的训练数据对未训练完成的神经网络模型进行训练,并在训练过程中对所训练的未训练完成的神经网络模型进行加密,从而可以得到本身就是加密的训练后的神经网络模型。
131.可选地,可以利用差分隐私技术对所训练的未训练完成的神经网络模型进行加密,以使神经网络模型在训练过程中自然进行加密,保证神经网络模型的安全和训练速度。
132.可选地,每个参与端在得到训练后的神经网络模型之后,可以先利用预设加密算法对训练后的神经网络模型进行加密处理,得到加密的训练后的神经网络模型,然后再将加密的训练后的神经网络模型确定为训练后的神经网络模型发送至服务端。
133.可选地,每个参与端基于联邦学习联合训练的神经网络模型可以为卷积神经网络,以实现各种不同的卷积算子。
134.可选地,服务端与各参与端之间的数据传输可以基于预设加速库(如wsaccel加速库等)实现,以加速神经网络模型的训练过程,提升训练效率。
135.需要说明的是,本实施例中的未详细说明的内容可以参考图2对应实施例中的相关说明,在此不再赘述。
136.本公开的上述实施例提供的系统将联邦学习应用于神经网络模型的训练中,从而合法合规地解决不同参与端的训练数据之间的数据隔离的问题,同时保障各参与端的训练数据的安全性,由于利用不同参与端的训练数据联合训练神经网路模型,可以较大地提升训练完成的神经网络模型的处理能力和泛化能力,并提升处理精度。而且,还可以通过对训练过程的一些调整使得基于联邦学习所训练的神经网络模型可以支持高维数据的读取、支持较复杂的卷积算子、具有更强的数据保护能力、更快的数据传输速度等等,以进一步提升整个训练过程的效率和所训练的神经网络模型的处理能力。
137.进一步参考图5,作为对上述图2所示方法的实现,本公开提供了基于联邦学习训练神经网络模型的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
138.如图5所示,本实施例提供的基于联邦学习训练神经网络模型的装置500包括接收单元501、训练单元502和存储单元503。其中,接收单元501被配置成接收服务端发送的未训练完成的神经网络模型;训练单元502被配置成利用本地的训练数据训练未训练完成的神经网络模型,得到训练后的神经网络模型,以及将训练后的神经网络模型发送至服务端,其中,服务端用于执行如下处理步骤:聚合从各参与端接收的训练后的神经网络模型,得到聚合后的神经网络模型,响应于确定聚合后的神经网络模型训练完成,发送聚合后的神经网络模型至各参与端;存储单元503被配置成存储训练完成的聚合后的神经网络模型。
139.在本实施例中,基于联邦学习训练神经网络模型的装置500中:接收单元501、训练单元502和存储单元503的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201、步骤202和步骤203的相关说明,在此不再赘述。
140.在本实施例的一些可选的实现方式中,上述处理步骤还包括:响应于确定聚合后的神经网络模型未训练完成,发送聚合后的神经网络模型至各参与端以继续训练。
141.在本实施例的一些可选的实现方式中,上述训练数据不包括一维数据。
142.在本实施例的一些可选的实现方式中,上述服务端为各参与端中的一个参与端。
143.在本实施例的一些可选的实现方式中,上述训练数据为加密数据。
144.在本实施例的一些可选的实现方式中,上述训练单元502进一步被配置成利用本地的训练数据训练未训练完成的神经网络模型,以及在训练过程中加密所训练的神经网络模型,得到训练后的神经网络模型。
145.在本实施例的一些可选的实现方式中,上述训练单元502进一步被配置成利用预设加密算法对训练后的神经网络模型进行加密处理,得到加密的训练后的神经网络模型;确定加密的训练后的神经网络模型作为训练后的神经网络模型发送至服务端。
146.在本实施例的一些可选的实现方式中,上述神经网络模型为卷积神经网络。
147.在本实施例的一些可选的实现方式中,上述服务端与各参与端之间的数据传输基
于预设加速库实现。
148.本公开的上述实施例提供的装置,通过接收单元接收服务端发送的未训练完成的神经网络模型;训练单元利用本地的训练数据训练未训练完成的神经网络模型,得到训练后的神经网络模型,以及将训练后的神经网络模型发送至服务端,其中,服务端用于执行如下处理步骤:聚合从各参与端接收的训练后的神经网络模型,得到聚合后的神经网络模型,响应于确定聚合后的神经网络模型训练完成,发送聚合后的神经网络模型至各参与端;存储单元存储训练完成的聚合后的神经网络模型。由此,可以合法合规地解决不同参与端的训练数据之间的数据隔离的问题,同时保障各参与端的训练数据的安全性,由于利用不同参与端的训练数据联合训练神经网路模型,可以较大地提升训练完成的神经网络模型的处理能力和泛化能力,并提升处理精度。
149.进一步参考图6,作为对上述图3所示方法的实现,本公开提供了人脸识别装置的一个实施例,该装置实施例与图3所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
150.如图5所示,本实施例提供的人脸识别装置500包括获取单元501、识别单元502和生成单元503。其中,获取单元501被配置成获取待识别的人脸图像;识别单元502被配置成将人脸图像输入至预先训练的人脸识别模型,得到识别结果,其中,人脸识别模型通过如图3实施例所示的训练方法训练得到;生成单元503被配置成根据识别结果,生成提示信息。
151.在本实施例中,人脸识别装置500中:获取单元501、识别单元502和生成单元503的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤301、步骤302和步骤303的相关说明,在此不再赘述。
152.本公开的上述实施例提供的装置,通过获取单元获取待识别的人脸图像,识别单元将人脸图像输入至基于联邦学习训练得到的人脸识别模型,得到识别结果,生成单元根据识别结果,生成提示信息。由此,可以解决不同参与端的训练数据之间存在的数据隔离等问题且保障不同参与端的数据安全,又可以学习到各参与端的训练数据所训练出的模型的特征表达,从而使得训练完成的人脸识别模型具有更强的泛化性,可以应用于不同参与端所涉及的各种不同的应用场景下,提升人脸识别模型的识别精度。
153.下面参考图7,其示出了适于用来实现本公开的实施例的电子设备(例如图1中的参与端)700的结构示意图。图7示出的电子设备仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
154.如图7所示,电子设备700可以包括处理装置(例如中央处理器、图形处理器等)701,其可以根据存储在只读存储器(rom)702中的程序或者从存储装置708加载到随机访问存储器(ram)703中的程序而执行各种适当的动作和处理。在ram 703中,还存储有电子设备700操作所需的各种程序和数据。处理装置701、rom 702以及ram703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。
155.通常,以下装置可以连接至i/o接口705:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置706;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置708;以及通信装置709。通信装置709可以允许电子设备700与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备700,但是应理解的是,并不要求实施或具备所有示出的装置。可以
替代地实施或具备更多或更少的装置。图7中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
156.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置709从网络上被下载和安装,或者从存储装置708被安装,或者从rom 702被安装。在该计算机程序被处理装置701执行时,执行本公开的实施例的方法中限定的上述功能。
157.需要说明的是,本公开的实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
158.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收服务端发送的未训练完成的神经网络模型;利用本地的训练数据训练未训练完成的神经网络模型,得到训练后的神经网络模型,以及将训练后的神经网络模型发送至服务端,其中,服务端用于执行如下处理步骤:聚合从各参与端接收的训练后的神经网络模型,得到聚合后的神经网络模型,响应于确定聚合后的神经网络模型训练完成,发送聚合后的神经网络模型至各参与端;存储训练完成的聚合后的神经网络模型。
159.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
160.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
161.描述于本公开的实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括接收单元、训练单元和存储单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,接收单元还可以被描述为“接收服务端发送的未训练完成的神经网络模型的单元”。
162.以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
再多了解一些

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

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

相关文献