CN112132270B - 基于隐私保护的神经网络模型训练方法、装置及*** - Google Patents
基于隐私保护的神经网络模型训练方法、装置及*** Download PDFInfo
- Publication number
- CN112132270B CN112132270B CN202011325643.5A CN202011325643A CN112132270B CN 112132270 B CN112132270 B CN 112132270B CN 202011325643 A CN202011325643 A CN 202011325643A CN 112132270 B CN112132270 B CN 112132270B
- Authority
- CN
- China
- Prior art keywords
- model
- client
- neural network
- server
- current
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Bioethics (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书实施例提供基于隐私保护的神经网络模型训练方法、装置及***。每个第一成员设备具有本地数据并且部署至少一个客户端模型,第二成员设备部署至少一个服务端模型,至少一个客户端模型和至少一个服务端模型按照模型间隔方式组成神经网络模型。在每次循环时,各个第一成员设备和第二成员设备使用第一成员设备的本地数据执行模型预测计算。对于每个客户端模型,各个第一成员设备使用本地数据或者在前服务端模型的模型计算结果进行多方安全计算。对于每个服务端模型,第二成员设备使用在前客户端模型的模型计算结果执行本地计算。基于模型预测值确定预测差值,并且在各个成员设备处通过反向传播方式来使用加噪声的梯度下降法进行模型更新。
Description
技术领域
本说明书的实施例通常涉及人工智能领域,更具体地,涉及基于隐私保护的神经网络模型训练方法、装置及***。
背景技术
对于公司或企业而言,数据是非常重要的资产,比如,用户数据和业务数据。用户数据例如可以包括用户身份数据等。业务数据例如可以包括在公司提供的业务应用上发生的业务数据,比如,淘宝上的商品交易数据等。保护数据安全是公司或企业广泛关注的技术问题。
在公司或企业进行业务运营时,通常会需要使用机器学习模型来进行模型预测,以确定业务运营风险或者进行业务运营决策。神经网络模型是机器学习领域广泛使用的机器学习模型。在很多情况下,神经网络模型需要多个模型训练参与方来协同进行模型训练,多个模型训练参与方(例如,电子商务公司、快递公司和银行)各自拥有训练神经网络模型所使用的训练数据中的部分数据。该多个模型训练参与方希望共同使用彼此的数据来统一训练神经网络模型,但又不想把各自的隐私数据提供给其它各个模型训练参与方以防止自己的隐私数据泄露。
面对这种情况,提出了能够保护隐私数据安全的神经网络模型训练方法,其能够在保证多个模型训练参与方的各自隐私数据安全的情况下,协同该多个模型训练参与方来训练神经网络模型。
发明内容
鉴于上述问题,本说明书的实施例提供了一种基于隐私保护的神经网络模型训练方法、装置及***,其能够在保证多个训练参与方的各自隐私数据安全的情况下实现神经网络模型训练。
根据本说明书的实施例的一个方面,提供一种基于隐私保护的神经网络模型训练方法,其中,所述神经网络模型经由第二成员设备和多个第一成员设备协同训练,每个第一成员设备具有本地数据并且部署有至少一个客户端模型,所述第二成员设备部署有至少一个服务端模型,所述至少一个客户端模型和所述至少一个服务端模型按照客户端模型与服务端模型间隔的方式组成所述神经网络模型,所述方法包括:执行下述循环过程,直到满足循环结束条件:经由所述多个第一成员设备和所述第二成员设备,使用各个第一成员设备的本地数据执行模型预测计算得到所述当前神经网络模型的当前模型预测值,其中,对于每个客户端模型,经由各个第一成员设备使用该客户端模型的各自当前模型参数以及本地数据或者在前服务端模型的当前模型计算结果进行多方安全计算,得到该客户端模型的当前模型计算结果,以及对于每个服务端模型,经由所述第二成员设备使用在前客户端模型的当前模型计算结果和该服务端模型的当前模型参数执行本地计算,得到该服务端模型的当前模型计算结果;在具有标签数据的第一成员设备或者所述第二成员设备处,基于所述当前模型预测值和标签数据,确定当前预测差值;以及在各个成员设备处,通过反向传播方式来进行当前模型更新,其中,各个客户端模型的至少部分模型结构的模型参数使用加噪声的梯度下降法进行模型参数更新,在未满足所述循环结束条件时,各个客户端模型和服务端模型的更新后的模型参数充当下一循环过程的各个客户端模型和服务端模型的当前模型参数。
可选地,在上述方面的一个示例中,所述加噪声的梯度下降法可以包括贝叶斯学习法。
可选地,在上述方面的一个示例中,各个客户端模型的剩余模型结构的模型参数使用加噪声的梯度下降法进行模型参数更新,和/或各个服务端模型的部分或者所有模型结构的模型参数使用加噪声的梯度下降法进行模型参数更新。
可选地,在上述方面的一个示例中,所述服务端模型中的神经网络模型分层结构的模型计算与数据隐私保护无关。
可选地,在上述方面的一个示例中,使用加噪声的梯度下降法进行模型参数更新的客户端模型结构所包括的隐层的总层数根据用于模型训练的算力、应用场景所要求的训练时效性和/或训练安全等级确定。
可选地,在上述方面的一个示例中,所述神经网络模型包括N个隐层,所述至少一个客户端模型包括单个客户端模型,所述至少一个服务端模型包括单个服务端模型,所述单个客户端模型包括输入层以及第一隐层到第K隐层,以及所述单个服务端模型包括输出层以及第K+1隐层到第N隐层。
可选地,在上述方面的一个示例中,所述神经网络模型包括N个隐层,所述至少一个客户端模型包括第一客户端模型和第二客户端模型,所述至少一个服务端模型包括单个服务端模型,所述第一客户端模型包括输入层以及第一隐层到第K隐层,所述单个服务端模型包括第K+1隐层到第L隐层,以及所述第二客户端模型包括输出层以及第L+1隐层到第N隐层。
可选地,在上述方面的一个示例中,所述神经网络模型包括N个隐层,所述至少一个客户端模型包括第一客户端模型和第二客户端模型,所述至少一个服务端模型包括单个服务端模型,所述第一客户端模型包括输入层以及第一隐层到第K隐层,所述单个服务端模型包括第K+1隐层到第N隐层,以及所述第二客户端模型包括输出层。
可选地,在上述方面的一个示例中,所述循环结束条件包括:循环次数达到预定次数;或者当前预测差值在预定差值范围内。
可选地,在上述方面的一个示例中,所述多方安全计算包括下述多方安全计算中的一种:基于秘密共享的多方安全计算;基于同态加密的多方安全计算;基于不经意传输的多方安全计算;基于混淆电路的多方安全计算;和基于可信执行环境的多方安全计算。
可选地,在上述方面的一个示例中,所述第二成员设备处的模型计算使用TensorFlow或Pytorch技术实现。
根据本说明书的实施例的另一方面,提供一种基于隐私保护的神经网络模型训练装置,其中,所述神经网络模型经由第二成员设备和多个第一成员设备协同训练,每个第一成员设备具有本地数据并且部署有至少一个客户端模型,所述第二成员设备部署有至少一个服务端模型,所述至少一个客户端模型和所述至少一个服务端模型按照客户端模型与服务端模型间隔的方式组成所述神经网络模型,所述神经网络模型训练装置包括:模型预测单元,部署在各个第一成员设备和所述第二成员设备处,使用各个第一成员设备的本地数据执行模型预测计算得到所述当前神经网络模型的当前模型预测值,其中,对于每个客户端模型,经由各个第一成员设备使用该客户端模型的各自当前模型参数以及本地数据或者在前服务端模型的当前模型计算结果进行多方安全计算,得到该客户端模型的当前模型计算结果,以及对于每个服务端模型,经由所述第二成员设备使用在前客户端模型的当前模型计算结果和该服务端模型的当前模型参数执行本地计算,得到该服务端模型的当前模型计算结果;预测差值确定单元,部署在具有标签数据的第一成员设备处或者所述第二成员设备处,基于所述当前模型预测值和标签数据,确定当前预测差值;以及模型更新单元,部署在各个成员设备处,通过反向传播方式来进行当前模型更新,其中,各个客户端模型的至少部分模型结构的模型参数使用加噪声的梯度下降法进行模型参数更新,在未满足循环结束条件时,各个客户端模型和服务端模型的更新后的模型参数充当下一循环过程的各个客户端模型和服务端模型的当前模型参数,其中,所述模型预测单元、所述预测差值确定和所述模型更新单元循环操作,直到满足所述循环结束条件。
可选地,在上述方面的一个示例中,所述加噪声的梯度下降法包括贝叶斯学习法。
可选地,在上述方面的一个示例中,各个客户端模型的剩余模型结构的模型参数使用加噪声的梯度下降法进行模型参数更新,和/或各个服务端模型的部分或者所有模型结构的模型参数使用加噪声的梯度下降法进行模型参数更新。
可选地,在上述方面的一个示例中,使用加噪声的梯度下降法进行模型参数更新的客户端模型结构所包括的隐层的总层数根据用于模型训练的算力、应用场景所要求的训练时效性和/或训练安全等级确定。
根据本说明书的实施例的另一方面,提供一种基于隐私保护的神经网络模型训练***,包括:多个第一成员设备,每个第一成员设备具有本地数据并且部署有至少一个客户端模型;第二成员设备,部署有至少一个服务端模型;以及如上所述的神经网络模型训练装置,其中,所述至少一个客户端模型和所述至少一个服务端模型按照客户端模型与服务端模型间隔的方式组成所述神经网络模型。
根据本说明书的实施例的另一方面,提供一种电子设备,包括:一个或多个处理器,以及与所述一个或多个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如上所述的神经网络模型训练方法。
根据本说明书的实施例的另一方面,提供一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上所述的神经网络模型训练方法。
附图说明
通过参照下面的附图,可以实现对于本说明书的实施例内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。
图1示出了神经网络模型的一个示例的示意图。
图2示出了基于隐私保护的神经网络模型训练方法的一个示例的示意图。
图3示出了根据本说明书的实施例的基于隐私保护的神经网络模型训练***的一个示例架构图。
图4示出了根据本说明书的实施例的神经网络模型的一个分割示例的示意图。
图5A-5D示出了根据本说明书的实施例的经过分割后的客户端子模型以及服务端模型的示例示意图。
图6示出了根据本说明书的实施例的基于隐私保护的神经网络模型训练方法的一个示例的流程图。
图7A示出了根据本公开的实施例的经过水平切分的训练样本数据的示例的示意图。
图7B示出了根据本公开的实施例的经过垂直切分的训练样本数据的示例的示意图。
图8A示出了根据本说明书的实施例的神经网络模型的另一分割示例的示意图。
图8B示出了根据本说明书的实施例的神经网络模型的另一分割示例的示意图。
图9示出了根据本说明书的实施例的基于隐私保护的模型训练装置的方框图。
图10示出了根据本说明书的实施例的用于实现基于隐私保护的神经网络模型训练的电子设备的方框图。
具体实施方式
现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书的实施例内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
图1示出了神经网络模型100的一个示例的示意图。
如图1所示,神经网络模型100包括输入层110、第一隐层120、第二隐层130、第三隐层140和输出层150。
输入层110包括3个输入节点、和以及偏置项。三个输入节点、
和分别接收来自三个不同数据拥有方的数据。第一隐层120包括2个隐层节点和
以及偏置项。隐层节点和分别与输入层110的3个输入节点、和以及偏置
项全连接。输入节点与隐层节点和之间的权重分别为和。输入节点与隐层节点和之间的权重分别为和。输入节点与隐层节点和之间的权重分别为和。
在图1中示出的神经网络模型中,权重、、、、、、、、、、、、、、和是神经网络模型的各
层模型参数。在进行前馈计算时,输入层110的输入节点、和经过计算后得到第一
隐层120的各个隐层节点和的输入和,其中,,以及。然后,分别对和进行激活函数处
理,得到隐层节点和的输出和。按照上述方式逐层进行前馈计算,如图1中所
示,最后得到神经网络模型的输出。
图2示出了基于隐私保护的神经网络模型训练方法200的一个示例的示意图。在图
2中示出的神经网络模型训练方法200中,以三个训练参与方(数据拥有方)Alice、Bob和
Charlie(即,图1中的输入节点、 和)为例来进行说明,其中,第一训练参与方
Alice为训练发起方,即,使用Alice处的训练样本数据来进行训练。在图2中示出的方法中,
各个训练参与方处的训练样本数据是水平切分数据。在各个训练参与方Alice、Bob和
Charlie处都具有神经网络模型的所有分层模型的模型结构,并且在训练完成后,各个训练
参与方的各层模型参数仅仅是训练出的神经网络模型的对应层模型参数的一部分,并且各
个训练参与方的各层模型参数之和等于训练出的神经网络模型的对应层模型参数。
如图2所示,首先,在块210,第一训练参与方Alice、第二训练参与方Bob和Charlie初始化各自的神经网络模型的模型参数,以获得其模型参数的初始值,并且将已执行训练循环次数t初始化为零。这里,假设循环结束条件为执行预定次数训练循环,例如,执行T次训练循环。
在如上初始化后,循环执行块220到块260的操作,直到满足循环结束条件。
在得到当前预测值后,在块230,在第一训练参与方Alice处,确定当前预测值与
对应的标签值(标签数据)Y之间的预测差值。这里,是一个列向量,Y是一个表示
训练样本X的标签数据的列向量,以及是表示训练样本X的当前预测值的列向量。如果训
练样本X仅包含单个训练样本,则、Y和都是仅具有单个元素的列向量。如果训练样本X包
含多个训练样本,则、Y和都是具有多个元素的列向量,其中,中的每个元素是该多个
训练样本中的对应训练样本的当前预测值,Y中的每个元素是该多个训练样本中的对应训
练样本的标签值,以及中的每个元素是该多个训练样本的对应训练样本的标签值与当前
预测值的差值。
然后,在块240,将预测差值分别发送到第二训练参与方Bob和Charlie。
在块250,在各个训练参与方处,基于所确定的预测差值,通过反向传播来根据梯度下降法逐层调整各个训练参与方处的神经网络模型的各层模型参数。
接着,在块260,判断是否达到预定循环次数。如果未达到预定循环次数,则返回到块220的操作来执行下一训练循环过程,其中,各个训练参与方在当前循环过程所获得的更新后的当前模型被用作下一训练循环过程的当前模型。
如果达到预定循环次数,则各个训练参与方将各自的模型参数的当前更新值,存储为其模型参数的最终值,从而得到各自的训练后的神经网络模型,然后流程结束。
这里要说明的是,可选地,训练循环过程的结束条件也可以是所确定出的预测差
值位于预定范围内,例如,预测差值中的各个元素之和小于预定阈值,或者预测差值
中的各个元素的均值小于预定阈值。在这种情况下,块260的操作在块230之后执行。如果
满足循环结束条件,则流程结束。否则,执行块240和250的操作,然后返回到块220,执行下
一循环。
在图2中示出的神经网络模型训练方法200中,在各个训练参与方处实现神经网络模型的所有分层的模型结构,并且各层计算都是采用多方安全计算(Secure Multi-PartyComputation,MPC)的方式实现。在这种情况下,由于采用神经网络模型的各层计算都使用MPC进行,然而MPC的计算方式复杂并且计算效率不高,从而导致这种神经网络模型训练方式的效率低下。
鉴于上述,本说明书的实施例提出一种神经网络模型训练方法,该神经网络模型训练方法由多个第一成员设备和第二成员设备联合执行。每个第一成员设备具有本地数据并且部署有至少一个客户端模型,第二成员设备部署有至少一个服务端模型,并且各个第一成员设备的至少一个客户端模型与第二成员设备的至少一个服务端模型按照客户端模型与服务端模型间隔的方式组成待训练的神经网络模型。而且,第一成员设备所具有的每个客户端模型与神经网络模型的一个或多个分层结构对应。此外,每个第一成员设备的对应客户端模型具有相同的模型结构。在进行模型训练时,对于每个客户端模型,各个第一成员设备使用该客户端模型的各自当前模型参数以及本地数据或者在前服务端模型的当前模型计算结果进行多方安全计算,得到该客户端模型的当前模型计算结果。对于每个服务端模型,第二成员设备使用在前客户端模型的当前模型计算结果和该服务端模型的当前模型参数执行本地计算(非MPC计算),得到该服务端模型的当前模型计算结果,例如,第二成员设备可以采用TensorFlow或Pytorch技术来进行本地模型计算。按照这种方式,由于仅仅部分神经网络模型采用MPC方式进行模型计算,剩余部分可以采用其他更快的非MPC方式进行模型计算,从而可以提高模型训练效率。此外,在进行神经网络模型分割时,可以将所涉及的模型计算与数据隐私保护无关的神经网络模型部分分割为服务端模型,从而可以保护数据隐私安全。
在本说明书的实施例中,神经网络模型所使用的训练样本数据可以包括数据拥有方在本地收集的本地数据。在神经网络模型应用于业务服务***时,本地数据可以是业务服务提供方或运营方收集的业务数据。所收集的本地数据例如可以是图像数据、语音数据或文本数据。相应地,神经网络模型可以应用于基于图像数据、语音数据或者文本数据的业务风险识别、业务分类或者业务决策等等。例如,本地数据可以是由医院收集的医疗数据,并且神经网络模型可以用于进行疾病检查或疾病诊断。或者,所收集的本地数据可以包括用户特征数据。相应地,神经网络模型可以应用于基于用户特征数据的业务风险识别、业务分类、业务推荐或者业务决策等等。在神经网络模型应用于业务服务时,神经网络模型也可以称为业务模型。业务模型的示例可以包括但不限于人脸识别模型、疾病诊断模型、业务风险预测模型、服务推荐模型等等。
图3示出了根据本说明书的实施例的基于隐私保护的神经网络模型训练***300的架构示意图。
如图3所示,神经网络模型训练***300包括多个第一成员设备310、第二成员设备320和神经网络模型训练装置330,在图3的示例中示出了3个第一成员设备310-1到310-3。在其它实施例中,可以包括2个第一成员设备或者多于3个第一成员设备。
在一些实施例中,第一成员设备310以及第二成员设备320可以是任何合适的具有计算能力的计算设备。所述计算设备包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(PDA)、手持装置、消息收发设备、可佩戴计算设备、消费电子设备等等。
各个第一成员设备310-1到310-3在本地收集各自的本地数据311-1到311-3。各个第一成员设备310所收集的本地数据可以包括本地私有数据和本地非私有数据。在本说明书中,本地私有数据是隐私数据,不能泄露给其它成员设备,从而在进行神经网络模型训练时不能以明文或将该数据全部共享给其它成员设备。本地非私有数据是指可以分享给其它成员设备的本地数据。本地非私有数据可以被其它成员设备使用来形成公域数据。
在一些实施例中,各个第一成员设备310的本地数据311-1到311-3例如可以包括但不限于用户特征数据、业务处理数据、金融交易数据、商品交易数据、医疗健康数据等等。所述本地数据例如可以应用于神经网络模型来进行模型预测、模型训练以及其它合适的多方数据联合处理。
此外,各个第一成员设备310-1到310-3处部署或维护至少一个客户端模型313-1到313-3。各个第一成员设备310-1到310-3处的对应客户端模型具有相同的模型结构,并且与待训练的神经网络模型的一个或多个分层结构对应。第二成员设备320处部署或维护至少一个服务端模型321,每个服务端模型与待训练的神经网络模型的一个或多个分层结构对应。而且,至少一个客户端模型与至少一个服务端模型按照客户端模型与服务端模型间隔的方式共同组成待训练的神经网络模型。换言之,待训练的神经网络模型被分割为彼此间隔的至少一个客户端模型和至少一个服务端模型。
在一些实施例中,第一成员设备310可以是参与业务处理的业务参与方,或者是为业务参与方提供数据的数据拥有方。例如,第一成员设备310例如可以是不同金融机构或医疗机构的私有数据存储服务器或智能终端设备。第二成员设备320可以是模型提供方设备或者第三方设备。在第二成员设备320处可以不具有用于神经网络模型训练的训练数据。例如,第二成员设备320例如可以是模型提供方的服务器。
神经网络模型训练装置330的各个组件或部分组件可以包括多个子组件,所述子组件具有相同的结构,并且分别部署在第一成员设备310-1到310-3以及第二成员设备320处(例如,可以作为第一成员设备310和第二成员设备320的组件集成在第一成员设备310和第二成员设备320处)。神经网络模型训练装置330的结构和操作将在下面详细描述。
在一些实施例中,第一成员设备310-1到310-3可以与第二成员设备320通过网络340相互通信,由此模型训练装置330可以使用各个第一成员设备310-1到310-3处的本地数据协同进行神经网络模型训练。在本说明书的其它实施例中,第一成员设备310-1到310-3也可以与第二成员设备320直接可通信地连接来相互通信。
在一些实施例中,网络340可以是有线网络或无线网络中的任意一种或多种。网络340的示例可以包括但不限于电缆网络、光纤网络、电信网络、企业内部网络、互联网、局域网络(LAN)、广域网络(WAN)、无线局域网络(WLAN)、城域网(MAN)、公共交换电话网络(PSTN)、蓝牙网络、紫蜂网络(ZigZee)、近场通讯(NFC)、设备内总线、设备内线路等或其任意组合。
在本说明书的一个示例中,神经网络模型可以包括N个隐层,神经网络模型可以被分割为单个客户端模型(第一客户端模型)和单个服务端模型。第一客户端模型包括输入层以及第一隐层到第K隐层,以及服务端模型包括输出层以及第K+1隐层到第N隐层。
图4示出了根据本说明书的实施例的神经网络模型100的一个分割示例的示意图。
如图4所示,神经网络模型100被从第二隐层130和第三隐层140之间分割为客户端模型和服务端模型。客户端模型包括输入层110、第一隐层120和第二隐层130。服务端模型包括第三隐层140和输出层150。
由于图3中示出了3个第一成员设备310-1到310-2,从而使得每个客户端模型所对应的待训练神经网络模型的分层模型结构的模型参数被分解为3个部分,每个第一成员设备具有其中一部分。具体地,待训练的神经网络模型的输入层与第一隐层120之间的模型参数以及第一隐层120与第二隐层130之间的模型参数分别被分割为3个部分,每个第一成员设备的客户端模型拥有其中一部分。
图5A-5D示出了根据本说明书的实施例的经过分割后的客户端模型以及服务端模型的示例示意图。其中,图5A-5C中示出的模型参数与图4中的神经网络模型的模型参数之间的关系如下所示:
此外,如图5D所示,服务端模型的各层模型参数与神经网络模型的对应层的模型参数完全相同。这里要说明的是,图5A-5D中的神经网络模型分割对应于数据水平切分情形。在数据垂直切分的情况下,对于输入层,每个数据拥有方只有一个节点。在这种情况下,可以通过垂直-水平切换来将每个数据拥有方的一个节点变换为3个节点,从而按照图5A-5D中示出的神经网络模型分割方式来进行分割。
图6示出了根据本说明书的实施例的基于隐私保护的神经网络模型训练方法600的一个示例的流程图。在图6中示出的神经网络模型训练方法600中,假设存在M(即,第一数目)个第一成员设备。此外,图6中示出的神经网络模型分割方式是图4中的分割方式。在本说明书的实施例中,M个第一成员设备所拥有的本地数据可以是经过水平切分的训练数据,或者可以是经过垂直切分的训练数据。
图7A示出了根据本说明书的实施例的经过水平切分的训练样本数据的示例的示意图。图7A中示出了2个数据方Alice和Bob,多个数据方也类似。每个数据方Alice和Bob拥有的训练样本子集中的每条训练样本是完整的,即,每条训练样本包括完整的特征数据(x)和标记数据(y)。比如,Alice拥有完整的训练样本(x0,y0)。
图7B示出了根据本说明书的实施例的经过垂直切分的训练样本数据的示例的示
意图。图7B中示出了2个数据方Alice和Bob,多个数据方也类似。每个数据方Alice和Bob拥
有训练样本集中的所有训练样本中的每条训练样本的部分训练子样本,对于每条训练样
本,数据方Alice和Bob拥有的部分训练子样本组合在一起,可以构成该训练样本的完整内
容。比如,假设某个训练样本的内容包括标签和属性特征、,则经过垂直切分后,训
练参与方Alice拥有该训练样本的和,以及训练参与方Bob拥有该训练样本的。
回到图6,首先,在块610,初始化M个第一成员设备处的各个客户端模型以及第二成员设备处的服务端模型。
接着,循环执行块620到块660的操作,直到满足循环结束条件。
具体地,在块620,使用各个第一成员设备处的本地数据(当前训练数据)以及各个客户端模型的当前模型参数,逐层进行多方安全计算,得到各个客户端模型的当前模型计算结果。多方安全计算的具体实现过程可以参考本领域中的任何合适的多方安全计算实现方案。在本说明书中,多方安全计算的示例可以包括但不限于基于秘密共享(SecretSharing,SS)的多方安全计算;基于同态加密(Homomorphic Encryption,HE)的多方安全计算;基于不经意传输的多方安全计算;基于混淆电路(Garbled Circuit,GC)的多方安全计算和基于可信执行环境的多方安全计算中的一种。
在块630,将各个客户端模型的当前模型计算结果提供给第二成员设备,由第二成
员设备使用各个客户端模型的当前模型计算结果以及服务端模型的当前模型参数来在本
地逐层计算,得到神经网络模型的当前模型计算结果(即,当前模型预测值)。针对服务端模
型的模型计算可以采用非MPC方式实现,例如,可以在第二成员设备处采用TensorFlow或者
Pytorch技术实现。这里要说明的是,各个客户端模型的当前模型计算结果可以通过合并后
提供给第二成员设备来进行服务端模型计算。即,以及。
在如上得到神经网络模型的当前模型预测值后,在块640,基于当前模型预测值和标签数据,确定当前预测差值。
这里要说明的是,在一个示例中,所述当前预测差值的确定过程可以在第二成员设备320处执行。在这种情况下,具有标签数据的第一成员设备需要将所具有的标签数据发送给第二成员设备。
可选地,在另一示例中,所述当前预测差值的确定过程可以在具有标签数据的第一成员设备处执行。在这种情况下,第二成员设备所确定出的当前模型预测值被反馈回具有标签数据的第一成员设备,然后在该第一成员设备处确定出当前预测差值,并且将当前预测差值发送给第二成员设备。按照这种方式,无需将标签数据发送给第二成员设备,从而可以进一步保护第一成员设备处的标签数据的隐私安全。
接着,在块650,判断是否满足循环结束条件。在一个示例中,例如,判断当前预测差值是否在预定差值范围内,比如,判断当前预测差值是否小于预定阈值。如果当前预测差值在预定差值范围内,例如,当前预测差值小于预定阈值,则训练过程结束。
如果当前预测差值不在预定差值范围内,例如,当前预测差值不小于预定阈值,则在块660,根据当前预测差值,通过反向传播方式来更新各个成员设备的当前模型的模型参数,其中,各个客户端模型的至少部分模型结构的模型参数使用加噪声的梯度下降法执行模型参数更新。例如,在各个成员设备处,根据当前预测差值,通过反向传播来逐层调整服务端模型和各个客户端模型的各层模型参数。其中,在执行模型参数更新时,对于每个客户端模型的至少部分模型结构,使用加噪声的梯度下降法执行当前模型参数更新,而对于各个客户端模型的剩余模型结构以及各个服务端模型的所有模型结构的模型参数,可以采用多种方式来执行模型参数更新。例如,在一个示例中,对于各个客户端模型的剩余模型结构以及各个服务端模型的所有模型结构的模型参数,都采用正常的梯度下降法来执行当前模型参数更新。在另一示例中,对于各个客户端模型的剩余模型结构,使用加噪声的梯度下降法来执行当前模型参数更新,而对于各个服务端的所有模型结构,根据正常的梯度下降法来执行当前模型参数更新。在另一示例中,对于各个服务端模型的部分模型结构,使用加噪声的梯度下降法来执行当前模型参数更新,而对于各个客户端模型的剩余模型结构以及各个服务端模型的剩余模型结构的模型参数,都采用正常的梯度下降法来执行当前模型参数更新。在另一示例中,对于各个服务端模型的所有模型结构,使用加噪声的梯度下降法来执行当前模型参数更新,以及对于各个客户端模型的剩余模型结构,采用正常的梯度下降法来执行当前模型参数更新。这里,每个客户端模型或服务端模型中的部分模型结构可以采用随机或指定的方式预先确定。
可选地,在一些实施例中,使用加噪声的梯度下降法进行模型参数更新的客户端模型结构所包括的隐层的总层数可以根据用于模型训练的算力、应用场景所要求的训练时效性和/或训练安全等级确定。
然后,返回到块620,执行下一循环过程,其中,所述更新后的服务端模型和各个客户端模型充当下一循环过程的当前服务端模型和各个当前客户端模型。
使用梯度下降法更新模型的过程如下公式所示:
而加噪声的梯度下降法通过在梯度中增加噪声来更新模型。可选地,在一个示例中,所述加噪声的梯度下降法可以包括贝叶斯学习法。贝叶斯学习法通过在梯度中增加服从高斯分布的噪声来更新模型,其过程如下公式所示:
此外,可选地,训练循环过程的循环结束条件也可以是达到预定循环次数。在这种情况下,块650的操作可以在块660的操作之后进行,即,在块640中确定出当前预测差值后,执行块660的操作后,然后判断是否达到预定循环次数。如果达到预定循环次数,则训练过程结束。如果未达到预定循环次数,则返回到块620,执行下一循环过程。
如上参照图3-图7B描述了根据本说明书的实施例的神经网络模型训练方法。在图4中示出的示例中,客户端模型包括2层隐层。在本说明书的其它实施例中,客户端模型可以包括更多或更少的隐层,例如可以包括1个隐层或者多于2个隐层。
这里要说明的是,图6中描述的神经网络模型训练方法是针对图4中示出的神经网络模型分割方案的神经网络模型训练方法。在本说明书的其它实施例中,神经网络模型可以按照其他分割方案进行分割,如图8A和图8B所示。
图8A示出了神经网络分割方案的另一示例示意图。如图8A所示,神经网络模型被分割为第一客户端模型、服务端模型和第二客户端模型。第一客户端模型包括输入层110和第一隐层120。服务端模型包括第二隐层130。第二客户端模型包括第三隐层140和输出层150。在图8A中示出的神经网络分割方案中,第一客户端模型和第二客户端模型中的每个可以采用与图5A-5C中类似的方式进行模型参数分割。服务端模型与神经网络模型的对应分层模型相同。这里要说明的是,在各个第一成员设备处都设置有第一客户端模型和第二客户端模型。
针对图8A中示出的神经网络分割方案,在进行神经网络模型训练时,在每次循环过程中,首先,各个第一成员设备使用各自的本地数据(当前训练样本数据)以及各自的第一客户端模型的当前模型参数,逐层进行多方安全计算,得到各个第一客户端模型的当前模型计算结果。然后,将各个第一客户端模型的当前模型计算结果提供给第二成员设备,由第二成员设备使用各个第一成员设备的第一客户端模型的当前模型计算结果以及服务端模型的当前模型参数在本地逐层进行模型计算(非多方安全计算),得到服务端模型的当前模型计算结果。随后,将服务端模型的当前模型计算结果提供给各个第一成员设备,各个第一成员设备使用服务端模型的当前模型计算结果以及各自第二客户端模型的当前模型参数,逐层进行多方安全计算,得到神经网络模型的当前模型预测结果。
图8B示出了神经网络分割方案的另一示例示意图。如图8B所示,神经网络模型被分割为至少一个客户端模型和至少一个服务端模型,例如,如图8B所示的第一客户端模型、第一服务端模型、第二客户端模型、第二服务模型和第三客户端模型。第一客户端模型包括输入层110和第一隐层120。第一服务端模型包括第二隐层130。第二客户端模型包括第三隐层140。第二服务端模型包括第四隐层150。第三客户端模型包括第五隐层160和输出层170。在图8B中示出的神经网络分割方案中,第一客户端模型、第二客户端模型和第三客户端模型中的每个可以采用与图5A-5C中类似的方式进行模型参数分割。第一和第二服务端模型与神经网络模型的对应分层模型相同。这里要说明的是,各个第一成员设备都设置有第一客户端模型、第二客户端模型和第三客户端模型。
针对图8B中示出的神经网络分割方案,在进行神经网络模型训练时,在每次循环过程中,首先,各个第一成员设备使用各自的本地数据(当前训练样本数据)以及各自的第一客户端模型的当前模型参数,逐层进行多方安全计算,得到各个第一客户端模型的当前模型计算结果并提供给第二成员设备。第二成员设备使用各个第一成员设备的第一客户端模型的当前模型计算结果以及第一服务端模型的当前模型参数在本地逐层进行模型计算(非MPC计算),得到第一服务端模型的当前模型计算结果并提供给各个第一成员设备。随后,各个第一成员设备使用第一服务端模型的当前模型计算结果以及各自的第一客户端模型的当前模型参数,逐层进行多方安全计算,得到各个第二客户端模型的当前模型计算结果并提供给第二成员设备。第二成员设备使用各个第一成员设备的第二客户端模型的当前模型计算结果以及第二服务端模型的当前模型参数在本地逐层进行模型计算(非MPC计算),得到第二服务端模型的当前模型计算结果并提供给各个第一成员设备。各个第一成员设备使用第二服务端模型的当前模型计算结果以及各自的第三客户端模型的当前模型参数,逐层进行多方安全计算,得到神经网络模型的当前模型预测结果。
此外,要说明的是,在本说明书的一个示例中,第一客户端模型可以包括部分隐层。在另一示例中,各个服务端模型可以至少包括部分隐层。
这里,要说明的是,在本说明书的实施例中,可以基于神经网络模型的各个分层模型的模型计算是否与数据隐私保护有关来进行神经网络模型分割。其中,与数据隐私保护有关的分层模型被分割到客户端模型,以及与数据隐私保护无关的分层模型被分割到服务端模型。此外,要说明的是,客户端模型也可以包括与数据隐私保护无关的分层模型。
在本说明书中,与数据隐私保护有关的模型计算可以是直接使用各个输入或者
输出Y的模型计算,例如,与输入层对应的模型计算或者与输出层对应的模型计算。与数据
隐私保护无关的模型计算可以是无需使用各个输入和输出Y的模型计算,例如,神经网络
模型中的中间隐层。
利用本说明书的实施例,通过针对客户端模型的模型计算采用MPC方式实现,以及针对服务端模型中的模型计算采用非MPC方式实现,从而可以减少执行多方安全计算的模型层数,由此提高模型训练速度,进而提升模型训练效率。
此外,根据本说明书的实施例的神经网络模型训练方法,仅仅与数据隐私保护无关的神经网络模型分层结构被分割到服务端模型,从而可以确保各个数据拥有方的数据隐私安全。
此外,根据本说明书的实施例的神经网络模型训练方案,可以在拥有标签数据的第一成员设备处执行当前预测差值的确定过程。按照这种方式,无需将标签数据发送给第二成员设备,从而可以进一步保护第一成员设备处的标签数据的数据隐私。
此外,在图6中示出的神经网络模型训练方法中,利用加噪声的梯度下降法来对每个客户端模型的至少部分模型结构进行模型更新,通过在梯度信息中增加噪声,可以防止第二成员设备试图根据梯度信息反推出第一成员设备处的本地数据,从而使得第一成员设备处的本地数据隐私保护更加安全。此外,利用加噪声的梯度下降法(贝叶斯学习法)还可以提升神经网络模型的泛化能力。
此外,根据本说明书的实施例的神经网络模型训练方案,使用加噪声的梯度下降法进行模型更新的客户端模型结构所包括的隐层的总层数可以根据用于模型训练的算力、应用场景所要求的训练时效性和/或训练安全等级进行调整,由此可以在进行神经网络模型分割时折衷考虑模型训练的环境条件、数据安全需求以及模型训练效率。
图9示出了根据本说明书的实施例的基于隐私保护的模型训练装置900的方框图。如图9所示,模型训练装置900包括模型预测单元910、预测差值确定单元920和模型更新单元930。
模型预测单元910、预测差值确定单元920和模型更新单元930循环执行操作,直到满足循环结束条件。所述循环结束条件可以包括:循环次数达到预定次数;或者当前预测差值在预定差值范围内。
具体地,模型预测单元910被配置为使用各个第一成员设备的本地数据执行模型预测计算得到当前神经网络模型的当前模型预测值,其中,对于每个客户端模型,经由各个第一成员设备使用该客户端模型的各自当前模型参数以及本地数据或者在前服务端模型的当前模型计算结果进行多方安全计算,得到该客户端模型的当前模型计算结果,以及对于每个服务端模型,经由所述第二成员设备使用在前客户端模型的当前模型计算结果和该服务端模型的当前模型参数执行本地计算,得到该服务端模型的当前模型计算结果。在本说明书的实施例中,模型预测单元910可以包括多个子模型预测单元,在各个第一成员设备和第二成员设备处分别部署一个子模型预测单元。
预测差值确定单元920被配置为基于当前模型预测值和标签数据,确定当前预测差值。在一个示例中,预测差值确定单元920可以部署在具有标签数据的第一成员设备处。在另一示例中,预测差值确定单元920可以部署在第二成员设备处。
模型更新单元930被配置为通过反向传播方式来进行当前模型更新,其中,各个客户端模型的至少部分模型结构的模型参数使用加噪声的梯度下降法执行模型参数更新。此外,在未满足循环结束条件时,各个客户端模型和服务端模型的更新后的模型参数充当下一循环过程的各个客户端模型和服务端模型的当前模型参数。在本说明书的实施例中,模型更新单元930可以包括多个子模型更新单元,在各个第一成员设备和第二成员设备处分别部署一个子模型更新单元。
如上参照图1到图9,对根据本说明书的实施例的基于隐私保护的神经网络模型训练方法、模型训练装置及神经网络模型训练***的实施例进行了描述。上面的模型训练装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。
图10示出了根据本说明书的实施例的用于实现基于隐私保护的神经网络模型训练的电子设备1000的结构框图。
如图10所示,电子设备1000可以包括至少一个处理器1010、存储器(例如,非易失性存储器)1020、内存1030、通信接口1040以及内部总线1060,并且至少一个处理器1010、存储器1020、内存1030和通信接口1040经由总线1060连接在一起。该至少一个处理器1010执行在计算机可读存储介质中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器中存储有计算机可执行指令,其当执行时使得至少一个处理器1010:执行下述循环过程,直到满足循环结束条件:经由多个第一成员设备和第二成员设备,使用各个第一成员设备的本地数据执行模型预测计算得到当前神经网络模型的当前模型预测值,其中,对于每个客户端模型,经由各个第一成员设备使用该客户端模型的各自当前模型参数以及本地数据或者在前服务端模型的当前模型计算结果进行多方安全计算,得到该客户端模型的当前模型计算结果,以及对于每个服务端模型,经由第二成员设备使用在前客户端模型的当前模型计算结果和该服务端模型的当前模型参数执行本地计算,得到该服务端模型的当前模型计算结果;在具有标签数据的第一成员设备或者第二成员设备处,基于所述当前模型预测值和标签数据,确定当前预测差值;以及在各个成员设备处,通过反向传播方式来进行当前模型更新,其中,各个客户端模型的至少部分模型结构的模型参数使用加噪声的梯度下降法执行模型参数更新,在未满足所述循环结束条件时,各个客户端模型和服务端模型的更新后的模型参数充当下一循环过程的各个客户端模型和服务端模型的当前模型参数。
应该理解的是,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器1010执行在本说明书的各个实施例中如上结合图1-9描述的各种操作和功能。
在本说明书的实施例中,电子设备1000可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(PDA)、手持装置、可佩戴计算设备、消费电子设备等等。
根据一个实施例,提供了一种例如非暂时性机器可读介质的程序产品。非暂时性机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中如上结合图1-9描述的各种操作和功能。
具体地,可以提供配有可读存储介质的***或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该***或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
本领域技术人员应当理解,上面公开的各个实施例可以在不偏离发明实质的情况下做出各种变形和修改。因此,本发明的保护范围应当由所附的权利要求书来限定。
需要说明的是,上述各流程和各***结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上各实施例中,硬件单元或模块可以通过机械方式或电气方式实现。例如,一个硬件单元、模块或处理器可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC)来完成相应操作。硬件单元或处理器还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
上面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
Claims (14)
1.一种基于隐私保护的神经网络模型训练方法,其中,所述神经网络模型经由第二成员设备和多个第一成员设备协同训练,每个第一成员设备具有本地数据并且部署有至少一个客户端模型,所述第二成员设备部署有至少一个服务端模型,所述至少一个客户端模型和所述至少一个服务端模型按照客户端模型与服务端模型间隔的方式组成所述神经网络模型,所述方法包括:
执行下述循环过程,直到满足循环结束条件:
经由所述多个第一成员设备和所述第二成员设备,使用各个第一成员设备的本地数据执行模型预测计算得到当前神经网络模型的当前模型预测值,其中,对于每个客户端模型,经由各个第一成员设备使用该客户端模型的各自当前模型参数以及本地数据或者在前服务端模型的当前模型计算结果进行多方安全计算,得到该客户端模型的当前模型计算结果,以及对于每个服务端模型,经由所述第二成员设备使用在前客户端模型的当前模型计算结果和该服务端模型的当前模型参数执行本地计算,得到该服务端模型的当前模型计算结果;
在具有标签数据的第一成员设备或者所述第二成员设备处,基于所述当前模型预测值和标签数据,确定当前预测差值;以及
在各个成员设备处,通过反向传播方式来进行当前模型更新,其中,各个客户端模型的部分模型结构的模型参数使用加噪声的梯度下降法进行模型参数更新,以及各个客户端模型的剩余模型结构的模型参数使用正常的梯度下降法进行模型参数更新,其中,使用加噪声的梯度下降法进行模型参数更新的所有客户端模型结构所包括的隐层的总层数根据用于模型训练的算力、应用场景所要求的训练时效性和/或训练安全等级确定,
其中,在未满足所述循环结束条件时,各个客户端模型和各个服务端模型的更新后的模型参数充当下一循环过程的各个客户端模型和各个服务端模型的当前模型参数,
其中,所述加噪声的梯度下降法包括贝叶斯学习法,并且使用加噪声的梯度下降法进行的模型参数更新按照下述公式进行:
2.如权利要求1所述的神经网络模型训练方法,其中,各个服务端模型的部分或者所有模型结构的模型参数使用加噪声的梯度下降法进行模型参数更新。
3.如权利要求1所述的神经网络模型训练方法,其中,所述服务端模型中的神经网络模型分层结构的模型计算与数据隐私保护无关。
4.如权利要求1所述的神经网络模型训练方法,其中,所述神经网络模型包括N个隐层,所述至少一个客户端模型包括单个客户端模型,所述至少一个服务端模型包括单个服务端模型,所述单个客户端模型包括输入层以及第一隐层到第K隐层,以及所述单个服务端模型包括输出层以及第K+1隐层到第N隐层。
5.如权利要求1所述的神经网络模型训练方法,其中,所述神经网络模型包括N个隐层,所述至少一个客户端模型包括第一客户端模型和第二客户端模型,所述至少一个服务端模型包括单个服务端模型,所述第一客户端模型包括输入层以及第一隐层到第K隐层,所述单个服务端模型包括第K+1隐层到第L隐层,以及所述第二客户端模型包括输出层以及第L+1隐层到第N隐层。
6.如权利要求1所述的神经网络模型训练方法,其中,所述神经网络模型包括N个隐层,所述至少一个客户端模型包括第一客户端模型和第二客户端模型,所述至少一个服务端模型包括单个服务端模型,所述第一客户端模型包括输入层以及第一隐层到第K隐层,所述单个服务端模型包括第K+1隐层到第N隐层,以及所述第二客户端模型包括输出层。
7.如权利要求1所述的神经网络模型训练方法,其中,所述循环结束条件包括:
循环次数达到预定次数;或者
当前预测差值在预定差值范围内。
8.如权利要求1所述的神经网络模型训练方法,其中,所述多方安全计算包括下述多方安全计算中的一种:
基于秘密共享的多方安全计算;
基于同态加密的多方安全计算;
基于不经意传输的多方安全计算;
基于混淆电路的多方安全计算;和
基于可信执行环境的多方安全计算。
9.如权利要求1所述的神经网络模型训练方法,其中,所述第二成员设备处的模型计算使用TensorFlow或Pytorch技术实现。
10.一种基于隐私保护的神经网络模型训练装置,其中,所述神经网络模型经由第二成员设备和多个第一成员设备协同训练,每个第一成员设备具有本地数据并且部署有至少一个客户端模型,所述第二成员设备部署有至少一个服务端模型,所述至少一个客户端模型和所述至少一个服务端模型按照客户端模型与服务端模型间隔的方式组成所述神经网络模型,所述神经网络模型训练装置包括:
模型预测单元,部署在各个第一成员设备和所述第二成员设备处,使用各个第一成员设备的本地数据执行模型预测计算得到当前神经网络模型的当前模型预测值,其中,对于每个客户端模型,经由各个第一成员设备使用该客户端模型的各自当前模型参数以及本地数据或者在前服务端模型的当前模型计算结果进行多方安全计算,得到该客户端模型的当前模型计算结果,以及对于每个服务端模型,经由所述第二成员设备使用在前客户端模型的当前模型计算结果和该服务端模型的当前模型参数执行本地计算,得到该服务端模型的当前模型计算结果;
预测差值确定单元,部署在具有标签数据的第一成员设备处或者所述第二成员设备处,基于所述当前模型预测值和标签数据,确定当前预测差值;以及
模型更新单元,部署在各个成员设备处,通过反向传播方式来进行当前模型更新,其中,各个客户端模型的至少部分模型结构的模型参数使用加噪声的梯度下降法进行模型参数更新,以及各个客户端模型的剩余模型结构的模型参数使用正常的梯度下降法进行模型参数更新,其中,使用加噪声的梯度下降法进行模型参数更新的客户端模型结构所包括的隐层的总层数根据用于模型训练的算力、应用场景所要求的训练时效性和/或训练安全等级确定,在未满足循环结束条件时,各个客户端模型和各个服务端模型的更新后的模型参数充当下一循环过程的各个客户端模型和各个服务端模型的当前模型参数,
其中,所述模型预测单元、所述预测差值确定和所述模型更新单元循环操作,直到满足所述循环结束条件,
其中,所述加噪声的梯度下降法包括贝叶斯学习法,并且所述模型更新单元被配置为基于下述模型更新公式来进行使用加噪声的梯度下降法的模型更新:
11.如权利要求10所述的神经网络模型训练装置,其中,各个服务端模型的部分或者所有模型结构的模型参数使用加噪声的梯度下降法进行模型参数更新。
12.一种基于隐私保护的神经网络模型训练***,包括:
多个第一成员设备,每个第一成员设备具有本地数据并且部署有至少一个客户端模型;
第二成员设备,部署有至少一个服务端模型;以及
如权利要求10或11所述的神经网络模型训练装置,
其中,所述至少一个客户端模型和所述至少一个服务端模型按照客户端模型与服务端模型间隔的方式组成所述神经网络模型。
13.一种电子设备,包括:
一个或多个处理器,以及
与所述一个或多个处理器耦合的存储器,所述存储器存储指令,当所述指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1到9中任一项所述的神经网络模型训练方法。
14.一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如权利要求1到9中任一项所述的神经网络模型训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011325643.5A CN112132270B (zh) | 2020-11-24 | 2020-11-24 | 基于隐私保护的神经网络模型训练方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011325643.5A CN112132270B (zh) | 2020-11-24 | 2020-11-24 | 基于隐私保护的神经网络模型训练方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112132270A CN112132270A (zh) | 2020-12-25 |
CN112132270B true CN112132270B (zh) | 2021-03-23 |
Family
ID=73852267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011325643.5A Active CN112132270B (zh) | 2020-11-24 | 2020-11-24 | 基于隐私保护的神经网络模型训练方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112132270B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112329072B (zh) * | 2020-12-31 | 2021-03-30 | 支付宝(杭州)信息技术有限公司 | 一种基于安全多方计算的模型联合训练方法 |
CN113420322B (zh) * | 2021-05-24 | 2023-09-01 | 阿里巴巴新加坡控股有限公司 | 模型训练、脱敏方法、装置、电子设备及存储介质 |
CN113505895B (zh) * | 2021-08-05 | 2023-05-05 | 上海高德威智能交通***有限公司 | 一种机器学习引擎服务***及模型训练方法和配置方法 |
CN114827308B (zh) * | 2022-04-15 | 2023-11-17 | 支付宝(杭州)信息技术有限公司 | 一种模型训练数据传输方法、装置、设备和可读介质 |
CN116824281B (zh) * | 2023-08-30 | 2023-11-14 | 浙江大学 | 一种隐私保护的图像分类方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110942147A (zh) * | 2019-11-28 | 2020-03-31 | 支付宝(杭州)信息技术有限公司 | 基于多方安全计算的神经网络模型训练及预测方法、装置 |
CN111368983A (zh) * | 2020-05-15 | 2020-07-03 | 支付宝(杭州)信息技术有限公司 | 业务模型训练方法、装置及业务模型训练*** |
US20200311540A1 (en) * | 2019-03-28 | 2020-10-01 | International Business Machines Corporation | Layer-Wise Distillation for Protecting Pre-Trained Neural Network Models |
CN111860864A (zh) * | 2020-07-23 | 2020-10-30 | 深圳前海微众银行股份有限公司 | 纵向联邦建模优化方法、设备及可读存储介质 |
-
2020
- 2020-11-24 CN CN202011325643.5A patent/CN112132270B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200311540A1 (en) * | 2019-03-28 | 2020-10-01 | International Business Machines Corporation | Layer-Wise Distillation for Protecting Pre-Trained Neural Network Models |
CN110942147A (zh) * | 2019-11-28 | 2020-03-31 | 支付宝(杭州)信息技术有限公司 | 基于多方安全计算的神经网络模型训练及预测方法、装置 |
CN111368983A (zh) * | 2020-05-15 | 2020-07-03 | 支付宝(杭州)信息技术有限公司 | 业务模型训练方法、装置及业务模型训练*** |
CN111860864A (zh) * | 2020-07-23 | 2020-10-30 | 深圳前海微众银行股份有限公司 | 纵向联邦建模优化方法、设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
网络泛化能力的提高途径;唐雪梅等;《武器装备综合试验与评估》;国防工业出版社;20131231;第234-236页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112132270A (zh) | 2020-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112132270B (zh) | 基于隐私保护的神经网络模型训练方法、装置及*** | |
CN110942147B (zh) | 基于多方安全计算的神经网络模型训练及预测方法、装置 | |
CN110929870B (zh) | 图神经网络模型训练方法、装置及*** | |
CN111523673B (zh) | 模型训练方法、装置及*** | |
CN112052942B (zh) | 神经网络模型训练方法、装置及*** | |
CN111062487B (zh) | 基于数据隐私保护的机器学习模型特征筛选方法及装置 | |
CN111079939B (zh) | 基于数据隐私保护的机器学习模型特征筛选方法及装置 | |
CN112000991B (zh) | 多方数据联合处理方法、装置及*** | |
CN111738438B (zh) | 图神经网络模型训练方法、装置及*** | |
CN112597540B (zh) | 基于隐私保护的多重共线性检测方法、装置及*** | |
CN112101531B (zh) | 基于隐私保护的神经网络模型训练方法、装置及*** | |
CN111368983A (zh) | 业务模型训练方法、装置及业务模型训练*** | |
CN111523134B (zh) | 基于同态加密的模型训练方法、装置及*** | |
CN111523556A (zh) | 模型训练方法、装置及*** | |
CN110929887B (zh) | 逻辑回归模型训练方法、装置及*** | |
Murakami et al. | Localization attacks using matrix and tensor factorization | |
CN111737756B (zh) | 经由两个数据拥有方进行的xgb模型预测方法、装置及*** | |
CN112598127B (zh) | 联邦学习模型训练方法和装置、电子设备、介质和产品 | |
CN111523674A (zh) | 模型训练方法、装置及*** | |
CN112183757B (zh) | 模型训练方法、装置及*** | |
CN112183759B (zh) | 模型训练方法、装置及*** | |
CN112966809B (zh) | 基于隐私保护的两方模型预测方法、装置及*** | |
CN111738453B (zh) | 基于样本加权的业务模型训练方法、装置及*** | |
CN112183566A (zh) | 模型训练方法、装置及*** | |
CN112183564A (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 |