CN110751291B - 实现安全防御的多方联合训练神经网络的方法及装置 - Google Patents

实现安全防御的多方联合训练神经网络的方法及装置 Download PDF

Info

Publication number
CN110751291B
CN110751291B CN201911039139.6A CN201911039139A CN110751291B CN 110751291 B CN110751291 B CN 110751291B CN 201911039139 A CN201911039139 A CN 201911039139A CN 110751291 B CN110751291 B CN 110751291B
Authority
CN
China
Prior art keywords
loss
output
client
server
clients
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911039139.6A
Other languages
English (en)
Other versions
CN110751291A (zh
Inventor
陈超超
王力
周俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN201911039139.6A priority Critical patent/CN110751291B/zh
Publication of CN110751291A publication Critical patent/CN110751291A/zh
Priority to PCT/CN2020/108957 priority patent/WO2021082633A1/zh
Application granted granted Critical
Publication of CN110751291B publication Critical patent/CN110751291B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本说明书实施例提供一种实现安全防御的多方联合训练神经网络的方法,其中多方包括对应于多个数据方的多个客户端,以及中立的服务器。多个客户端之间使用安全多方技术MPC,在保护数据隐私的基础上共同计算一个或多个隐层,然后将计算出的隐层放在中立的服务器上,进行其余复杂的神经网络计算,以得到预测结果,用于跟样本标签比对确定预测损失。此外,多个客户端中还各自部署模拟攻击者的攻击者模型,并各自计算攻击者损失。进一步地,服务器根据基于预测损失和攻击者损失确定的训练损失,调整其上部署的其余复杂神经网络的参数,多个客户端根据训练损失调整各自维护的共同计算隐层所对应的部分参数,以及根据攻击者损失调整攻击者模型的参数。

Description

实现安全防御的多方联合训练神经网络的方法及装置
技术领域
本说明书一个或多个实施例涉及信息安全技术领域,尤其涉及一种实现安全防御的多方联合训练神经网络的方法及装置。
背景技术
目前,多个数据方协同训练机器学习模型已引发研究热潮。其中的难点在于,在训练过程中如何保证各方数据的安全。比如说,支付平台中拥有用户的一些特征和标签,银行中拥有用户的另一些特征,此时支付平台和银行希望使用双方的数据共同建立机器学习模型。但是,因为存在关于数据安全的法规,或双方不愿意将数据公开给对方使用等原因,所以需要通过能够保障自身数据安全的形式,共同建模。
为保障数据安全,在协同建模过程中通常会利用加密技术处理数据。然而因数据处理繁琐,导致建模效率不佳。尤其在模型采用神经网络的情况下,因模型参数往往较多,导致模型训练占用大量的计算资源、耗费大量时间。
因此,迫切需要一种合理的方案,可以在保障各方数据安全的同时,高效训练神经网络模型,从而节约计算资源和计算耗时。
发明内容
本说明书一个或多个实施例描述了一种实现安全防御的多方联合训练神经网络的方法,可以在保障各方数据安全的同时,高效训练神经网络模型,从而节约计算资源和计算耗时。
根据第一方面,提供一种实现安全防御的多方联合训练神经网络的方法,其中,所述神经网络包括N个隐层,所述多方包括服务器和M个客户端;所述M个客户端各自存储目标样本的部分特征,维护所述N个隐层中前K个隐层的部分参数,并各自部署有攻击者模型,所述攻击者模型用于根据对应客户端中针对第K个隐层的输出反推该客户端中存储的样本特征,其中N、K和M为正整数,并且N>K,M>1。该方法应用于所述服务器,该方法包括:
从所述M个客户端获取针对所述第K个隐层的M个输出;从任意的第一客户端获取的第一输出,由所述第一客户端根据其存储的第一特征部分和第一参数部分,以及基于安全多方计算MPC技术从M个客户端中的其他客户端所获取的加密特征和加密参数而确定。对所述M个输出进行综合,得到综合输出;所述综合输出相当于,将所述M个客户端各自存储的部分特征进行综合后输入所述前K个隐层而得到的输出。将所述综合输出输入所述神经网络的后N-K个隐层中,得到针对第N个隐层的输出,用于输入所述神经网络的输出层,得到预测结果。获取预测损失,所述预测损失根据所述预测结果和所述目标样本的样本标签而确定。从所述M个客户端获取M个攻击损失;其中从所述第一客户端获取的第一攻击损失,基于所述第一特征部分和第一反推结果而确定,所述第一反推结果通过将所述第一输出输入第一客户端中部署的第一攻击者模型而得到。基于所述预测损失和所述M个攻击损失,确定训练损失,所述训练损失正相关于所述预测损失,并且负相关于所述M个攻击损失。利用所述训练损失,至少调整所述后N-K个隐层中的参数,所述训练损失还用于所述M个客户端调整各自维护的部分参数。
在一个实施例中,所述输出层部署在所述服务器中;在得到针对第N个隐层的输出之后,以及,在获取预测损失之前,所述方法还包括:将所述针对第N个隐层的输出输入所述输出层中,得到所述预测结果。所述获取预测损失包括:根据所述预测结果和所述样本标签,确定所述预测损失。所述至少调整所述后N-K个隐层中的参数,还包括:调整所述输出层中的参数。
在一个具体的实施例中,所述样本标签存储在所述M个客户端包括的第二客户端中,在所述获取预测损失之前,所述方法还包括:从所述第二客户端中获取所述样本标签。
在一个实施例中,所述样本标签存储在所述M个客户端包括的第二客户端中,所述输出层部署在所述第二客户端中;在所述获取预测损失之前,所述方法还包括:将所述针对第N个隐层的输出发送至所述第二客户端,以使所述第二客户端将其输入所述输出层,得到所述预测结果。所述获取预测损失包括:从所述第二客户端接收所述预测损失,所述预测损失由所述第二客户端根据所述预测结果和所述样本标签而确定;其中,所述训练损失还用于所述第二客户端调整所述输出层中的参数。
在一个实施例中,所述MPC技术包括秘密共享;对所述M个输出进行综合,得到综合输出,包括:对所述M个输出进行加和,得到所述综合输出。
根据第二方面,提供一种实现安全防御的多方联合训练神经网络的方法,其中,所述神经网络包括N个隐层,所述多方包括服务器和M个客户端;所述M个客户端各自存储目标样本的部分特征,维护所述N个隐层中前K个隐层的部分参数,并各自部署有攻击者模型,所述攻击者模型用于根据对应客户端中针对第K个隐层的输出反推该客户端中存储的样本特征,其中N、K和M为正整数,并且N>K,M>1。该方法应用于所述M个客户端中任意的第一客户端,该方法包括:
基于安全多方计算MPC技术,从所述M个客户端中的其他客户端获取加密特征和加密参数。根据所述第一客户端存储的第一特征部分和第一参数部分,以及所述加密特征和加密参数,确定针对所述第K个隐层的第一输出。向所述服务器发送所述第一输出,所述第一输出与所述其他客户端向所述服务器发送的针对第K个隐层的输出组成M个输出,以使所述服务器对所述M个输出进行综合,得到综合输出,用于输入所述神经网络的后N-K个隐层,进而得到预测结果。将所述第一输出输入所述第一客户端中部署的第一攻击者模型中,得到第一反推结果。基于所述第一反推结果和所述第一特征部分,确定第一攻击损失。向所述服务器发送所述第一攻击损失,所述第一攻击损失与所述服务器从所述其他客户端接收到的攻击损失组成M个攻击损失,以使所述服务器基于所述M个攻击损失和获取的预测损失,确定训练损失,其中所述预测损失根据所述预测结果和所述目标样本的样本标签而确定,所述训练损失正相关于所述预测损失,并且负相关于所述M个攻击损失。从服务器接收所述训练损失对应的损失梯度,并利用所述损失梯度调整所述第一参数部分,所述训练损失还用于所述其他客户端调整各自维护的部分参数以及所述服务器调整所述后N-K个隐层中的参数。
在一个实施例中,在确定针对所述第K个隐层的第一输出之前,所述方法还包括:基于所述MPC技术,对所述第一特征部分和第一参数部分进行加密;将得到的第一加密特征和第一加密参数提供给所述其他客户端。
在一个具体的实施例中,所述MPC技术包括秘密共享;对所述第一特征部分和第一参数部分进行加密,包括:利用特征随机数与所述第一特征部分进行加和,得到所述第一加密特征;利用参数随机数与所述第一参数部分进行加和,得到所述第一加密参数。
在一个具体的实施例中,根据所述第一客户端存储的第一特征部分和第一参数部分,确定针对所述第K个隐层的第一输出,包括:对所述第一特征部分和所述加密特征进行综合,得到第一综合特征;对所述第一参数部分和所述加密参数进行综合,得到第一综合参数;利用所述第一综合参数对所述第一综合特征进行计算,得到所述第一输出。
在一个实施例中,在利用所述训练损失调整所述第一参数部分之后,所述方法还包括:在所述第一攻击损失减小的方向,调整所述第一攻击者模型的参数。或者,在所述第一攻击损失减小的方向,调整所述第一攻击者模型的参数;并且,在所述第一攻击损失增大的方向,调整所述第一参数部分。
在一个实施例中,在所述第一客户端为存储有所述样本标签的第二客户端,并且所述服务器中部署有所述神经网络的输出层的情况下,在从服务器接收所述训练损失对应的损失梯度之前,所述方法还包括:向所述服务器发送所述样本标签,以使所述服务器根据所述样本标签和所述预测结果,确定所述预测损失;其中,所述训练损失还用于所述服务器调整所述输出层中的参数。
在一个实施例中,在所述第一客户端为存储有所述样本标签的第二客户端,并且所述第二客户端中部署有所述神经网络的输出层的情况下,在从服务器接收所述训练损失对应的损失梯度之前,所述方法还包括:从服务器接收所述针对第N个隐层的输出,并将其输入所述输出层,得到所述预测结果;基于所述预测结果和所述样本标签,确定所述预测损失;向所述服务器发送所述预测损失。
根据第三方面,提供一种实现安全防御的多方联合训练神经网络的装置,其中,所述神经网络包括N个隐层,所述多方包括服务器和M个客户端;所述M个客户端各自存储目标样本的部分特征,维护所述N个隐层中前K个隐层的部分参数,并各自部署有攻击者模型,所述攻击者模型用于根据对应客户端中针对第K个隐层的输出反推该客户端中存储的样本特征,其中N、K和M为正整数,并且N>K,M>1。该装置集成于所述服务器,该装置包括:第一获取单元,配置为从所述M个客户端获取针对所述第K个隐层的M个输出;从任意的第一客户端获取的第一输出,由所述第一客户端根据其存储的第一特征部分和第一参数部分,以及基于安全多方计算MPC技术从M个客户端中的其他客户端所获取的加密特征和加密参数而确定。综合单元,配置为对所述M个输出进行综合,得到综合输出;所述综合输出相当于,将所述M个客户端各自存储的部分特征进行综合后输入所述前K个隐层而得到的输出。第一输入单元,配置为将所述综合输出输入所述神经网络的后N-K个隐层中,得到针对第N个隐层的输出,用于输入所述神经网络的输出层,得到预测结果。第二获取单元,配置为获取预测损失,所述预测损失根据所述预测结果和所述目标样本的样本标签而确定。第三获取单元,配置为从所述M个客户端获取M个攻击损失;其中从所述第一客户端获取的第一攻击损失,基于所述第一特征部分和第一反推结果而确定,所述第一反推结果通过将所述第一输出输入第一客户端中部署的第一攻击者模型而得到。确定单元,配置为基于所述预测损失和所述M个攻击损失,确定训练损失,所述训练损失正相关于所述预测损失,并且负相关于所述M个攻击损失。调参单元,配置为利用所述训练损失,至少调整所述后N-K个隐层中的参数,所述训练损失还用于所述M个客户端调整各自维护的部分参数。
根据第四方面,提供一种实现安全防御的多方联合训练神经网络的装置,其中,所述神经网络包括N个隐层,所述多方包括服务器和M个客户端;所述M个客户端各自存储目标样本的部分特征,维护所述N个隐层中前K个隐层的部分参数,并各自部署有攻击者模型,所述攻击者模型用于根据对应客户端中针对第K个隐层的输出反推该客户端中存储的样本特征,其中N、K和M为正整数,并且N>K,M>1。该装置集成于所述M个客户端中任意的第一客户端,该装置包括:
第一获取单元,配置为基于安全多方计算MPC技术,从M个客户端中的其他客户端获取加密特征和加密参数。第一确定单元,配置为根据所述第一客户端存储的第一特征部分和第一参数部分,以及所述加密特征和加密参数,确定针对所述第K个隐层的第一输出。第一发送单元,配置为向所述服务器发送所述第一输出,所述第一输出与所述其他客户端向所述服务器发送的针对第K个隐层的输出组成M个输出,以使所述服务器对所述M个输出进行综合,得到综合输出,用于输入所述神经网络的后N-K个隐层,进而得到预测结果。第一输入单元,配置为将所述第一输出输入所述第一客户端中部署的第一攻击者模型中,得到第一反推结果。第二确定单元,配置为基于所述第一反推结果和所述第一特征部分,确定第一攻击损失。第二发送单元,配置为向所述服务器发送所述第一攻击损失,所述第一攻击损失与所述服务器从所述其他客户端接收到的攻击损失组成M个攻击损失,以使所述服务器基于所述M个攻击损失和获取的预测损失,确定训练损失,其中所述预测损失根据所述预测结果和所述目标样本的样本标签而确定,所述训练损失正相关于所述预测损失,并且负相关于所述M个攻击损失。第一接收单元,配置为从服务器接收所述训练损失对应的损失梯度。第一调参单元,配置为利用所述损失梯度调整所述第一参数部分,所述训练损失还用于所述其他客户端调整各自维护的部分参数以及所述服务器调整所述后N-K个隐层中的参数。
根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面的方法。
根据第六方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面的方法。
综上,采用本说明书实施例提供的方法及装置,可以实现多方联合训练神经网络,并且,通过引入防御者机制,在训练过程中可以实现安全防御。同理,在神经网络的使用过程中,同样可以实现安全防御。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出根据一个实施例的多方联合部署神经网络的架构图;
图2示出根据一个实施例的多方联合训练神经网络的交互图;
图3示出根据另一个实施例的多方联合部署神经网络的架构图;
图4示出根据另一个实施例的多方联合训练神经网络的交互图;
图5示出根据一个实施例的多方联合训练神经网络的装置结构图;
图6示出根据另一个实施例的多方联合训练神经网络的装置结构图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
如前所述,为保障数据安全,在多个数据持有方(以下或称数据方)协同建模过程中通常会利用加密技术处理数据,导致占用大量的计算资源、耗费大量时间,并且在训练神经网络的场景下耗费的计算资源尤其庞大。
对此,发明人提出一种多方联合训练神经网络的方法,该方法中的多方除包括多个数据方以外,还包括中立的不单独归属于任何一个数据方的服务器。在一个实施例中,图1示出一种多方联合部署神经网络的架构图,其中包括对应于M个数据方的M个客户端,以及中立的服务器。进一步地,该方法涉及到对神经网络的切分,如图1所示,神经网络共包括N个隐层,其中前K个隐层的参数由M个客户端进行维护,后N-K个隐层和输出层由服务器维护。基于此,M个客户端可以利用安全多方加密(Secure Multi-Party Computation,简称MPC)技术,根据各自拥有的样本特征和各自维护的前K个隐层的参数,确定针对第K个隐层的M个输出。然后,服务器利用MPC技术对M个输出进行综合,得到针对第K个隐层的综合输出hK,此综合输出相当于将M个客户端各自拥有的样本特征进行综合后输入前K个隐层而得到的输出。接着,服务器将综合输出输入至后N-K个隐层和输出层,得到预测结果。可以理解,在模型使用阶段,得到预测结果即可,而在模型训练阶段,则在得到预测结果之后,还需利用预测结果和样本标签进行模型训练。
然而,服务器中的隐层数据会带来安全风险。具体地,虽然服务器中的隐层数据不会直接泄漏M个客户端输入的样本特征,但是攻击者在一定条件下,可以通过学习一个逆变换,根据隐层数据反推出样本特征。举例来说,M个客户端中的某个客户端想要非法获取其他客户端中的样本特征,此时,该某个客户端可以通过其自身拥有的样本特征和针对第K个隐层的输出学习一个逆变换,然后根据服务器中针对第K层的综合输出和学习到的逆变换,反推出M个客户端中各自存储的样本特征。
对此,发明人进一步提出,可以引入针对攻击者的防御机制,对神经网络进行训练,以使得攻击者反推出的特征与实际的样本特征存在较大偏差而不可用,从而实现对神经网络训练的安全防御。具体地,在一种实施方式中,可以在神经网络的训练损失中增加与上述逆变换(以下或称为攻击者模型)相关的损失项,以实现安全防御。
下面结合具体的实施例,对上述多方联合训练神经网络的方法进行说明。
图2示出根据一个实施例的多方联合训练神经网络的交互图。首先对其中神经网络在多方中的部署架构(可参见图1)进行介绍。
具体地,神经网络包括N个隐层,其中N为正整数。可以理解,N的具体取值通常是预先设定的,例如可以由工作人员预先设定,设定为2、3或12等等。此外,神经网络的种类可以包括DNN(Deep Neural Network,深度神经网络),卷积神经网络CNN(ConvolutionalNeural Network,卷积神经网络)等等。
上述多方可以包括M个客户端和服务器。其中M是不小于2的正整数,M个客户端对应于M个数据持有方,因此,客户端的数量取决于数据持有方的数量。在一个例子中,假定参与协同训练神经网络的数据方为某第三方支付平台、某银行和某共享平台,则M=3。其中服务器是中立的,可以理解为是M个客户端的公共服务器,可以理解,实际服务器通常为互相连接的多台服务器或服务器集群。
上述M个客户端各自存储目标样本的部分特征,维护上述N个隐层中前K个隐层的部分参数,并各自部署有攻击者模型。
需要理解,其中目标样本可以是任意的以用户或服务等为目标对象的样本,往往根据实际建模场景而定。在一个实施例中,M个客户端各自存储的用于协同训练的部分特征的特征类别通常是不同的,由此,如图1所示,M个客户端各自存储的部分特征x1、x2、…、xM共同组成目标样本的完整特征。在一个例子中,持有求职服务数据的数据方可以提供一批用户的性别、年龄和职业,持有位置服务数据的数据方可以提供同一批用户的位置信息,包括用户曾经待过的城市和对应时长等。在一个具体的例子中,假定目标样本针对用户甲,M个客户端中包括分别对应于支付平台和银行的客户端,相应地,支付平台中可以存储有用户甲的支付特征,包括支付频次、支付总额、逾期支付次数等,银行可以存储有用户甲的借贷特征,包括借贷总额等。如此,M个客户端中各自存储部分特征,这些特征共同组成目标样本的完整特征。此外,可以由M个客户端中的某个客户端提供目标样本的样本标签,用于训练。
在一个实施例中,M个客户端维护上述N个隐层中前K个隐层的部分参数。其中K是小于或等于N的正整数,通常由工作人员根据实际需要进行预先设定,假定N为5,此时可以将K设定为1或2等。需要理解,各个客户端所维护的部分参数是互不相同的。在一个具体的实施例中,某个客户端所维护的部分参数通常是与其所存储的部分特征相关联的。在一个具体的实施例中,某个客户端中所维护的部分参数通常包括前K个隐层中各个隐层的参数,如图1所示,第1方维护的部分参数包括第1隐层至第K隐层中的参数:<W1>1、<W2>1、…<WK>1。在一个具体的实施例中,M个客户端中各个客户端具体维护K个隐层中参数的哪一部分,可以通过MPC(Secure Multi-party Computation,安全多方计算)技术而确定。
在一个实施例中,M个客户端各自部署有攻击者模型。此攻击者模型用于根据对应客户端中针对第K个隐层的输出反推该客户端中存储的样本特征。在一个具体的实施例中,其中攻击者模型可以采用RNN、LSTM、Transformer、GRU等等。可以理解,其中任意两个客户端所部署的攻击者模型所基于的算法可以相同也可以不同,比如说,可以都采用GRU,或者,一个采用RNN而另一个采用LSTM。
上述服务器维护后N-K个隐层和输出层的参数。在一个实施例中,其中输出层中所使用的激活函数、参数个数等可以根据实际需要而设定。在一个例子中,对于多分类问题,输出层中可以选用softmax作为激活函数,其中对应于输出各个类别的预测概率的参数个数,通常为标签类别数量+1(Others)。
以上对多方联合训练神经网络的部署架构进行介绍。以下对图2示出的交互过程进行介绍。需要说明的是,图2中主要以任意的第一客户端为例,对M个客户端和服务器之间的交互过程进行说明。此外,第一客户端中的“第一”、以及后文中的“第一”、“第二”,仅用于区分同类事物,不具有其他限定作用。
如图2所示,所述交互的过程可以包括以下步骤:
步骤S201,第一客户端基于MPC技术,从所述M个客户端中的其他客户端获取加密特征和加密参数。
在一个实施例中,MPC技术可以包括秘密分享,混淆电路和同态加密等。
在一个实施例中,第一客户端将自身存储的第一特征部分和第一参数部分分别加密,并且将加密后的第一特征部分和第一参数部分提供给其他客户端。相应地,第一客户端可以从其他客户端获取由其他客户端加密后得到的加密特征和加密参数。进一步地,在一个具体的实施例中,第一客户端可以将自身加密后的数据直接发送给其他客户端中的每个客户端,相应地,第一客户端可以从其他客户端中的每个客户端中接收加密特征和加密参数。在另一个具体的实施例中,第一客户端可以将自身加密后的数据放入共享池,相应地,第一客户端还可以从共享池中获取其他客户端的加密特征和加密参数。
由前述可知,第一客户端为M个客户端中任意的一个客户端,以下或用客户端i指代第一客户端,其中i是指客户端编号,取值范围为1至M。根据一个具体的实施例,假定采用的MPC技术为同态加密,则每个客户端可以利用密钥对其自身存储的部分特征和部分参数进行加密。
根据另一个具体的实施例,假定采用的MPC技术为秘密分享,则每个客户端可以利用随机数对自身存储的部分特征和部分参数进行加密,其中随机数采用秘密分享提供的随机算法产生。在一个例子中,对于客户端i中存储的部分特征xi和部分参数θi,分别用特征随机数
Figure BDA0002252362800000121
和参数随机数
Figure BDA0002252362800000122
进行加密,可以得到如下的加密特征和加密参数:
Figure BDA0002252362800000123
Figure BDA0002252362800000124
基于此,对于其他客户端中任意的客户端j(≠i),客户端i可以获取由客户端j加密的加密特征x′j和加密参数θ′j。需要理解,xi、θi
Figure BDA0002252362800000125
x′i、θ′i、x′j和θ′j可以是数值或矩阵,通常为向量。
如此,第一客户端可以从其他客户端中的每个客户端获取对应的加密特征和加密参数。
接着在步骤S203,第一客户端根据其存储的第一特征部分和第一参数部分,以及所述加密特征和加密参数,确定针对所述第K个隐层的第一输出。
在一个实施例中,将第一特征部分和所述加密特征进行综合,得到第一综合特征,并且,将第一参数部分和加密参数进行综合,得到第一综合参数;再利用第一综合参数对第一综合特征进行计算,得到第一输出。需要理解,其中对特征和参数的综合方式,与采用的MPC技术相关,而利用综合参数对综合特征进行计算的方式,与输入层和前K个隐层中相邻两个层之间的连接,以及神经元激活函数的选取等相关。
在一个具体的实施例中,采用的MPC技术为秘密分享。在一个例子中,可以采用加和的方式,得到上述综合特征和综合参数。具体地,客户端i中得到的综合特征zi和综合参数为αi如下:
Figure BDA0002252362800000126
Figure BDA0002252362800000127
基于此,再利用综合参数αi对综合特征zi进行计算,得到第一输出
Figure BDA0002252362800000128
如此,第一客户端可以确定其针对前K个隐层的第一输出。基于此,一方面,在步骤S203之后,执行步骤S205、步骤S207、步骤S209和步骤S211。
具体地,在步骤S205,服务器从第一客户端获取第一输出。
需要说明的是,步骤S201和步骤S203描述第一客户端得到第一输出的过程,可以理解,其他M-1个客户端也可以采用同样的方式,得到针对第K个隐层的M-1个输出。由此,服务器可以从M个客户端获取针对第K个隐层的M个输出。基于此,在步骤S207,服务器可以利用MPC技术对所述M个输出进行综合,得到综合输出。其中,综合输出相当于,将所述M个客户端各自存储的部分特征进行综合后输入所述前K个隐层而得到的输出。
需要说明的是,本步骤中服务器利用的MPC技术与步骤S201中利用的MPC技术是相同或相应的。在一个实施例中,步骤S201中采用的MPC技术为同态加密,其中利用密钥对特征和参数进行加密,相应地,在步骤S207中可以利用密钥对M个输出进行处理,以得到综合输出。在另一个实施例中,步骤S201中利用秘密分享生成和传输的加密特征和加密参数,在步骤S207中,服务器同样利用秘密分享对M个输出进行综合,得到综合输出。在一个具体的实施例中,可以对M个输出进行加和处理,得到综合输出。在一个例子中,可以将
Figure BDA0002252362800000131
作为综合输出。需要理解,
Figure BDA0002252362800000132
相当于,将
Figure BDA0002252362800000133
输入具有参数
Figure BDA0002252362800000134
的前K个隐层而得到的输出hK
以上在步骤S207,服务器可以得到针对第个K隐层的综合输出。接着在步骤S209,服务器将综合输出输入神经网络的后N-K个隐层和输出层中,得到预测结果。可以理解,其中预测结果可以为分类结果,也可以为回归结果。在一个例子中,得到的预测结果可以为用户的信用等级,如高、中或低等。在另一个例子中,得到的预测结果可以为用户的信用分数。
再接着,在步骤S211,服务器可以根据预测结果和目标样本的样本标签确定预测损失。
在一个实施例中,其中样本标签存储在M个客户端中的第二客户端,在步骤S211之前,服务器可以从第二客户端中获取样本标签。
在一个实施例中,可以用下式表示预测损失:
l0=loss(y,fθ(x)) (5)
其中,y表示样本标签,x表示目标样本的样本特征,fθ(x)表示将x输入神经网络得到的预测结果。
在一个实施例中,本步骤中用于确定预测损失的损失函数,可以根据实际需要,采用铰链损失函数、交叉熵损失函数等等。
以上,在步骤S203之后,通过执行步骤S205、步骤S207、步骤S209和步骤S211,可以得到针对目标样本的预测损失。
另一方面,在步骤S203之后,执行步骤S213、步骤S215和步骤S217。具体地,在步骤S213,第一客户端将第一输出输入其自身部署的第一攻击者模型中,得到第一反推结果。接着在步骤S215,第一客户端根据第一反推结果和第一特征部分,确定第一攻击损失。
在一个实施例中,可以用下式表示客户端i所确定的攻击损失:
Figure BDA0002252362800000141
式(4)中,zi和αi分别表示客户端i确定的综合特征i和综合参数i(例如参见公式(3)和(4)),
Figure BDA0002252362800000142
表示针对第K个隐层的输出,即
Figure BDA0002252362800000143
βi表示客户端i中部署的攻击者模型i的模型参数,
Figure BDA0002252362800000144
表示将输出i输入攻击者模型i得到的反推结果i,d()表示distance函数,用于衡量综合特征i和反推结果i之间的距离。在一个具体的实施例中,distance函数对应于计算曼哈顿距离或欧式距离等。
如此,可以确定第一攻击损失,接着在步骤S217,服务器从第一客户端获取第一攻击损失。需要说明的是,步骤S213和步骤S215描述第一客户端确定第一攻击损失的过程,可以理解,其他M-1个客户端也可以采用同样的方式,得到M-1个攻击损失。由此,服务器可以从M个客户端获取M个攻击损失。基于此,可以在步骤S219中,基于获取的M个攻击损失和在步骤S211中确定的预测损失,确定训练损失。
需要说明的是,上述训练损失正相关于所述预测损失,并且负相关于所述M个攻击损失。如此,后续利用训练损失调参后的神经网络,将具有较佳的防御功能。
在一个实施例中,可以采用以下公式计算训练损失:
Figure BDA0002252362800000151
其中,L表示训练损失,l0表示预测损失,
Figure BDA0002252362800000152
表示M个攻击损失的和值,λ表示防御者系数。需要理解,λ越大,后续调参得到的神经网络的防御功能也就越好,但相应对神经网络的性能损害也就越大。在一个具体的实施例中,λ为超参,例如可以设定为0.2或0.3等。在一个具体的实施例中,其中l0和di分别可以用上式(5)和(6)计算得到。
在另一个实施例中,可以采用以下公式计算训练损失:
Figure BDA0002252362800000153
通过式(8),可以针对不同攻击者模型设定不同的防御者系数,比如,λ1=0.1,λ2=0.2。
在又一个实施例中,可以采用以下公式计算训练损失:
Figure BDA0002252362800000154
如此,在步骤S219,服务器可以确定训练损失。接着在步骤S221,服务器可以利用训练损失,调整所述输出层和后N-K个隐层中的参数。在一个实施例中,可以采用反向传播法调参。
再接着,在步骤S223,第一客户端可以从服务器接收训练损失对应的损失梯度,并且在步骤S225,第一客户端可以利用损失梯度调整第一参数部分。由此,M个客户端均可以从服务器接收损失梯度,对自身维护的前K个隐层的部分参数进行调整。
此外,还可以执行步骤S227,第一客户端利用第一攻击损失至少调整第一攻击者模型的参数。在一个实施例中,在第一攻击损失减小的方向,调整第一攻击者模型的参数。在另一个实施例中,还在第一攻击损失增大的方向,调整第一参数部分。
通过重复执行图2中的交互步骤,可以实现对神经网络的多次迭代,直至神经网络的参数收敛,将最后一次迭代得到的神经网络,作为最终训练好的神经网络。
以上,采用本说明书实施例披露的方法,可以实现多方联合训练神经网络,并且,通过引入防御者机制,在训练过程中可以实现安全防御。同理,在神经网络的使用过程中,同样可以实现安全防御。
由前述实施例可知,神经网络的输出层可以部署在服务器中。并且,服务器可以从存储有样本标签的第二客户端中获取样本标签,以根据输出层输出的预测结果和获取的样本标签确定预测损失。然而,因服务器是中立的,因此服务器在获取样本标签后,存在样本标签泄漏的风险。据此,在一个实施例中,服务器可以在确定出预测结果后,将预测结果发送至第二客户端,以使第二客户端根据预测结果和样本标签确定预测损失,再将预测损失发送至服务器。但是,因服务器中同时存在预测结果和预测损失,不法分子可以根据预测结果和预测损失推出样本标签,因此样本标签仍然存在泄漏风险。
在另一个实施例中,为防止样本标签的泄漏,还可以将神经网络的输出层部署在第二客户端中。进一步地,服务器将神经网络最后一个隐层(第N个隐层)的输出hN提供给第二客户端,以使第二客户端将hN输入输出层中,得到预测结果,并根据预测结果和样本标签确定预测损失,再将预测损失提供给服务器,以使服务器根据预测损失和M个攻击损失确定训练损失。如此,可以更加有效的防止样板标签的泄漏。下面结合图3和图4,对此实施例进行具体介绍。
图3示出根据另一个实施例的多方联合部署神经网络的架构图。比较图3和图1可知,两个架构的主要不同在于,图1中是服务器中部署有神经网络的输出层,如图3中是存储有样本标签的第二客户端部署有输出层。
图4示出根据另一个实施例的多方联合训练神经网络的交互图。其中神经网络在多方中的部署架构可以参见图3,同时对其的文字描述,可以参见前述中的相关描述,在此不作赘述。
如图4所示,所述交互的过程可以包括以下步骤:
步骤S401,第一客户端基于MPC技术,从所述M个客户端中的其他客户端获取的加密特征和加密参数。
步骤S403,第一客户端根据其存储的第一特征部分和第一参数部分,以及所述加密特征和加密参数,确定针对所述第K个隐层的第一输出。
一方面,在步骤S403之后,执行步骤S405、步骤S407和步骤S409。
具体地,在步骤S405,第一客户端将第一输出输入其自身部署的第一攻击者模型中,得到第一反推结果。接着在步骤S407,第一客户端根据第一反推结果和第一特征部分,确定第一攻击损失。接着在步骤S409,服务器从第一客户端获取第一攻击损失。需要说明的是,对步骤S405、步骤S407和步骤S409的描述,可以参见前述对步骤S213、步骤S215和步骤S217的描述,在此不作赘述。
另一方面,在步骤S403之后,执行步骤S411、S413、步骤S415、S417、步骤S419、步骤S421和步骤S423。
具体地,在步骤S411,服务器从第一客户端获取第一输出。进一步地,在步骤S413,服务器利用MPC技术对所述M个输出进行综合,得到综合输出。所述综合输出相当于,将所述M个客户端各自存储的部分特征进行综合后输入所述前K个隐层而得到的输出。需要说明的是,对步骤S413的描述可以参见对上述步骤S207的描述,在此不作赘述。
基于步骤S413中得到的综合输出,接着在步骤S415,服务器将所述综合输出输入所述神经网络的后N-K个隐层,得到针对第N个隐层的输出。并且在步骤S417,服务器将针对第N个隐层的输出发送至第二客户端。
然后,在步骤S419,第二客户端将针对第N个隐层的输出输入神经网络的输出层,得到预测结果。再接着,在步骤S421,第二客户端根据所述预测结果和所述目标样本的样本标签确定预测损失。并且在步骤S423,第二客户端将预测损失发送至服务器。可以理解,对于步骤S419、步骤S421和步骤S423的描述,可以参见前述中的相关描述,在此不作赘述。
以上,服务器在步骤S409,可以从M个客户端获取M个攻击损失,在步骤S423可以获取预测损失。由此,服务器可以在步骤S425,基于所述预测损失和M个攻击损失,确定训练损失。需要说明的是,对步骤S425的描述可以参见对步骤S219的描述。
在确定预测损失后,可以在步骤S427,第二客户端可以从服务器获取训练损失,调整输出层中的参数。进一步地,在步骤S429,服务器可以利用训练损失,调整所述后N-K个隐层中的参数。在一个实施例中,服务器可以从第二客户端接收对输出层调参时计算好的梯度数据,用于调整后N-K个隐层中的参数。
接着在步骤S431,第一客户端从服务器接收所述训练损失对应的损失梯度。并且在步骤S433,第一客户端利用所述损失梯度调整第一参数部分。以及在步骤S435,第一客户端利用第一攻击损失至少调整第一攻击者模型的参数。需要说明的是,对步骤S431、步骤S433和步骤S435的描述,可以参见前述对步骤S223、步骤S225和步骤S227的相关描述,在此不作赘述。
以上,采用本说明书实施例披露的方法,可以实现多方联合训练神经网络,并且,通过引入防御者机制,在训练过程中可以实现安全防御。同理,在神经网络的使用过程中,同样可以实现安全防御。此外,将输出层部署在存储有样本标签的客户端中,还可以有效防止样本标签的泄漏。
根据另一方面的实施例,提供了一种训练装置。图5示出根据一个实施例的多方联合训练神经网络的装置结构图。其中,所述神经网络包括N个隐层,所述多方包括服务器和M个客户端;所述M个客户端各自存储目标样本的部分特征,维护所述N个隐层中前K个隐层的部分参数,并各自部署有攻击者模型,所述攻击者模型用于根据对应客户端中针对第K个隐层的输出反推该客户端中存储的样本特征,其中N、K和M为正整数,并且N>K,M>1;所述装置集成于所述服务器。如图5所示,装置500包括:
第一获取单元510,配置为从所述M个客户端获取针对所述第K个隐层的M个输出;从任意的第一客户端获取的第一输出,由所述第一客户端根据其存储的第一特征部分和第一参数部分,以及基于安全多方计算MPC技术从M个客户端中的其他客户端所获取的加密特征和加密参数而确定。
综合单元520,配置为对所述M个输出进行综合,得到综合输出;所述综合输出相当于,将所述M个客户端各自存储的部分特征进行综合后输入所述前K个隐层而得到的输出。
第一输入单元530,配置为将所述综合输出输入所述神经网络的后N-K个隐层中,得到针对第N个隐层的输出,用于输入所述神经网络的输出层,得到预测结果。
第二获取单元540,配置为获取预测损失,所述预测损失根据所述预测结果和所述目标样本的样本标签而确定。
第三获取单元550,配置为从所述M个客户端获取M个攻击损失;其中从所述第一客户端获取的第一攻击损失,基于所述第一特征部分和第一反推结果而确定,所述第一反推结果通过将所述第一输出输入第一客户端中部署的第一攻击者模型而得到。
确定单元560,配置为基于所述预测损失和所述M个攻击损失,确定训练损失,所述训练损失正相关于所述预测损失,并且负相关于所述M个攻击损失。
调参单元570,配置为利用所述训练损失,至少调整所述后N-K个隐层中的参数,所述训练损失还用于所述M个客户端调整各自维护的部分参数。
在一个实施例中,所述装置还包括:第二输入单元,配置为将所述针对第N个隐层的输出输入所述输出层中,得到所述预测结果。所述第二获取单元540具体配置为:根据所述预测结果和所述样本标签,确定所述预测损失;所述调参单元570,还配置为:调整所述输出层中的参数。
在一个具体的实施例中,所述样本标签存储在所述M个客户端包括的第二客户端中,所述装置还包括:第四获取单元,配置为从所述第二客户端中获取所述样本标签。
在一个实施例中,所述样本标签存储在所述M个客户端包括的第二客户端中,所述输出层部署在所述第二客户端中;所述装置还包括:发送单元,配置为将所述针对第N个隐层的输出发送至所述第二客户端,以使所述第二客户端将其输入所述输出层,得到所述预测结果;所述第二获取单元具体配置为:从所述第二客户端接收所述预测损失,所述预测损失由所述第二客户端根据所述预测结果和所述样本标签而确定;其中,所述训练损失还用于所述第二客户端调整所述输出层中的参数。
在一个实施例中,所述MPC技术包括秘密共享;所述综合单元具体配置为:对所述M个输出进行加和,得到所述综合输出。
根据另一方面的实施例,提供了一种训练装置。图6示出根据另一个实施例的多方联合训练神经网络的装置结构图。其中,所述神经网络包括N个隐层,所述多方包括服务器和M个客户端;所述M个客户端各自存储目标样本的部分特征,维护所述N个隐层中前K个隐层的部分参数,并各自部署有攻击者模型,所述攻击者模型用于根据对应客户端中针对第K个隐层的输出反推该客户端中存储的样本特征,其中N、K和M为正整数,并且N>K,M>1;所述装置集成于所述M个客户端中任意的第一客户端。如图6所示,装置600包括:
第一获取单元610,配置为基于安全多方计算MPC技术,从所述M个客户端中的其他客户端获取加密特征和加密参数。
第一确定单元620,配置为根据所述第一客户端存储的第一特征部分和第一参数部分,以及所述加密特征和加密参数,确定针对所述第K个隐层的第一输出。
第一发送单元630,配置为向所述服务器发送所述第一输出,所述第一输出与所述其他客户端向所述服务器发送的针对第K个隐层的输出组成M个输出,以使所述服务器对所述M个输出进行综合,得到综合输出,用于输入所述神经网络的后N-K个隐层,进而得到预测结果。
第一输入单元640,配置为将所述第一输出输入所述第一客户端中部署的第一攻击者模型中,得到第一反推结果。
第二确定单元650,配置为基于所述第一反推结果和所述第一特征部分,确定第一攻击损失。
第二发送单元660,配置为向所述服务器发送所述第一攻击损失,所述第一攻击损失与所述服务器从所述其他客户端接收到的攻击损失组成M个攻击损失,以使所述服务器基于所述M个攻击损失和获取的预测损失,确定训练损失,其中所述预测损失根据所述预测结果和所述目标样本的样本标签而确定,所述训练损失正相关于所述预测损失,并且负相关于所述M个攻击损失。
第一接收单元670,配置为从服务器接收所述训练损失对应的损失梯度。
第一调参单元680,配置为利用所述损失梯度调整所述第一参数部分,所述训练损失还用于所述其他客户端调整各自维护的部分参数以及所述服务器调整所述后N-K个隐层中的参数。
在一个具体的实施例中,所述装置还包括:加密单元,配置为基于所述MPC技术,对所述第一特征部分和第一参数部分进行加密;提供单元,配置为将得到的第一加密特征和第一加密参数提供给所述其他客户端。
在一个更具体的实施例中,所述MPC技术包括秘密共享;所述加密单元具体配置为:利用特征随机数与所述第一特征部分进行加和,得到所述第一加密特征;利用参数随机数与所述第一参数部分进行加和,得到所述第一加密参数。
在一个实施例中,所述第一确定单元具体配置为:对所述第一特征部分和所述加密特征进行综合,得到第一综合特征;对所述第一参数部分和所述加密参数进行综合,得到第一综合参数;利用所述第一综合参数对所述第一综合特征进行计算,得到所述第一输出。
在一个实施例中,所述装置还包括第二调参单元,配置为:在所述第一攻击损失减小的方向,调整所述第一攻击者模型的参数。或者,在所述第一攻击损失减小的方向,调整所述第一攻击者模型的参数;并且,在所述第一攻击损失增大的方向,调整所述第一参数部分。
在一个实施例中,在所述第一客户端为存储有所述样本标签的第二客户端,并且所述服务器中部署有所述神经网络的输出层的情况下,所述装置还包括:第三发送单元,配置为向所述服务器发送所述样本标签,以使所述服务器根据所述样本标签和所述预测结果,确定所述预测损失;其中,所述训练损失还用于所述服务器调整所述输出层中的参数。
在一个实施例中,在所述第一客户端为存储有所述样本标签的第二客户端,并且所述第二客户端中部署有所述神经网络的输出层的情况下,所述装置还包括:第二接收单元,配置为从服务器接收所述针对第N个隐层的输出;第二输入单元,配置为将其输入所述输出层,得到所述预测结果;第三确定单元,配置为基于所述预测结果和所述样本标签,确定所述预测损失;第四发送单元,配置为向所述服务器发送所述预测损失。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2或图4所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2或图4所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (26)

1.一种实现安全防御的多方联合训练神经网络的方法,其中,所述神经网络包括N个隐层,所述多方包括服务器和M个客户端;所述M个客户端各自存储目标样本的部分特征,维护所述N个隐层中前K个隐层的部分参数,并各自部署有攻击者模型,所述攻击者模型用于根据对应客户端中针对第K个隐层的输出反推该客户端中存储的样本特征,其中N、K和M为正整数,并且N>K,M>1;所述方法应用于所述服务器,所述方法包括:
从所述M个客户端获取针对所述第K个隐层的M个输出;从任意的第一客户端获取的第一输出,由所述第一客户端根据其存储的第一特征部分和第一参数部分,以及基于安全多方计算MPC技术从M个客户端中的其他客户端所获取的加密特征和加密参数而确定;
对所述M个输出进行综合,得到综合输出;
将所述综合输出输入所述神经网络的后N-K个隐层中,得到针对第N个隐层的输出,用于输入所述神经网络的输出层,得到预测结果;
获取预测损失,所述预测损失根据所述预测结果和所述目标样本的样本标签而确定;
从所述M个客户端获取M个攻击损失;其中从所述第一客户端获取的第一攻击损失,基于所述第一特征部分和第一反推结果而确定,所述第一反推结果通过将所述第一输出输入第一客户端中部署的第一攻击者模型而得到;
基于所述预测损失和所述M个攻击损失,确定训练损失,所述训练损失正相关于所述预测损失,并且负相关于所述M个攻击损失;
利用所述训练损失,至少调整所述后N-K个隐层中的参数,所述训练损失还用于所述M个客户端调整各自维护的部分参数。
2.根据权利要求1所述的方法,其中,所述输出层部署在所述服务器中;在得到针对第N个隐层的输出之后,以及,在获取预测损失之前,所述方法还包括:
将所述针对第N个隐层的输出输入所述输出层中,得到所述预测结果;
所述获取预测损失包括:
根据所述预测结果和所述样本标签,确定所述预测损失;
所述至少调整所述后N-K个隐层中的参数,还包括:
调整所述输出层中的参数。
3.根据权利要求2所述的方法,其中,所述样本标签存储在所述M个客户端包括的第二客户端中,在所述获取预测损失之前,所述方法还包括:
从所述第二客户端中获取所述样本标签。
4.根据权利要求1所述的方法,其中,所述样本标签存储在所述M个客户端包括的第二客户端中,所述输出层部署在所述第二客户端中;在所述获取预测损失之前,所述方法还包括:
将所述针对第N个隐层的输出发送至所述第二客户端,以使所述第二客户端将其输入所述输出层,得到所述预测结果;
所述获取预测损失包括:
从所述第二客户端接收所述预测损失,所述预测损失由所述第二客户端根据所述预测结果和所述样本标签而确定;
其中,所述训练损失还用于所述第二客户端调整所述输出层中的参数。
5.根据权利要求1所述的方法,其中,所述MPC技术包括秘密共享;对所述M个输出进行综合,得到综合输出,包括:
对所述M个输出进行加和,得到所述综合输出。
6.一种实现安全防御的多方联合训练神经网络的方法,其中,所述神经网络包括N个隐层,所述多方包括服务器和M个客户端;所述M个客户端各自存储目标样本的部分特征,维护所述N个隐层中前K个隐层的部分参数,并各自部署有攻击者模型,所述攻击者模型用于根据对应客户端中针对第K个隐层的输出反推该客户端中存储的样本特征,其中N、K和M为正整数,并且N>K,M>1;所述方法应用于所述M个客户端中任意的第一客户端,所述方法包括:
基于安全多方计算MPC技术,从所述M个客户端中的其他客户端获取加密特征和加密参数;
根据所述第一客户端存储的第一特征部分和第一参数部分,以及所述加密特征和加密参数,确定针对所述第K个隐层的第一输出;
向所述服务器发送所述第一输出,所述第一输出与所述其他客户端向所述服务器发送的针对第K个隐层的输出组成M个输出,以使所述服务器对所述M个输出进行综合,得到综合输出,用于输入所述神经网络的后N-K个隐层,进而得到预测结果;
将所述第一输出输入所述第一客户端中部署的第一攻击者模型中,得到第一反推结果;
基于所述第一反推结果和所述第一特征部分,确定第一攻击损失;
向所述服务器发送所述第一攻击损失,所述第一攻击损失与所述服务器从所述其他客户端接收到的攻击损失组成M个攻击损失,以使所述服务器基于所述M个攻击损失和获取的预测损失,确定训练损失,其中所述预测损失根据所述预测结果和所述目标样本的样本标签而确定,所述训练损失正相关于所述预测损失,并且负相关于所述M个攻击损失;
从服务器接收所述训练损失对应的损失梯度,并利用所述损失梯度调整所述第一参数部分,所述训练损失还用于所述其他客户端调整各自维护的部分参数以及所述服务器调整所述后N-K个隐层中的参数。
7.根据权利要求6所述的方法,其中,在确定针对所述第K个隐层的第一输出之前,所述方法还包括:
基于所述MPC技术,对所述第一特征部分和第一参数部分进行加密;
将得到的第一加密特征和第一加密参数提供给所述其他客户端。
8.根据权利要求7所述的方法,其中,所述MPC技术包括秘密共享;对所述第一特征部分和第一参数部分进行加密,包括:
利用特征随机数与所述第一特征部分进行加和,得到所述第一加密特征;
利用参数随机数与所述第一参数部分进行加和,得到所述第一加密参数。
9.根据权利要求6所述的方法,其中,根据所述第一客户端存储的第一特征部分和第一参数部分,确定针对所述第K个隐层的第一输出,包括:
对所述第一特征部分和所述加密特征进行综合,得到第一综合特征;
对所述第一参数部分和所述加密参数进行综合,得到第一综合参数;
利用所述第一综合参数对所述第一综合特征进行计算,得到所述第一输出。
10.根据权利要求6所述的方法,其中,在利用所述训练损失调整所述第一参数部分之后,所述方法还包括:
在所述第一攻击损失减小的方向,调整所述第一攻击者模型的参数;或者,
在所述第一攻击损失减小的方向,调整所述第一攻击者模型的参数;并且,在所述第一攻击损失增大的方向,调整所述第一参数部分。
11.根据权利要求6所述的方法,其中,在所述第一客户端为存储有所述样本标签的第二客户端,并且所述服务器中部署有所述神经网络的输出层的情况下,在从服务器接收所述训练损失对应的损失梯度之前,所述方法还包括:
向所述服务器发送所述样本标签,以使所述服务器根据所述样本标签和所述预测结果,确定所述预测损失;
其中,所述训练损失还用于所述服务器调整所述输出层中的参数。
12.根据权利要求6所述的方法,其中,在所述第一客户端为存储有所述样本标签的第二客户端,并且所述第二客户端中部署有所述神经网络的输出层的情况下,在从服务器接收所述训练损失对应的损失梯度之前,所述方法还包括:
从服务器接收针对第N个隐层的输出,并将其输入所述输出层,得到所述预测结果;
基于所述预测结果和所述样本标签,确定所述预测损失;
向所述服务器发送所述预测损失。
13.一种实现安全防御的多方联合训练神经网络的装置,其中,所述神经网络包括N个隐层,所述多方包括服务器和M个客户端;所述M个客户端各自存储目标样本的部分特征,维护所述N个隐层中前K个隐层的部分参数,并各自部署有攻击者模型,所述攻击者模型用于根据对应客户端中针对第K个隐层的输出反推该客户端中存储的样本特征,其中N、K和M为正整数,并且N>K,M>1;所述装置集成于所述服务器,所述装置包括:
第一获取单元,配置为从所述M个客户端获取针对所述第K个隐层的M个输出;从任意的第一客户端获取的第一输出,由所述第一客户端根据其存储的第一特征部分和第一参数部分,以及基于安全多方计算MPC技术从M个客户端中的其他客户端所获取的加密特征和加密参数而确定;
综合单元,配置为对所述M个输出进行综合,得到综合输出;
第一输入单元,配置为将所述综合输出输入所述神经网络的后N-K个隐层中,得到针对第N个隐层的输出,用于输入所述神经网络的输出层,得到预测结果;
第二获取单元,配置为获取预测损失,所述预测损失根据所述预测结果和所述目标样本的样本标签而确定;
第三获取单元,配置为从所述M个客户端获取M个攻击损失;其中从所述第一客户端获取的第一攻击损失,基于所述第一特征部分和第一反推结果而确定,所述第一反推结果通过将所述第一输出输入第一客户端中部署的第一攻击者模型而得到;
确定单元,配置为基于所述预测损失和所述M个攻击损失,确定训练损失,所述训练损失正相关于所述预测损失,并且负相关于所述M个攻击损失;
调参单元,配置为利用所述训练损失,至少调整所述后N-K个隐层中的参数,所述训练损失还用于所述M个客户端调整各自维护的部分参数。
14.根据权利要求13所述的装置,其中,所述装置还包括:
第二输入单元,配置为将所述针对第N个隐层的输出输入所述输出层中,得到所述预测结果;
所述第二获取单元具体配置为:
根据所述预测结果和所述样本标签,确定所述预测损失;
所述调参单元,还配置为:
调整所述输出层中的参数。
15.根据权利要求14所述的装置,其中,所述样本标签存储在所述M个客户端包括的第二客户端中,所述装置还包括:
第四获取单元,配置为从所述第二客户端中获取所述样本标签。
16.根据权利要求13所述的装置,其中,所述样本标签存储在所述M个客户端包括的第二客户端中,所述输出层部署在所述第二客户端中;所述装置还包括:
发送单元,配置为将所述针对第N个隐层的输出发送至所述第二客户端,以使所述第二客户端将其输入所述输出层,得到所述预测结果;
所述第二获取单元具体配置为:
从所述第二客户端接收所述预测损失,所述预测损失由所述第二客户端根据所述预测结果和所述样本标签而确定;
其中,所述训练损失还用于所述第二客户端调整所述输出层中的参数。
17.根据权利要求13所述的装置,其中,所述MPC技术包括秘密共享;所述综合单元具体配置为:
对所述M个输出进行加和,得到所述综合输出。
18.一种实现安全防御的多方联合训练神经网络的装置,其中,所述神经网络包括N个隐层,所述多方包括服务器和M个客户端;所述M个客户端各自存储目标样本的部分特征,维护所述N个隐层中前K个隐层的部分参数,并各自部署有攻击者模型,所述攻击者模型用于根据对应客户端中针对第K个隐层的输出反推该客户端中存储的样本特征,其中N、K和M为正整数,并且N>K,M>1;所述装置集成于所述M个客户端中任意的第一客户端,所述装置包括:
第一获取单元,配置为基于安全多方计算MPC技术,从所述M个客户端中的其他客户端获取加密特征和加密参数;
第一确定单元,配置为根据所述第一客户端存储的第一特征部分和第一参数部分,以及所述加密特征和加密参数,确定针对所述第K个隐层的第一输出;
第一发送单元,配置为向所述服务器发送所述第一输出,所述第一输出与所述其他客户端向所述服务器发送的针对第K个隐层的输出组成M个输出,以使所述服务器对所述M个输出进行综合,得到综合输出,用于输入所述神经网络的后N-K个隐层,进而得到预测结果;
第一输入单元,配置为将所述第一输出输入所述第一客户端中部署的第一攻击者模型中,得到第一反推结果;
第二确定单元,配置为基于所述第一反推结果和所述第一特征部分,确定第一攻击损失;
第二发送单元,配置为向所述服务器发送所述第一攻击损失,所述第一攻击损失与所述服务器从所述其他客户端接收到的攻击损失组成M个攻击损失,以使所述服务器基于所述M个攻击损失和获取的预测损失,确定训练损失,其中所述预测损失根据所述预测结果和所述目标样本的样本标签而确定,所述训练损失正相关于所述预测损失,并且负相关于所述M个攻击损失;
第一接收单元,配置为从服务器接收所述训练损失对应的损失梯度;
第一调参单元,配置为利用所述损失梯度调整所述第一参数部分,所述训练损失还用于所述其他客户端调整各自维护的部分参数以及所述服务器调整所述后N-K个隐层中的参数。
19.根据权利要求18所述的装置,其中,所述装置还包括:
加密单元,配置为基于所述MPC技术,对所述第一特征部分和第一参数部分进行加密;
提供单元,配置为将得到的第一加密特征和第一加密参数提供给所述其他客户端。
20.根据权利要求19所述的装置,其中,所述MPC技术包括秘密共享;所述加密单元具体配置为:
利用特征随机数与所述第一特征部分进行加和,得到所述第一加密特征;
利用参数随机数与所述第一参数部分进行加和,得到所述第一加密参数。
21.根据权利要求18所述的装置,其中,所述第一确定单元具体配置为:
对所述第一特征部分和所述加密特征进行综合,得到第一综合特征;
对所述第一参数部分和所述加密参数进行综合,得到第一综合参数;
利用所述第一综合参数对所述第一综合特征进行计算,得到所述第一输出。
22.根据权利要求18所述的装置,其中,所述装置还包括第二调参单元,配置为:
在所述第一攻击损失减小的方向,调整所述第一攻击者模型的参数;或者,
在所述第一攻击损失减小的方向,调整所述第一攻击者模型的参数;并且,在所述第一攻击损失增大的方向,调整所述第一参数部分。
23.根据权利要求18所述的装置,其中,在所述第一客户端为存储有所述样本标签的第二客户端,并且所述服务器中部署有所述神经网络的输出层的情况下,所述装置还包括:
第三发送单元,配置为向所述服务器发送所述样本标签,以使所述服务器根据所述样本标签和所述预测结果,确定所述预测损失;
其中,所述训练损失还用于所述服务器调整所述输出层中的参数。
24.根据权利要求18所述的装置,其中,在所述第一客户端为存储有所述样本标签的第二客户端,并且所述第二客户端中部署有所述神经网络的输出层的情况下,所述装置还包括:
第二接收单元,配置为从服务器接收针对第N个隐层的输出;
第二输入单元,配置为将其输入所述输出层,得到所述预测结果;
第三确定单元,配置为基于所述预测结果和所述样本标签,确定所述预测损失;
第四发送单元,配置为向所述服务器发送所述预测损失。
25.一种计算机可读存储介质,其上存储有计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-12中任一项的所述的方法。
26.一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-12中任一项所述的方法。
CN201911039139.6A 2019-10-29 2019-10-29 实现安全防御的多方联合训练神经网络的方法及装置 Active CN110751291B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911039139.6A CN110751291B (zh) 2019-10-29 2019-10-29 实现安全防御的多方联合训练神经网络的方法及装置
PCT/CN2020/108957 WO2021082633A1 (zh) 2019-10-29 2020-08-13 实现安全防御的多方联合训练神经网络的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911039139.6A CN110751291B (zh) 2019-10-29 2019-10-29 实现安全防御的多方联合训练神经网络的方法及装置

Publications (2)

Publication Number Publication Date
CN110751291A CN110751291A (zh) 2020-02-04
CN110751291B true CN110751291B (zh) 2021-02-12

Family

ID=69280892

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911039139.6A Active CN110751291B (zh) 2019-10-29 2019-10-29 实现安全防御的多方联合训练神经网络的方法及装置

Country Status (2)

Country Link
CN (1) CN110751291B (zh)
WO (1) WO2021082633A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110751291B (zh) * 2019-10-29 2021-02-12 支付宝(杭州)信息技术有限公司 实现安全防御的多方联合训练神经网络的方法及装置
CN110990857B (zh) * 2019-12-11 2021-04-06 支付宝(杭州)信息技术有限公司 保护隐私安全的多方联合进行特征评估的方法及装置
CN111369260A (zh) * 2020-03-10 2020-07-03 支付宝(杭州)信息技术有限公司 保护隐私的风险预测方法及装置
CN111177768A (zh) * 2020-04-10 2020-05-19 支付宝(杭州)信息技术有限公司 保护数据隐私的双方联合训练业务预测模型的方法和装置
CN111461309B (zh) * 2020-04-17 2022-05-17 支付宝(杭州)信息技术有限公司 实现隐私保护的更新强化学习系统的方法及装置
CN111737755B (zh) * 2020-07-31 2020-11-13 支付宝(杭州)信息技术有限公司 业务模型的联合训练方法及装置
CN112100628B (zh) * 2020-11-16 2021-02-05 支付宝(杭州)信息技术有限公司 保护神经网络模型安全的方法及装置
US11711348B2 (en) 2021-02-22 2023-07-25 Begin Ai Inc. Method for maintaining trust and credibility in a federated learning environment
CN113807538B (zh) * 2021-04-09 2024-02-06 京东科技控股股份有限公司 联邦学习方法、装置、电子设备及存储介质
CN113792337B (zh) * 2021-09-09 2023-08-11 浙江数秦科技有限公司 一种基于隐私计算的资质审核系统
CN114500071B (zh) * 2022-02-10 2024-04-16 江苏大学 一种针对目标网站动态增长的自适应指纹攻击方法和系统
CN115550071B (zh) * 2022-11-29 2023-04-07 支付宝(杭州)信息技术有限公司 一种数据处理方法、装置、存储介质及设备
CN116092683B (zh) * 2023-04-12 2023-06-23 深圳达实旗云健康科技有限公司 一种原始数据不出域的跨医疗机构疾病预测方法
CN116432039B (zh) * 2023-06-13 2023-09-05 支付宝(杭州)信息技术有限公司 协同训练方法及装置、业务预测方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110334808A (zh) * 2019-06-12 2019-10-15 武汉大学 一种基于对抗样本训练的对抗攻击防御方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9241069B2 (en) * 2014-01-02 2016-01-19 Avaya Inc. Emergency greeting override by system administrator or routing to contact center
CN109388661B (zh) * 2017-08-02 2020-04-21 创新先进技术有限公司 一种基于共享数据的模型训练方法及装置
CN111758108A (zh) * 2018-01-17 2020-10-09 非学习人工智能股份有限公司 用于对概率分布进行建模的系统和方法
CN108446765A (zh) * 2018-02-11 2018-08-24 浙江工业大学 面向深度学习对抗性攻击的多模型协同防御方法
CN109325584B (zh) * 2018-08-10 2021-06-25 深圳前海微众银行股份有限公司 基于神经网络的联邦建模方法、设备及可读存储介质
CN109507655B (zh) * 2018-12-11 2022-09-02 西北工业大学 基于导向重构与范数约束dbn的sar目标识别算法
CN109684855B (zh) * 2018-12-17 2020-07-10 电子科技大学 一种基于隐私保护技术的联合深度学习训练方法
CN110008696A (zh) * 2019-03-29 2019-07-12 武汉大学 一种面向深度联邦学习的用户数据重建攻击方法
CN110288094B (zh) * 2019-06-10 2020-12-18 深圳前海微众银行股份有限公司 基于联邦学习的模型参数训练方法及装置
CN110751291B (zh) * 2019-10-29 2021-02-12 支付宝(杭州)信息技术有限公司 实现安全防御的多方联合训练神经网络的方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110334808A (zh) * 2019-06-12 2019-10-15 武汉大学 一种基于对抗样本训练的对抗攻击防御方法

Also Published As

Publication number Publication date
WO2021082633A1 (zh) 2021-05-06
CN110751291A (zh) 2020-02-04

Similar Documents

Publication Publication Date Title
CN110751291B (zh) 实现安全防御的多方联合训练神经网络的方法及装置
Boulemtafes et al. A review of privacy-preserving techniques for deep learning
US11902413B2 (en) Secure machine learning analytics using homomorphic encryption
CN112822005B (zh) 基于同态加密的安全迁移学习系统
Zheng et al. Privacy-preserving image denoising from external cloud databases
Niu et al. Toward verifiable and privacy preserving machine learning prediction
CN113239404A (zh) 一种基于差分隐私和混沌加密的联邦学习方法
US20190319783A1 (en) Generating Cryptographic Function Parameters Based on an Observed Astronomical Event
CN111612167A (zh) 机器学习模型的联合训练方法、装置、设备及存储介质
CN111935179A (zh) 一种基于可信执行环境的模型训练方法和装置
CN110969243A (zh) 防止隐私泄漏的对抗生成网络的训练方法及装置
WO2021257817A1 (en) System and method for secure and robust distributed deep learning
CN117349899B (zh) 基于遗忘模型的敏感数据处理方法、系统及存储介质
Zhang et al. Teeslice: slicing dnn models for secure and efficient deployment
US11829468B2 (en) Neural network confidentiality
Prabhu et al. Privacy preserving steganography based biometric authentication system for cloud computing environment
Manisha et al. CBRC: a novel approach for cancelable biometric template generation using random permutation and Chinese Remainder Theorem
Chen et al. MP-CLF: An effective Model-Preserving Collaborative deep Learning Framework for mitigating data leakage under the GAN
CN116432040B (zh) 基于联邦学习的模型训练方法、装置、介质以及电子设备
Guo et al. Robust and privacy-preserving collaborative learning: A comprehensive survey
CN112101555A (zh) 多方联合训练模型的方法和装置
Sarkar Mutual learning-based efficient synchronization of neural networks to exchange the neural key
Islam et al. Compact: Approximating Complex Activation Functions for Secure Computation
Shen et al. Towards efficient and secure delivery of data for deep learning with privacy-preserving
CN114912146B (zh) 一种垂直联邦架构下的数据信息防御方法、系统、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant