CN113011587A - 一种隐私保护的模型训练方法和系统 - Google Patents
一种隐私保护的模型训练方法和系统 Download PDFInfo
- Publication number
- CN113011587A CN113011587A CN202110313679.XA CN202110313679A CN113011587A CN 113011587 A CN113011587 A CN 113011587A CN 202110313679 A CN202110313679 A CN 202110313679A CN 113011587 A CN113011587 A CN 113011587A
- Authority
- CN
- China
- Prior art keywords
- model
- matrix
- training
- output
- gradient
- 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.)
- Granted
Links
Images
Classifications
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/048—Activation functions
-
- 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)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioethics (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书涉及机器学习领域,特别涉及一种隐私保护的模型训练方法和系统。该方法包括,基于训练样本和模型的第一部分,得到初始输出矩阵;对所述初始输出矩阵添加扰动噪声,并进行稀疏化,得到扰动输出矩阵;将扰动输出矩阵传输给所述服务器,以便服务器利用模型的第二部分处理所述扰动输出矩阵得到模型预测结果;基于标签数据以及所述预测结果确定损失函数值;将损失函数值传输给服务器,接收服务器返回的输出梯度矩阵;基于输出梯度矩阵计算出模型的第一部分中各模型参数对应的梯度信息;基于所述梯度信息更新模型的第一部分的模型参数;进行下一轮迭代更新,或者基于此确定最终模型的第一部分。
Description
技术领域
本说明书涉及机器学习领域,特别涉及一种隐私保护的模型训练方法和系统。
背景技术
在数据分析、数据挖掘、经济预测等领域,机器学习模型可被用来分析、发现潜在的数据价值。由于单个数据拥有方持有的数据可能是不完整的,由此难以准确地刻画目标,为了得到更好的模型预测结果,可以对不同数据拥有方持有的不同数据采用联合学习的方式进行模型训练。
如何在联合学习过程中保证隐私数据安全的情况下兼顾训练效果成为有待解决的问题。
发明内容
本说明书实施例之一提供一种隐私保护的模型训练方法。所述方法由参与方中的任一训练成员实现,其中,所述参与方包括多个训练成员以及服务器,训练成员具有模型的第一部分及训练样本,服务器具有模型的第二部分,所述方法包括对模型参数进行多轮迭代更新,其中一轮迭代更新包括:将自身持有的训练样本的特征数据输入至模型的第一部分,得到初始输出矩阵;所述初始输出矩阵基于模型的第一部分的输出数据生成;对所述初始输出矩阵添加扰动噪声,并进行稀疏化,得到扰动输出矩阵;将所述扰动输出矩阵传输给所述服务器,以便服务器利用模型的第二部分处理所述扰动输出矩阵得到模型预测结果;接收服务器返回的模型预测结果,基于所述训练样本的标签数据以及所述预测结果确定损失函数值;将所述损失函数值传输给所述服务器,以便服务器基于所述损失函数值在模型的第二部分中反向传播梯度,直到获取输出梯度矩阵;其中,所述输出梯度矩阵的元素包括损失函数相对所述扰动输出矩阵元素的梯度;接收服务器返回的输出梯度矩阵,基于所述输出梯度矩阵在模型的第一部分中继续反向传播梯度,直到计算出模型的第一部分中各模型参数对应的梯度信息;基于所述梯度信息更新模型的第一部分的模型参数;基于更新后的模型的第一部分进行下一轮迭代更新,或者基于此确定最终模型的第一部分。
本说明书实施例之一提供一种隐私保护的模型训练系统,所述系统布置于参与方中的任一训练成员处,其中,所述参与方包括多个训练成员以及服务器,训练成员具有模型的第一部分及训练样本,服务器具有模型的第二部分,所述系统用于对模型参数进行多轮迭代更新;所述系统包括:初始矩阵生成模块,用于将自身持有的训练样本的特征数据输入至模型的第一部分,得到初始输出矩阵;所述初始输出矩阵基于模型的第一部分的输出数据生成;扰动模块,用于对所述初始输出矩阵添加扰动噪声,并进行稀疏化,得到扰动输出矩阵;第一发送模块,用于将所述扰动输出矩阵传输给所述服务器,以便服务器利用模型的第二部分处理所述扰动输出矩阵得到模型预测结果;损失函数值确定模块,用于接收服务器返回的模型预测结果,基于所述训练样本的标签数据以及所述预测结果确定损失函数值;第二发送模块,用于将所述损失函数值传输给所述服务器,以便服务器基于所述损失函数值在模型的第二部分中反向传播梯度,直到获取输出梯度矩阵;其中,所述输出梯度矩阵的元素包括损失函数相对所述扰动输出矩阵元素的梯度;梯度信息计算模块,用于接收服务器返回的输出梯度矩阵,基于所述输出梯度矩阵在模型的第一部分中继续反向传播梯度,直到计算出模型的第一部分中各模型参数对应的梯度信息;第一更新模块,用于基于所述梯度信息更新模型的第一部分的模型参数;第一确定模块,用于基于更新后的模型的第一部分进行下一轮迭代更新,或者基于此确定最终模型的第一部分。
本说明书实施例之一提供一种隐私保护的模型训练装置,包括处理器,其特征在于,所述处理器用于执行上述隐私保护的模型训练方法。
本说明书实施例之一提供一种隐私保护的模型训练方法,所述方法由参与方中的服务器实现,其中,所述参与方包括多个训练成员以及服务器,训练成员具有模型的第一部分及训练样本,服务器具有模型的第二部分,所述方法包括对模型参数进行多轮迭代更新,其中一轮迭代更新包括:获取来自训练成员的扰动输出矩阵;利用模型的第二部分处理所述扰动输出矩阵得到模型预测结果;向所述训练成员返回模型预测结果,以便所述训练成员基于其训练样本的标签数据以及所述预测结果确定损失函数值;接收所述训练成员传输的损失函数值,并基于所述损失函数值在模型的第二部分中反向传播梯度,以获得模型的第二部分中各模型参数对应的梯度信息,直到获取输出梯度矩阵,其中,所述输出梯度矩阵的元素包括损失函数相对所述扰动输出矩阵元素的梯度;向各训练成员返回所述输出梯度矩阵;基于所述梯度信息更新模型的第二部分的模型参数;基于更新后的模型的第二部分进行下一轮迭代更新,或者基于此确定最终模型的第二部分。
本说明书实施例之一提供一种隐私保护的模型训练系统,所述系统布置于参与方中的服务器处,其中,所述参与方包括多个训练成员以及服务器,训练成员具有模型的第一部分及训练样本,服务器具有模型的第二部分,所述系统用于对模型参数进行多轮迭代更新;所述系统包括:第三接收模块,用于获取来自训练成员的扰动输出矩阵;前向处理模块,用于利用模型的第二部分处理所述扰动输出矩阵得到模型预测结果;第三发送模块,用于向所述训练成员返回模型预测结果,以便所述训练成员基于其训练样本的标签数据以及所述预测结果确定损失函数值;反向处理模块,用于接收所述训练成员传输的损失函数值,并基于所述损失函数值在模型的第二部分中反向传播梯度,以获得模型的第二部分中各模型参数对应的梯度信息,直到获取输出梯度矩阵,其中,所述输出梯度矩阵的元素包括损失函数相对所述扰动输出矩阵元素的梯度;第四发送模块,用于向各训练成员返回所述输出梯度矩阵;第二更新模块,用于基于所述梯度信息更新模型的第二部分的模型参数;第二确定模块,用于基于更新后的模型的第二部分进行下一轮迭代更新,或者基于此确定最终模型的第二部分。
本说明书实施例之一提供一种隐私保护的模型训练装置,包括处理器,其特征在于,所述处理器用于执行上述隐私保护的模型训练方法。
本说明书实施例之一提供一种隐私保护的模型训练方法,所述方法由参与方中的任一训练成员实现,其中,所述参与方包括多个训练成员以及服务器,训练成员具有模型的第一部分及训练样本,服务器具有模型的第二部分,所述方法包括对模型参数进行多轮迭代更新,其中一轮迭代更新包括:接收服务器返回的输出梯度矩阵,基于所述输出梯度矩阵在模型的第一部分中继续反向传播梯度,直到计算出模型的第一部分中各模型参数对应的梯度信息;基于所述梯度信息更新模型的第一部分的模型参数;基于更新后的模型的第一部分进行下一轮迭代更新,或者基于此确定最终模型的第一部分。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的基于隐私保护的模型训练应用场景示意图;
图2是根据本说明书一些实施例所示的隐私保护的模型训练方法中一轮迭代更新的示例性流程图;
图3是根据本说明书另一些实施例所示的隐私保护的模型训练方法中一轮迭代更新的示例性流程图;
图4是根据本说明书一些实施例所示的得到扰动输出矩阵的示例性流程图;
图5是根据本说明书一些实施例所示的隐私保护的模型训练系统的模块化示意图;
图6是根据本说明书另一些实施例所示的隐私保护的模型训练系统的模块化示意图;
图7是根据本说明书另一些实施例所示的神经网络模型的示意图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模块”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1是根据本说明书一些实施例所示的基于隐私保护的模型训练应用场景示意图。
如图1所示,场景100可以包括第一参与方110、第二参与方120、第三参与方130以及网络140。其中,第一参与方110可以理解为第一训练成员,包括处理设备110-1、存储设备110-2;第二参与方120可以理解为第二训练成员,包括处理设备120-1、存储设备120-2;第三参与方130可以理解为服务器,其包括处理设备130-1、存储设备130-2。应当理解,一些实施例中,还可以包括更多的训练成员。
第一参与方110、第二参与方120均可以是带有数据获取、存储和/或发送功能的设备。在一些实施例中,第一参与方110、第二参与方120可以包括但不限于移动设备、平板电脑、笔记本电脑、台式电脑等或其任意组合。在一些实施例中,第一参与方110和第二参与方120可以接收来自第三参与方130的相关数据或发送相关数据。如第一参与方110可以接收来自第三方的待训练模型一部分,如模型的第一部分。又如第一参与方110、第二参与方120可以接收来自第三方的输出梯度矩阵。
第一方和第二方的处理设备110-1和120-1可以进行数据和/或指令处理。处理设备110-1和120-1可以对数据进行计算,也可以执行相关算法和/或指令。例如,第一方和第二方的处理设备110-1和120-1可以基于自身持有的模型的第一部分处理自身持有的训练样本获得初始输出矩阵,并其进行处理后得到扰动输出矩阵以传输给第三方。
第一方和第二方的存储设备110-2和120-2可以存储对应处理设备110-1和120-1执行使用的数据和/或指令,处理设备110-1和120-1可以通过执行或使用所述数据和/或指令以实现本说明书中的示例性方法。存储设备110-2和120-2可以分别用于存储训练样本;也可以存储指示第一方和第二方执行操作的相关指令。存储设备110-2和120-2还可以分别存储经处理设备110-1和120-1处理后数据。在一些实施例中,存储设备可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。
第三参与方130可以是带有数据处理、获取、存储和/或发送功能的设备,例如,云端服务器、终端处理设备等。在一些实施例中,第三参与方130可以接收来自第一参与方110和第二参与方120的相关数据。
第三方的存储设备130-2可以存储处理设备130-1执行使用的数据和/或指令,处理设备130-1可以通过执行或使用所述数据和/或指令以实现本说明书中的示例性方法。在一些实施例中,存储设备可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。
网络140可以促进信息和/或数据的交换。在一些实施例中,系统(例如,第一参与方110、第二参与方120和第三参与方130)的一个或以上部件可以经由网络140向所述系统中的其他有数据传输需求的部件发送信息和/或数据。例如,第二参与方120的处理设备120-1可以经由网络140从第三参与方130中获得模型的相关数据。在一些实施例中,网络140可以为任意形式的有线或无线网络,或其任意组合。
在经济、文化、教育、医疗、公共管理等各行各业拥有大量信息数据,对其进行例如数据分析、数据挖掘、以及趋势预测等的数据处理分析在越来越多场景中得到广泛应用。其中,通过数据合作的方式可以使多个数据拥有方获得更好的数据处理结果。例如,可以通过多方共享学习来获得更为准确的模型参数。
在一些实施例中,基于多方共享学习的方法可以应用于在保证各方数据安全的情况下,各方协同训练机器学习模型供多方使用的场景。在这个场景中,多个数据方拥有自己的数据以及完整的待训练模型,他们想共同使用彼此的数据来统一建模(例如,分类模型、线性回归模型、逻辑回归模型等),但并不想各自的数据(尤其是隐私数据)被泄露。例如,互联网储蓄机构A拥有一批用户数据,银行B拥有另一批用户数据,基于A和B的用户数据确定的训练样本集可以训练得到性能更好的机器学习模型。A和B都愿意通过彼此的用户数据共同参与模型训练,但因为一些原因A和B不愿意自己的用户数据信息遭到泄露,或者至少不愿意让对方知道自己的用户数据信息。在一些实施例中,可以采用联邦学习的方法进行多方共享学习。联邦学习(Federated Learning)可以在多参与方或多计算结点之间开展高效率的机器学习。联邦学习可以使得多方数据在训练样本不出本地的情况下进行模型训练,只传递训练好的模型或者是梯度信息,这使得各方持有的训练样本的隐私性得到了保护。
为了进一步提高数据安全,在一些联邦学习场景中,联邦学习需要训练成员将模型数据进行加密处理并传输给服务器,对于层数较多的神经网络模型,加解密原酸所耗费的时间较长,且加解密运算进一步增大了传输的数据量,在带宽有限的情况下,严重影响训练速度。此外,在一些实施例中,联邦学习需要可信的第三方协助提供加密密匙,一旦密匙泄漏,会对数据隐私性造成破坏。
有鉴于此,在一些实施例中,提出了一种将模型分割为两部分的方案,训练成员持有模型的第一部分及训练样本,服务器持有模型的第二部分以此进行训练。例如,模型的第一部分包含完整模型的输入层,模型的第二部分包含完整模型的输出层,模型的第一部分的输出数据为模型的第二部分的输入。在该训练方法中,训练成员和服务器传输隐含层的输出信息,降低了数据传输量且在一定程度上保护了隐私数据的安全性。
示例性的,以神经网络为例,假设该神经网络包括100个网络层,可以将该神经网络分割为包括前50个网络层的第一部分以及包括后50个网络层的第二部分,训练成员持有模型的第一部分,服务器持有模型的第二部分,在该情况下,训练成员向服务器传输模型第50个网络层的输出,或基于该输出做进一步处理后发送至服务器以进行另一部分模型的前向传播。需要说明的是,模型的第一部分和第二部分的划分还可以是其他形式,如第一部分包括模型的前20层,第二部分包括剩余的80层等。
图2是根据本说明书一些实施例所示的隐私保护的模型训练方法中一轮迭代更新的示例性流程图。
其中,流程200中的一个或多个步骤可以由图1任一训练成员执行,在一些实施例中,为了便于描述,以训练成员i在训练的第j轮迭代更新执行该流程200进行描述,其包括:
步骤210,将自身持有的训练样本的特征数据输入至模型的第一部分,得到初始输出矩阵;所述初始输出矩阵基于模型的第一部分的输出数据生成。在一些实施例中,步骤210可以由初始矩阵生成模块510执行。
在一些实施例中,在一轮迭代更新中,每个训练成员持有的一个batch的训练样本以对模型进行训练,每个batch的训练样本可以包括多条训练样本,如100个。在一些实施例中,训练成员将自身持有训练样本进行特征提取,得到训练样本的特征数据。具体的,根据训练样本数据的类型和所属领域的不同,其特征提取的方法也不相同,在本说明书中不做限制。
训练成员持有的模型的第一部分在训练开始前可以统一进行初始化,将其作为模型的第一部分;也可以各自进行初始化获取具有一定程度上区别的模型的第一部分。
在一些实施例中,可以将该模型的第一部分表示为Wc,训练成员i将自身持有的训练样本的特征数据输入至模型的第一部分Wc进行前向传播,得到初始输出矩阵可以理解的是,初始输出矩阵是神经网络的第一部分Wc中最后一层的输出,矩阵的大小与最后一层神经元数量相关,为了便于描述,假设初始输出矩阵为8×8的矩阵,并在后文中基于沿用该示例。
步骤220,对所述初始输出矩阵添加扰动噪声,并进行稀疏化,得到扰动输出矩阵。在一些实施例中,步骤220可以由扰动模块520执行。
对矩阵稀疏化可以理解为将矩阵中的部分元素变更为0,得到稀疏矩阵。在传输稀疏矩阵时,可以只输矩阵中的非零元素及其在矩阵中的位置编号,以有效降低通信量。接收方可以基于接收到的元素以及位置编号,恢复出与原矩阵同维的稀疏矩阵,其中未知元素用0元素代替。
在一些实施例中,可以对初始输出矩阵中的各个元素添加扰动噪声,再选择其中部分元素(如随机选择其中预设比例个元素)变更为0,得到稀疏化的扰动输出矩阵。
在一些实施例中,可以通过采样算法首先从所述初始输出矩阵中选择部分元素变更为0,得到稀疏输出矩阵。
在一些实施例中,初始输出矩阵中部分元素变更为0得到稀疏输出矩阵可以表示为通过采样算法选择部分元素变更为0,不难看出,其目的在于将输出数据随机的丢弃一部分,但由于丢弃的数据通过元素0替代,因此稀疏输出矩阵的维度与初始输出矩阵相同,如初始输出矩阵为8×8的矩阵,部分元素变更为0的稀疏输出矩阵也为8×8的矩阵。
在一些实施例中,通过将模型第一部分的输出进行丢弃,使得在能够保持训练顺利进行的前提下,减少有效信息传输,即使进行丢弃处理后的输出数据泄露,攻击者也难以通过现有的信息获取隐私数据(如训练样本)相关特征,从而增加因隐私数据的安全性。
采样算法为基于某种方式从M个数或样本中选取N(M>N)个数或样本的算法,在一些实施例中,可以将通过采样算法将初始输出矩阵中选中的元素变更为0,还可以将初始输出矩阵中选中的元素之外的其他元素变更为0。示例性的采样算法可以是随机采样、均匀采样、高斯采样或拉普拉斯采样。
在一些实施例中,可以通过所述采样算法选取所述初始输出矩阵内的预设比例的多个元素变更为0,示例性的,该预设比例可以是50%,即将初始输出矩阵Lc,i中一半的元素变更为0,得到稀疏输出矩阵在一些其他实施例中,若将选中的元素变更为0,预设比例与隐私数据的安全性成反比,但过低的预设比例可能会造成模型迭代次数增加或计算精度受到影响,故预设比例可以根据实际场景进行配置,如30%、60%或80%等,在此不做限制。
需要说明的是,对于每个训练成员,该预设比例以及采样算法的选择可以相同(如在训练前进行统一),也可以不同(如训练成员自行设置)。
再对所述稀疏输出矩阵中的至少部分元素添加扰动噪声,得到扰动输出矩阵。
在一些实施例中,可以对稀疏输出矩阵中部分元素添加扰动噪声,也可以对稀疏输出矩阵中全部元素添加扰动噪声。具体的,当对稀疏输出矩阵中全部元素添加扰动噪声时,可以生成与稀疏输出矩阵相同维度的噪声矩阵,然后利用将噪声矩阵中与稀疏输出矩阵对位元素进行加密(如将噪声矩阵中的值与其对位的稀疏输出矩阵元素值相加)。当对稀疏输出矩阵中部分元素添加扰动噪声时,进行扰动的部分元素可以是稀疏输出矩阵中非0的元素。由于扰动噪声会对后续模型训练引入误差,在一些实施例中,仅对部分元素进行扰动可以使模型训练精度受到影响减小。
在一些实施例中,对稀疏输出矩阵添加扰动噪声的具体步骤可以参见图4的相关描述,在此不再赘述。
步骤230,将所述扰动输出矩阵传输给所述服务器,以便服务器利用模型的第二部分处理所述扰动输出矩阵得到模型预测结果。在一些实施例中,步骤230可以由第一发送模块530执行。
在一些实施例中,将扰动输出矩阵传输给所述服务器后,服务器可以将接收到的扰动输出矩阵Lc,i输入至其持有的模型的第二部分,得到模型预测结果。在一些实施例中,可以将服务器持有的模型的第二部分表示为Ws,模型预测结果表示为
步骤240,接收服务器返回的模型预测结果,基于所述训练样本的标签数据以及所述预测结果确定损失函数值。在一些实施例中,步骤240可以由损失函数值确定模块540执行。
在一些实施例中,训练成员接收服务器返回的模型预测结果yi,之后利用其持有的训练样本标签数据和预测结果确定损失函数值。在一些实施例中,可以将训练样本标签数据表示为计算得到的损失函数值表示为Lossi。在一些实施例中,根据模型的类型可以选择不同的损失函数,如将均方差损失函数或交叉熵损失函数作为损失函数等,在本说明书中不做限制。
步骤250,将所述损失函数值传输给所述服务器,以便服务器基于所述损失函数值在模型的第二部分中反向传播梯度,直到获取输出梯度矩阵;其中,所述输出梯度矩阵的元素包括损失函数值相对所述扰动输出矩阵元素的梯度。在一些实施例中,步骤250可以由第二发送模块550执行。
在一些实施例中,可以利用反向传播算法基于损失函数值得到梯度矩阵,该梯度矩阵中的梯度元素与模型参数对应,即梯度矩阵中的每个梯度元素可以反映模型中相应的参数的修正方向(增加或减小)以及修正量。但由于服务器并没有持有模型的全部,因此无法完成全部反向传播并得到梯度矩阵,仅能够基于模型的第二部分得到输出梯度矩阵。
具体的,服务器将接收到的损失函数值Lossi输入至模型中进行反向传播梯度,服务器基于所持有的模型的第二部分Ws得到输出梯度矩阵,在一些实施例中,输出梯度矩阵可以表示为Gs,输出梯度矩阵Gs中的元素包括损失函数值Lossi相对于扰动输出矩阵Lc,i中各元素的梯度。
以图7所示的神经网络模型为例,其中包括三个网络层,共6个神经元。每个神经元处的运算与神经元6类似,进而可以使用以下两个公式来描述神经网络的前向传播过程:
z=f(y); (1)
yn=∑m∈in(n)(wm,nzm+bn)。 (2)
其中,y表示神经元的激活函数f(·)的输入数据,z表示该神经元的输出,对于模型输出层的神经元,z可以是模型对训练样本或待预测对象的预测结果;下标n或m表示神经元的序号,in(n)表示神经元n的前一层神经元的序号的集合,以图7为例,神经元4接收神经元1、神经元2以及神经元3的输出,in(4)={1,2,3}。wm,n表示神经元m映射到神经元n的权重,bn为神经元n对应的常数项。其中,wm,n以及bn组成了神经网络模型的模型参数,其取值可以通过训练获得。
通过前向传播,训练样本或待测试对象的特征数据可经神经网络模型的各网络层逐层处理,得到预测结果。
以图7的示例性神经网络模型为例。首先,可以计算出损失函数值相对出输出神经元6的输出的梯度当损失函数为均方差损失函数 时,其中z6为预测结果,为标签数据。后续则可以通过链式法则,计算出损失函数值相对神经元6与神经元5之间的权重w5,6的梯度以及损失函数值相对出输出神经元5的输出的梯度
以此类推,可以逐一求出损失函数值相对每个权重的梯度。
鉴于上述过程,服务器可以基于损失函数值Lossi进行反向传播梯度,直到计算出损失函数值相对输出扰动矩阵中各元素的梯度,即输出梯度矩阵,与此同时,服务器还可以获得模型的第二部分Ws中每个模型参数(或权重)的梯度。
步骤260,接收服务器返回的输出梯度矩阵,基于所述输出梯度矩阵在模型的第一部分中继续反向传播梯度,直到计算出模型的第一部分中各模型参数对应的梯度信息。在一些实施例中,步骤260可以由梯度信息计算模块560执行。
在一些实施例中,训练成员将输出梯度矩阵Gs输入至模型的第一部分Wc,继续按照前述过程反向传播梯度,得到梯度矩阵,在一些实施例中,可以将梯度矩阵表示为Gi,梯度矩阵Gi中包含训练得到的多个梯度元素,即梯度矩阵Gi包括模型的第一部分Wc中各模型参数对应的梯度信息。
步骤270,基于所述梯度信息更新模型的第一部分的模型参数。在一些实施例中,步骤270可以由第一更新模块570执行。
在一些实施例中,由于梯度矩阵Gi包括模型的第一部分Wc中各模型参数对应的梯度信息,因此可以基于该梯度信息对模型的第一部分Wc中参数进行更新。例如,可以将模型的第一部分Wc的模型参数减去对应梯度信息与学习率的乘积,得到更新后的模型参数。
步骤280,基于更新后的模型的第一部分进行下一轮迭代更新,或者基于此确定最终模型的第一部分。在一些实施例中,步骤280可以由第一确定模块580执行。
在一些实施例中,第一确定模块580可以判断是否需要继续进行下一次迭代(即是否进行j+1轮迭代)。判断的标准可以是迭代次数是否已经达到预设迭代次数、更新后的模型是否满足预设的性能指标阈值等又或者是否收到来自服务器的终止训练的指示。若确定需要进行下一次迭代,训练成员则可基于当前次迭代过程更新后的模型的第一部分进行下一次迭代。换句话说,训练成员将在下一次迭代中将当前次迭代获得的更新后的模型的第一部分作为待训练的模型的第一部分。若确定不需要进行下一次迭代,训练成员则可将当前次迭代过程中获取的更新后的模型的第一部分作为最终模型的第一部分。
在一些实施例中,流程200还可以包括对输出矩阵进行归一化处理的步骤,具体可以包括:
步骤215,对所述初始输出矩阵中的元素进行归一化处理。在一些实施例中,步骤215可以由归一化模块515执行。
在一些实施例中,初始输出矩阵中元素最大值和最小值的差值可能会较大,在该情况下选择矩阵中添加扰动噪声的参数时,可能会存在一定程度上的困难,同时为了避免在向输出矩阵中添加扰动噪声的过程中对特征信息造成较大丢失,因此对所述初始输出矩阵中的每个元素进行归一化处理。在一些实施例中,以初始输出矩阵中的元素lj为例,采用0均值标准化的方式进行归一化处理,可以表示为:
在一些实施例中,进行归一化处理还可以是通过其他方式或函数实现,如线性函数归一化或采用Sigmoid函数进行归一化处理。
需要说明的是,上述流程200是以训练成员i为例对第j轮模型迭代过程进行示例性说明。对于模型的任意其他迭代轮次,如第一轮、第二轮、…、第n轮,训练成员i均可使用如步骤210~280中的相同的方式进行实现,在此不再赘述。进一步地,上述一个或多个实施例中,训练成员i可以是训练成员{1,2,3…k}中的任意一个,其余训练成员可以采用如步骤210~280类似的方法执行。
图3是根据本说明书另一些实施例所示的隐私保护的模型训练方法中一轮迭代更新的示例性流程图。
在本说明书的一些实施例中,还提供了一种隐私保护的模型训练方法,所述方法由参与方中的服务器实现,方法包括对模型参数进行多轮迭代更新,其中一轮迭代更新的流程300包括:
步骤310,获取来自训练成员的扰动输出矩阵。在一些实施例中,步骤310可以由第三接收模块610执行。
在一些实施例中,关于扰动输出矩阵的具体描述可以参见步骤210~230及相关描述,在此不再赘述。
步骤320,利用模型的第二部分处理所述扰动输出矩阵得到模型预测结果。在一些实施例中,步骤320可以由前向处理模块620执行。
在一些实施例中,关于得到模型预测结果的具体描述可以参见步骤230、步骤250及相关描述,在此不再赘述。
步骤330,向所述训练成员返回模型预测结果,以便所述训练成员基于其训练样本的标签数据以及所述预测结果确定损失函数值。在一些实施例中,步骤330可以由第三发送模块630执行。
在一些实施例中,确定损失函数值的具体描述可以参见步骤240及相关描述,在此不再赘述。需要说明的是,模型预测结果仅需要返回给步骤310中扰动输出矩阵的生成训练成员,以确保损失函数值是基于同一训练样本的预测结果和标签数据确定。
步骤340,接收所述训练成员传输的损失函数值,并基于所述损失函数值在模型的第二部分中反向传播梯度,以获得模型的第二部分中各模型参数对应的梯度信息,直到获取输出梯度矩阵,其中,所述输出梯度矩阵的元素包括损失函数值相对所述扰动输出矩阵元素的梯度,在一些实施例中,步骤340可以由反向处理模块640执行。
在一些实施例中,获取输出梯度矩阵的具体描述可以参见步骤260及相关描述,在此不再赘述。
步骤350,向各训练成员返回所述输出梯度矩阵。在一些实施例中,步骤350可以由第四发送模块650执行。
各训练成员收到输出梯度矩阵后可以在本地的模型的第一部分中继续反向传播梯度,进而得到损失函数值相对各模型参数的梯度,进而基于梯度信息更新本地的模型的第一部分的模型参数。关于反向传播算法的具体内容可以参见步骤250的相关说明,在此不再罪赘述。
需要说明的是,对于一轮迭代中,未利用本地训练样本参与更新的训练成员来说,也可以在该轮迭代中从服务器获取基于其他训练成员的训练样本得到的输出梯度矩阵,并通过该输出梯度矩阵在本地进行反向传播获得梯度矩阵,以将各训练成员持有的训练样本转化为对应的梯度信息并加以学习并更新模型。在模型的训练和迭代过程中,由于其他训练成员仅获取输出梯度矩阵,并未获取到其他隐私信息,保护了提供训练样本的训练成员的数据隐私。
步骤360,基于所述梯度信息更新模型的第二部分的模型参数。在一些实施例中,步骤360可以由第二更新模块660执行。
在一些实施例中,更新模型的第二部分的模型参数的具体方式与步骤270类似,具体可以参见步骤270及相关描述,在此不再赘述。
步骤370,基于更新后的模型的第二部分进行下一轮迭代更新,或者基于此确定最终模型的第二部分。在一些实施例中,步骤370可以由第二确定模块670执行。
在一些实施例中,第二确定模块670可以判断是否需要继续进行下一次迭代(即是否进行j+1轮迭代)。判断的标准可以是迭代次数是否已经达到预设迭代次数、更新后的模型是否满足预设的性能指标阈值等又或者是否收到来自某训练成员的终止训练的请求。若确定需要进行下一次迭代,服务器则可基于当前次迭代过程更新后的模型的第二部分进行下一次迭代。若确定不需要进行下一次迭代,服务器则可将当前次迭代过程中获取的更新后的模型的第二部分作为最终模型的第二部分。
鉴于前述内容,在本说明书的一些实施例中,还提供了一种隐私保护的模型训练方法,所述方法可以由参与方中的任一训练成员实现,适用于在当前轮迭代中该训练成员不参与计算输出梯度矩阵,而是基于其他训练成员与服务器协同计算得到的输出梯度矩阵更新本地模型参数的情形。具体训练流程与图2中步骤260~280类似,具体可以参考步骤260~280及相关描述,在此不再赘述。
图4是根据本说明书一些实施例所示的得到扰动输出矩阵的示例性流程图。
在一些实施例中,对所述稀疏输出矩阵中的至少部分元素添加扰动噪声,得到扰动输出矩阵可以通过以下流程400确定,在一些实施例中,流程400可以由扰动模块520执行,其包括:
步骤410,对所述稀疏输出矩阵中元素的值进行限制,使其任一元素的绝对值不超过预设裁剪阈值。
在一些实施例中,在对稀疏输出矩阵添加扰动噪声前,需要基于预设裁剪阈值Ci对其进行元素的值的限制。需要说明的是,对于每个训练成员,预设裁剪阈值可以相同(如在训练前进行统一),也可以不同(如训练成员自行设置)。在一些实施例中,预设裁剪阈值的取值与稀疏输出矩阵中元素的值相关,因此在本实施例中不做限制。示例性的,可以在稀疏输出矩阵中元素的绝对值大于预设裁剪阈值时,将该元素的值替换为预设裁剪阈值,同时保持元素的符号不变,即原元素为负数,替换后的元素值为负的预设裁剪阈值。步骤420,生成与所述稀疏输出矩阵维度相同的噪声矩阵。
在一些实施例中,步骤420生成的噪声矩阵可以是高斯噪声,该步骤可以进一步包括:
获取预设扰动参数。
在一些实施例中,预设扰动参数与预设裁剪阈值类似,可以每个训练成员统一设置,也可以每个训练成员自行设置,在一些实施例中,预设扰动参数可以与预设裁剪阈值在开始训练前事先确定。
在一些实施例中,由于生成的噪声矩阵为高斯噪声,因此预设扰动参数与高斯噪声相关,在本实施例中,预设扰动参数包括两个参数,可以分别表示为∈i和δi。在一些实其他实施例中,噪声矩阵还可以是其他噪声类型,如拉普拉斯噪声、泊松噪声等,相应的,预设扰动参数根据噪声类型的不同,也不尽相同。
基于预设扰动参数以及所述预设裁剪阈值确定高斯噪声的方差。
在一些实施例中,高斯噪声的方差还可以通过其他步骤或公式确定,在本说明书中不做限制。
步骤430,将所述噪声矩阵叠加到所述稀疏输出矩阵上得到所述扰动输出矩阵。
在一些实施例中,初始输出矩阵中部分元素变更为0后,为0的元素已经不包括任何信息,可以无需对其进行添加噪声扰动,因此可以将噪声矩阵中与所述稀疏输出矩阵中0元素对位的元素也设为0,仅对稀疏输出矩阵中不为0的元素添加噪声。该方式由于引入的噪声量相对较小,相较于对矩阵内所有元素添加噪声的方案,模型训练准确定可以得到一定程度的提升。
应当注意的是,上述有关流程200~流程400的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对上述步骤进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。例如,流程300中的步骤350与步骤360、步骤370的顺序对调,或者同时进行。
图5是根据本说明书一些实施例所示的隐私保护的模型训练系统的模块化示意图。
如图5所示,隐私保护的模型训练系统500可以包括初始矩阵生成模块510、归一化模块515、扰动模块520、第一发送模块530、损失函数值确定模块540、第二发送模块550、梯度信息计算模块560、第一更新模块570和第一确定模块580。这些模块也可以作为应用程序或一组由处理引擎读取和执行的指令实现。此外,模块可以是硬件电路和应用/指令的任何组合。例如,当处理引擎或处理器执行应用程序/一组指令时,模块可以是处理器的一部分。
初始矩阵生成模块510,可以用于将自身持有的训练样本的特征数据输入至模型的第一部分,得到初始输出矩阵;所述初始输出矩阵基于模型的第一部分的输出数据生成。
关于初始输出矩阵的更多描述可以在本说明书的其他地方(如步骤210及其相关描述中)找到,在此不作赘述。
扰动模块520,用于对所述初始输出矩阵添加扰动噪声,并选择其中部分元素变更为0,得到扰动输出矩阵。
关于扰动输出矩阵的更多描述可以在本说明书的其他地方(如步骤220及其相关描述中)找到,在此不作赘述。
第一发送模块530,可以用于将所述扰动输出矩阵传输给所述服务器,以便服务器利用模型的第二部分处理所述扰动输出矩阵得到模型预测结果。
关于模型预测结果的更多描述可以在本说明书的其他地方(如步骤230及其相关描述中)找到,在此不作赘述。
损失函数值确定模块540,可以用于接收服务器返回的模型预测结果,基于所述训练样本的标签数据以及所述预测结果确定损失函数值。
关于损失函数的更多描述可以在本说明书的其他地方(如步骤240及其相关描述中)找到,在此不作赘述。
第二发送模块550,可以用于将所述损失函数值传输给所述服务器,以便服务器基于所述损失函数值在模型的第二部分中反向传播梯度,直到获取输出梯度矩阵;其中,所述输出梯度矩阵的元素包括损失函数相对所述扰动输出矩阵元素的梯度。
关于输出梯度矩阵的更多描述可以在本说明书的其他地方(如步骤250及其相关描述中)找到,在此不作赘述。
梯度信息计算模块560,可以用于接收服务器返回的输出梯度矩阵,基于所述输出梯度矩阵在模型的第一部分中继续反向传播梯度,直到计算出模型的第一部分中各模型参数对应的梯度信息;
关于梯度信息的更多描述可以在本说明书的其他地方(如步骤260及其相关描述中)找到,在此不作赘述。
第一更新模块570,可以用于基于所述梯度信息更新模型的第一部分的模型参数。
关于更新模型的第一部分的模型参数的更多描述可以在本说明书的其他地方(如步骤270及其相关描述中)找到,在此不作赘述。
第一确定模块580,可以用于基于更新后的模型的第一部分进行下一轮迭代更新,或者基于此确定最终模型的第一部分。
关于进行下一轮迭代更新或者确定最终模型的更多描述可以在本说明书的其他地方(如步骤280及其相关描述中)找到,在此不作赘述。
在一些实施例中,归一化模块515可以用于对所述初始输出矩阵中的元素进行归一化处理。
关于归一化处理的更多描述可以在本说明书的其他地方(如步骤215及其相关描述中)找到,在此不作赘述。
图6是根据本说明书另一些实施例所示的隐私保护的模型训练系统的模块化示意图。
如图6所示,在一些实施例中,隐私保护的模型训练系统600可以包括第三接收模块610、前向处理模块620、第三发送模块630、反向处理模块640、第四发送模块650、第二更新模块660和第二确定模块670。这些模块也可以作为应用程序或一组由处理引擎读取和执行的指令实现。此外,模块可以是硬件电路和应用/指令的任何组合。例如,当处理引擎或处理器执行应用程序/一组指令时,模块可以是处理器的一部分。
第三接收模块610,可以用于获取来自训练成员的扰动输出矩阵。
关于扰动输出矩阵的更多描述可以在本说明书的其他地方(如步骤310及其相关描述中)找到,在此不作赘述。
前向处理模块620,可以用于利用模型的第二部分处理所述扰动输出矩阵得到模型预测结果。
关于模型预测结果的更多描述可以在本说明书的其他地方(如步骤320及其相关描述中)找到,在此不作赘述。
第三发送模块,用于向所述训练成员返回模型预测结果,以便所述训练成员基于其训练样本的标签数据以及所述预测结果确定损失函数值。
关于返回模型预测结果的更多描述可以在本说明书的其他地方(如步骤330及其相关描述中)找到,在此不作赘述。
反向处理模块640,可以用于接收所述训练成员传输的损失函数值,并基于所述损失函数值在模型的第二部分中反向传播梯度,以获得模型的第二部分中各模型参数对应的梯度信息,直到获取输出梯度矩阵,其中,所述输出梯度矩阵的元素包括损失函数相对所述扰动输出矩阵元素的梯度。
关于获取梯度矩阵的更多描述可以在本说明书的其他地方(如步骤340及其相关描述中)找到,在此不作赘述。
第四发送模块650,可以用于向各训练成员返回所述输出梯度矩阵。
关于返回梯度矩阵的更多描述可以在本说明书的其他地方(如步骤350及其相关描述中)找到,在此不作赘述。
第二更新模块660,可以用于基于所述梯度信息更新模型的第二部分的模型参数。
关于更新模型的第二部分的模型参数的更多描述可以在本说明书的其他地方(如步骤360及其相关描述中)找到,在此不作赘述。
第二确定模块670,可以用于基于更新后的模型的第二部分进行下一轮迭代更新,或者基于此确定最终模型的第二部分。
关于进行下一轮迭代更新或者确定最终模型的更多描述可以在本说明书的其他地方(如步骤370及其相关描述中)找到,在此不作赘述。
应当理解,图5、图6所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,装置及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行装置,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和装置可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的装置及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于候选项显示、确定系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。
本说明书实施例可能带来的有益效果包括但不限于:(1)通过将模型进行分割,训练成员和服务器传输隐含层的输出信息,降低了数据传输量且在一定程度上保护了隐私数据的安全性;(2)对隐含层的输出信息进行一定程度上的丢弃,在保证训练进行的前提下,提高了数据安全性;(3)针对性的对隐含层的输出信息添加噪声,保护了隐私数据的安全性的同时不会影响模型收敛性。
需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
Claims (13)
1.一种隐私保护的模型训练方法,所述方法由参与方中的任一训练成员实现,其中,所述参与方包括多个训练成员以及服务器,训练成员具有模型的第一部分及训练样本,服务器具有模型的第二部分,所述方法包括对模型参数进行多轮迭代更新,其中一轮迭代更新包括:
将自身持有的训练样本的特征数据输入至模型的第一部分,得到初始输出矩阵;所述初始输出矩阵基于模型的第一部分的输出数据生成;
对所述初始输出矩阵添加扰动噪声,并进行稀疏化,得到扰动输出矩阵;
将所述扰动输出矩阵传输给所述服务器,以便服务器利用模型的第二部分处理所述扰动输出矩阵得到模型预测结果;
接收服务器返回的模型预测结果,基于所述训练样本的标签数据以及所述预测结果确定损失函数值;
将所述损失函数值传输给所述服务器,以便服务器基于所述损失函数值在模型的第二部分中反向传播梯度,直到获取输出梯度矩阵;其中,所述输出梯度矩阵的元素包括损失函数相对所述扰动输出矩阵元素的梯度;
接收服务器返回的输出梯度矩阵,基于所述输出梯度矩阵在模型的第一部分中继续反向传播梯度,直到计算出模型的第一部分中各模型参数对应的梯度信息;
基于所述梯度信息更新模型的第一部分的模型参数;
基于更新后的模型的第一部分进行下一轮迭代更新,或者基于此确定最终模型的第一部分。
2.如权利要求1所述的方法,还包括:
对所述初始输出矩阵中的元素进行归一化处理。
3.如权利要求1所述的方法,所述对所述初始输出矩阵添加扰动噪声,并进行稀疏化,得到扰动输出矩阵,包括:
通过采样算法从所述初始输出矩阵中选择部分元素变更为0,得到稀疏输出矩阵;
对所述稀疏输出矩阵中的至少部分元素添加扰动噪声,得到所述扰动输出矩阵。
4.如权利要求3所述的方法,所述通过采样算法从所述初始输出矩阵中选择部分元素变更为0,包括:
通过所述采样算法选取所述初始输出矩阵内的预设比例的多个元素变更为0;
所述采样算法为随机采样、均匀采样、高斯采样或拉普拉斯采样;
所述对所述稀疏输出矩阵中的至少部分元素添加扰动噪声,得到扰动输出矩阵,包括:
对所述稀疏输出矩阵中元素的值进行限制,使其任一元素的绝对值不超过预设裁剪阈值;
生成与所述稀疏输出矩阵维度相同的噪声矩阵;
将所述噪声矩阵叠加到所述稀疏输出矩阵上得到所述扰动输出矩阵。
5.如权利要求4所述的方法,所述噪声矩阵中与所述稀疏输出矩阵中0元素对位的元素也为0。
6.如权利要求4所述的方法,所述噪声矩阵为高斯噪声矩阵;所述生成与所述稀疏输出矩阵维度相同的噪声矩阵,包括:
获取预设扰动参数;
基于预设扰动参数和所述预测剪裁阈值,确定高斯噪声的方差;
基于0均值以及所述高斯噪声的方差生成所述高斯噪声矩阵。
7.一种隐私保护的模型训练系统,所述系统布置于参与方中的任一训练成员处,其中,所述参与方包括多个训练成员以及服务器,训练成员具有模型的第一部分及训练样本,服务器具有模型的第二部分,所述系统用于对模型参数进行多轮迭代更新;所述系统包括:
初始矩阵生成模块,用于将自身持有的训练样本的特征数据输入至模型的第一部分,得到初始输出矩阵;所述初始输出矩阵基于模型的第一部分的输出数据生成;
扰动模块,用于对所述初始输出矩阵添加扰动噪声,并进行稀疏化,得到扰动输出矩阵;
第一发送模块,用于将所述扰动输出矩阵传输给所述服务器,以便服务器利用模型的第二部分处理所述扰动输出矩阵得到模型预测结果;
损失函数值确定模块,用于接收服务器返回的模型预测结果,基于所述训练样本的标签数据以及所述预测结果确定损失函数值;
第二发送模块,用于将所述损失函数值传输给所述服务器,以便服务器基于所述损失函数值在模型的第二部分中反向传播梯度,直到获取输出梯度矩阵;其中,所述输出梯度矩阵的元素包括损失函数相对所述扰动输出矩阵元素的梯度;
梯度信息计算模块,用于接收服务器返回的输出梯度矩阵,基于所述输出梯度矩阵在模型的第一部分中继续反向传播梯度,直到计算出模型的第一部分中各模型参数对应的梯度信息;
第一更新模块,用于基于所述梯度信息更新模型的第一部分的模型参数;
第一确定模块,用于基于更新后的模型的第一部分进行下一轮迭代更新,或者基于此确定最终模型的第一部分。
8.如权利要求7所述的系统,还包括归一化模块,用于对所述初始输出矩阵中的元素进行归一化处理。
9.一种隐私保护的模型训练装置,包括处理器,其特征在于,所述处理器用于执行权利要求1~6中任一项所述的隐私保护的模型训练方法。
10.一种隐私保护的模型训练方法,所述方法由参与方中的服务器实现,其中,所述参与方包括多个训练成员以及服务器,训练成员具有模型的第一部分及训练样本,服务器具有模型的第二部分,所述方法包括对模型参数进行多轮迭代更新,其中一轮迭代更新包括:
获取来自训练成员的扰动输出矩阵;
利用模型的第二部分处理所述扰动输出矩阵得到模型预测结果;
向所述训练成员返回模型预测结果,以便所述训练成员基于其训练样本的标签数据以及所述预测结果确定损失函数值;
接收所述训练成员传输的损失函数值,并基于所述损失函数值在模型的第二部分中反向传播梯度,以获得模型的第二部分中各模型参数对应的梯度信息,直到获取输出梯度矩阵,其中,所述输出梯度矩阵的元素包括损失函数相对所述扰动输出矩阵元素的梯度;
向各训练成员返回所述输出梯度矩阵;
基于所述梯度信息更新模型的第二部分的模型参数;
基于更新后的模型的第二部分进行下一轮迭代更新,或者基于此确定最终模型的第二部分。
11.一种隐私保护的模型训练系统,所述系统布置于参与方中的服务器处,其中,所述参与方包括多个训练成员以及服务器,训练成员具有模型的第一部分及训练样本,服务器具有模型的第二部分,所述系统用于对模型参数进行多轮迭代更新;所述系统包括:
第三接收模块,用于获取来自训练成员的扰动输出矩阵;
前向处理模块,用于利用模型的第二部分处理所述扰动输出矩阵得到模型预测结果;
第三发送模块,用于向所述训练成员返回模型预测结果,以便所述训练成员基于其训练样本的标签数据以及所述预测结果确定损失函数值;
反向处理模块,用于接收所述训练成员传输的损失函数值,并基于所述损失函数值在模型的第二部分中反向传播梯度,以获得模型的第二部分中各模型参数对应的梯度信息,直到获取输出梯度矩阵,其中,所述输出梯度矩阵的元素包括损失函数相对所述扰动输出矩阵元素的梯度;
第四发送模块,用于向各训练成员返回所述输出梯度矩阵;
第二更新模块,用于基于所述梯度信息更新模型的第二部分的模型参数;
第二确定模块,用于基于更新后的模型的第二部分进行下一轮迭代更新,或者基于此确定最终模型的第二部分。
12.一种隐私保护的模型训练装置,包括处理器,其特征在于,所述处理器用于执行权利要求10中所述隐私保护的模型训练方法。
13.一种隐私保护的模型训练方法,所述方法由参与方中的任一训练成员实现,其中,所述参与方包括多个训练成员以及服务器,训练成员具有模型的第一部分及训练样本,服务器具有模型的第二部分,所述方法包括对模型参数进行多轮迭代更新,其中一轮迭代更新包括:
接收服务器返回的输出梯度矩阵,基于所述输出梯度矩阵在模型的第一部分中继续反向传播梯度,直到计算出模型的第一部分中各模型参数对应的梯度信息;
基于所述梯度信息更新模型的第一部分的模型参数;
基于更新后的模型的第一部分进行下一轮迭代更新,或者基于此确定最终模型的第一部分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110313679.XA CN113011587B (zh) | 2021-03-24 | 2021-03-24 | 一种隐私保护的模型训练方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110313679.XA CN113011587B (zh) | 2021-03-24 | 2021-03-24 | 一种隐私保护的模型训练方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113011587A true CN113011587A (zh) | 2021-06-22 |
CN113011587B CN113011587B (zh) | 2022-05-10 |
Family
ID=76406093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110313679.XA Active CN113011587B (zh) | 2021-03-24 | 2021-03-24 | 一种隐私保护的模型训练方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113011587B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113722738A (zh) * | 2021-09-02 | 2021-11-30 | 脸萌有限公司 | 数据保护方法、装置、介质及电子设备 |
CN114429222A (zh) * | 2022-01-19 | 2022-05-03 | 支付宝(杭州)信息技术有限公司 | 一种模型的训练方法、装置及设备 |
CN114611128A (zh) * | 2022-03-15 | 2022-06-10 | 北京字节跳动网络技术有限公司 | 一种纵向联邦学习方法、装置、系统、设备及存储介质 |
CN114723069A (zh) * | 2022-04-15 | 2022-07-08 | 支付宝(杭州)信息技术有限公司 | 参数更新方法、装置和电子设备 |
CN114723047A (zh) * | 2022-04-15 | 2022-07-08 | 支付宝(杭州)信息技术有限公司 | 任务模型训练方法、装置以及系统 |
WO2023036184A1 (en) * | 2021-09-08 | 2023-03-16 | Huawei Cloud Computing Technologies Co., Ltd. | Methods and systems for quantifying client contribution in federated learning |
CN115865521A (zh) * | 2023-02-09 | 2023-03-28 | 智慧眼科技股份有限公司 | 一种模型局部数据处理方法、装置、设备及存储介质 |
CN115953651A (zh) * | 2023-03-13 | 2023-04-11 | 浪潮电子信息产业股份有限公司 | 一种基于跨域设备的模型训练方法、装置、设备及介质 |
WO2024051456A1 (zh) * | 2022-09-05 | 2024-03-14 | 北京火山引擎科技有限公司 | 多方协同模型训练方法、装置、设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475852A (zh) * | 2020-06-19 | 2020-07-31 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护针对业务模型进行数据预处理的方法及装置 |
US20200311485A1 (en) * | 2019-03-26 | 2020-10-01 | Shenzhen Keya Medical Technology Corporation | Method and system for generating a centerline for an object, and computer readable medium |
CN111931950A (zh) * | 2020-09-28 | 2020-11-13 | 支付宝(杭州)信息技术有限公司 | 一种基于联邦学习进行模型参数更新的方法及系统 |
CN112396191A (zh) * | 2020-12-29 | 2021-02-23 | 支付宝(杭州)信息技术有限公司 | 一种基于联邦学习进行模型参数更新的方法、系统及装置 |
CN112541593A (zh) * | 2020-12-06 | 2021-03-23 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的联合训练业务模型的方法及装置 |
-
2021
- 2021-03-24 CN CN202110313679.XA patent/CN113011587B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200311485A1 (en) * | 2019-03-26 | 2020-10-01 | Shenzhen Keya Medical Technology Corporation | Method and system for generating a centerline for an object, and computer readable medium |
CN111475852A (zh) * | 2020-06-19 | 2020-07-31 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护针对业务模型进行数据预处理的方法及装置 |
CN111931950A (zh) * | 2020-09-28 | 2020-11-13 | 支付宝(杭州)信息技术有限公司 | 一种基于联邦学习进行模型参数更新的方法及系统 |
CN112541593A (zh) * | 2020-12-06 | 2021-03-23 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的联合训练业务模型的方法及装置 |
CN112396191A (zh) * | 2020-12-29 | 2021-02-23 | 支付宝(杭州)信息技术有限公司 | 一种基于联邦学习进行模型参数更新的方法、系统及装置 |
Non-Patent Citations (2)
Title |
---|
YUWEI SUN ET AL.: "Blockchain-Based Federated Learning Against End-Point Adversarial Data Corruption", 《2020 19TH IEEE INTERNATIONAL CONFERENCE ON MACHINE LEARNING AND APPLICATIONS (ICMLA)》 * |
周俊等: "边缘计算隐私保护研究进展", 《计算机研究与发展》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113722738A (zh) * | 2021-09-02 | 2021-11-30 | 脸萌有限公司 | 数据保护方法、装置、介质及电子设备 |
CN113722738B (zh) * | 2021-09-02 | 2023-08-08 | 脸萌有限公司 | 数据保护方法、装置、介质及电子设备 |
WO2023036184A1 (en) * | 2021-09-08 | 2023-03-16 | Huawei Cloud Computing Technologies Co., Ltd. | Methods and systems for quantifying client contribution in federated learning |
CN114429222A (zh) * | 2022-01-19 | 2022-05-03 | 支付宝(杭州)信息技术有限公司 | 一种模型的训练方法、装置及设备 |
CN114611128B (zh) * | 2022-03-15 | 2023-06-06 | 抖音视界有限公司 | 一种纵向联邦学习方法、装置、系统、设备及存储介质 |
CN114611128A (zh) * | 2022-03-15 | 2022-06-10 | 北京字节跳动网络技术有限公司 | 一种纵向联邦学习方法、装置、系统、设备及存储介质 |
CN114723069A (zh) * | 2022-04-15 | 2022-07-08 | 支付宝(杭州)信息技术有限公司 | 参数更新方法、装置和电子设备 |
CN114723047A (zh) * | 2022-04-15 | 2022-07-08 | 支付宝(杭州)信息技术有限公司 | 任务模型训练方法、装置以及系统 |
WO2024051456A1 (zh) * | 2022-09-05 | 2024-03-14 | 北京火山引擎科技有限公司 | 多方协同模型训练方法、装置、设备和介质 |
CN115865521B (zh) * | 2023-02-09 | 2023-05-09 | 智慧眼科技股份有限公司 | 一种模型局部数据处理方法、装置、设备及存储介质 |
CN115865521A (zh) * | 2023-02-09 | 2023-03-28 | 智慧眼科技股份有限公司 | 一种模型局部数据处理方法、装置、设备及存储介质 |
CN115953651A (zh) * | 2023-03-13 | 2023-04-11 | 浪潮电子信息产业股份有限公司 | 一种基于跨域设备的模型训练方法、装置、设备及介质 |
CN115953651B (zh) * | 2023-03-13 | 2023-09-12 | 浪潮电子信息产业股份有限公司 | 一种基于跨域设备的模型训练方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113011587B (zh) | 2022-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113011587B (zh) | 一种隐私保护的模型训练方法和系统 | |
CN111931950B (zh) | 一种基于联邦学习进行模型参数更新的方法及系统 | |
CN111125735B (zh) | 一种基于隐私数据进行模型训练的方法及系统 | |
CN112288100B (zh) | 一种基于联邦学习进行模型参数更新的方法、系统及装置 | |
Al Badawi et al. | Privft: Private and fast text classification with homomorphic encryption | |
CN111931216B (zh) | 一种基于隐私保护的方式获取联合训练模型的方法及系统 | |
Tanuwidjaja et al. | A survey on deep learning techniques for privacy-preserving | |
Nguyen et al. | Autogan-based dimension reduction for privacy preservation | |
CN111460528B (zh) | 一种基于Adam优化算法的多方联合训练方法及系统 | |
Ray et al. | A surrogate assisted parallel multiobjective evolutionary algorithm for robust engineering design | |
CN113033823B (zh) | 一种模型训练方法、系统及装置 | |
CN112766514B (zh) | 一种联合训练机器学习模型的方法、系统及装置 | |
Feng et al. | Semi-supervised federated heterogeneous transfer learning | |
Xie et al. | Secure collaborative few-shot learning | |
Dong et al. | Dropping activation outputs with localized first-layer deep network for enhancing user privacy and data security | |
Bien et al. | Non-convex global minimization and false discovery rate control for the TREX | |
CN114491629A (zh) | 一种隐私保护的图神经网络训练方法及系统 | |
Zhou et al. | Deep binarized convolutional neural network inferences over encrypted data | |
Yu et al. | Security and Privacy in Federated Learning | |
Deng et al. | Non-interactive and privacy-preserving neural network learning using functional encryption | |
CN111931947B (zh) | 一种用于分布式模型训练的训练样本重组方法及系统 | |
Al-Janabi et al. | Secure Data Computation Using Deep Learning and Homomorphic Encryption: A Survey. | |
Yuan et al. | A training scheme of deep neural networks on encrypted data | |
Wang et al. | LDP‐Fed+: A robust and privacy‐preserving federated learning based classification framework enabled by local differential privacy | |
Amorim et al. | Data Privacy with Homomorphic Encryption in Neural Networks Training and Inference |
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 |