一种联邦迁移学习模型的训练、预测方法及装置转让专利

申请号 : CN201910691510.0

文献号 : CN110399742B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 康焱刘洋陈天健

申请人 : 深圳前海微众银行股份有限公司

摘要 :

本发明涉及人工智能技术领域,具体为一种联邦迁移学习模型的训练、预测方法及装置;所述方法包括:第一终端获取参数服务器在第i个训练周期下发的加密迁移模型;加密迁移模型为参数服务器根据K个参与方的K个终端在第i‑1个训练周期上传的K个加密共享模型生成的;第一终端在第i个训练周期根据下发的加密迁移模型更新第一终端的第一本地神经网络模型中的加密共享模型,并根据第一数据训练更新第一本地神经网络模型。这样在联邦迁移学习训练过程中,保证了各参与方数据的隐私性,有效提高了模型的训练效率,并且在保障模型的泛化能力的同时,提高了各终端模型的独特性。

权利要求 :

1.一种联邦迁移学习模型的训练方法,其特征在于,包括:

第一终端获取参数服务器在第i个训练周期下发的加密迁移模型;所述加密迁移模型为所述参数服务器根据K个参与方的K个终端在第i-1个训练周期上传的K个加密共享模型生成的;所述第一终端为所述K个终端中的任一终端;第1个训练周期训练的所述加密共享模型为所述第一终端根据参数服务器下发的初始加密迁移模型及第一数据训练的;所述初始加密迁移模型为所述参数服务器在第1个训练周期,根据所述参数服务器的公钥加密所述参数服务器生成的初始迁移模型获得的,并发送至各终端的;所述第一数据为所述第一终端的训练数据;i,K为正整数;i大于1;

所述第一终端根据所述参数服务器在第i个训练周期下发的加密迁移模型更新所述第一终端的第一本地神经网络模型中的加密共享模型,并根据所述第一数据训练更新所述第一本地神经网络模型,从而得到在第i个训练周期训练的所述第一本地神经网络模型中的加密共享模型;

所述第一终端将所述加密共享模型上传到所述参数服务器。

2.如权利要求1所述的方法,其特征在于,所述第一终端根据所述加密迁移模型,更新所述第一终端的第一本地神经网络模型的第一加密共享模型,包括:所述第一终端根据所述加密迁移模型,及所述加密迁移模型在所述第一本地神经网络模型中的权重,更新所述第一终端的第一本地神经网络模型的第一加密共享模型。

3.如权利要求2所述的方法,其特征在于,所述第一加密共享模型包括N层特征提取层;

N为正整数;所述第一终端根据所述加密迁移模型,及所述加密迁移模型在所述第一本地神经网络模型中的权重,更新所述第一终端的第一本地神经网络模型的第一加密共享模型,包括:针对所述第一加密共享模型中的N层特征提取层的第l层,执行:

所述第一终端根据所述加密迁移模型的第l层的模型参数,及所述加密迁移模型在第一加密共享模型的第l层的第一权重,更新所述第一加密共享模型的第l层的模型参数;所述第l层的第一权重为所述第一终端根据所述第一本地神经网络模型的预测类型确定的;l小于或等于N;l为正整数。

4.如权利要求1所述的方法,其特征在于,所述第一本地神经网络模型还包括第一私有模型;所述第一私有模型为根据所述第一本地神经网络模型的预测类型确定的。

5.如权利要求4所述的方法,其特征在于,所述加密共享模型的特征提取层靠近所述第一本地神经网络模型的输入层;所述第一私有模型的特征提取层靠近所述第一本地神经网络模型的输出层。

6.一种联邦迁移学习模型的训练方法,其特征在于,所述方法包括:

参数服务器获取K个终端在第i-1个训练周期上传的K个加密共享模型;第1个训练周期训练的所述K个加密共享模型为所述K个终端根据初始加密迁移模型及各终端各自的训练数据训练的;所述初始加密迁移模型为所述参数服务器在第1个训练周期,根据所述参数服务器的公钥加密所述参数服务器生成的初始迁移模型获得的,并发送至各终端的;

所述参数服务器根据所述K个终端在第i-1个训练周期上传的加密共享模型生成第i个训练周期的加密迁移模型;

所述参数服务器将所述第i个训练周期的加密迁移模型下发至各终端,以使各终端根据所述加密迁移模型,更新各终端的本地神经网络模型中的加密共享模型,并根据各终端各自的训练数据训练更新后的所述本地神经网络模型,从而得到在第i个训练周期训练的所述本地神经网络模型中的加密共享模型。

7.如权利要求6所述的方法,其特征在于,所述方法还包括:

所述参数服务器获取所述K个终端在第i-1个训练周期上传的加密损失值;

所述参数服务器根据所述K个终端在第i-1个训练周期上传的加密共享模型生成第i个训练周期的加密迁移模型之前,还包括:所述参数服务器根据所述K个终端在第i-1个训练周期上传的K个加密损失值确定是否结束训练。

8.如权利要求7所述的方法,其特征在于,所述参数服务器根据所述K个终端在第i-1个训练周期上传的加密损失值确定是否结束训练,包括:所述参数服务器通过所述参数服务器的私钥对所述K个加密损失值进行解密,得到K个损失值;

所述参数服务器对所述K个损失值通过加权平均,得到所述第i-1个训练周期的总损失值;

所述参数服务器根据所述总损失值确定训练是否结束。

9.如权利要求6所述的方法,其特征在于,所述参数服务器根据所述K个终端在第i-1个训练周期上传的加密共享模型生成第i个训练周期的加密迁移模型,包括:所述参数服务器将所述K个终端上传的K个加密共享模型通过加权平均,确定第i个训练周期的加密迁移模型。

10.一种联邦迁移学习模型的预测方法,其特征在于,应用于权利要求1-9的任一方法得到的第一本地神经网络模型,包括:第一终端根据所述第一本地神经网络模型,确定第一预测数据的第一加密预测值;

所述第一终端对所述第一加密预测值加扰,生成第二加密预测值;

所述第一终端将所述第二加密预测值发送至参数服务器;

所述第一终端接收所述参数服务器返回的第二预测值;所述第二预测值为所述参数服务器根据所述参数服务器的私钥解密后确定的;

所述第一终端将所述第二预测值解扰,确定第一预测值。

11.一种联邦迁移学习模型的训练装置,其特征在于,包括:

收发单元,用于获取参数服务器在第i个训练周期下发的加密迁移模型;所述加密迁移模型为所述参数服务器根据K个参与方的K个终端在第i-1个训练周期上传的K个加密共享模型生成的;第1个训练周期训练的所述加密共享模型为第一终端根据参数服务器下发的初始加密迁移模型及第一数据训练的;所述第一终端为所述K个终端中的任一终端;所述初始加密迁移模型为所述参数服务器在第1个训练周期,根据所述参数服务器的公钥加密所述参数服务器生成并发送至各终端的;所述第一数据为所述第一终端的训练数据;i,K为正整数;i大于1;

处理单元,用于根据所述参数服务器在第i个训练周期下发的加密迁移模型更新所述第一终端的第一本地神经网络模型中的加密共享模型,并根据所述第一数据训练更新所述第一本地神经网络模型,从而得到在第i个训练周期训练的所述第一本地神经网络模型中的加密共享模型;

所述收发单元,还用于将所述加密共享模型上传到所述参数服务器。

12.一种联邦迁移学习模型的训练装置,其特征在于,包括:

收发单元,用于获取K个终端在第i-1个训练周期上传的K个加密共享模型;第1个训练周期训练的所述K个加密共享模型为所述K个终端根据初始加密迁移模型及各终端各自的训练数据训练的;所述初始加密迁移模型为参数服务器在第1个训练周期,根据所述参数服务器的公钥加密所述参数服务器生成的初始迁移模型获得的,并发送至各终端的;

处理单元,用于根据所述K个终端在第i-1个训练周期上传的加密共享模型生成第i个训练周期的加密迁移模型;

所述收发单元,还用于:将所述第i个训练周期的加密迁移模型下发至各终端,以使各终端根据所述加密迁移模型,更新各终端的本地神经网络模型中的加密共享模型,并根据各终端各自的训练数据训练更新后的所述本地神经网络模型,从而得到在第i个训练周期训练的所述本地神经网络模型中的加密共享模型。

13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-10任一项方法的步骤。

说明书 :

一种联邦迁移学习模型的训练、预测方法及装置

技术领域

[0001] 本发明涉及人工智能技术领域,尤其涉及一种联邦迁移学习模型的训练、预测方法及装置。

背景技术

[0002] 随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向科技金融(Fintech)转变,人工智能技术也不例外,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。
[0003] 随着互联网技术的发展,网络平台上信息大量而多样,如何实现为用户推荐个性化和感兴趣的信息服务,是非常重要的。
[0004] 然而,现有的本地神经网络模型在数据学习过程中仍存在数据泄露和用户隐私泄露的风险,且无法保证各参与方训练的模型预测的特异性。因此,如何保护用户数据隐私的同时,提高用户覆盖率和推荐信息的多样性,是一个亟待解决的问题。

发明内容

[0005] 本发明实施例提供一种联邦迁移学习模型的训练、预测及装置,以解决现有技术中模型的数据安全性较低的问题。
[0006] 本发明实施例提供的具体技术方案如下:
[0007] 本发明一个实施例提供了一种联邦迁移学习模型的训练方法,包括:
[0008] 第一终端获取参数服务器在第i个训练周期下发的加密迁移模型;所述加密迁移模型为所述参数服务器根据K个参与方的K个终端在第i-1个训练周期上传的K个加密共享模型生成的;所述第一终端为所述K个终端中的任一终端;第1个训练周期训练的所述加密共享模型为第一终端根据参数服务器下发的初始加密迁移模型及第一数据训练的;所述初始加密迁移模型为所述参数服务器在第1个训练周期,根据所述参数服务器的公钥加密所述参数服务器生成的初始迁移模型获得的,并发送至各终端的;所述第一数据为所述第一终端的训练数据;i,K为正整数;i大于1;
[0009] 所述第一终端根据所述参数服务器在第i个训练周期下发的加密迁移模型更新所述第一终端的第一本地神经网络模型中的加密共享模型,并根据所述第一数据训练更新所述第一本地神经网络模型,从而得到所述第一本地神经网络模型在第i个训练周期的加密共享模型;
[0010] 所述第一终端将所述加密共享模型上传到所述参数服务器。
[0011] 本发明实施例中,通过参数服务器在第一训练周期下发初始加密迁移模型,以使各终端通过各自的数据训练本地神经网络模型中的加密共享模型,并通过参数服务器,将各训练周期的各终端训练的加密共享模型生成加密迁移模型,以进行下一训练周期的训练,最终训练出的各自的加密共享模型满足本地神经网络模型的特征。并且,由于加密共享模型针对各参与方是密文,实现各参与方,在无法获知共享模型的具体参数的情况下,保证了各参与方数据的隐私性和安全性的同时,有效提高了模型的训练效率,通过加密共享模型更好的实现本地神经网络模型的预测。
[0012] 一种可能的实现方式,所述第一终端根据所述加密迁移模型,更新所述第一终端的第一本地神经网络模型的加密共享模型,包括:
[0013] 所述第一终端根据所述加密迁移模型,及所述加密迁移模型在所述第一本地神经网络模型中的权重,更新所述第一终端的第一本地神经网络模型的加密共享模型。
[0014] 上述技术方案中,第一终端可以根据第一本地神经网络模型的特点,设置加密迁移模型在第一本地神经网络模型的权重,以使加密迁移模型中的参数可以更好的融合至第一本地神经网络模型中,在保证第一联邦学习的自身特点的同时,有效的学习到其他参与方中的本地神经网络模型中的参数,以提高第一本地神经网络模型的预测的准确率和命中率。
[0015] 一种可能的实现方式,所述加密共享模型包括N层特征提取层;N为正整数;所述第一终端根据所述加密迁移模型,及所述加密迁移模型在所述第一本地神经网络模型中的权重,更新所述第一终端的第一本地神经网络模型的加密共享模型,包括:
[0016] 针对所述加密模块中的N层特征提取层的第l层,执行:
[0017] 所述第一终端根据所述加密迁移模型在第l层的参数,及所述加密迁移模型在第l层的第一权重,更新所述加密共享模型在第l层的参数;所述第l层的第一权重为所述第一终端根据所述第一本地神经网络模型的预测类型确定的;l小于或等于N;l为正整数。
[0018] 上述技术方案中,第一终端可以根据第一本地神经网络模型的特点,分别设置加密迁移模型中每一层在第一本地神经网络模型中的加密共享模型中的每一层的权重,以使加密迁移模型中的参数可以更好的融合至第一本地神经网络模型中,在保证第一联邦学习的自身特点的同时,有效的学习到其他参与方中的本地神经网络模型中的参数,以提高第一本地神经网络模型的预测的准确率和命中率。
[0019] 一种可能的实现方式,所述第一本地神经网络模型还包括第一私有模型;所述第一私有模型为根据所述第一本地神经网络模型的预测类型确定的。
[0020] 一种可能的实现方式,所述加密共享模型的特征提取层靠近所述第一本地神经网络模型的输入层;所述第一私有模型的特征提取层靠近所述第一本地神经网络模型的输出层。
[0021] 上述技术方案中,第一终端可以根据第一本地神经网络模型的预测类型,在第一本地神经网络模型中,单独训练第一私有模型,第一私有模型可以通过第一数据单独训练;通过增加第一私有模型,提高了第一本地神经网络模型的特异性,避免了本地神经网络模型将各参与方对应的模型训练后参数的相似度接近,无法实现各参与方针对不同的业务需要设置的第一本地神经网络模型的预测类型的问题。通过增加第一私有模型,保留了第一联邦学习的自身特点,提高了第一本地神经网络模型的预测的准确率和命中率。
[0022] 本发明实施例提供一种联邦迁移学习模型的训练方法,所述方法包括:
[0023] 参数服务器获取K个终端在第i-1个训练周期上传的K个加密共享模型;第1个训练周期训练的所述K个加密共享模型为所述K个终端根据初始加密迁移模型及各终端各自的训练数据训练的;所述初始加密迁移模型为所述参数服务器在第1个训练周期,根据所述参数服务器的公钥加密所述参数服务器生成的初始迁移模型获得的,并发送至各终端的;
[0024] 所述参数服务器根据所述K个终端在第i-1个训练周期上传的加密共享模型生成第i个训练周期的加密迁移模型;
[0025] 所述参数服务器将所述第i个训练周期的加密迁移模型下发至各终端,以使各终端根据所述加密迁移模型,更新各终端的本地神经网络模型中的加密共享模型,并根据各终端各自的训练数据训练更新后的所述本地神经网络模型,从而得到在第i个训练周期训练的所述本地神经网络模型中的加密共享模型。本发明实施例中,通过参数服务器下发初始加密迁移模型,以使训练模型通过各自的数据训练加密共享模型,并通过参数服务器,将各训练周期的各终端训练的加密共享模型生成加密迁移模型,以进行下一训练周期的训练,最终训练出的各自的加密共享模型满足本地神经网络模型的特征。并且,由于加密共享模型针对各参与方是密文,实现各参与方,在无法获知共享模型的具体参数的情况下,保证了各参与方数据的隐私性和安全性的同时,通过加密共享模型更好的实现本地神经网络模型的预测。
[0026] 一种可能的实现方式,所述方法还包括:
[0027] 所述参数服务器获取所述K个终端在第i-1个训练周期上传的加密损失值;
[0028] 所述参数服务器根据所述K个终端在第i-1个训练周期上传的加密共享模型生成第i个训练周期的加密迁移模型之前,还包括:
[0029] 所述参数服务器根据所述K个终端在第i-1个训练周期上传的K个加密损失值确定是否结束训练。
[0030] 上述技术方案中,通过参数服务器根据各终端上传的加密损失值,判断各终端的加密共享模型是否训练完成,以确定是否需要下发下一训练周期的加密迁移参数,有效保证了训练的安全性和一致性,并且无需各参与方确定加密共享模型的训练是否完成,节省了终端的开销,提高了训练效率。
[0031] 一种可能的实现方式,所述参数服务器根据所述K个终端在第i-1个训练周期上传的加密损失值确定是否结束训练,包括:
[0032] 所述参数服务器通过所述参数服务器的私钥对所述K个加密损失值进行解密,得到K个损失值;
[0033] 所述参数服务器对所述K个损失值通过加权平均,得到所述第i-1个训练周期的总损失值;
[0034] 所述参数服务器根据所述总损失值确定训练是否结束。
[0035] 上述技术方案中,通过参数服务器根据加密损失值的加权平均确定总损失值,判断各终端的加密共享模型是否训练完成,以确定是否需要下发下一训练周期的加密迁移参数,有效保证了训练的安全性和一致性,并且无需各参与方确定加密共享模型的训练是否完成,节省了终端的开销,提高了训练效率。
[0036] 一种可能的实现方式,所述参数服务器根据所述K个终端在第i-1个训练周期上传的加密共享模型生成第i个训练周期的加密迁移模型,包括:
[0037] 所述参数服务器将所述K个终端上传的K个加密共享模型通过加权平均,确定第i个训练周期的加密迁移模型。
[0038] 上述技术方案中,通过参数服务器将各终端上传的加密共享模型通过加权平均的方式,融合各终端对应的加密共享模型,生成加密迁移模型,以实现第i个训练周期下发至各终端进行训练的加密迁移模型。通过参数服务器进行融合,使得各参与方无法获得各参与方的共享模型中的参数,有效的保证了各参与方的数据安全性和隐私性。
[0039] 本发明实施例提供一种联邦迁移学习模型的预测方法,应用于上述实施例中任一方法得到的本地神经网络模型,包括:
[0040] 第一终端根据第一本地神经网络模型,确定第一预测数据的第一加密预测值;
[0041] 所述第一终端对所述第一加密预测值加扰,生成第二加密预测值;
[0042] 所述第一终端将所述第二加密预测值发送至参数服务器;
[0043] 所述第一终端接收所述参数服务器返回的第二预测值;所述第二预测值为所述参数服务器根据所述参数服务器的私钥解密后确定的;
[0044] 所述第一终端将所述第二预测值解扰,确定第一预测值。
[0045] 上述实施例中,第一终端可以通过参数服务器解密第一本地神经网络模型输出的加密预测结果。为提高数据的安全性,第一终端可以将第一本地神经网络模型输出的加密预测结果,进行加扰;使得参数服务器解密加扰的预测结果,第一终端根据解密后的加扰的预测结果解扰,进而确定第一本地神经网络模型的预测结果。通过上述方案,有效保障了第一终端的第一预测数据及第一预测值的私密性及安全性。
[0046] 本发明实施例提供一种本地神经网络模型的生成装置,包括:
[0047] 收发单元,用于获取参数服务器在第i个训练周期下发的加密迁移模型;所述加密迁移模型为所述参数服务器根据K个参与方的K个终端在第i-1个训练周期上传的K个加密共享模型生成的;所述第一终端为所述K个终端中的任一终端;第1个训练周期训练的所述加密共享模型为第一终端根据参数服务器下发的初始加密迁移模型及第一数据训练的;所述初始加密迁移模型为所述参数服务器在第1个训练周期,根据所述参数服务器的公钥加密所述参数服务器生成的初始迁移模型获得的,并发送至各终端的;所述第一数据为所述第一终端的训练数据;i,K为正整数;i大于1;
[0048] 处理单元,用于根据所述参数服务器在第i个训练周期下发的加密迁移模型更新所述第一终端的第一本地神经网络模型中的加密共享模型,并根据所述第一数据训练更新所述第一本地神经网络模型,从而得到在第i个训练周期训练的所述第一本地神经网络模型中的加密共享模型;
[0049] 所述收发单元,还用于将所述加密共享模型上传到所述参数服务器。
[0050] 一种可能的实现方式,所述处理单元,具体用于:根据所述加密迁移模型,及所述加密迁移模型在所述第一本地神经网络模型中的权重,更新所述第一终端的第一本地神经网络模型的加密共享模型。
[0051] 一种可能的实现方式,所述加密共享模型包括N层特征提取层;N为正整数;所述处理单元,具体用于:
[0052] 针对所述加密模块中的N层特征提取层的第l层,执行:
[0053] 根据所述加密迁移模型在第l层的参数,及所述加密迁移模型在第l层的第一权重,更新所述加密共享模型在第l层的参数;所述第l层的第一权重为所述第一终端根据所述第一本地神经网络模型的预测类型确定的;i小于或等于N;i为正整数。
[0054] 一种可能的实现方式,所述第一本地神经网络模型还包括第一私有模型;所述第一私有模型为根据所述第一本地神经网络模型的预测类型确定的。
[0055] 一种可能的实现方式,所述加密共享模型的特征提取层靠近所述第一本地神经网络模型的输入层;所述第一私有模型的特征提取层靠近所述第一本地神经网络模型的输出层。
[0056] 本发明实施例提供一种联邦迁移学习模型的训练装置,所述装置包括:
[0057] 收发单元,用于获取K个终端在第i-1个训练周期上传的K个加密共享模型;第1个训练周期训练的所述K个加密共享模型为所述K个终端根据初始加密迁移模型及各终端各自的训练数据训练的;所述初始加密迁移模型为所述参数服务器在第1个训练周期,根据所述参数服务器的公钥加密所述参数服务器生成的初始迁移模型获得的,并发送至各终端的;
[0058] 处理单元,用于根据所述K个终端在第i-1个训练周期上传的加密共享模型生成第i个训练周期的加密迁移模型;
[0059] 所述收发单元,还用于:将所述第i个训练周期的加密迁移模型下发至各终端,以使各终端根据所述加密迁移模型,更新各终端的本地神经网络模型中的加密共享模型,并根据各终端各自的训练数据训练更新后的所述本地神经网络模型,从而得到在第i个训练周期训练的所述本地神经网络模型中的加密共享模型。
[0060] 一种可能的实现方式,所述收发单元,还用于获取所述K个终端在第i-1个训练周期上传的加密损失值;
[0061] 所述处理单元,还用于:根据所述K个终端在第i-1个训练周期上传的K个加密损失值确定是否结束训练。
[0062] 一种可能的实现方式,所述处理单元,具体用于:通过所述参数服务器的私钥对所述K个加密损失值进行解密,得到K个损失值;对所述K个损失值通过加权平均,得到所述第i-1个训练周期的总损失值;根据所述总损失值确定训练是否结束。
[0063] 一种可能的实现方式,所述处理单元,具体用于:
[0064] 本发明实施例提供一种联邦迁移学习模型的预测装置,包括:
[0065] 处理单元,用于根据第一本地神经网络模型,确定第一预测数据的第一加密预测值;对所述第一加密预测值加扰,生成第二加密预测值;
[0066] 收发单元,用于将所述第二加密预测值发送至参数服务器;接收所述参数服务器返回的第二预测值;所述第二预测值为所述参数服务器根据所述参数服务器的私钥解密后确定的;
[0067] 所述处理单元,还用于:将所述第二预测值解扰,确定第一预测值。
[0068] 本发明实施例提供了一种服务器,包括:
[0069] 至少一个存储器,用于存储程序指令;
[0070] 至少一个处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行上述任一种本地神经网络模型的训练、预测。
[0071] 本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种本地神经网络模型的训练、预测的步骤。

附图说明

[0072] 图1为本发明实施例中一种联邦迁移学习模型的训练、预测的应用架构示意图;
[0073] 图2为本发明实施例中一种联邦迁移学习模型的训练方法的流程图;
[0074] 图3为本发明实施例中一种联邦迁移学习模型的训练方法的流程图;
[0075] 图4为本发明实施例中一种联邦迁移学习模型的训练装置结构示意图;
[0076] 图5为本发明实施例中一种联邦迁移学习模型的训练装置结构示意图;
[0077] 图6为本发明实施例中一种联邦迁移学习模型的训练装置结构示意图;
[0078] 图7为本发明实施例中一种联邦迁移学习模型的训练装置结构示意图;
[0079] 图8为本发明实施例中一种服务器的结构示意图。

具体实施方式

[0080] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0081] 为便于对本发明实施例的理解,下面先对几个概念进行简单介绍:
[0082] 目前,随着深度学习在很多实际应用中取得的效果,例如,深度神经网络模型为现代人工智能的一种方式。支持深度神经网络模型,需要大量高质量的标注数据。但是,对数据的筛选和标注需要大量的人力和物力成本。为解决高质量标注数据难以获得的问题,可以通过迁移学习(transfer learning),利用预训练好的模型来降低对海量数据的需求,或者通过迁移学习为未标注的数据打上标注从而降低人工成本。
[0083] 由于迁移学习的方案,主要集中在数据公开或数据较不敏感的领域(比如利用公开数据集ImageNet预训练CNN模型,数据集Wikipedia预训练词嵌入模型),限制了迁移学习技术应用的领域和范围。另外,在对数据安全和用户隐私保护日趋严格,并且针对专业度较高的金融、银行、医疗及其他相关领域中,高质量的数据获得成本高昂并且通常分散于不同的企业而无法数据连通。数据难以获取、且企业之间数据壁垒抑制了包括迁移学习在内的人工智能技术有效的应用于其他机构,例如微小企业。如何在保护数据隐私、满足合法合规要求的前提下继续进行机器学习,是机器学习领域现在关注的一个趋势,目前,已研究提出了“联邦学习”的概念。
[0084] 联邦学习为利用技术算法加密建造的模型,联邦学习中的参与方在不用给出己方数据的情况下,也可进行模型训练得到模型参数,联邦学习通过加密机制下的模型参数交换方式保护用户的数据隐私。因此在数据层面不存在泄露的可能,也不违反更严格的数据保护法案如GDPR(General Data Protection Regulation,《通用数据保护条例》)等,能够在较高程度保持数据完整性的同时,保障数据隐私。
[0085] 目前,在联邦双方A、B样本的特征空间相同的情况下,现有的基于联邦建模的方法可以基于A、B样本均有标注的情况下交换双方参数联合建模,而对于A方有标注,B方标注缺失的情况,例如,横向联邦学习,横向联邦学习是指在两个数据集(即可以是本发明实施例中所述的第一样本和第二样本)的用户特征重叠较多,而用户重叠较少的情况下,把数据集按照横向(即用户维度)切分,并取出双方用户特征相同而用户不完全相同的那部分数据进行训练。这种方法叫做横向联邦学习。比如有两家不同地区的银行,它们的用户群体分别来自各自所在的地区,相互的交集很小。但是,它们的业务很相似,因此,记录的用户特征是相同的。
[0086] 在两个数据集的用户重叠较多而用户特征重叠较少的情况下,可以把数据集按照纵向(即特征维度)切分,并取出双方用户相同而用户特征不完全相同的那部分数据进行训练。这种方法叫做纵向联邦学习。比如有两个不同的机构,一家是某地的银行,另一家是同一个地方的电商。它们的用户群体很有可能包含该地的大部分居民,因此用户的交集较大。但是,由于银行记录的都是用户的收支行为与信用评级,而电商则保有用户的浏览与购买历史,因此它们的用户特征交集较小。纵向联邦学习就是将这些不同特征在加密的状态下加以聚合,以增强模型能力。
[0087] 在两个数据集的用户与用户特征重叠都较少的情况下,可以利用迁移学习来克服数据或标签不足的情况。这种方法叫做联邦迁移学习。比如有两个不同机构,一家是位于中国的银行,另一家是位于美国的电商。由于受地域限制,这两家机构的用户群体交集很小。同时,由于机构类型的不同,二者的数据特征也只有小部分重合。在这种情况下,要想进行有效的联邦学习,就必须引入迁移学习,来解决单边数据规模小和标签样本少的问题,从而提升模型的效果。
[0088] 本发明实施例中涉及的联邦学习可以根据实际的应用场景确定,在此不做限定。
[0089] 值得说明的是,本发明实施例中的应用架构图是为了更加清楚地说明本发明实施例中的技术方案,并不构成对本发明实施例提供的技术方案的限制,并且,本发明实施例中可以应用多语言语音识别和文字翻译,个性化推荐,物体识别等应用场景,以下以应用于信息推荐场景为例,但是对于其它的应用架构和业务场景应用,本发明实施例提供的技术方案对于类似的问题同样适用。
[0090] 参阅图1所示,为本发明实施例中联邦迁移学习模型的训练、预测的应用架构示意图,至少包括第一参与方的第一终端,第二参与方的第二终端,及第三方服务器。
[0091] 其中,终端可以是用户的终端,也可以是单独的服务器,在此不做限定。终端可以为智能手机、平板电脑、便携式个人计算机、智能电视等任何智能设备,可以包括多个终端,终端上可以安装各种应用程序(Application,APP),用户可以通过终端上安装的APP来使用所需的服务,例如,用户可以基于信息APP来浏览信息。
[0092] 终端在本地神经网络模型训练完毕后,可以根据业务需要,根据终端获取的数据,进行有针对性的预测,进而为终端提供各种网络服务,对于不同的终端或终端上的应用程序,终端可以是提供相应网络服务的后台服务器。例如,在信息推荐系统中,终端可以为某信息APP的后台服务器。
[0093] 终端与参数服务器之间通过互联网相连,实现相互之间的通信。可选地,上述的互联网使用标准通信技术和/或协议。互联网通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(Extensible Markup Language,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet Protocol Security,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
[0094] 其中,参数服务器可以是一台服务器、若干台服务器组成的服务器集群或云计算中心。
[0095] 本发明实施例中在终端与参数服务器间,可以采用分布式计算平台来收集和计算各用户的历史行为数据,进而形成终端各种的训练数据,从而可以建立本地神经网络模型。
[0096] 值得说明的是,本发明实施例中的应用架构图是为了更加清楚地说明本发明实施例中的技术方案,并不构成对本发明实施例提供的技术方案的限制,并且,本发明实施例中主要以应用于信息推荐场景为例,但是对于其它的应用架构和业务场景应用,本发明实施例提供的技术方案对于类似的问题同样适用。
[0097] 本发明各个实施例中,以本地神经网络模型的训练、预测用于图1所示的应用架构图为例进行示意性说明。
[0098] 基于上述实施例,本发明实施例中的本地神经网络模型的训练过程,可以包括:
[0099] 对采样后的行为矩阵,通过本地神经网络模型,获得各用户的用户参数。
[0100] 参与联邦学习的各参与方通过联邦学习训练各自的本地神经网络模型。
[0101] 如图1所示,以包含2个参与方(第一终端A标识第一参与方,第二终端B表示第二参与方)的场景为例介绍联邦学习的系统构架。该构架可扩展至包含多个参与方的场景。
[0102] 本发明实施例提供一种联邦学习的系统构架,假设参与方A和B联合训练一个机器学习模型,举例来说,参与方A拥有第一数据,参与方B拥有第二数据。例如,第一数据A包含参与方A的用户对参与方A方的商品的历史行为数据,例如评分、点击、喜欢等。同理,第二数据包含参与方B获得的用户的历史行为数据。A方(对应第一终端)和B方(对应第二终端)都可以在其各自的行为数据上进行各种运算。A和B两方希望在不暴露第一数据和第二数据及其中用户隐私的前提下,更准确地训练模型,以实现更准确的预测。
[0103] 在具体实施过程中,可以通过第三方的第三方服务器建立本地神经网络模型。具体的本地神经网络模型的训练方法,可以包括:
[0104] 步骤一、第一终端根据第一终端的第一样本训练得到第一本地神经网络模型的初始参数,第一终端采用联邦学习中的加密算法对初始参数进行加密得到第一加密参数,并将第一加密参数发送至参数服务器。
[0105] 步骤二、第二终端接收到所述第一终端发送的第一加密参数后,第二终端将第一加密参数作为其第二本地神经网络模型的初始参数,并根据第二终端中的第二数据进行模型训练,计算得到第一梯度参数,及第一加密损失值。
[0106] 步骤三、第三方对应的服务器解密所述第一加密损失值,并根据解密后的第一损失值检测所述第一本地神经网络模型是否处于收敛状态;若未收敛,则根据第二终端返回的第一梯度参数发送至第一终端;
[0107] 步骤四、第一终端可以根据所述第一梯度参数更新所述第一本地神经网络模型,直至确定模型处于收敛状态,停止更新所述第一本地神经网络模型。
[0108] 进一步地,所述根据解密后的第一损失值检测模型是否处于收敛状态的步骤包括:
[0109] 获取所述第二终端前一次发送的第一损失值记为历史第一损失值;
[0110] 计算所述第一损失值和所述历史第一损失值之间的差值,并判断所述差值是否小于或者等于预设阈值;
[0111] 当确定所述差值小于或者等于所述预设阈值时,确定所述待训练模型处于收敛状态;
[0112] 当确定所述差值大于所述预设阈值时,确定所述待训练模型未处于收敛状态。
[0113] 当第三方服务器获取到第一损失值和历史第一损失值后,第三方服务器计算第一损失值和历史第一损失值之间的差值,并判断该差值是否小于或者等于预设阈值。当确定该差值小于或者等于预设阈值时,第三方服务器确定待训练模型处于收敛状态;当确定该差值大于预设阈值时,第三方服务器确定待训练模型未处于收敛状态。其中,预设阈值的具体数值可根据具体需要而设置,在本实施例中对预设阈值对应的数值不做具体限制。
[0114] 当然,第一终端还可以根据第一梯度参数和第二梯度参数对第一本地神经网络模型进行更新。一种可能的实现方式,可以通过将第一梯度参数和第二梯度参数的加权平均,也可以根据第一梯度参数作为更新第一本地神经网络模型的梯度参数;根据第二梯度参数作为更新第二本地神经网络模型的梯度参数。
[0115] 其中,第二梯度参数为对应的第二终端根据第二样本训练得到第二本地神经网络模型的初始参数,第二终端采用联邦学习中的加密算法对初始参数进行加密得到第二加密参数,并将第二加密参数发送至第一终端;第一终端将第二加密参数作为其第一本地神经网络模型的初始参数,并根据第一终端中的第一数据进行模型训练,计算得到第二梯度参数,及第二加密损失值。
[0116] 对应的第二终端训练第二本地神经网络模型的方式可以参考第一终端,在此不再赘述。
[0117] 迭代上述步骤直至损失函数收敛,这样就完成了整个训练过程。在样本对齐及模型训练过程中,第一终端和第二终端各自的数据均保留在本地,且训练中的数据交互也不会导致数据隐私泄露。因此,双方在联邦学习的帮助下得以实现模型的训练。
[0118] 在该联邦学习的机制下,多个参与方在不向外传输数据的条件下能够协作训练一个本地神经网络模型。因此,可以利用多个参与方的数据训练同一个模型,同时数据的安全得到一定程度的保护。然而该方法导致联邦学习所有参与方共享一个本地神经网络模型,从而导致各参与方失去了预测的独特性,并且该方法被证明有泄漏数据的风险。
[0119] 基于上述问题,为提高用户数据的安全性和第一本地神经网络模型的特异性,本发明实施例提供一种联邦迁移学习模型的训练方法,如图2所示,包括:
[0120] 步骤201:参数服务器获取K个参与方的K个终端在第i-1个训练周期上传的加密共享模型;其中,i大于1;
[0121] 其中,所述加密共享模型为根据所述参数服务器下发的初始加密迁移模型及各终端各自的训练数据训练的;所述初始加密迁移模型为所述参数服务器根据所述参数服务器生成的公钥加密初始迁移模型后发送至各终端的;加密方式可以通过同态加密的方式,以保证加密不影响各终端的训练。
[0122] 在第一训练周期中,可以包括:
[0123] 步骤1:参数服务器生成一对同态加密公钥和私钥。
[0124] 步骤2:参数服务器将迁移模型初始化,获得初始迁移模型,并通过公钥对其进行加密得到初始加密迁移模型 然后将初始加密迁移模型分发给各个参与方的各终端。其中,符号[[.]]表示同态加密。
[0125] 例如,所述初始加密迁移模型为所述参数服务器根据所述参数服务器生成的公钥加密初始迁移模型后发送至所述第一终端的;k,M为正整数;其中,所述第一终端为所述K个终端中的任一终端;
[0126] 步骤3:K个终端获取初始加密迁移模型;
[0127] 步骤4:K个终端将各自的本地神经网络模型的初始化模型与初始加密迁移模型进行融合,形成第1个训练周期的初始化本地神经网络模型;其中,初始化本地神经网络模型包括初始化的加密共享模型。具体的融合方式可以参见下面在第i个训练周期中的融合方式。
[0128] 步骤5:K个终端根据各自的训练数据,对第1个训练周期的初始化模型进行训练,在第一个训练周期结束,K个终端可以分别确定第一个训练周期训练的K个加密共享模型;
[0129] 例如,第1个训练周期训练的第一终端的加密共享模型为第一终端根据参数服务器下发的初始加密迁移模型及第一数据训练的。
[0130] 步骤202:参数服务器根据K个终端在第i-1个训练周期上传的加密共享模型生成第i个训练周期的加密迁移模型;
[0131] 步骤203:参数服务器将所述第i个训练周期的加密迁移模型下发至各终端,以使各终端根据所述加密迁移模型,更新各终端的本地神经网络模型中的加密共享模型,并根据各终端各自的训练数据训练更新后的所述本地神经网络模型,从而得到在第i个训练周期训练的所述本地神经网络模型中的加密共享模型。
[0132] 步骤204:第一终端获取参数服务器在第i个训练周期下发的加密迁移模型;
[0133] 步骤205:第一终端根据所述加密迁移模型更新所述第一终端的第一本地神经网络模型中的加密共享模型,并根据所述第一数据训练更新所述第一本地神经网络模型,从而得到所述第一本地神经网络模型在第i个训练周期的加密共享模型。
[0134] 本发明实施例中,通过参数服务器下发初始加密迁移模型,以使训练模型通过各自的数据训练加密共享模型,并通过参数服务器,将各训练周期的各终端训练的加密共享模型生成加密迁移模型,以进行下一训练周期的训练,最终训练出的各自的加密共享模型满足本地神经网络模型的特征。并且,由于加密迁移模型针对各参与方是密文,实现各参与方在无法获知迁移模型的具体参数的情况下,保证了各参与方数据的隐私性和安全性的同时,通过加密迁移模型更好的实现本地神经网络模型的预测。
[0135] 为针对第一本地神经网络模型的预测需求,提高预测的准确性,一种可能的实现方式,所述第一本地神经网络模型还包括第一私有模型;所述第一私有模型为根据所述第一本地神经网络模型的预测类型确定的。
[0136] 进一步的,为提高模型特征的提取效果,一种可能的实现方式,所述加密共享模型的特征提取层靠近所述第一本地神经网络模型的输入层;所述第一私有模型的特征提取层靠近所述第一本地神经网络模型的输出层。
[0137] 通过联邦学习利用所有参与方的数据对所有参与方的加密共享模型进行训练形成加密迁移模型。加密共享模型的特征提取层靠近所述第一本地神经网络模型的输入层,以深度神经模型为例,加密共享模型的特征提取层可以为底层隐藏层。因此,可以通过训练各个参与方的加密共享模型而形成的加密迁移模型可以学习到更抽象和更具不变性的特征,也即更通用的特征,提高了本地神经网络模型的训练速度和模型泛化能力。
[0138] 具体的,以本地神经网络模型为深度神经网络模型为例。第k个参与方的深度神经网络模型可以表示为:
[0139]
[0140] 举例来说,可以如图3所示,加密共享模型 为神经网络模型前N层,第一私有模型 为模型后(Mk-N)层。
[0141] k表示第k个参与方;Mk表示第k个参与方神经网络模型的层数;l表示神经网络模型的第l层。所有参与方的加密共享模型具有相同的结构。各参与方的第一私有模型可以由各参与方根据自己的特定任务自行设定,以提高各参与方的本地神经网络模型的预测的准确性。
[0142] 上述技术方案中,第一终端可以根据第一本地神经网络模型的预测类型,在第一本地神经网络模型中,单独训练第一私有模型,第一私有模型可以通过第一数据单独训练;通过增加第一私有模型,由各参与方所特有的数据训练而成,提高了第一本地神经网络模型的特异性,避免了本地神经网络模型将各参与方对应的模型训练后参数的相似度接近,无法实现各参与方针对不同的业务需要设置的第一本地神经网络模型的预测类型的问题。
各参与方既能利用加密迁移模型提高本地神经网络模型的训练速度和模型泛化能力,又能通过第一私有模型学习到各自独特的特征,提高了第一本地神经网络模型的预测的准确率和命中率,提高了本地神经网络模型的训练速度和模型泛化能力。
[0143] 图4给出的参与方1,参与方2,至参与方k分别的本地的加密共享模型1,加密共享模型2,加密共享模型k。一种可能的实现方式,所述第一终端根据所述加密迁移模型,更新所述第一终端的第一本地神经网络模型的加密共享模型,包括:
[0144] 所述第一终端根据所述加密迁移模型,及所述加密迁移模型在所述第一本地神经网络模型中的权重,更新所述第一终端的第一本地神经网络模型的加密共享模型。
[0145] 在具体实施过程中,可以对每一个参与方k=1,2,…,K,加密迁移模型与加密共享模型的参数进行融合。一种可能的方式,可以将对应的卷积核进行直接合并的方式,实现加密迁移模型与加密共享模型的参数的融合。
[0146] 上述技术方案中,第一终端可以根据第一本地神经网络模型的特点,设置加密迁移模型在第一本地神经网络模型的权重,以使加密迁移模型中的参数可以更好的融合至第一本地神经网络模型中,在保证各终端的模型的自身特点的同时,有效的学习到其他参与方中的本地神经网络模型中的参数,以提高第一本地神经网络模型的预测的准确率和命中率。
[0147] 为提高融合的准确性,可以将参与方k本地加密深度神经网络模型的加密共享模型与加密迁移模型的分层融合。参与方k本地加密深度神经网络模型的第一私有模型保持不变。
[0148] 进一步的,为提高各参与方的本地神经网络模型的特异性及数据的私密性,一种可能的实现方式,所述加密共享模型包括N层特征提取层;N为正整数;所述第一终端根据所述加密迁移模型,及所述加密迁移模型在所述第一本地神经网络模型中的权重,更新所述第一终端的第一本地神经网络模型的加密共享模型,包括:
[0149] 针对所述加密模块中的N层特征提取层的第l层,执行:
[0150] 所述第一终端根据所述加密迁移模型在第l层的参数,及所述加密迁移模型在第l层的第一权重,更新所述加密共享模型在第l层的参数;所述第l层的第一权重为所述第一终端根据所述第一本地神经网络模型的预测类型确定的;l小于或等于N;l为正整数。
[0151] 具体的,可以包括:参与方k将其本地深度神经网络模型中的加密共享模型与接收来自参数服务器的加密迁移模型 进行分层融合:
[0152]
[0153] 其中,l=1,2,…,N;第一权重可以包括α(l)与β(l);α(l)与β(l)分别为参与方共享子模型与迁移模型的融合系数函数。α(l)与β(l)是基于层数l的函数,可以根据具体的参与方k对应的第一本地神经网络模型的预测任务的需要,定义其具体形式。当然,第一权重也可以为单个函数的形式,在此不做限定。
[0154] 上述技术方案中,第一终端可以根据第一本地神经网络模型的特点,分别设置加密迁移模型中每一层在第一本地神经网络模型中的加密共享模型中的每一层的权重,以使加密迁移模型中的参数可以更好的融合至第一本地神经网络模型中,在保证第一联邦学习的自身特点的同时,有效的学习到其他参与方中的本地神经网络模型中的参数,以提高第一本地神经网络模型的预测的准确率和命中率。
[0155] 具体的更新过程可以以第一本地神经网络模型为深度神经网络模型为例,参与方k拥有训练样本Sk。第一终端为参与方k对应的终端,则参与方k根据所述加密迁移模型更新所述第一终端的第一本地神经网络模型中的加密共享模型可以包括:
[0156] 步骤一、参与方k运用梯度下降算法通过本地数据Sk和本地深度神经网络模型计算出损失[[Lk,t]]和模型梯度 然后根据梯度更新本地深度神经网络模型得到
[0157] 步骤二、参与方k将损失[[Lk,t]]和更新后的加密共享模型 发往参数服务器。
[0158] 一种可能的实现方式,所述参数服务器根据所述K个终端在第i-1个训练周期上传的加密共享模型生成第i个训练周期的加密迁移模型,包括:
[0159] 参数服务器将所述K个终端上传的K个加密共享模型通过加权平均,确定第i个训练周期的加密迁移模型。
[0160] 上述技术方案中,通过参数服务器将各终端上传的加密共享模型通过加权平均的方式,融合各终端对应的加密共享模型,生成加密迁移模型,以实现第i个训练周期下发至各终端进行训练的加密迁移模型。通过参数服务器进行融合,使得各参与方无法获得各参与方的共享模型中的参数,有效的保证了各参与方的数据安全性和隐私性。
[0161] 一种可能的实现方式,所述方法还包括:
[0162] 所述参数服务器获取所述K个终端在第i-1个训练周期上传的加密损失值;
[0163] 所述参数服务器根据所述K个终端在第i-1个训练周期上传的加密共享模型生成第i个训练周期的加密迁移模型之前,还包括:
[0164] 所述参数服务器根据所述K个终端在第i-1个训练周期上传的K个加密损失值确定是否结束训练。
[0165] 一种可能的实现方式,所述参数服务器根据所述K个终端在第i-1个训练周期上传的加密损失值确定是否结束训练,包括:
[0166] 所述参数服务器通过所述参数服务器的私钥对所述K个加密损失值进行解密,得到K个损失值;
[0167] 所述参数服务器对所述K个损失值通过加权平均,得到所述第i-1个训练周期的总损失值;
[0168] 所述参数服务器根据所述总损失值确定训练是否结束。
[0169] 具体的,参数服务器在接收到所有参与方的加密损失{[[Lk,t]]}k=1…K和加密共享模型 后,用参数服务器的私钥对所有参与方的加密损失进行解密得到明文损失{Lk,t}k=1…K。然后通过加权平均聚合所有参与方的明文损失,得到其中πk表示参与方k的权重。
[0170] 参数服务器根据损失值 判断训练是否收敛,包括:
[0171] 若确定收敛,则结束训练。参数服务器最终得到加密的迁移模型各参与方最终得到加密的本地深度神经网络模型
[0172] 若确定没有收敛,参数服务器通过加权平均聚合所有参与方的加密共享模型得到加密迁移模型 其中πk表示参与方k的权重。然后将加密迁移模型 分发给所有参与方,并继续执行步骤201。
[0173] 上述技术方案中,通过参数服务器根据迁移模型的损失函数,判断各终端的加密共享模型是否训练完成,以确定是否需要下发下一训练周期的加密迁移参数,有效保证了训练的安全性和一致性,并且无需各参与方确定加密共享模型的训练是否完成,节省了终端的开销,提高了训练效率。
[0174] 联邦迁移学习训练结束后,各参与方得到加密的本地神经网络模型。参与方可以利用训练好的本地神经网络模型对新样本的标注进行预测。如图6所示,本发明实施例提供一种联邦迁移学习模型的预测方法,应用于上述实施例中任一方法得到的第一本地神经网络模型,包括:
[0175] 第一终端根据第一本地神经网络模型,确定第一预测数据的第一加密预测值;
[0176] 所述第一终端对所述第一加密预测值加扰,生成第二加密预测值;
[0177] 所述第一终端将所述第二加密预测值发送至参数服务器;
[0178] 所述第一终端接收所述参数服务器返回的第二预测值;所述第二预测值为所述参数服务器根据所述参数服务器的私钥解密后确定的;
[0179] 所述第一终端将所述第二预测值解扰,确定第一预测值。
[0180] 上述实施例中,第一终端可以通过参数服务器解密第一本地神经网络模型输出的加密预测结果。为提高数据的安全性,第一终端可以将第一本地神经网络模型输出的加密预测结果,进行加扰;使得参数服务器解密加扰的预测结果,第一终端根据解密后的加扰的预测结果解扰,进而确定第一本地神经网络模型的预测结果。通过上述方案,有效保障了第一终端的第一预测数据及第一预测值的私密性及安全性。
[0181] 以图5为例,具体包括:参与方k对新样本集 进行预测,其中Q为新样本个数。具体步骤如下:
[0182] 步骤1:参与方k通过加密的本地深度神经网络模型对新样本 进行预测得到标注 然后在预测结果上加上随机掩码Mk得到并将其发送给参数服务器。
[0183] 步骤2:参数服务器对 进行解密得到 并将其发送回参与方k。
[0184] 步骤3:参与方k从 上减去Mk的到最终预测标签
[0185] 基于上述实施例,参阅图6所示,本发明实施例中,本地神经网络模型的训练装置具体包括:
[0186] 收发单元601,用于获取参数服务器在第i个训练周期下发的加密迁移模型;所述加密迁移模型为所述参数服务器根据K个参与方的K个终端在第i-1个训练周期上传的K个加密共享模型生成的;所述第一终端为所述K个终端中的任一终端;第1个训练周期训练的所述加密共享模型为第一终端根据参数服务器下发的初始加密迁移模型及第一数据训练的;所述初始加密迁移模型为所述参数服务器在第1个训练周期,根据所述参数服务器的公钥加密所述参数服务器生成的初始迁移模型获得的,并发送至各终端的;所述第一数据为所述第一终端的训练数据;i,K为正整数;i大于1;
[0187] 处理单元602,用于根据所述参数服务器在第i个训练周期下发的加密迁移模型更新所述第一终端的第一本地神经网络模型中的加密共享模型,并根据所述第一数据训练更新所述第一本地神经网络模型,从而得到所述第一本地神经网络模型在第i个训练周期的加密共享模型。
[0188] 收发单元601,用于将所述加密共享模型上传到所述参数服务器。
[0189] 一种可能的实现方式,处理单元602,具体用于:根据所述加密迁移模型,及所述加密迁移模型在所述第一本地神经网络模型中的权重,更新所述第一终端的第一本地神经网络模型的加密共享模型。
[0190] 一种可能的实现方式,所述加密共享模型包括N层特征提取层;N为正整数;处理单元602,具体用于:
[0191] 针对所述加密模块中的N层特征提取层的第l层,执行:
[0192] 根据所述加密迁移模型在第l层的参数,及所述加密迁移模型在第l层的第一权重,更新所述加密共享模型在第l层的参数;所述第l层的第一权重为所述第一终端根据所述第一本地神经网络模型的预测类型确定的;i小于或等于N;i为正整数。
[0193] 一种可能的实现方式,所述第一本地神经网络模型还包括第一私有模型;所述第一私有模型为根据所述第一本地神经网络模型的预测类型确定的。
[0194] 一种可能的实现方式,所述加密共享模型的特征提取层靠近所述第一本地神经网络模型的输入层;所述第一私有模型的特征提取层靠近所述第一本地神经网络模型的输出层。
[0195] 如图7所示,本发明实施例提供一种联邦迁移学习模型的训练装置,所述装置包括:
[0196] 收发单元701,用于获取K个终端在第i-1个训练周期上传的K个加密共享模型;第1个训练周期训练的所述K个加密共享模型为所述K个终端根据初始加密迁移模型及各终端各自的训练数据训练的;所述初始加密迁移模型为所述参数服务器在第1个训练周期,根据所述参数服务器的公钥通加密所述参数服务器生成的初始迁移模型获得的,并发送至各终端的;
[0197] 处理单元702,用于根据所述K个终端在第i-1个训练周期上传的加密共享模型生成第i个训练周期的加密迁移模型;
[0198] 所述收发单元701,还用于将所述第i个训练周期的加密迁移模型下发至各终端,以使各终端根据所述加密迁移模型,更新各终端的本地神经网络模型中的加密共享模型,并根据各终端各自的训练数据训练更新后的所述本地神经网络模型,从而得到在第i个训练周期训练的所述本地神经网络模型中的加密共享模型。
[0199] 一种可能的实现方式,收发单元701,还用于获取所述K个终端在第i-1个训练周期上传的加密损失值;
[0200] 处理单元702,还用于:根据所述K个终端在第i-1个训练周期上传的K个加密损失值确定是否结束训练。
[0201] 一种可能的实现方式,处理单元702,还用于:通过所述参数服务器的私钥对所述K个加密损失值进行解密,得到K个损失值;对所述K个损失值通过加权平均,得到所述第i-1个训练周期的总损失值;根据所述总损失值确定训练是否结束。
[0202] 一种可能的实现方式,处理单元702,具体用于:将所述K个终端上传的K个加密共享模型通过加权平均,确定第i个训练周期的加密迁移模型。
[0203] 本发明实施例提供一种联邦迁移学习模型的预测装置,应用于本发明实施例中的任一方法获得的第一本地神经网络模型,包括:
[0204] 处理单元,用于根据所述第一本地神经网络模型,确定第一预测数据的第一加密预测值;对所述第一加密预测值加扰,生成第二加密预测值;
[0205] 收发单元,用于将所述第二加密预测值发送至参数服务器;接收所述参数服务器返回的第二预测值;所述第二预测值为所述参数服务器根据所述参数服务器的私钥解密后确定的;
[0206] 所述处理单元,还用于:将所述第二预测值解扰,确定第一预测值。
[0207] 基于上述实施例,参阅图8所示,本发明实施例中,一种服务器的结构示意图。本领域技术人员可以理解,图8中示出的结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0208] 作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及本地神经网络模型的训练、预测程序。其中,操作系统是管理和控制模型参数获取系统硬件和软件资源的程序,支持本地神经网络模型的训练、预测程序以及其它软件或程序的运行。
[0209] 用户接口1003主要用于连接终端、参数服务器等,与各个服务器进行数据通信;网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;而处理器1001可以用于调用存储器1005中存储的本地神经网络模型的训练、预测程序,并执行上述实施例中的操作。
[0210] 基于上述实施例,本发明实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的本地神经网络模型的训练、预测。
[0211] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0212] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0213] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0214] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0215] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0216] 显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。