CN111967035B - 模型训练方法、装置和电子设备 - Google Patents
模型训练方法、装置和电子设备 Download PDFInfo
- Publication number
- CN111967035B CN111967035B CN202011144330.XA CN202011144330A CN111967035B CN 111967035 B CN111967035 B CN 111967035B CN 202011144330 A CN202011144330 A CN 202011144330A CN 111967035 B CN111967035 B CN 111967035B
- Authority
- CN
- China
- Prior art keywords
- share
- party
- product
- value
- hessian matrix
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例公开了一种模型训练方法、装置和电子设备。所述方法包括:第一方根据特征数据和原始模型参数的第一份额与第二方秘密分享第一乘积,得到第一乘积的第一份额;向第三方发送第一乘积的第一份额;接收第三方发来的激励函数的取值的第一份额;根据特征数据和所述取值的第一份额与第二方秘密分享损失函数的梯度,得到所述梯度的第一份额;根据特征数据和所述取值的第一份额与第二方秘密分享海森矩阵,得到海森矩阵的第一份额;若海森矩阵的条件数满足预设条件,根据原始模型参数的第一份额、所述梯度的第一份额和海森矩阵的第一份额与第二方秘密分享新的模型参数,得到新的模型参数的第一份额。本说明书实施例可以保护数据隐私。
Description
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种模型训练方法、装置和电子设备。
背景技术
大数据时代,存在非常多的数据孤岛。数据通常分散存于不同的企业中,企业与企业之间由于竞争关系和隐私保护的考虑,并不是完全的互相信任。
在一些情况下,企业与企业之间需要进行合作安全建模,以便在充分保护企业数据隐私的前提下,使用各方的数据对数据处理模型进行协作训练。用于对数据处理模型进行训练的数据是分散在合作建模的各方的,因此如何在模型训练的过程中保护建模各方的数据隐私,是当前亟需解决的技术问题。
发明内容
本说明书实施例提供一种模型训练方法、装置和电子设备,以在模型训练的过程中保护建模各方的数据隐私。本说明书实施例的技术方案如下。
本说明书实施例的第一方面,提供了一种模型训练方法,应用于模型训练系统,所述模型训练系统包括第一方、第二方和第三方,所述第一方持有样本的特征数据,所述第二方持有样本的标签,该方法包括:第一方根据特征数据和原始模型参数的第一份额,第二方根据原始模型参数的第二份额,秘密分享第一乘积,第一方得到第一乘积的第一份额,第二方得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;第三方获得第一乘积的第一份额和第二份额,根据第一乘积的第一份额和第二份额,确定激励函数的取值的第一份额和第二份额,分别向第一方和第二方发送所述取值的第一份额和第二份额,第一方接收所述取值的第一份额,第二方接收所述取值的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据标签和所述取值的第二份额,秘密分享损失函数的梯度,第一方得到所述梯度的第一份额,第二方得到所述梯度的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据所述取值的第二份额,秘密分享海森矩阵,第一方得到海森矩阵的第一份额,第二方得到海森矩阵的第二份额;若海森矩阵的条件数满足预设条件,第一方根据原始模型参数的第一份额、所述梯度的第一份额和海森矩阵的第一份额,第二方根据原始模型参数的第二份额、所述梯度的第二份额和海森矩阵的第二份额,秘密分享新的模型参数,第一方得到新的模型参数的第一份额,第二方得到新的模型参数的第二份额。
本说明书实施例的第二方面,提供了一种模型训练方法,应用于第一方,所述第一方持有样本的特征数据,该方法包括:根据特征数据和原始模型参数的第一份额与第二方秘密分享第一乘积,得到第一乘积的第一份额,所述第一乘积为特征数据和原始模型参数的乘积;向第三方发送第一乘积的第一份额;接收第三方发来的激励函数的取值的第一份额;根据特征数据和所述取值的第一份额与第二方秘密分享损失函数的梯度,得到所述梯度的第一份额;根据特征数据和所述取值的第一份额与第二方秘密分享海森矩阵,得到海森矩阵的第一份额;若海森矩阵的条件数满足预设条件,根据原始模型参数的第一份额、所述梯度的第一份额和海森矩阵的第一份额与第二方秘密分享新的模型参数,得到新的模型参数的第一份额。
本说明书实施例的第三方面,提供了一种模型训练方法,应用于第二方,所述第二方持有样本的标签,该方法包括:根据原始模型参数的第二份额与第一方秘密分享第一乘积,得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;向第三方发送第二乘积的第二份额;接收第三方发来的激励函数的取值的第二份额;根据标签和所述取值的第二份额与第一方秘密分享损失函数的梯度,得到所述梯度的第二份额;根据所述取值的第二份额与第一方秘密分享海森矩阵,得到海森矩阵的第二份额;若海森矩阵的条件数满足预设条件,根据原始模型参数的第二份额、所述梯度的第二份额和海森矩阵的第二份额与第一方秘密分享新的模型参数,得到新的模型参数的第二份额。
本说明书实施例的第四方面,提供了一种模型训练方法,应用于第三方,该方法包括:接收第一方发来的第一乘积的第一份额、以及第二方发来的第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;根据第一乘积的第一份额和第二份额,确定激励函数的取值的第一份额和第二份额;向第一方发送所述取值的第一份额,向第二方发送所述取值的第二份额,以便第一方根据所述取值的第一份额,第二方根据所述取值的第二份额,秘密分享新的模型参数。
本说明书实施例的第五方面,提供了一种模型训练方法,应用于建模服务平台,该方法包括:生成随机数,将所述随机数拆分为第一份额和第二份额,向第一方发送所述随机数的第一份额,向第二方发送所述随机数的第二份额,以便所述第一方和所述第二方执行以下步骤:第一方根据样本的特征数据和原始模型参数的第一份额,第二方根据原始模型参数的第二份额,秘密分享第一乘积,第一方得到第一乘积的第一份额,第二方得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;第一方向第三方发送第一乘积的第一份额,第二方向第三方发送第一乘积的第二份额,以便第三方根据第一乘积的第一份额和第二份额,确定激励函数的取值的第一份额和第二份额,分别向第一方和第二方发送所述取值的第一份额和第二份额;第一方接收所述取值的第一份额,第二方接收所述取值的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据样本的标签和所述取值的第二份额,秘密分享损失函数的梯度,第一方得到所述梯度的第一份额,第二方得到所述梯度的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据所述取值的第二份额,秘密分享海森矩阵,第一方得到海森矩阵的第一份额,第二方得到海森矩阵的第二份额;第一方根据所述随机数的第一份额和海森矩阵的第一份额,第二方根据所述随机数的第二份额和海森矩阵的第二份额,秘密分享第二乘积,第一方得到第二乘积的第一份额,第二方得到第二乘积的第二份额,所述第二乘积为所述随机数和海森矩阵之间的乘积;若第二乘积的条件数满足预设条件,第一方根据原始模型参数的第一份额、所述梯度的第一份额和海森矩阵的第一份额,第二方根据原始模型参数的第二份额、所述梯度的第二份额和海森矩阵的第二份额,秘密分享新的模型参数,第一方得到新的模型参数的第一份额,第二方得到新的模型参数的第二份额。
本说明书实施例的第六方面,提供了一种模型训练方法,应用于模型训练系统,所述模型训练系统包括第一方、第二方和第三方,所述第一方持有样本的特征数据,所述第二方持有样本的标签,该方法包括:第一方根据特征数据和原始模型参数的第一份额,第二方根据原始模型参数的第二份额,秘密分享第一乘积,第一方得到第一乘积的第一份额,第二方得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;第三方获得第一乘积的第一份额和第二份额,根据第一乘积的第一份额和第二份额,确定激励函数的取值的第一份额和第二份额,分别向第一方和第二方发送所述取值的第一份额和第二份额,第一方接收所述取值的第一份额,第二方接收所述取值的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据标签和所述取值的第二份额,秘密分享损失函数的梯度,第一方得到所述梯度的第一份额,第二方得到所述梯度的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据所述取值的第二份额,秘密分享海森矩阵,第一方得到海森矩阵的第一份额,第二方得到海森矩阵的第二份额;若海森矩阵的条件数不满足预设条件,第一方根据原始模型参数的第一份额、所述梯度的第一份额和预设步长,计算新的模型参数的第一份额,第二方根据原始模型参数的第二份额、所述梯度的第二份额和预设步长,计算新的模型参数的第二份额。
本说明书实施例的第七方面,提供了一种模型训练方法,应用于第一方,所述第一方持有样本的特征数据,该方法包括:根据特征数据和原始模型参数的第一份额与第二方秘密分享第一乘积,得到第一乘积的第一份额,所述第一乘积为特征数据和原始模型参数的乘积;向第三方发送第一乘积的第一份额;接收第三方发来的激励函数的取值的第一份额;根据特征数据和所述取值的第一份额与第二方秘密分享损失函数的梯度,得到所述梯度的第一份额;根据特征数据和所述取值的第一份额与第二方秘密分享海森矩阵,得到海森矩阵的第一份额;若海森矩阵的条件数不满足预设条件,根据原始模型参数的第一份额、所述梯度的第一份额和预设步长,计算新的模型参数的第一份额。
本说明书实施例的第八方面,提供了一种模型训练方法,应用于第二方,所述第二方持有样本的标签,该方法包括:根据原始模型参数的第二份额与第一方秘密分享第一乘积,得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;向第三方发送第二乘积的第二份额;接收第三方发来的激励函数的取值的第二份额;根据标签和所述取值的第二份额与第一方秘密分享损失函数的梯度,得到所述梯度的第二份额;根据所述取值的第二份额与第一方秘密分享海森矩阵,得到海森矩阵的第二份额;若海森矩阵的条件数不满足预设条件,根据原始模型参数的第二份额、所述梯度的第二份额和预设步长,计算新的模型参数的第二份额。
本说明书实施例的第九方面,提供了一种模型训练方法,应用于建模服务平台,该方法包括:生成随机数,将所述随机数拆分为第一份额和第二份额,向第一方发送所述随机数的第一份额,向第二方发送所述随机数的第二份额,以便所述第一方和所述第二方执行以下步骤:第一方根据样本的特征数据和原始模型参数的第一份额,第二方根据原始模型参数的第二份额,秘密分享第一乘积,第一方得到第一乘积的第一份额,第二方得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;第一方向第三方发送第一乘积的第一份额,第二方向第三方发送第一乘积的第二份额,以便第三方根据第一乘积的第一份额和第二份额,确定激励函数的取值的第一份额和第二份额,分别向第一方和第二方发送所述取值的第一份额和第二份额;第一方接收所述取值的第一份额,第二方接收所述取值的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据样本的标签和所述取值的第二份额,秘密分享损失函数的梯度,第一方得到所述梯度的第一份额,第二方得到所述梯度的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据所述取值的第二份额,秘密分享海森矩阵,第一方得到海森矩阵的第一份额,第二方得到海森矩阵的第二份额;第一方根据所述随机数的第一份额和海森矩阵的第一份额,第二方根据所述随机数的第二份额和海森矩阵的第二份额,秘密分享第二乘积,第一方得到第二乘积的第一份额,第二方得到第二乘积的第二份额,所述第二乘积为所述随机数和海森矩阵之间的乘积;若第二乘积的条件数不满足预设条件,第一方根据原始模型参数的第一份额、所述梯度的第一份额和预设步长,计算新的模型参数的第一份额,第二方根据原始模型参数的第二份额、所述梯度的第二份额和预设步长,计算新的模型参数的第二份额。
本说明书实施例的第十方面,提供了一种模型训练装置,应用于第一方,所述第一方持有样本的特征数据,该装置包括:第一秘密分享单元,用于根据特征数据和原始模型参数的第一份额与第二方秘密分享第一乘积,得到第一乘积的第一份额,所述第一乘积为特征数据和原始模型参数的乘积;发送单元,用于向第三方发送第一乘积的第一份额;接收单元,用于接收第三方发来的激励函数的取值的第一份额;第二秘密分享单元,用于根据特征数据和所述取值的第一份额与第二方秘密分享损失函数的梯度,得到所述梯度的第一份额;根据特征数据和所述取值的第一份额与第二方秘密分享海森矩阵,得到海森矩阵的第一份额;第三秘密分享单元,用于若海森矩阵的条件数满足预设条件,根据原始模型参数的第一份额、所述梯度的第一份额和海森矩阵的第一份额与第二方秘密分享新的模型参数,得到新的模型参数的第一份额。
本说明书实施例的第十一方面,提供了一种模型训练装置,应用于第二方,所述第二方持有样本的标签,该装置包括:第一秘密分享单元,用于根据原始模型参数的第二份额与第一方秘密分享第一乘积,得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;发送单元,用于向第三方发送第二乘积的第二份额;接收单元,用于接收第三方发来的激励函数的取值的第二份额;第二秘密分享单元,用于根据标签和所述取值的第二份额与第一方秘密分享损失函数的梯度,得到所述梯度的第二份额;根据所述取值的第二份额与第一方秘密分享海森矩阵,得到海森矩阵的第二份额;第三秘密分享单元,用于若海森矩阵的条件数满足预设条件,根据原始模型参数的第二份额、所述梯度的第二份额和海森矩阵的第二份额与第一方秘密分享新的模型参数,得到新的模型参数的第二份额。
本说明书实施例的第十二方面,提供了一种模型训练装置,应用于第三方,该装置包括:接收单元,用于接收第一方发来的第一乘积的第一份额、以及第二方发来的第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;确定单元,用于根据第一乘积的第一份额和第二份额,确定激励函数的取值的第一份额和第二份额;发送单元,用于向第一方发送所述取值的第一份额,向第二方发送所述取值的第二份额,以便第一方根据取值的第一份额,第二方根据取值的第二份额,秘密分享新的模型参数。
本说明书实施例的第十三方面,提供了一种模型训练装置,应用于建模服务平台,该装置包括:生成单元,用于生成随机数;拆分单元,用于将所述随机数拆分为第一份额和第二份额;发送单元,用于向第一方发送所述随机数的第一份额,向第二方发送所述随机数的第二份额,以便所述第一方和所述第二方执行以下步骤:第一方根据样本的特征数据和原始模型参数的第一份额,第二方根据原始模型参数的第二份额,秘密分享第一乘积,第一方得到第一乘积的第一份额,第二方得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;第一方向第三方发送第一乘积的第一份额,第二方向第三方发送第一乘积的第二份额,以便第三方根据第一乘积的第一份额和第二份额,确定激励函数的取值的第一份额和第二份额,分别向第一方和第二方发送所述取值的第一份额和第二份额;第一方接收所述取值的第一份额,第二方接收所述取值的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据样本的标签和所述取值的第二份额,秘密分享损失函数的梯度,第一方得到所述梯度的第一份额,第二方得到所述梯度的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据所述取值的第二份额,秘密分享海森矩阵,第一方得到海森矩阵的第一份额,第二方得到海森矩阵的第二份额;第一方根据所述随机数的第一份额和海森矩阵的第一份额,第二方根据所述随机数的第二份额和海森矩阵的第二份额,秘密分享第二乘积,第一方得到第二乘积的第一份额,第二方得到第二乘积的第二份额,所述第二乘积为所述随机数和海森矩阵之间的乘积;若第二乘积的条件数满足预设条件,第一方根据原始模型参数的第一份额、所述梯度的第一份额和海森矩阵的第一份额,第二方根据原始模型参数的第二份额、所述梯度的第二份额和海森矩阵的第二份额,秘密分享新的模型参数,第一方得到新的模型参数的第一份额,第二方得到新的模型参数的第二份额。
本说明书实施例的第十四方面,提供了一种模型训练装置,应用于第一方,所述第一方持有样本的特征数据,该装置包括:第一秘密分享单元,用于根据特征数据和原始模型参数的第一份额与第二方秘密分享第一乘积,得到第一乘积的第一份额,所述第一乘积为特征数据和原始模型参数的乘积;发送单元,用于向第三方发送第一乘积的第一份额;接收单元,用于接收第三方发来的激励函数的取值的第一份额;第二秘密分享单元,用于根据特征数据和所述取值的第一份额与第二方秘密分享损失函数的梯度,得到所述梯度的第一份额;根据特征数据和所述取值的第一份额与第二方秘密分享海森矩阵,得到海森矩阵的第一份额;第三秘密分享单元,用于若海森矩阵的条件数不满足预设条件,根据原始模型参数的第一份额、所述梯度的第一份额和预设步长,计算新的模型参数的第一份额。
本说明书实施例的第十五方面,提供了一种模型训练装置,应用于第二方,所述第二方持有样本的标签,该装置包括:第一秘密分享单元,用于根据原始模型参数的第二份额与第一方秘密分享第一乘积,得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;发送单元,用于向第三方发送第二乘积的第二份额;接收单元,用于接收第三方发来的激励函数的取值的第二份额;第二秘密分享单元,用于根据标签和所述取值的第二份额与第一方秘密分享损失函数的梯度,得到所述梯度的第二份额;根据所述取值的第二份额与第一方秘密分享海森矩阵,得到海森矩阵的第二份额;第三秘密分享单元,用于若海森矩阵的条件数不满足预设条件,根据原始模型参数的第二份额、所述梯度的第二份额和预设步长,计算新的模型参数的第二份额。
本说明书实施例的第十六方面,提供了一种模型训练装置,应用于建模服务平台,该装置包括:生成单元,用于生成随机数;拆分单元,用于将所述随机数拆分为第一份额和第二份额;发送单元,用于向第一方发送所述随机数的第一份额,向第二方发送所述随机数的第二份额,以便所述第一方和所述第二方执行以下步骤:第一方根据样本的特征数据和原始模型参数的第一份额,第二方根据原始模型参数的第二份额,秘密分享第一乘积,第一方得到第一乘积的第一份额,第二方得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;第一方向第三方发送第一乘积的第一份额,第二方向第三方发送第一乘积的第二份额,以便第三方根据第一乘积的第一份额和第二份额,确定激励函数的取值的第一份额和第二份额,分别向第一方和第二方发送所述取值的第一份额和第二份额;第一方接收所述取值的第一份额,第二方接收所述取值的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据样本的标签和所述取值的第二份额,秘密分享损失函数的梯度,第一方得到所述梯度的第一份额,第二方得到所述梯度的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据所述取值的第二份额,秘密分享海森矩阵,第一方得到海森矩阵的第一份额,第二方得到海森矩阵的第二份额;第一方根据所述随机数的第一份额和海森矩阵的第一份额,第二方根据所述随机数的第二份额和海森矩阵的第二份额,秘密分享第二乘积,第一方得到第二乘积的第一份额,第二方得到第二乘积的第二份额,所述第二乘积为所述随机数和海森矩阵之间的乘积;若第二乘积的条件数不满足预设条件,第一方根据原始模型参数的第一份额、所述梯度的第一份额和预设步长,计算新的模型参数的第一份额,第二方根据原始模型参数的第二份额、所述梯度的第二份额和预设步长,计算新的模型参数的第二份额。
本说明书实施例的第十七方面,提供了一种电子设备,包括:至少一个处理器;存储有程序指令的存储器,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如第二方面、第三方面、第四方面、第五方面、第七方面、第八方面、第九方面所述方法的指令。
本说明书实施例提供的技术方案,可以由第三方确定激励函数的取值,这样可以减少所述第一方和所述第二方之间交互的次数,从而减少所述第一方和所述第二方之间的数据传输量,还有利于快速地确定激励函数的取值,从而提高模型训练效率。另外,通过条件数和预设条件,可以避免在模型训练的过程中由于出现病态矩阵所导致的不收敛问题。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例中模型训练方法的流程示意图;
图2为本说明书实施例中模型训练过程的示意图;
图3为本说明书实施例中模型训练方法的流程示意图;
图4为本说明书实施例中模型训练方法的流程示意图;
图5为本说明书实施例中模型训练方法的流程示意图;
图6为本说明书实施例中模型训练方法的流程示意图;
图7为本说明书实施例中模型训练方法的流程示意图;
图8为本说明书实施例中模型训练方法的流程示意图;
图9为本说明书实施例中模型训练方法的流程示意图;
图10为本说明书实施例中模型训练装置的结构示意图;
图11为本说明书实施例中模型训练装置的结构示意图;
图12为本说明书实施例中模型训练装置的结构示意图;
图13为本说明书实施例中模型训练装置的结构示意图;
图14为本说明书实施例中模型训练装置的结构示意图;
图15为本说明书实施例中模型训练装置的结构示意图;
图16为本说明书实施例中电子设备的结构示意图;
图17为本说明书实施例中模型训练系统的结构示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
以下介绍本说明书实施例涉及的技术术语。
多方安全计算(Secure Muti-Party Computation,MPC)是一种保护数据隐私安全的算法。多方安全计算能让参与计算的多个数据方在不泄漏自身数据的前提下进行协作计算。
秘密分享(Secret Sharing,SS)是一种保护数据隐私安全的算法。多个数据方可以在不泄漏自身数据的前提下,使用秘密分享算法进行协作计算,得到秘密信息。每个数据方可以获得该秘密信息的一份份额。单个数据方无法恢复该秘密信息。只有多个数据方一同协作才能恢复该秘密信息。例如,数据方P 1持有数据x 1,数据方P 2持有数据x 2。采用秘密分享算法,数据方P 1和数据方P 2可以进行协作计算,得到秘密信息y=y 1+y 2=x 1 x 2。数据方P 1在计算后可以获得秘密信息y的份额y 1,数据方P 2在计算后可以获得秘密信息y的份额y 2。
激励函数(Activation Function),又称为激活函数,可以用于构建数据处理模型。激励函数定义了在给定输入下的输出。激励函数为非线性函数。通过激励函数可以在数据处理模型中加入非线性因素,提高数据处理模型的表达能力。所述激励函数可以包括Sigmoid函数、Tanh函数和ReLU函数等。所述数据处理模型可以包括逻辑回归模型和神经网络模型等。
损失函数(Loss Function)可以用于衡量数据处理模型的预测值与真实值之间不一致的程度。损失函数的值越小,表示数据处理模型的鲁棒性越好。所述损失函数包括但不限于对数损失函数(Logarithmic Loss Function)、平方损失函数(Square Loss)等。
海森矩阵(Hessian Matrix),又称为黑塞矩阵、海瑟矩阵或海塞矩阵等,是损失函数的二阶偏导数所构成的方阵,用于表示损失函数的局部曲率。
病态矩阵是一种特殊矩阵,指条件数较大的非奇异矩阵。病态矩阵的逆和以其为系数矩阵的方程组的界对微小扰动十分敏感,对数值求解会带来很大困难。
矩阵的条件数可以用于度量该矩阵的病态程度。矩阵的条件数越大,表示该矩阵的病态程度越大;矩阵的条件数越小,表示该矩阵的病态程度越小。矩阵的条件数等于该矩阵的范数与该矩阵的逆的范数的乘积。例如,cond(F)=‖F‖×‖F -1‖,cond(F)表示矩阵F的条件数,‖‖表示取范数运算,F -1表示矩阵F的逆矩阵。
在模型训练的过程中,可以使用模型参数优化方法对数据处理模型的模型参数进行多次优化调整。所述模型参数优化方法可以包括梯度下降法、牛顿法等。所述牛顿法可以包括原始牛顿法以及基于原始牛顿法的各种变形方法(诸如阻尼牛顿法、正则化牛顿法等;正则化牛顿法是指附带了正则化项的牛顿法;正则化项可以降低数据处理模型的复杂度和不稳定程度,从而降低过拟合的危险)。所述梯度下降法可以包括原始梯度下降法以及基于原始梯度下降法的各种变形方法(诸如批量梯度下降法、正则化梯度下降法等等;正则化梯度下降法是指附带了正则化项的梯度下降法;正则化项可以降低数据处理模型的复杂度和不稳定程度,从而降低过拟合的危险)。
相较于梯度下降法,牛顿法有着更快的收敛速度。为了减少模型参数优化调整的次数,提高数据处理模型的训练效率,合作建模的各方优先使用牛顿法协作确定数据处理模型的模型参数。但一些情况下(例如正负样本比例不均衡),在使用牛顿法确定模型参数的过程中容易出现病态矩阵,导致模型参数不收敛。因此若在使用牛顿法确定模型参数的过程中判断海森矩阵的病态程度,则可以避免在使用牛顿法确定模型参数的过程中由于出现病态矩阵所导致的不收敛问题。另外,若在使用牛顿法确定模型参数的过程中出现了病态矩阵,则还可以使用梯度下降法代替牛顿法继续优化调整模型参数,以对数据处理模型继续进行训练,从而实现自适应地选择牛顿法或梯度下降法来优化调整模型参数。
为此,本说明书提供模型训练系统的一个实施例。请参阅图17。所述模型训练系统可以包括第一方、第二方、第三方(TTP,Trusted Third Party)和建模服务平台。
所述第一方和所述第二方均可以为单个服务器、由多个服务器构成的服务器集群、或者部署在云端的服务器。所述第一方和所述第二方可以为合作安全建模的双方。数据处理模型的训练样本分散在所述第一方和所述第二方。具体地,所述第一方可以持有训练样本的特征数据,所述第二方可以持有训练样本的标签。例如,所述第一方可以为大数据公司,所述大数据公司持有用户借贷金额、用户缴纳社保的基数、用户是否已婚、以及用户是否有房等特征数据。所述第二方可以为征信机构,所述征信机构持有用户的标签,所述标签用于表示用户是否为失信者。在合作安全建模的过程中,出于保护数据隐私的考虑,所述大数据公司不能够向所述征信机构泄漏自身持有的数据,所述征信机构也不能够向所述大数据公司泄漏自身持有的数据。所述第三方可以为单个服务器、由多个服务器构成的服务器集群、或者部署在云端的服务器。所述第三方可以向所述第一方和所述第二方提供激励函数取值的份额等参数。所述建模服务平台可以为单个服务器、由多个服务器构成的服务器集群、或者部署在云端的服务器。所述建模服务平台可以向所述第一方和所述第二方提供随机数的份额等参数。
上文中详细描述了本说明书实施例的模型训练系统。下面将结合图1、图2和图17,详细描述本说明书实施例的模型训练方法。所述模型训练方法可以包括以下步骤。
步骤S11:第一方根据特征数据和原始模型参数的第一份额,第二方根据原始模型参数的第二份额,秘密分享第一乘积,第一方得到第一乘积的第一份额,第二方得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积。
在一些实施例中,所述第一方可以持有特征数据,所述第二方可以持有标签。特征数据和标签构成了数据处理模型的训练样本。在实际应用中,所述第一方可以持有特征数据集,所述特征数据集可以包括训练样本集中各个训练样本的特征数据。所述第二方可以持有标签集,所述标签集可以包括训练样本集中各个训练样本的标签。所述第一方可以从所述特征数据集中随机选取训练样本的特征数据,所述第二方可以从所述标签集中随机选取训练样本的标签。所述第一方可以根据选取的特征数据,所述第二方可以根据选取的标签,秘密分享第一乘积。例如,所述第一方和所述第二方可以协商训练样本的标识。所述第一方可以根据协商的标识,从所述特征数据集中选取相应训练样本的特征数据。所述第二方可以根据协商的标识,从所述标签集中选取相应训练样本的标签。
在一些实施例中,所述第一方还可以持有原始模型参数的第一份额,所述第二方还可以持有原始模型参数的第二份额。原始模型参数的第一份额和原始模型参数的第二份额的和等于原始模型参数。在实际应用中,所述模型训练方法可以包括多轮迭代过程。若本轮迭代过程为首轮迭代过程,则所述原始模型参数可以是预先设定的。例如,所述建模服务平台可以预先设定原始模型参数;可以将原始模型参数拆分为第一份额和第二份额;可以向所述第一方发送原始模型参数的第一份额;可以向所述第二方发送原始模型参数的第二份额。所述第一方可以接收原始模型参数的第一份额,所述第二方可以接收原始模型参数的第二份额。若本轮迭代过程为非首轮迭代过程,则所述原始模型参数可以为上一轮迭代过程所确定的模型参数。通过上一轮迭代过程,所述第一方可以获得原始模型参数的第一份额,所述第二方可以获得原始模型参数的第二份额。
在一些实施例中,所述第一方可以根据特征数据和原始模型参数的第一份额,所述第二方可以根据原始模型参数的第二份额,秘密分享第一乘积。所述第一乘积为特征数据和原始模型参数的乘积。所述第一方和所述第二方可以分别获得第一乘积的一份份额。为了便于描述,可以将所述第一方获得的份额作为第一乘积的第一份额,可以将所述第二方获得的份额作为第一乘积的第二份额。第一乘积的第一份额和第一乘积的第二份额的和等于第一乘积。
例如,特征数据可以表示为X,原始模型参数可以表示为W。原始模型参数的第一份额可以表示为<W>0,原始模型参数的第二份额可以表示为<W>1。<W>0+<W>1=W。所述第一方可以根据特征数据X和原始模型参数的第一份额<W>0,所述第二方可以根据原始模型参数的第二份额<W>1,秘密分享第一乘积XW。所述第一方得到第一乘积的第一份额<XW>0,所述第二方得到第一乘积的第二份额<XW>1。<XW>0+<XW>1=XW。
具体地,所述第一方可以根据特征数据X,所述第二方可以根据原始模型参数的第二份额<W>1,秘密分享X<W>1。所述第一方可以获得<X<W>1>0,所述第二方可以获得<X<W>1>1。<X<W>1>0+<X<W>1>1=X<W>1。所述第一方可以计算X<W>0+<X<W>1>0作为第一乘积的第一份额<XW>0。所述第二方可以将<X<W>1>1作为第一乘积的第二份额<XW>1。
步骤S13:第三方获得第一乘积的第一份额和第二份额,根据第一乘积的第一份额和第二份额,确定激励函数的取值的第一份额和第二份额,分别向第一方和第二方发送所述取值的第一份额和第二份额,第一方接收所述取值的第一份额,第二方接收所述取值的第二份额。
在一些实施例中,所述第一方可以向所述第三方发送第一乘积的第一份额。所述第三方可以接收第一乘积的第一份额。另外,所述第二方可以向所述第三方发送第一乘积的第二份额。所述第三方可以接收第一乘积的第二份额。
在一些实施例中,所述第三方可以根据第一乘积的第一份额和第二份额,确定激励函数的取值的第一份额和第二份额;可以向所述第一方发送所述取值的第一份额;可以向所述第二方发送所述取值的第二份额。所述第一方可以接收所述取值的第一份额,所述第二方可以接收所述取值的第二份额。所述取值的第一份额和所述取值的第二份额的和等于所述取值。具体地,所述第三方可以根据第一乘积的第一份额和第二份额,计算第一乘积。例如,所述第三方可以将第一乘积的第一份额和第二份额相加,得到第一乘积。所述第三方可以将第一乘积作为激励函数中自变量的取值;可以根据激励函数中自变量的取值,计算激励函数的取值;可以将激励函数的取值拆分为第一份额和第二份额。
相较于所述第一方和所述第二方之间通过多方安全计算的方式确定激励函数的取值(例如通过混淆电路的方式确定激励函数的取值),由第三方确定激励函数的取值,一方面,可以减少所述第一方和所述第二方之间交互的次数,从而减少所述第一方和所述第二方之间的数据传输量,另一方面,还有利于快速地确定激励函数的取值,从而可以提高模型训练效率。
例如,第一乘积的第一份额可以表示为<XW>0,第一乘积的第二份额可以表示为<XW>1。所述第三方可以计算第一乘积XW=<XW>0+<XW>1。所述激励函数可以为Sigmoid函数。所述第三方可以将第一乘积XW作为Sigmoid函数中自变量x的取值;可以根据Sigmoid函数中自变量x的取值,计算Sigmoid函数的取值;可以将Sigmoid函数的取值a拆分为第一份额<a>0和第二份额<a>1;可以向所述第一方发送所述取值的第一份额<a>0;可以向所述第二方发送所述取值的第二份额<a>1。<a>0+<a>1=a。
步骤S15:第一方根据特征数据和所述取值的第一份额,第二方根据标签和所述取值的第二份额,秘密分享损失函数的梯度,第一方得到所述梯度的第一份额,第二方得到所述梯度的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据所述取值的第二份额,秘密分享海森矩阵,第一方得到海森矩阵的第一份额,第二方得到海森矩阵的第二份额。
在一些实施例中,所述第一方可以根据特征数据和所述取值的第一份额,所述第二方可以根据标签和所述取值的第二份额,秘密分享损失函数的梯度。所述第一方和所述第二方可以分别获得所述梯度的一份份额。为了便于描述,可以将所述第一方获得的份额作为所述梯度的第一份额,可以将所述第二方获得的份额作为所述梯度的第二份额。所述梯度的第一份额和所述梯度的第二份额的和等于所述梯度。
例如,所述第一方可以根据特征数据X和所述取值的第一份额<a>0,所述第二方可以根据标签Y和所述取值的第二份额<a>1,秘密分享损失函数的梯度dW(具体可以为向量)。所述第一方可以获得所述梯度的第一份额<dW>0,所述第二方可以获得所述梯度的第二份额<dW>1。以下介绍具体实现过程。
一方面,所述第一方可以根据特征数据X,所述第二方可以根据所述取值的第二份额<a>1,秘密分享X T <a>1。所述第一方可以获得<X T <a>1>0,所述第二方可以获得<X T <a>1>1。<X T <a>1>0+<X T <a>1>1=X T <a>1。另一方面,所述第一方可以根据特征数据X,所述第二方可以根据标签Y(具体为标签构成的向量),秘密分享X T Y。所述第一方可以获得<X T Y>0,所述第二方可以获得<X T Y>0。<X T Y>0+<X T Y>1=X T Y。
所述第一方可以计算X T <a>0+<[X T <a>1]>0-<X T Y>0作为所述梯度的第一份额<dW>0。所述第二方可以计算<[X T <a>1]>1-<X T Y>1作为所述梯度的第二份额<dW>1。
<dW>0+<dW>1
=X T <a>0+<[X T <a>1]>0-<X T Y>0+<[X T <a>1]>1-<X T Y>1
= X T <a>0+X T <a>1-X T Y=X T a-X T Y=X T (a-Y)=dW。
在一些实施例中,所述第一方可以根据特征数据和所述取值的第一份额,所述第二方可以根据所述取值的第二份额,秘密分享海森矩阵。所述第一方和所述第二方可以分别获得所述海森矩阵的一份份额。为了便于描述,可以将所述第一方获得的份额作为所述海森矩阵的第一份额,可以将所述第二方获得的份额作为所述海森矩阵的第二份额。海森矩阵的第一份额和海森矩阵的第二份额的和等于海森矩阵。
所述第一方可以根据所述取值的第一份额,所述第二方可以根据所述取值的第二份额,秘密分享对角矩阵。所述第一方和所述第二方可以分别获得所述对角矩阵的一份份额。为了便于描述,可以将所述第一方获得的份额作为所述对角矩阵的第一份额,可以将所述第二方获得的份额作为所述对角矩阵的第二份额。对角矩阵的第一份额和对角矩阵的第二份额的和等于对角矩阵。所述第一方可以根据特征数据和对角矩阵的第一份额,所述第二方可以根据对角矩阵的第二份额,秘密分享海森矩阵。所述第一方可以获得所述海森矩阵的第一份额,所述第二方可以获得所述海森矩阵的第二份额。
例如,所述第一方可以根据所述取值的第一份额<a>0,所述第二方可以根据所述取值的第二份额<a>1,秘密分享对角矩阵RNN。所述第一方可以获得对角矩阵的第一份额RNN 0 ,所述第二方可以获得对角矩阵的第二份额RNN 1 。以下介绍具体实现过程。
所述第一方可以根据所述取值的第一份额<a>0,所述第二方可以根据所述取值的第二份额<a>1,秘密分享<a>0×<a>1。所述第一方可以获得<[<a>0×<a>1]>0,所述第二方可以获得<[<a>0×<a>1]>1。<[<a>0×<a>1]>0+<[<a>0×<a>1]>1=<a>0×<a>1。×表示按位相乘运算。例如,向量m=(m 1 ,m 2 ,m 3 ),向量n=(n 1 ,n 2 ,n 3 )。m×n=(m 1 n 1 ,m 2 n 2 ,m 3 n 3 )。
所述第一方可以计算<r>0=<a>0-<[<a>0×<a>1]>0-<a>0×<a>0,所述第二方可以计算<r>1=<a>1-<[<a>0×<a>1]>0-<a>1×<a>1。
<r>0+<r>1
=<a>0-<[<a>0×<a>1]>0-<a>0×<a>0+<a>1-<[<a>0×<a>1]>0-<a>1×<a>1
={<a>0+<a>1}{1-<a>0-<a>1}=a(1-a)=r。
<r>0、<r>1和r分别为向量。因而所述第一方可以根据<r>0生成对角矩阵RNN=diag(r)的第一份额RNN 0 =diag(<r> 0 ),所述第二方可以根据<r>1生成对角矩阵RNN=diag(r)的第二份额RNN 1 =diag(<r> 1 )。RNN 0 +RNN 1 =RNN。对角矩阵RNN的第一份额RNN 0 和第二份额RNN 1 均可以为一个对角矩阵。具体地,所述第一方可以将<r> 0 中的数据元素作为RNN 0 主对角线上的数据元素,这样便实现了根据<r> 0 生成RNN 0 ;可以将<r> 1 中的数据元素作为RNN 1 主对角线上的数据元素,这样便实现了根据<r> 1 生成RNN 1 。
所述第一方可以根据特征数据X和对角矩阵的第一份额RNN 0 ,所述第二方可以根据对角矩阵的第二份额RNN 1 ,秘密分享海森矩阵H。所述第一方可以获得海森矩阵的第一份额<H>0,所述第二方可以获得海森矩阵的第二份额<H>1。以下介绍具体实现过程。
一方面,所述第一方可以根据特征数据X,所述第二方可以根据对角矩阵的第二份额RNN 1 ,秘密分享X T RNN 1 。所述第一方可以获得<X T RNN 1 >0,所述第二方可以获得<X T RNN 1 >1。<X T RNN 1 >0+<X T RNN 1 >1=X T RNN 1 。另一方面,所述第一方可以根据特征数据X,所述第二方可以根据<X T RNN 1 >1,秘密分享<X T RNN 1 >1 X。所述第一方可以获得<[<X T RNN 1 >1 X]>0,所述第二方可以获得<[<X T RNN 1 >1 X]>1。<[<X T RNN 1 >1 X]>0+<[<X T RNN 1 >1 X]>1=<X T RNN 1 >1 X。
所述第一方可以计算X T RNN 0 X+<X T RNN 1 >0 X+<[<X T RNN 1 >1 X]>0作为海森矩阵的第一份额<H>0。所述第二方可以将<[<X T RNN 1 >1 X]>1作为海森矩阵的第二份额<H>1。
<H>0+<H>1
=X T RNN 0 X+<X T RNN 1 >0 X+<[<X T RNN 1 >1 X]>0+<[<X T RNN 1 >1 X]>1
=X T RNN 0 X+<X T RNN 1 >0 X+<X T RNN 1 >1 X
=X T RNN 0 X+X T RNN 1 X=X T RNNX=H。
步骤S17:若海森矩阵的条件数满足预设条件,第一方根据原始模型参数的第一份额、所述梯度的第一份额和海森矩阵的第一份额,第二方根据原始模型参数的第二份额、所述梯度的第二份额和海森矩阵的第二份额,秘密分享新的模型参数,第一方得到新的模型参数的第一份额,第二方得到新的模型参数的第二份额。
在一些实施例中,所述第一方可以获得随机数的第一份额,所述第二方可以获得随机数的第二份额。随机数的第一份额和随机数的第二份额的和等于随机数。这样,所述第一方可以根据随机数的第一份额和海森矩阵的第一份额,所述第二方可以根据随机数的第二份额和海森矩阵的第二份额,秘密分享第二乘积。所述第二乘积为随机数和海森矩阵的乘积。所述第一方和所述第二方可以分别获得第二乘积的一份份额。为了便于描述,可以将所述第一方获得的份额作为第二乘积的第一份额,可以将所述第二方获得的份额作为第二乘积的第二份额。第二乘积的第一份额和第二乘积的第二份额的和等于第二乘积。
所述建模服务平台可以生成随机数;可以将所述随机数拆分为第一份额和第二份额;可以向所述第一方发送所述随机数的第一份额;可以向所述第二方发送所述随机数的第二份额。所述第一方可以接收随机数的第一份额。所述第二方可以接收随机数的第二份额。具体地,所述随机数可以包括由多个随机数构成的正交矩阵(以下称为随机正交矩阵)。所述建模服务平台可以将所述随机正交矩阵中的各个随机数拆分为两个份额,可以将其中一个份额作为第一份额,可以将其中另一个份额作为第二份额。所述建模服务平台可以将所述随机正交矩阵中各个随机数的第一份额形成的矩阵作为所述随机正交矩阵的第一份额,可以将所述随机正交矩阵中各个随机数的第二份额形成的矩阵作为所述随机正交矩阵的第二份额。
所述随机正交矩阵可以为由随机数构成的正交矩阵。所述海森矩阵可以为方阵。方阵与正交矩阵相乘后可以得到一个新的矩阵,该新的矩阵与该方阵具有相同的条件数。因而所述第二乘积的条件数可以等于所述海森矩阵的条件数。这样一方面,所述第一方和所述第二方可以在不泄漏自身持有的海森矩阵的份额的条件下,协作计算第二乘积的条件数;另一方面,可以根据第二乘积的条件数判断海森矩阵的条件数是否满足预设条件。
例如,随机正交矩阵的第一份额可以表示为<R>0,随机正交矩阵的第二份额可以表示为<R>1,<R>0+<R>1=R。所述第一方可以根据随机正交矩阵的第一份额<R>0和海森矩阵的第一份额<H>0,所述第二方可以根据随机正交矩阵的第二份额<R>1和海森矩阵的第二份额<H>1,秘密分享第二乘积HR。所述第一方可以获得第二乘积的第一份额<HR>0,所述第二方可以获得第二乘积第二份额<HR>1。以下介绍具体实现过程。
一方面,所述第一方可以根据海森矩阵的第一份额<H>0,所述第二方可以根据随机正交矩阵的第二份额<R>1,秘密分享<H>0<R>1。所述第一方可以获得<[<H>0<R>1]>0,所述第二方可以获得<[<H>0<R>1]>1。<[<H>0<R>1]>0+<[<H>0<R>1]>1=<H>0<R>1。另一方面,所述第一方可以根据随机正交矩阵的第一份额<R>0,所述第二方可以根据海森矩阵的第二份额<H>1,秘密分享<H>1<R>0。所述第一方可以获得<[<H>1<R>0]>0,所述第二方可以获得<[<H>1<R>0]>1。<[<H>1<R>0]>0+<[<H>1<R>0]>1=<H>1<R>0。
所述第一方可以计算<H>0<R>0+<[<H>0<R>1]>0+<[<H>1<R>0]>0作为第二乘积的第一份额<HR>0。所述第二方可以计算<H>1<R>1+<[<H>0<R>1]>1+<[<H>1<R>0]>1作为第二乘积的第二份额<HR>1。
<HR>0+<HR>1
=<H>0<R>0+<[<H>0<R>1]>0+<[<H>1<R>0]>0+<H>1<R>1+<[<H>0<R>1]>1+<[<H>1<R>0]>1
=<H>0<R>0+<H>0<R>1+<H>1<R>0+<H>1<R>1
=(<H>0+<H>1)(<R>0+<R>1)
=HR。
在一些实施例中,所述预设条件可以包括:条件数小于或等于预设阈值。所述预设阈值可以为经验值,或者,还可以采用其它方式(例如机器学习的方式)获得。
所述第一方和所述第二方均可以持有所述预设条件。这样,所述第一方和所述第二方可以分别判断第二乘积的条件数是否满足所述预设条件。在一些实施方式中,可以由第一方计算第二乘积的条件数。具体地,所述第二方可以向所述第一方发送第二乘积的第二份额。所述第一方可以接收第二乘积的第二份额;可以将第二乘积的第二份额与自身持有的第二乘积的第一份额相加,得到第二乘积;可以计算第二乘积的条件数;可以判断第二乘积的条件数是否满足所述预设条件;可以向所述第二方发送第二乘积的条件数。所述第二方可以接收第二乘积的条件数;可以判断第二乘积的条件数是否满足所述预设条件。在另一些实施方式中,可以由第二方计算第二乘积的条件数。具体地,所述第一方可以向所述第二方发送第二乘积的第一份额。所述第二方可以接收第二乘积的第一份额;可以将第二乘积的第一份额与自身持有的第二乘积的第二份额相加,得到第二乘积;可以计算第二乘积的条件数;可以判断第二乘积的条件数是否满足所述预设条件;可以向所述第一方发送第二乘积的条件数。所述第一方可以接收第二乘积的条件数;可以判断第二乘积的条件数是否满足所述预设条件。
或者,可以仅由第一方持有所述预设条件,进而可以仅由第一方判断第二乘积的条件数是否满足所述预设条件。具体地,所述第二方可以向所述第一方发送第二乘积的第二份额。所述第一方可以接收第二乘积的第二份额;可以将第二乘积的第二份额与自身持有的第二乘积的第一份额相加,得到第二乘积;可以计算第二乘积的条件数;可以判断第二乘积的条件数是否满足所述预设条件;可以向所述第二方发送判断结果。所述第二方可以接收判断结果。
又或者,可以仅由第二方持有所述预设条件,进而可以仅由第二方判断第二乘积的条件数是否满足所述预设条件。具体地,所述第一方可以向所述第二方发送第二乘积的第一份额。所述第二方可以接收第二乘积的第一份额;可以将第二乘积的第一份额与自身持有的第二乘积的第二份额相加,得到第二乘积;可以计算第二乘积的条件数;可以判断第二乘积的条件数是否满足所述预设条件;可以向所述第一方发送判断结果。所述第一方可以接收判断结果。
在一些实施例中,第二乘积的条件数满足预设条件,表明第二乘积的病态程度较小,即表明海森矩阵的病态程度较小,因而可以使用牛顿法确定模型参数。所述第一方可以根据原始模型参数的第一份额、所述梯度的第一份额和海森矩阵的第一份额,所述第二方可以根据原始模型参数的第二份额、所述梯度的第二份额和海森矩阵的第二份额,秘密分享新的模型参数。所述第一方可以获得新的模型参数的第一份额,所述第二方可以获得新的模型参数的第二份额。新的模型参数的第一份额和新的模型参数的第二份额的和等于新的模型参数。
具体地,所述第一方可以根据海森矩阵的第一份额,所述第二方可以根据海森矩阵的第二份额,秘密分享第一逆矩阵。所述第一方可以获得第一逆矩阵的第一份额,所述第二方可以获得第一逆矩阵的第二份额。所述第一逆矩阵为海森矩阵的逆矩阵。
所述第一方可以向所述第二方发送第二乘积的第一份额。所述第二方可以接收第二乘积的第一份额;可以将第二乘积的第一份额与自身的第二乘积的第二份额相加,得到第二乘积。鉴于所述第二乘积为方阵,因而所述第二方可以对所述第二乘积进行求逆处理,得到所述第二乘积的逆矩阵作为第二逆矩阵;可以向所述第一方发送所述第二逆矩阵。所述第一方可以接收所述第二逆矩阵。或者,所述第二方可以向所述第一方发送第二乘积的第二份额。所述第一方可以接收第二乘积的第二份额;可以将第二乘积的第二份额与自身的第二乘积的第一份额相加,得到第二乘积。鉴于所述第二乘积为方阵,因而所述第一方可以对所述第二乘积进行求逆处理,得到所述第二乘积的逆矩阵作为第二逆矩阵;可以向所述第二方发送所述第二逆矩阵。所述第二方可以接收所述第二逆矩阵。
所述第一方可以将所述随机数的第一份额与第二逆矩阵相乘,得到第一逆矩阵的第一份额。所述第二方可以将所述随机数的第二份额与第二逆矩阵相乘,得到第一逆矩阵的第二份额。第一逆矩阵的第一份额和第一逆矩阵的第二份额的和等于第一逆矩阵。所述随机数可以包括随机正交矩阵。
例如,所述第一方可以向所述第二方发送第二乘积的第一份额<HR>0。所述第二方可以接收第二乘积的第一份额<HR>0;可以将第二乘积的第一份额<HR>0与自身的第二乘积的第二份额<HR>1相加,得到第二乘积HR;可以对第二乘积HR进行求逆处理,得到第二逆矩阵(HR)-1;可以向所述第一方发送第二逆矩阵(HR)-1。所述第一方可以接收第二逆矩阵(HR)-1。所述第一方可以将第二逆矩阵(HR)-1与随机正交矩阵的第一份额<R>0相乘,得到第一逆矩阵H -1的第一份额<H -1>0。所述第二方可以将第二逆矩阵(HR)-1与随机正交矩阵的第二份额<R>1相乘,得到第一逆矩阵H -1的第二份额<H -1>1。H -1=<H -1>0+<H -1>1=<R>0(HR)-1+<R>1(HR)-1=R×(HR)-1。
具体地,所述第一方可以根据原始模型参数的第一份额、所述梯度的第一份额和所述第一逆矩阵的第一份额,所述第二方可以根据原始模型参数的第二份额、所述梯度的第二份额和所述第一逆矩阵的第二份额,秘密分享新的模型参数。所述第一方可以获得新的模型参数的第一份额,所述第二方可以获得新的模型参数的第二份额。
所述第一方可以根据第一逆矩阵的第一份额和所述梯度的第一份额,所述第二方可以根据第一逆矩阵的第二份额和所述梯度的第二份额,秘密分享第三乘积。所述第三乘积为第一逆矩阵和所述梯度的乘积。所述第一方和所述第二方可以分别获得第三乘积的一份份额。为了便于描述,可以将所述第一方获得的份额作为第三乘积的第一份额,可以将所述第二方获得的份额作为第三乘积的第二份额。第三乘积的第一份额和第三乘积的第二份额的和等于第三乘积。这样,所述第一方可以将原始模型参数的第一份额与第三乘积的第一份额相减,得到新的模型参数的第一份额。所述第二方可以将原始模型参数的第二份额与第三乘积的第二份额相减,得到新的模型参数的第二份额。
例如,所述第一方可以根据第一逆矩阵的第一份额<H -1>0和所述梯度的第一份额<dW>0,所述第二方可以根据第一逆矩阵的第二份额<H -1>1和所述梯度的第二份额<dW>1,秘密分享第三乘积H -1×dW。所述第一方可以获得第三乘积的第一份额<H -1×dW>0,所述第二方可以获得第三乘积的第二份额<H -1×dW>1。以下介绍具体过程。
一方面,所述第一方可以根据第一逆矩阵的第一份额<H -1>0,所述第二方可以根据所述梯度的第二份额<dW>1,秘密分享<H -1>0<dW>1。所述第一方获得<[<H -1>0<dW>1]>0,所述第二方获得<[<H -1>0<dW>1]>1。<[<H -1>0<dW>1]>0+<[<H -1>0<dW>1]>1=<H -1>0<dW>1。另一方面,所述第一方可以根据所述梯度的第一份额<dW>0,所述第二方可以根据第一逆矩阵的第二份额<H -1>1,秘密分享<H -1>1<dW>0。所述第一方可以获得<[<H -1>1<dW>0]>0,所述第二方可以获得<[<H -1>1<dW>0]>1。<[<H -1>1<dW>0]>0+<[<H -1>1<dW>0]>1=<H -1>1<dW>0。
所述第一方可以计算<H -1>0<dW>0+<[<H -1>0<dW>1]>0+<[<H -1>1<dW>0]>0作为第三乘积的第一份额<H -1×dW>0。所述第二方可以计算<H -1>1<dW>1+<[<H -1>0<dW>1]>1+<[<H -1>1<dW>0]>1作为第三乘积的第二份额<H -1×dW>1。
<H -1×dW>0+<H -1×dW>1
=<H -1>0<dW>0+<[<H -1>0<dW>1]>0+<[<H -1>1<dW>0]>0+<H -1>1<dW>1+<[<H -1>0<dW>1]>1+<[<H -1>1<dW>0]>1
=<H -1>0<dW>0+<H -1>0<dW>1+<H -1>1<dW>0+<H -1>1<dW>1
=(<H -1>0+<H -1>1)(<dW>0+<dW>1)
=H -1×dW。
所述第一方可以计算<W ′>0=<W>0-<H -1×dW>0作为新的模型参数的第一份额,所述第二方可以计算<W ′>1=<W>1-<H -1×dW>1作为新的模型参数的第二份额。W ′表示新的模型参数,<W ′>0表示新的模型参数的第一份额,<W ′>1表示新的模型参数的第二份额。
W ′=<W ′>0+<W ′>1=<W>0-<H -1×dW>0+<W>1-<H -1×dW>1=W-H -1×dW。
在一些实施例中,第二乘积的条件数不满足所述预设条件,表明第二乘积的病态程度较大,即表明海森矩阵的病态程度较大,无法使用牛顿法确定模型参数,因而可以使用梯度下降法代替牛顿法确定模型参数。所述第一方可以根据原始模型参数的第一份额、所述梯度的第一份额和预设步长,计算新的模型参数的第一份额。所述第二方可以根据原始模型参数的第二份额、所述梯度的第二份额和预设步长,计算新的模型参数的第二份额。新的模型参数的第一份额和新的模型参数的第二份额的和等于新的模型参数。
所述预设步长可以用于控制梯度下降法的迭代速度。所述预设步长可以为任意适当正实数。例如,当预设步长过大时,迭代速度会过快,导致有可能无法获得最优模型参数。当预设步长过小时,导致迭代速度会过慢,导致花费的时间较长。所述预设步长具体可以为经验值;或者,也可以采用机器学习的方式得到。当然,所述预设步长还可以采用其它方式得到。所述第一方和所述第二方均可以持有所述预设步长。
所述第一方可以将所述梯度的第一份额与预设步长相乘,得到第四乘积;可以将原始模型参数的第一份额与第四乘积相减,得到新的模型参数的第一份额。所述第二方可以将所述梯度的第二份额与预设步长相乘,得到第五乘积;可以将原始模型参数的第二份额与第五乘积相减,得到新的模型参数的第二份额。
例如,所述第一方可以将所述梯度的第一份额<dW>0(具体为向量)与预设步长G相乘(具体为向量的数乘),得到第四乘积G<dW>0;可以将原始模型参数的第一份额<W>0与第四乘积G<dW>0相减,得到新的模型参数的第一份额<W′>0=<W>0-G<dW>0。
所述第二方可以将所述梯度的第二份额<dW>1(具体为向量)与预设步长G相乘(具体为向量的数乘),得到第五乘积G<dW>1;可以将原始模型参数的第二份额<W>1与第五乘积G<dW>1相减,得到新的模型参数的第二份额<W′>1=<W>1-G<dW>1。
在一些实施例中,所述模型训练方法可以包括多轮迭代过程。具体地,还可以将所述新的模型参数作为新的原始模型参数。所述第一方可以持有新的原始模型参数的第一份额,所述第二方可以持有新的原始模型参数的第二份额。这样可以利用步骤S11-S17进行迭代处理。
本说明书实施例的模型训练方法,可以由第三方确定激励函数的取值,这样可以减少所述第一方和所述第二方之间交互的次数,从而减少所述第一方和所述第二方之间的数据传输量,还有利于快速地确定激励函数的取值,从而提高模型训练效率。另外,通过条件数和预设条件,可以避免在模型训练的过程中由于出现病态矩阵所导致的不收敛问题。
上文中结合图1、图2和图17,详细描述了本说明书实施例的模型训练方法。上文中第一方执行的方法步骤,可以单独实现为第一方侧的模型训练方法;第二方执行的方法步骤,可以单独实现为第二方侧的模型训练方法;第三方执行的方法步骤,可以单独实现为第三方侧的模型训练方法。下面将结合图3、图4和图5,详细描述本说明书实施例中第一方侧的模型训练方法、第二方侧的模型训练方法和第三方侧的模型训练方法。
请参阅图3。本说明书提供模型训练方法的一个实施例。所述模型训练方法的执行主体可以为第一方,具体可以包括以下步骤。
步骤S31:根据特征数据和原始模型参数的第一份额与第二方秘密分享第一乘积,得到第一乘积的第一份额,所述第一乘积为特征数据和原始模型参数的乘积。
步骤S33:向第三方发送第一乘积的第一份额。
步骤S35:接收第三方发来的激励函数的取值的第一份额。
步骤S37:根据特征数据和所述取值的第一份额与第二方秘密分享损失函数的梯度,得到所述梯度的第一份额;根据特征数据和所述取值的第一份额与第二方秘密分享海森矩阵,得到海森矩阵的第一份额。
步骤S39:若海森矩阵的条件数满足预设条件,根据原始模型参数的第一份额、所述梯度的第一份额和海森矩阵的第一份额与第二方秘密分享新的模型参数,得到新的模型参数的第一份额。
本说明书实施例的模型训练方法,可以由第三方确定激励函数的取值,这样可以减少所述第一方和所述第二方之间交互的次数,从而减少所述第一方和所述第二方之间的数据传输量,还有利于快速地确定激励函数的取值,从而提高模型训练效率。另外,通过条件数和预设条件,可以避免在模型训练的过程中由于出现病态矩阵所导致的不收敛问题。
请参阅图4。本说明书提供模型训练方法的另一个实施例。所述模型训练方法的执行主体可以为第二方,具体可以包括以下步骤。
步骤S41:根据原始模型参数的第二份额与第一方秘密分享第一乘积,得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积。
步骤S43:向第三方发送第二乘积的第二份额。
步骤S45:接收第三方发来的激励函数的取值的第二份额。
步骤S47:根据标签和所述取值的第二份额与第一方秘密分享损失函数的梯度,得到所述梯度的第二份额;根据所述取值的第二份额与第一方秘密分享海森矩阵,得到海森矩阵的第二份额。
步骤S49:若海森矩阵的条件数满足预设条件,根据原始模型参数的第二份额、所述梯度的第二份额和海森矩阵的第二份额与第一方秘密分享新的模型参数,得到新的模型参数的第二份额。
本说明书实施例的模型训练方法,可以由第三方确定激励函数的取值,这样可以减少所述第一方和所述第二方之间交互的次数,从而减少所述第一方和所述第二方之间的数据传输量,还有利于快速地确定激励函数的取值,从而提高模型训练效率。另外,通过条件数和预设条件,可以避免在模型训练的过程中由于出现病态矩阵所导致的不收敛问题。
请参阅图5。本说明书提供模型训练方法的另一个实施例。所述模型训练方法的执行主体可以为第三方,具体可以包括以下步骤。
步骤S51:接收第一方发来的第一乘积的第一份额、以及第二方发来的第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积。
步骤S53:根据第一乘积的第一份额和第二份额,确定激励函数的取值的第一份额和第二份额。
步骤S55:向第一方发送所述取值的第一份额,向第二方发送所述取值的第二份额,以使第一方根据所述取值的第一份额,第二方根据所述取值的第二份额,秘密分享新的模型参数。
本说明书实施例的模型训练方法,在模型训练的过程中,可以由第三方确定激励函数的取值,这样可以减少所述第一方和所述第二方之间交互的次数,从而减少所述第一方和所述第二方之间的数据传输量,还有利于快速地确定激励函数的取值,从而提高模型训练效率。
上文中详细描述了本说明书实施例的模型训练系统。下面将结合图2和图6,详细描述本说明书另一实施例的模型训练方法。所述模型训练方法可以包括以下步骤。
步骤S61:第一方根据特征数据和原始模型参数的第一份额,第二方根据原始模型参数的第二份额,秘密分享第一乘积,第一方得到第一乘积的第一份额,第二方得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积。
步骤S63:第三方获得第一乘积的第一份额和第二份额,根据第一乘积的第一份额和第二份额,确定激励函数的取值的第一份额和第二份额,分别向第一方和第二方发送所述取值的第一份额和第二份额,第一方接收所述取值的第一份额,第二方接收所述取值的第二份额。
步骤S65:第一方根据特征数据和所述取值的第一份额,第二方根据标签和所述取值的第二份额,秘密分享损失函数的梯度,第一方得到所述梯度的第一份额,第二方得到所述梯度的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据所述取值的第二份额,秘密分享海森矩阵,第一方得到海森矩阵的第一份额,第二方得到海森矩阵的第二份额。
步骤S67:若海森矩阵的条件数不满足预设条件,第一方根据原始模型参数的第一份额、所述梯度的第一份额和预设步长,计算新的模型参数的第一份额,第二方根据原始模型参数的第二份额、所述梯度的第二份额和预设步长,计算新的模型参数的第二份额。
本说明书实施例的模型训练方法,可以由第三方确定激励函数的取值,这样可以减少所述第一方和所述第二方之间交互的次数,从而减少所述第一方和所述第二方之间的数据传输量,还有利于快速地确定激励函数的取值,从而提高模型训练效率。另外,通过条件数和预设条件,可以避免在模型训练的过程中由于出现病态矩阵所导致的不收敛问题。
上文中结合图2和图6,详细描述了本说明书实施例的模型训练方法。上文中第一方执行的方法步骤,可以单独实现为第一方侧的模型训练方法;第二方执行的方法步骤,可以单独实现为第二方侧的模型训练方法。下面将结合图7和图8,详细描述本说明书实施例中第一方侧的模型训练方法和第二方侧的模型训练方法。
请参阅图7。本说明书提供模型训练方法的一个实施例。所述模型训练方法的执行主体可以为第一方,具体可以包括以下步骤。
步骤S71:根据特征数据和原始模型参数的第一份额与第二方秘密分享第一乘积,得到第一乘积的第一份额,所述第一乘积为特征数据和原始模型参数的乘积。
步骤S73:向第三方发送第一乘积的第一份额。
步骤S75:接收第三方发来的激励函数的取值的第一份额。
步骤S77:根据特征数据和所述取值的第一份额与第二方秘密分享损失函数的梯度,得到所述梯度的第一份额;根据特征数据和所述取值的第一份额与第二方秘密分享海森矩阵,得到海森矩阵的第一份额。
步骤S79:若海森矩阵的条件数不满足预设条件,根据原始模型参数的第一份额、所述梯度的第一份额和预设步长,计算新的模型参数的第一份额。
本说明书实施例的模型训练方法,可以由第三方确定激励函数的取值,这样可以减少所述第一方和所述第二方之间交互的次数,从而减少所述第一方和所述第二方之间的数据传输量,还有利于快速地确定激励函数的取值,从而提高模型训练效率。另外,通过条件数和预设条件,可以避免在模型训练的过程中由于出现病态矩阵所导致的不收敛问题。
请参阅图8。本说明书提供模型训练方法的另一个实施例。所述模型训练方法的执行主体可以为第二方,具体可以包括以下步骤。
步骤S81:根据原始模型参数的第二份额与第一方秘密分享第一乘积,得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积。
步骤S83:向第三方发送第二乘积的第二份额。
步骤S85:接收第三方发来的激励函数的取值的第二份额。
步骤S87:根据标签和所述取值的第二份额与第一方秘密分享损失函数的梯度,得到所述梯度的第二份额;根据所述取值的第二份额与第一方秘密分享海森矩阵,得到海森矩阵的第二份额。
步骤S89:若海森矩阵的条件数不满足预设条件,根据原始模型参数的第二份额、所述梯度的第二份额和预设步长,计算新的模型参数的第二份额。
本说明书实施例的模型训练方法,可以由第三方确定激励函数的取值,这样可以减少所述第一方和所述第二方之间交互的次数,从而减少所述第一方和所述第二方之间的数据传输量,还有利于快速地确定激励函数的取值,从而提高模型训练效率。另外,通过条件数和预设条件,可以避免在模型训练的过程中由于出现病态矩阵所导致的不收敛问题。
请参阅图9。本说明书提供模型训练方法的另一个实施例。所述模型训练方法的执行主体可以为建模服务平台,具体可以包括以下步骤。
步骤S91:生成随机数。
步骤S93:将所述随机数拆分为第一份额和第二份额。
在一些实施例中,随机数的第一份额和随机数的第二份额的和等于随机数。
在一些实施例中,所述随机数可以包括由多个随机数构成的随机正交矩阵,所述随机正交矩阵可以为由随机数构成的正交矩阵。所述建模服务平台可以将所述随机正交矩阵中的各个随机数拆分为两个份额,可以将其中一个份额作为第一份额,可以将其中另一个份额作为第二份额。所述建模服务平台可以将所述随机正交矩阵中各个随机数的第一份额形成的矩阵作为所述随机正交矩阵的第一份额,可以将所述随机正交矩阵中各个随机数的第二份额形成的矩阵作为所述随机正交矩阵的第二份额。
步骤S95:向第一方发送所述随机数的第一份额,向第二方发送所述随机数的第二份额。
在一些实施例中,所述建模服务平台可以向第一方发送所述随机数的第一份额,可以向第二方发送所述随机数的第二份额,以便所述第一方和所述第二方执行以下步骤:
第一方根据样本的特征数据和原始模型参数的第一份额,第二方根据原始模型参数的第二份额,秘密分享第一乘积,第一方得到第一乘积的第一份额,第二方得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;
第一方向第三方发送第一乘积的第一份额,第二方向第三方发送第一乘积的第二份额,以便第三方根据第一乘积的第一份额和第二份额,确定激励函数的取值的第一份额和第二份额,分别向第一方和第二方发送所述取值的第一份额和第二份额;
第一方接收所述取值的第一份额,第二方接收所述取值的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据样本的标签和所述取值的第二份额,秘密分享损失函数的梯度,第一方得到所述梯度的第一份额,第二方得到所述梯度的第二份额;
第一方根据特征数据和所述取值的第一份额,第二方根据所述取值的第二份额,秘密分享海森矩阵,第一方得到海森矩阵的第一份额,第二方得到海森矩阵的第二份额;第一方根据所述随机数的第一份额和海森矩阵的第一份额,第二方根据所述随机数的第二份额和海森矩阵的第二份额,秘密分享第二乘积,第一方得到第二乘积的第一份额,第二方得到第二乘积的第二份额,所述第二乘积为所述随机数和海森矩阵之间的乘积;
若第二乘积的条件数满足预设条件,第一方根据原始模型参数的第一份额、所述梯度的第一份额和海森矩阵的第一份额,第二方根据原始模型参数的第二份额、所述梯度的第二份额和海森矩阵的第二份额,秘密分享新的模型参数,第一方得到新的模型参数的第一份额,第二方得到新的模型参数的第二份额;
若第二乘积的条件数不满足预设条件,第一方根据原始模型参数的第一份额、所述梯度的第一份额和预设步长,计算新的模型参数的第一份额,第二方根据原始模型参数的第二份额、所述梯度的第二份额和预设步长,计算新的模型参数的第二份额。
本说明书实施例的模型训练方法,所述建模服务平台可以将随机数拆分为第一份额和第二份额;可以向第一方发送所述随机数的第一份额;可以向第二方发送所述随机数的第二份额。这样所述第一方可以根据所述随机数的第一份额,所述第二方可以根据所述随机数的第二份额,进行合作建模。
下面结合图10、图11、图12、图13、图14和图15,详细描述本说明书实施例中的模型训练装置。
请参阅图10。本说明书提供模型训练装置的一个实施例。所述模型训练装置可以设置于第一方,具体可以包括以下模块单元。
第一秘密分享单元101,用于根据特征数据和原始模型参数的第一份额与第二方秘密分享第一乘积,得到第一乘积的第一份额,所述第一乘积为特征数据和原始模型参数的乘积;
发送单元103,用于向第三方发送第一乘积的第一份额;
接收单元105,用于接收第三方发来的激励函数的取值的第一份额;
第二秘密分享单元107,用于根据特征数据和所述取值的第一份额与第二方秘密分享损失函数的梯度,得到所述梯度的第一份额;根据特征数据和所述取值的第一份额与第二方秘密分享海森矩阵,得到海森矩阵的第一份额;
第三秘密分享单元109,用于若海森矩阵的条件数满足预设条件,根据原始模型参数的第一份额、所述梯度的第一份额和海森矩阵的第一份额与第二方秘密分享新的模型参数,得到新的模型参数的第一份额。
请参阅图11。本说明书提供模型训练装置的一个实施例。所述模型训练装置可以设置于第二方,具体可以包括以下模块单元。
第一秘密分享单元111,用于根据原始模型参数的第二份额与第一方秘密分享第一乘积,得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;
发送单元113,用于向第三方发送第二乘积的第二份额;
接收单元115,用于接收第三方发来的激励函数的取值的第二份额;
第二秘密分享单元117,用于根据标签和所述取值的第二份额与第一方秘密分享损失函数的梯度,得到所述梯度的第二份额;根据所述取值的第二份额与第一方秘密分享海森矩阵,得到海森矩阵的第二份额;
第三秘密分享单元119,用于若海森矩阵的条件数满足预设条件,根据原始模型参数的第二份额、所述梯度的第二份额和海森矩阵的第二份额与第一方秘密分享新的模型参数,得到新的模型参数的第二份额。
请参阅图12。本说明书提供模型训练装置的一个实施例。所述模型训练装置可以设置于第三方,具体可以包括以下模块单元。
接收单元121,用于接收第一方发来的第一乘积的第一份额、以及第二方发来的第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;
确定单元123,用于根据第一乘积的第一份额和第二份额,确定激励函数的取值的第一份额和第二份额;
发送单元125,用于向第一方发送所述取值的第一份额,向第二方发送所述取值的第二份额,以使第一方根据取值的第一份额,第二方根据取值的第二份额,秘密分享新的模型参数。
请参阅图13。本说明书提供模型训练装置的一个实施例。所述模型训练装置可以设置于第一方,具体可以包括以下模块单元。
第一秘密分享单元131,用于根据特征数据和原始模型参数的第一份额与第二方秘密分享第一乘积,得到第一乘积的第一份额,所述第一乘积为特征数据和原始模型参数的乘积;
发送单元133,用于向第三方发送第一乘积的第一份额;
接收单元135,用于接收第三方发来的激励函数的取值的第一份额;
第二秘密分享单元137,用于根据特征数据和所述取值的第一份额与第二方秘密分享损失函数的梯度,得到所述梯度的第一份额;根据特征数据和所述取值的第一份额与第二方秘密分享海森矩阵,得到海森矩阵的第一份额;
第三秘密分享单元139,用于若海森矩阵的条件数不满足预设条件,根据原始模型参数的第一份额、所述梯度的第一份额和预设步长,计算新的模型参数的第一份额。
请参阅图14。本说明书提供模型训练装置的一个实施例。所述模型训练装置可以设置于第二方,具体可以包括以下模块单元。
第一秘密分享单元141,用于根据原始模型参数的第二份额与第一方秘密分享第一乘积,得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;
发送单元143,用于向第三方发送第二乘积的第二份额;
接收单元145,用于接收第三方发来的激励函数的取值的第二份额;
第二秘密分享单元147,用于根据标签和所述取值的第二份额与第一方秘密分享损失函数的梯度,得到所述梯度的第二份额;根据所述取值的第二份额与第一方秘密分享海森矩阵,得到海森矩阵的第二份额;
第三秘密分享单元149,用于若海森矩阵的条件数不满足预设条件,根据原始模型参数的第二份额、所述梯度的第二份额和预设步长,计算新的模型参数的第二份额。
请参阅图15。本说明书提供模型训练装置的一个实施例。所述模型训练装置可以设置于建模服务平台,具体可以包括以下模块单元。
生成单元151,用于生成随机数;
拆分单元153,用于将所述随机数拆分为第一份额和第二份额;
发送单元155,用于向第一方发送所述随机数的第一份额,向第二方发送所述随机数的第二份额。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。另外,可以理解的是,本领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到将本说明书列举的部分或全部实施例进行任意组合,这些组合也在本说明书公开和保护的范围内。
下面介绍本说明书电子设备的一个实施例。图16是该实施例中电子设备的硬件结构示意图。如图16所示,该电子设备可以包括一个或多个(图中仅示出一个)处理器、存储器和传输模块。当然,本领域普通技术人员可以理解,图16所示的硬件结构仅为示意,其并不对上述电子设备的硬件结构造成限定。在实际中该电子设备还可以包括比图16所示更多或者更少的组件单元;或者,具有与图16所示不同的配置。
所述存储器可以包括高速随机存储器;或者,还可以包括非易失性存储器,例如一个或者多个磁性存储装置、闪存或者其他非易失性固态存储器。当然,所述存储器还可以包括远程设置的网络存储器。所述远程设置的网络存储器可以通过诸如互联网、企业内部网、局域网、移动通信网等网络连接至所述区块链客户端。所述存储器可以用于存储应用软件的程序指令或模块,所述程序指令或模块可以用于实现本说明书图3、图4、图5、图7、图8或图9所对应实施例中模型训练方法。
所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以读取并执行所述存储器中的程序指令或模块。
所述传输模块可以用于经由网络进行数据传输,例如经由诸如互联网、企业内部网、局域网、移动通信网等网络进行数据传输。
本说明书还提供计算机存储介质的一个实施例。所述计算机存储介质包括但不限于随机存取存储器(Random Access Memory, RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard Disk Drive, HDD)、存储卡(Memory Card)等等。所述计算机存储介质存储有计算机程序指令。在所述计算机程序指令被执行时实现:本说明书图3、图4、图5、图7、图8或图9所对应实施例中的模型训练方法。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD 上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL 也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language )与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。
Claims (34)
1.一种模型训练方法,应用于模型训练系统,所述模型训练系统包括第一方、第二方和第三方,所述第一方持有样本的特征数据,所述第二方持有样本的标签,该方法包括:
第一方根据特征数据和原始模型参数的第一份额,第二方根据原始模型参数的第二份额,秘密分享第一乘积,第一方得到第一乘积的第一份额,第二方得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;
第三方获得第一乘积的第一份额和第二份额,根据第一乘积的第一份额和第二份额,确定激励函数的取值的第一份额和第二份额,分别向第一方和第二方发送所述取值的第一份额和第二份额,第一方接收所述取值的第一份额,第二方接收所述取值的第二份额;其中,第三方确定激励函数的取值的第一份额和第二份额,包括:第三方根据第一乘积的第一份额和第二份额,计算第一乘积;以第一乘积作为激励函数中自变量的取值,根据激励函数中自变量的取值,计算激励函数的取值;将激励函数的取值拆分为激励函数的取值的第一份额和第二份额;
第一方根据特征数据和所述取值的第一份额,第二方根据标签和所述取值的第二份额,秘密分享损失函数的梯度,第一方得到所述梯度的第一份额,第二方得到所述梯度的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据所述取值的第二份额,秘密分享海森矩阵,第一方得到海森矩阵的第一份额,第二方得到海森矩阵的第二份额;
若海森矩阵的条件数满足预设条件,第一方根据原始模型参数的第一份额、所述梯度的第一份额和海森矩阵的第一份额,第二方根据原始模型参数的第二份额、所述梯度的第二份额和海森矩阵的第二份额,秘密分享新的模型参数,第一方得到新的模型参数的第一份额,第二方得到新的模型参数的第二份额。
2.一种模型训练方法,应用于第一方,所述第一方持有样本的特征数据,该方法包括:
根据特征数据和原始模型参数的第一份额与第二方秘密分享第一乘积,得到第一乘积的第一份额,所述第一乘积为特征数据和原始模型参数的乘积;
向第三方发送第一乘积的第一份额,以便第三方根据第一乘积的第一份额计算第一乘积,以第一乘积作为激励函数中自变量的取值,根据激励函数中自变量的取值,计算激励函数的取值,对激励函数的取值进行拆分,获得激励函数的取值的第一份额;
接收第三方发来的激励函数的取值的第一份额;
根据特征数据和所述取值的第一份额与第二方秘密分享损失函数的梯度,得到所述梯度的第一份额;根据特征数据和所述取值的第一份额与第二方秘密分享海森矩阵,得到海森矩阵的第一份额;
若海森矩阵的条件数满足预设条件,根据原始模型参数的第一份额、所述梯度的第一份额和海森矩阵的第一份额与第二方秘密分享新的模型参数,得到新的模型参数的第一份额。
3.如权利要求2所述的方法,还包括:
获得随机数的第一份额;
根据所述随机数的第一份额和海森矩阵的第一份额与第二方秘密分享第二乘积,得到第二乘积的第一份额,所述第二乘积为所述随机数和海森矩阵之间的乘积;
相应地,所述与第二方秘密分享新的模型参数,包括:
若第二乘积的条件数满足预设条件,根据原始模型参数的第一份额、所述梯度的第一份额和海森矩阵的第一份额与第二方秘密分享新的模型参数,得到新的模型参数的第一份额。
4.如权利要求3所述的方法,所述随机数包括随机正交矩阵。
5.如权利要求3所述的方法,还包括:
向第二方发送第二乘积的第一份额,以便第二方计算第二乘机的条件数;
或者,接收第二方发来的第二乘积的第二份额,将第二乘积的第一份额和第二份额相加,得到第二乘积,计算第二乘积的条件数。
6.如权利要求2所述的方法,所述与第二方秘密分享新的模型参数,包括:
根据海森矩阵的第一份额与第二方秘密分享海森矩阵的逆矩阵,得到所述逆矩阵的第一份额;根据原始模型参数的第一份额、所述梯度的第一份额和所述逆矩阵的第一份额与第二方秘密分享新的模型参数,得到新的模型参数的第一份额。
7.如权利要求2所述的方法,还包括:
若海森矩阵的条件数不满足预设条件,根据原始模型参数的第一份额、所述梯度的第一份额和预设步长,计算新的模型参数的第一份额。
8.一种模型训练方法,应用于第二方,所述第二方持有样本的标签,该方法包括:
根据原始模型参数的第二份额与第一方秘密分享第一乘积,得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;
向第三方发送第二乘积的第二份额,以便第三方根据第一乘积的第二份额计算第一乘积,以第一乘积作为激励函数中自变量的取值,根据激励函数中自变量的取值,计算激励函数的取值,对激励函数的取值进行拆分,获得激励函数的取值的第二份额;
接收第三方发来的激励函数的取值的第二份额;
根据标签和所述取值的第二份额与第一方秘密分享损失函数的梯度,得到所述梯度的第二份额;根据所述取值的第二份额与第一方秘密分享海森矩阵,得到海森矩阵的第二份额;
若海森矩阵的条件数满足预设条件,根据原始模型参数的第二份额、所述梯度的第二份额和海森矩阵的第二份额与第一方秘密分享新的模型参数,得到新的模型参数的第二份额。
9.如权利要求8所述的方法,还包括:
获得随机数的第二份额;
根据所述随机数的第二份额和海森矩阵的第二份额与第一方秘密分享第二乘积,得到第二乘积的第二份额,所述第二乘积为所述随机数和海森矩阵之间的乘积;
相应地,所述与第一方秘密分享新的模型参数,包括:
若第二乘积的条件数满足预设条件,根据原始模型参数的第二份额、所述梯度的第二份额和海森矩阵的第二份额与第一方秘密分享新的模型参数,得到新的模型参数的第二份额。
10.如权利要求9所述的方法,所述随机数包括随机正交矩阵。
11.如权利要求9所述的方法,还包括:
向第一方发送第二乘积的第二份额,以便第一方计算第二乘机的条件数;
或者,接收第一方发来的第二乘积的第一份额,将第二乘积的第一份额和第二份额相加,得到第二乘积,计算第二乘积的条件数。
12.如权利要求8所述的方法,所述与第一方秘密分享新的模型参数,包括:
根据海森矩阵的第二份额与第一方秘密分享海森矩阵的逆矩阵,得到所述逆矩阵的第二份额;根据原始模型参数的第二份额、所述梯度的第二份额和所述逆矩阵的第二份额与第一方秘密分享新的模型参数,得到新的模型参数的第二份额。
13.如权利要求8所述的方法,还包括:
若海森矩阵的条件数不满足预设条件,根据原始模型参数的第二份额、所述梯度的第二份额和预设步长,计算新的模型参数的第二份额。
14.一种模型训练方法,应用于第三方,该方法包括:
接收第一方发来的第一乘积的第一份额、以及第二方发来的第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;
根据第一乘积的第一份额和第二份额,确定激励函数的取值的第一份额和第二份额;其中,所述确定激励函数的取值的第一份额和第二份额,包括:根据第一乘积的第一份额和第二份额,计算第一乘积;以第一乘积作为激励函数中自变量的取值,根据激励函数中自变量的取值,计算激励函数的取值;将激励函数的取值拆分为激励函数的取值的第一份额和第二份额;
向第一方发送所述取值的第一份额,向第二方发送所述取值的第二份额,以便第一方根据所述取值的第一份额,第二方根据所述取值的第二份额,秘密分享新的模型参数。
15.一种模型训练方法,应用于建模服务平台,该方法包括:
生成随机数,将所述随机数拆分为第一份额和第二份额,向第一方发送所述随机数的第一份额,向第二方发送所述随机数的第二份额,以便所述第一方和所述第二方执行以下步骤:
第一方根据样本的特征数据和原始模型参数的第一份额,第二方根据原始模型参数的第二份额,秘密分享第一乘积,第一方得到第一乘积的第一份额,第二方得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;
第一方向第三方发送第一乘积的第一份额,第二方向第三方发送第一乘积的第二份额,以便第三方根据第一乘积的第一份额和第二份额,计算第一乘积,以第一乘积作为激励函数中自变量的取值,根据激励函数中自变量的取值,计算激励函数的取值,将激励函数的取值拆分为激励函数的取值的第一份额和第二份额,分别向第一方和第二方发送所述取值的第一份额和第二份额;
第一方接收所述取值的第一份额,第二方接收所述取值的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据样本的标签和所述取值的第二份额,秘密分享损失函数的梯度,第一方得到所述梯度的第一份额,第二方得到所述梯度的第二份额;
第一方根据特征数据和所述取值的第一份额,第二方根据所述取值的第二份额,秘密分享海森矩阵,第一方得到海森矩阵的第一份额,第二方得到海森矩阵的第二份额;第一方根据所述随机数的第一份额和海森矩阵的第一份额,第二方根据所述随机数的第二份额和海森矩阵的第二份额,秘密分享第二乘积,第一方得到第二乘积的第一份额,第二方得到第二乘积的第二份额,所述第二乘积为所述随机数和海森矩阵之间的乘积;
若第二乘积的条件数满足预设条件,第一方根据原始模型参数的第一份额、所述梯度的第一份额和海森矩阵的第一份额,第二方根据原始模型参数的第二份额、所述梯度的第二份额和海森矩阵的第二份额,秘密分享新的模型参数,第一方得到新的模型参数的第一份额,第二方得到新的模型参数的第二份额。
16.如权利要求15所述的方法,所述随机数包括随机正交矩阵。
17.一种模型训练方法,应用于模型训练系统,所述模型训练系统包括第一方、第二方和第三方,所述第一方持有样本的特征数据,所述第二方持有样本的标签,该方法包括:
第一方根据特征数据和原始模型参数的第一份额,第二方根据原始模型参数的第二份额,秘密分享第一乘积,第一方得到第一乘积的第一份额,第二方得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;
第三方获得第一乘积的第一份额和第二份额,根据第一乘积的第一份额和第二份额,确定激励函数的取值的第一份额和第二份额,分别向第一方和第二方发送所述取值的第一份额和第二份额,第一方接收所述取值的第一份额,第二方接收所述取值的第二份额;其中,第三方确定激励函数的取值的第一份额和第二份额,包括:第三方根据第一乘积的第一份额和第二份额,计算第一乘积;以第一乘积作为激励函数中自变量的取值,根据激励函数中自变量的取值,计算激励函数的取值;将激励函数的取值拆分为激励函数的取值的第一份额和第二份额;
第一方根据特征数据和所述取值的第一份额,第二方根据标签和所述取值的第二份额,秘密分享损失函数的梯度,第一方得到所述梯度的第一份额,第二方得到所述梯度的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据所述取值的第二份额,秘密分享海森矩阵,第一方得到海森矩阵的第一份额,第二方得到海森矩阵的第二份额;
若海森矩阵的条件数不满足预设条件,第一方根据原始模型参数的第一份额、所述梯度的第一份额和预设步长,计算新的模型参数的第一份额,第二方根据原始模型参数的第二份额、所述梯度的第二份额和预设步长,计算新的模型参数的第二份额。
18.一种模型训练方法,应用于第一方,所述第一方持有样本的特征数据,该方法包括:
根据特征数据和原始模型参数的第一份额与第二方秘密分享第一乘积,得到第一乘积的第一份额,所述第一乘积为特征数据和原始模型参数的乘积;
向第三方发送第一乘积的第一份额,以便第三方根据第一乘积的第一份额计算第一乘积,以第一乘积作为激励函数中自变量的取值,根据激励函数中自变量的取值,计算激励函数的取值,对激励函数的取值进行拆分,获得激励函数的取值的第一份额;
接收第三方发来的激励函数的取值的第一份额;
根据特征数据和所述取值的第一份额与第二方秘密分享损失函数的梯度,得到所述梯度的第一份额;根据特征数据和所述取值的第一份额与第二方秘密分享海森矩阵,得到海森矩阵的第一份额;
若海森矩阵的条件数不满足预设条件,根据原始模型参数的第一份额、所述梯度的第一份额和预设步长,计算新的模型参数的第一份额。
19.如权利要求18所述的方法,还包括:
获得随机数的第一份额;
根据所述随机数的第一份额和海森矩阵的第一份额与第二方秘密分享第二乘积,得到第二乘积的第一份额,所述第二乘积为所述随机数和海森矩阵之间的乘积;
相应地,所述与第二方秘密分享新的模型参数,包括:
若第二乘积的条件数满足预设条件,根据原始模型参数的第一份额、所述梯度的第一份额和海森矩阵的第一份额与第二方秘密分享新的模型参数,得到新的模型参数的第一份额。
20.如权利要求18所述的方法,所述与第二方秘密分享新的模型参数,包括:
根据海森矩阵的第一份额与第二方秘密分享海森矩阵的逆矩阵,得到所述逆矩阵的第一份额;根据原始模型参数的第一份额、所述梯度的第一份额和所述逆矩阵的第一份额与第二方秘密分享新的模型参数,得到新的模型参数的第一份额。
21.一种模型训练方法,应用于第二方,所述第二方持有样本的标签,该方法包括:
根据原始模型参数的第二份额与第一方秘密分享第一乘积,得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;
向第三方发送第二乘积的第二份额,以便第三方根据第一乘积的第二份额计算第一乘积,以第一乘积作为激励函数中自变量的取值,根据激励函数中自变量的取值,计算激励函数的取值,对激励函数的取值进行拆分,获得激励函数的取值的第二份额;
接收第三方发来的激励函数的取值的第二份额;
根据标签和所述取值的第二份额与第一方秘密分享损失函数的梯度,得到所述梯度的第二份额;根据所述取值的第二份额与第一方秘密分享海森矩阵,得到海森矩阵的第二份额;
若海森矩阵的条件数不满足预设条件,根据原始模型参数的第二份额、所述梯度的第二份额和预设步长,计算新的模型参数的第二份额。
22.如权利要求21所述的方法,还包括:
获得随机数的第二份额;
根据所述随机数的第二份额和海森矩阵的第二份额与第一方秘密分享第二乘积,得到第二乘积的第二份额,所述第二乘积为所述随机数和海森矩阵之间的乘积;
相应地,所述与第一方秘密分享新的模型参数,包括:
若第二乘积的条件数满足预设条件,根据原始模型参数的第二份额、所述梯度的第二份额和海森矩阵的第二份额与第一方秘密分享新的模型参数,得到新的模型参数的第二份额。
23.如权利要求22所述的方法,所述随机数包括随机正交矩阵。
24.如权利要求22所述的方法,所述与第一方秘密分享新的模型参数,包括:
根据海森矩阵的第二份额与第一方秘密分享海森矩阵的逆矩阵,得到所述逆矩阵的第二份额;根据原始模型参数的第二份额、所述梯度的第二份额和所述逆矩阵的第二份额与第一方秘密分享新的模型参数,得到新的模型参数的第二份额。
25.一种模型训练方法,应用于建模服务平台,该方法包括:
生成随机数,将所述随机数拆分为第一份额和第二份额,向第一方发送所述随机数的第一份额,向第二方发送所述随机数的第二份额,以便所述第一方和所述第二方执行以下步骤:
第一方根据样本的特征数据和原始模型参数的第一份额,第二方根据原始模型参数的第二份额,秘密分享第一乘积,第一方得到第一乘积的第一份额,第二方得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;
第一方向第三方发送第一乘积的第一份额,第二方向第三方发送第一乘积的第二份额,以便第三方根据第一乘积的第一份额和第二份额,计算第一乘积,以第一乘积作为激励函数中自变量的取值,根据激励函数中自变量的取值,计算激励函数的取值,将激励函数的取值拆分为激励函数的取值的第一份额和第二份额,分别向第一方和第二方发送所述取值的第一份额和第二份额;
第一方接收所述取值的第一份额,第二方接收所述取值的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据样本的标签和所述取值的第二份额,秘密分享损失函数的梯度,第一方得到所述梯度的第一份额,第二方得到所述梯度的第二份额;
第一方根据特征数据和所述取值的第一份额,第二方根据所述取值的第二份额,秘密分享海森矩阵,第一方得到海森矩阵的第一份额,第二方得到海森矩阵的第二份额;第一方根据所述随机数的第一份额和海森矩阵的第一份额,第二方根据所述随机数的第二份额和海森矩阵的第二份额,秘密分享第二乘积,第一方得到第二乘积的第一份额,第二方得到第二乘积的第二份额,所述第二乘积为所述随机数和海森矩阵之间的乘积;
若第二乘积的条件数不满足预设条件,第一方根据原始模型参数的第一份额、所述梯度的第一份额和预设步长,计算新的模型参数的第一份额,第二方根据原始模型参数的第二份额、所述梯度的第二份额和预设步长,计算新的模型参数的第二份额。
26.如权利要求25所述的方法,所述随机数包括随机正交矩阵。
27.一种模型训练装置,应用于第一方,所述第一方持有样本的特征数据,该装置包括:
第一秘密分享单元,用于根据特征数据和原始模型参数的第一份额与第二方秘密分享第一乘积,得到第一乘积的第一份额,所述第一乘积为特征数据和原始模型参数的乘积;
发送单元,用于向第三方发送第一乘积的第一份额,以便第三方根据第一乘积的第一份额计算第一乘积,以第一乘积作为激励函数中自变量的取值,根据激励函数中自变量的取值,计算激励函数的取值,对激励函数的取值进行拆分,获得激励函数的取值的第一份额;
接收单元,用于接收第三方发来的激励函数的取值的第一份额;
第二秘密分享单元,用于根据特征数据和所述取值的第一份额与第二方秘密分享损失函数的梯度,得到所述梯度的第一份额;根据特征数据和所述取值的第一份额与第二方秘密分享海森矩阵,得到海森矩阵的第一份额;
第三秘密分享单元,用于若海森矩阵的条件数满足预设条件,根据原始模型参数的第一份额、所述梯度的第一份额和海森矩阵的第一份额与第二方秘密分享新的模型参数,得到新的模型参数的第一份额。
28.一种模型训练装置,应用于第二方,所述第二方持有样本的标签,该装置包括:
第一秘密分享单元,用于根据原始模型参数的第二份额与第一方秘密分享第一乘积,得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;
发送单元,用于向第三方发送第二乘积的第二份额,以便第三方根据第一乘积的第二份额计算第一乘积,以第一乘积作为激励函数中自变量的取值,根据激励函数中自变量的取值,计算激励函数的取值,对激励函数的取值进行拆分,获得激励函数的取值的第二份额;
接收单元,用于接收第三方发来的激励函数的取值的第二份额;
第二秘密分享单元,用于根据标签和所述取值的第二份额与第一方秘密分享损失函数的梯度,得到所述梯度的第二份额;根据所述取值的第二份额与第一方秘密分享海森矩阵,得到海森矩阵的第二份额;
第三秘密分享单元,用于若海森矩阵的条件数满足预设条件,根据原始模型参数的第二份额、所述梯度的第二份额和海森矩阵的第二份额与第一方秘密分享新的模型参数,得到新的模型参数的第二份额。
29.一种模型训练装置,应用于第三方,该装置包括:
接收单元,用于接收第一方发来的第一乘积的第一份额、以及第二方发来的第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;
确定单元,用于根据第一乘积的第一份额和第二份额,确定激励函数的取值的第一份额和第二份额;其中,所述确定激励函数的取值的第一份额和第二份额,包括:根据第一乘积的第一份额和第二份额,计算第一乘积;以第一乘积作为激励函数中自变量的取值,根据激励函数中自变量的取值,计算激励函数的取值;将激励函数的取值拆分为激励函数的取值的第一份额和第二份额;
发送单元,用于向第一方发送所述取值的第一份额,向第二方发送所述取值的第二份额,以便第一方根据取值的第一份额,第二方根据取值的第二份额,秘密分享新的模型参数。
30.一种模型训练装置,应用于建模服务平台,该装置包括:
生成单元,用于生成随机数;
拆分单元,用于将所述随机数拆分为第一份额和第二份额;
发送单元,用于向第一方发送所述随机数的第一份额,向第二方发送所述随机数的第二份额,以便所述第一方和所述第二方执行以下步骤:
第一方根据样本的特征数据和原始模型参数的第一份额,第二方根据原始模型参数的第二份额,秘密分享第一乘积,第一方得到第一乘积的第一份额,第二方得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;
第一方向第三方发送第一乘积的第一份额,第二方向第三方发送第一乘积的第二份额,以便第三方根据第一乘积的第一份额和第二份额,计算第一乘积,以第一乘积作为激励函数中自变量的取值,根据激励函数中自变量的取值,计算激励函数的取值,将激励函数的取值拆分为激励函数的取值的第一份额和第二份额,分别向第一方和第二方发送所述取值的第一份额和第二份额;
第一方接收所述取值的第一份额,第二方接收所述取值的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据样本的标签和所述取值的第二份额,秘密分享损失函数的梯度,第一方得到所述梯度的第一份额,第二方得到所述梯度的第二份额;
第一方根据特征数据和所述取值的第一份额,第二方根据所述取值的第二份额,秘密分享海森矩阵,第一方得到海森矩阵的第一份额,第二方得到海森矩阵的第二份额;第一方根据所述随机数的第一份额和海森矩阵的第一份额,第二方根据所述随机数的第二份额和海森矩阵的第二份额,秘密分享第二乘积,第一方得到第二乘积的第一份额,第二方得到第二乘积的第二份额,所述第二乘积为所述随机数和海森矩阵之间的乘积;
若第二乘积的条件数满足预设条件,第一方根据原始模型参数的第一份额、所述梯度的第一份额和海森矩阵的第一份额,第二方根据原始模型参数的第二份额、所述梯度的第二份额和海森矩阵的第二份额,秘密分享新的模型参数,第一方得到新的模型参数的第一份额,第二方得到新的模型参数的第二份额。
31.一种模型训练装置,应用于第一方,所述第一方持有样本的特征数据,该装置包括:
第一秘密分享单元,用于根据特征数据和原始模型参数的第一份额与第二方秘密分享第一乘积,得到第一乘积的第一份额,所述第一乘积为特征数据和原始模型参数的乘积;
发送单元,用于向第三方发送第一乘积的第一份额,以便第三方根据第一乘积的第一份额计算第一乘积,以第一乘积作为激励函数中自变量的取值,根据激励函数中自变量的取值,计算激励函数的取值,对激励函数的取值进行拆分,获得激励函数的取值的第一份额;
接收单元,用于接收第三方发来的激励函数的取值的第一份额;
第二秘密分享单元,用于根据特征数据和所述取值的第一份额与第二方秘密分享损失函数的梯度,得到所述梯度的第一份额;根据特征数据和所述取值的第一份额与第二方秘密分享海森矩阵,得到海森矩阵的第一份额;
第三秘密分享单元,用于若海森矩阵的条件数不满足预设条件,根据原始模型参数的第一份额、所述梯度的第一份额和预设步长,计算新的模型参数的第一份额。
32.一种模型训练装置,应用于第二方,所述第二方持有样本的标签,该装置包括:
第一秘密分享单元,用于根据原始模型参数的第二份额与第一方秘密分享第一乘积,得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;
发送单元,用于向第三方发送第二乘积的第二份额,以便第三方根据第一乘积的第二份额计算第一乘积,以第一乘积作为激励函数中自变量的取值,根据激励函数中自变量的取值,计算激励函数的取值,对激励函数的取值进行拆分,获得激励函数的取值的第二份额;
接收单元,用于接收第三方发来的激励函数的取值的第二份额;
第二秘密分享单元,用于根据标签和所述取值的第二份额与第一方秘密分享损失函数的梯度,得到所述梯度的第二份额;根据所述取值的第二份额与第一方秘密分享海森矩阵,得到海森矩阵的第二份额;
第三秘密分享单元,用于若海森矩阵的条件数不满足预设条件,根据原始模型参数的第二份额、所述梯度的第二份额和预设步长,计算新的模型参数的第二份额。
33.一种模型训练装置,应用于建模服务平台,该装置包括:
生成单元,用于生成随机数;
拆分单元,用于将所述随机数拆分为第一份额和第二份额;
发送单元,用于向第一方发送所述随机数的第一份额,向第二方发送所述随机数的第二份额,以便所述第一方和所述第二方执行以下步骤:
第一方根据样本的特征数据和原始模型参数的第一份额,第二方根据原始模型参数的第二份额,秘密分享第一乘积,第一方得到第一乘积的第一份额,第二方得到第一乘积的第二份额,所述第一乘积为特征数据和原始模型参数的乘积;
第一方向第三方发送第一乘积的第一份额,第二方向第三方发送第一乘积的第二份额,以便第三方根据第一乘积的第一份额和第二份额,计算第一乘积,以第一乘积作为激励函数中自变量的取值,根据激励函数中自变量的取值,计算激励函数的取值,将激励函数的取值拆分为激励函数的取值的第一份额和第二份额,分别向第一方和第二方发送所述取值的第一份额和第二份额;
第一方接收所述取值的第一份额,第二方接收所述取值的第二份额;第一方根据特征数据和所述取值的第一份额,第二方根据样本的标签和所述取值的第二份额,秘密分享损失函数的梯度,第一方得到所述梯度的第一份额,第二方得到所述梯度的第二份额;
第一方根据特征数据和所述取值的第一份额,第二方根据所述取值的第二份额,秘密分享海森矩阵,第一方得到海森矩阵的第一份额,第二方得到海森矩阵的第二份额;第一方根据所述随机数的第一份额和海森矩阵的第一份额,第二方根据所述随机数的第二份额和海森矩阵的第二份额,秘密分享第二乘积,第一方得到第二乘积的第一份额,第二方得到第二乘积的第二份额,所述第二乘积为所述随机数和海森矩阵之间的乘积;
若第二乘积的条件数不满足预设条件,第一方根据原始模型参数的第一份额、所述梯度的第一份额和预设步长,计算新的模型参数的第一份额,第二方根据原始模型参数的第二份额、所述梯度的第二份额和预设步长,计算新的模型参数的第二份额。
34.一种电子设备,包括:
至少一个处理器;
存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求2-16、18-26中任一项所述方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011144330.XA CN111967035B (zh) | 2020-10-23 | 2020-10-23 | 模型训练方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011144330.XA CN111967035B (zh) | 2020-10-23 | 2020-10-23 | 模型训练方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111967035A CN111967035A (zh) | 2020-11-20 |
CN111967035B true CN111967035B (zh) | 2021-04-27 |
Family
ID=73387215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011144330.XA Active CN111967035B (zh) | 2020-10-23 | 2020-10-23 | 模型训练方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111967035B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112507323A (zh) * | 2021-02-01 | 2021-03-16 | 支付宝(杭州)信息技术有限公司 | 基于单向网络的模型训练方法、装置和计算设备 |
CN112800466B (zh) * | 2021-02-10 | 2022-04-22 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的数据处理方法、装置和服务器 |
CN113011459B (zh) * | 2021-02-19 | 2024-04-26 | 支付宝(杭州)信息技术有限公司 | 模型训练方法、装置和计算设备 |
CN113094739B (zh) * | 2021-03-05 | 2022-04-22 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的数据处理方法、装置和服务器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10572800B2 (en) * | 2016-02-05 | 2020-02-25 | Nec Corporation | Accelerating deep neural network training with inconsistent stochastic gradient descent |
CN110555525B (zh) * | 2019-08-09 | 2021-08-13 | 创新先进技术有限公司 | 模型参数确定方法、装置和电子设备 |
CN111738361B (zh) * | 2020-07-31 | 2020-12-08 | 支付宝(杭州)信息技术有限公司 | 业务模型的联合训练方法及装置 |
-
2020
- 2020-10-23 CN CN202011144330.XA patent/CN111967035B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111967035A (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111967035B (zh) | 模型训练方法、装置和电子设备 | |
CN110555315B (zh) | 基于秘密分享算法的模型参数更新方法、装置和电子设备 | |
CN110555525B (zh) | 模型参数确定方法、装置和电子设备 | |
CN110569228B (zh) | 模型参数确定方法、装置和电子设备 | |
CN110569227B (zh) | 模型参数确定方法、装置和电子设备 | |
EP3627759A1 (en) | Method and apparatus for encrypting data, method and apparatus for training machine learning model, and electronic device | |
CN110580410A (zh) | 模型参数确定方法、装置和电子设备 | |
CN110472439B (zh) | 模型参数确定方法、装置和电子设备 | |
CN110580409A (zh) | 模型参数确定方法、装置和电子设备 | |
CN110457936B (zh) | 数据交互方法、装置和电子设备 | |
CN110427969B (zh) | 数据处理方法、装置和电子设备 | |
US10936960B1 (en) | Determining model parameters using secret sharing | |
US20200184081A1 (en) | Generation of a model parameter | |
CN112507323A (zh) | 基于单向网络的模型训练方法、装置和计算设备 | |
CN112511361B (zh) | 模型训练方法、装置和计算设备 | |
CN113011459B (zh) | 模型训练方法、装置和计算设备 | |
US20240039697A1 (en) | Secure multi-party computation methods and apparatuses for privacy protection, and computer devices | |
WO2021027598A1 (zh) | 模型参数确定方法、装置和电子设备 | |
CN113111254B (zh) | 推荐模型的训练方法、拟合方法、装置和电子设备 | |
CN116596646A (zh) | 基于联邦学习的模型训练方法、金融行为预测方法及装置 | |
CN116796852A (zh) | 模型训练方法和模型训练装置 | |
CN111582458A (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 |