WO2021239006A1 - 基于秘密共享的训练方法、装置、电子设备及存储介质 - Google Patents

基于秘密共享的训练方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
WO2021239006A1
WO2021239006A1 PCT/CN2021/096166 CN2021096166W WO2021239006A1 WO 2021239006 A1 WO2021239006 A1 WO 2021239006A1 CN 2021096166 W CN2021096166 W CN 2021096166W WO 2021239006 A1 WO2021239006 A1 WO 2021239006A1
Authority
WO
WIPO (PCT)
Prior art keywords
coding
training
encryption
random number
training parameter
Prior art date
Application number
PCT/CN2021/096166
Other languages
English (en)
French (fr)
Inventor
谭晋
王磊
Original Assignee
支付宝(杭州)信息技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 支付宝(杭州)信息技术有限公司 filed Critical 支付宝(杭州)信息技术有限公司
Publication of WO2021239006A1 publication Critical patent/WO2021239006A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes

Definitions

  • This specification relates to the field of artificial intelligence technology, and in particular to a training method, device, electronic equipment and storage medium based on secret sharing.
  • the first encrypted coding prediction result is secretly shared to obtain the first coding prediction result, and the first coding prediction result is truncated at a fixed point according to the first target magnification rate to obtain the first coding prediction result.
  • the second coding prediction result may include: creating an arbitrary random number, performing fixed-point number coding on the random number to obtain the first coding random number at the sending end, wherein the coding magnification of the first coding random number at the sending end is The encoding magnification of the first encryption encoding prediction result corresponds to the encoding magnification; the second encryption encoding random number of the sending end is obtained according to the difference between the first encoding random number of the sending end and the first encryption encoding prediction result, and the sending end is The second encrypted random number is sent to the receiving end, so that the receiving end decrypts the second encrypted random number of the sending end to obtain the second encrypted random number of the sending end; the second encrypted random number sent by the receiving end is received Coded random number, according to
  • the training module is used to obtain the sample data and perform the homomorphic encryption of the first coding training parameter according to the second target magnification
  • the sample data is coded with fixed-point numbers to obtain coded sample data, and the first encrypted coding training parameters and the coded sample data are trained to obtain the first encrypted coding prediction result;
  • a secret sharing module is used to obtain the first encrypted coding prediction result;
  • the encrypted coding prediction result is secretly shared to obtain the first coding prediction result, and the first coding prediction result is intercepted by a fixed-point number according to the first target magnification to obtain the second coding prediction result;
  • the encryption module is used to obtain the second coding prediction result according to the The second coding prediction result and the target tag data obtain the first coding error, and the first coding error is homomorphically encrypted according to the preset public key of the receiving end to
  • the update unit includes: an update subunit, configured to perform the first encryption coding training parameter on the first encryption coding training parameter according to the difference between the first encryption coding training parameter and the first encryption coding gradient.
  • Update iterative subunit for iterative training according to the updated first encryption coding training parameters and preset rounds, and updating the first encryption coding training parameters after each round of training; output subunit , Used to end training if the current number of rounds reaches the preset number of rounds, and obtain the second encrypted coding training parameter after training.
  • the output module includes: a creation unit, configured to create an arbitrary random number, and obtain a third encryption coding training parameter according to the difference between the second encryption coding training parameter and the random number , And send the third encryption coding training parameter to the receiving end, so that the receiving end decrypts the third encryption coding training parameter to obtain the third coding training parameter; the receiving unit is configured to receive the receiving end The returned third coding training parameter obtains the second coding training parameter according to the sum of the third coding training parameter and the random number; the output unit is used to train the second coding according to the first target magnification The parameters are intercepted by fixed-point numbers to obtain the second training parameters.
  • FIG. 2 is a flowchart of an embodiment of secret sharing in this specification
  • the sending end can perform homomorphic encryption on the first coding training parameter E2(Wa) according to the preset public key Pk b of the receiving end to obtain the first encrypted coding training parameter [E2(Wa)] b ; where the sending end and The receiving end can maintain a pair of preset keys, the sending end maintains the public key Pk a and the private key Sk a of the sending end, and the receiving end maintains the public key Pk b and the private key Sk b of the receiving end.
  • the first encrypted coding training parameter [E2(Wa)] b can be trained with the sending end sample data Xa, and the training output can be It is obtained by encoding and calculating the first encrypted coding training parameter [E2(Wa)] b and the sample data Xa at the sending end.
  • Step 103 Perform secret sharing of the first encrypted coding prediction result to obtain a first coding prediction result, and perform fixed-point interception on the first coding prediction result according to the first target magnification to obtain a second coding prediction result.
  • the sender can also encrypt the encoded label data E(Y) according to the sender’s public key Pk a to obtain encrypted encoded label data [E(Y)] a , and the encrypted encoded label data [E(Y) ] a is sent to the receiving end, when the receiving end receives the encrypted coded label data [E(Y)] a , the difference between the coded prediction result E(Pb) of the receiving end and the encrypted coded label data of the sending end can be obtained at the receiving end Encryption coding error [E(Err_b)] a , where,
  • the electronic device 900 is represented in the form of a general-purpose computing device.
  • the components of the electronic device 900 may include, but are not limited to: one or more processors 910, a memory 930, and a communication bus 940 connecting different system components (including the memory 930 and the processing unit 910).
  • the computer program code used to perform the operations of this specification can be written in one or more programming languages or a combination thereof.
  • the programming language includes object-oriented programming languages—such as Java, Smalltalk, C++, and also includes conventional procedures. Programming language-such as "C" language or similar programming language.
  • the program code can be executed entirely on the user's computer, partly on the user's computer, executed as an independent software package, partly on the user's computer and partly executed on a remote computer, or entirely executed on the remote computer or server.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本说明书提出了一种基于秘密共享的训练方法、装置、电子设备及存储介质,上述方法通过对训练参数进行定点数编码,对编码后的训练参数进行训练,并在训练过程中通过一次秘密共享进行定点数截取,以完成一轮训练,并更新训练参数,以进行下一轮训练,由此可实现大规模数据的训练,避免由同态加密及定点数编码带来的数据溢出问题,并减少训练过程中数据的通信量,提高模型的训练效率,并且该秘密共享的训练方法可保护数据的隐私。

Description

基于秘密共享的训练方法、装置、电子设备及存储介质 技术领域
本说明书涉及人工智能技术领域,尤其涉及一种基于秘密共享的训练方法、装置、电子设备及存储介质。
背景技术
人工智能(Artificial Intelligence;以下简称:AI),是目前研究和开发用于模拟、延伸及扩展人类智能的一门新兴科学技术。其中,AI的主要研究目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作;在实践应用中,通常是构建一个模型,然后通过样本数据对该模型进行反复训练,直到该模型达到期望目标。
发明内容
本说明书实施例提供了一种基于秘密共享的训练方法、装置、电子设备及存储介质,通过对训练参数进行定点数编码,对编码后的训练参数进行训练,并在训练过程中通过一次秘密共享进行定点数截取,以完成一轮训练,并更新训练参数,以进行下一轮训练,由此可实现大规模数据的训练,避免由同态加密及定点数编码带来的数据溢出问题,并减少训练过程中数据的通信量,提高模型的训练效率,并且该秘密共享的训练方法可保护数据的隐私。
第一方面,本说明书实施例提供一种基于秘密共享的训练方法,包括:获取第一训练参数,根据第一目标倍率对所述第一训练参数进行定点数编码,得到第一编码训练参数,并根据接收端预置公钥对所述第一编码训练参数进行同态加密,得到第一加密编码训练参数;获取样本数据,根据第二目标倍率对所述样本数据进行定点数编码,得到编码样本数据,对所述第一加密编码训练参数及所述编码样本数据进行训练,得到第一加密编码预测结果;对所述第一加密编码预测结果进行秘密共享,得到第一编码预测结果,根据所述第一目标倍率对所述第一编码预测结果进行定点数截取,得到第二编码预测结果;根据所述第二编码预测结果及目标标签数据得到第一编码差错,并根据所述接收端预置公钥对所述第一编码差错进行同态加密,得到第一加密编码差错;根据所述第一加密编码差错对所述第一加密编码训练参数更新后进行迭代训练,得到训练后的第二加密编码训练参数,并根据所述第二加密编码训练参数得到第二训练参数,以完成对所述第一训练参数的训练。
一种可能的实现方式中,对所述第一加密编码预测结果进行秘密共享,得到第一编码预测结果,根据所述第一目标倍率对所述第一编码预测结果进行定点数截取,得到第二编码预测结果,可包括:创建一个任意的随机数,对所述随机数进行定点数编码,得到发送端第一编码随机数,其中,所述发送端第一编码随机数的编码倍率与所述第一加 密编码预测结果的编码倍率对应;根据所述发送端第一编码随机数与所述第一加密编码预测结果的差值得到发送端第二加密编码随机数,并将所述发送端第二加密编码随机数发送至接收端,使得所述接收端对所述发送端第二加密编码随机数进行解密,得到发送端第二编码随机数;接收所述接收端发送的发送端第二编码随机数,根据所述第一目标倍率分别对所述发送端第一编码随机数及所述发送端第二编码随机数进行定点数截取,得到发送端第三编码随机数及发送端第四编码随机数,并根据所述发送端第三编码随机数及发送端第四编码随机数的和值得到第二编码预测结果。
一种可能的实现方式中,根据所述第二编码预测结果及目标标签数据得到第一编码差错包括:获取标签数据,根据所述第二目标倍率对所述标签数据进行定点数编码,得到编码标签数据;根据所述第二编码预测结果及所述编码标签数据的差值得到第一编码差错。
一种可能的实现方式中,根据所述第一加密编码差错对所述第一加密编码训练参数更新后进行迭代训练,得到训练后的第二加密编码训练参数包括:根据所述第一加密编码差错及所述编码样本数据的乘积得到第一加密编码梯度;根据所述第一加密编码梯度对所述第一加密编码训练参数进行更新,并根据所述更新后的第一加密编码训练参数进行迭代训练,得到训练后的第二加密编码训练参数。
一种可能的实现方式中,根据所述第一加密编码梯度对所述第一加密编码训练参数进行更新,并根据所述更新后的第一加密编码训练参数进行迭代训练,得到训练后的第二加密编码训练参数包括:根据所述第一加密编码训练参数与所述第一加密编码梯度的差值对所述第一加密编码训练参数进行更新;根据所述更新后的第一加密编码训练参数及预置的轮数进行迭代训练,并在每一轮训练后更新所述第一加密编码训练参数;若当前的轮数达到所述预置轮数时,结束训练,并获得训练后的第二加密编码训练参数。
一种可能的实现方式中,根据所述第二加密编码训练参数得到第二训练参数包括:创建一个任意的随机数,根据所述第二加密编码训练参数与所述随机数的差值得到第三加密编码训练参数,并将所述第三加密编码训练参数发送至接收端,使得所述接收端对所述第三加密编码训练参数进行解密,得到第三编码训练参数;接收所述接收端返回的第三编码训练参数,根据所述第三编码训练参数及所述随机数的和值得到第二编码训练参数;根据所述第一目标倍率对所述第二编码训练参数进行定点数截取,得到第二训练参数。
上述基于秘密共享的训练方法中,通过对训练参数进行定点数编码,对编码后的训练参数进行训练,并在训练过程中通过一次秘密共享进行定点数截取,以完成一轮训练,并更新训练参数,以进行下一轮训练,由此可实现大规模数据的训练,避免由同态加密及定点数编码带来的数据溢出问题,并减少训练过程中数据的通信量,提高模型的训练效率。
第二方面,本说明书实施例提供一种基于秘密共享的训练装置,包括:编码模块,用于获取第一训练参数,根据第一目标倍率对所述第一训练参数进行定点数编码,得到 第一编码训练参数,并根据接收端预置公钥对所述第一编码训练参数进行同态加密,得到第一加密编码训练参数;训练模块,用于获取样本数据,根据第二目标倍率对所述样本数据进行定点数编码,得到编码样本数据,对所述第一加密编码训练参数及所述编码样本数据进行训练,得到第一加密编码预测结果;秘密共享模块,用于对所述第一加密编码预测结果进行秘密共享,得到第一编码预测结果,根据所述第一目标倍率对所述第一编码预测结果进行定点数截取,得到第二编码预测结果;加密模块,用于根据所述第二编码预测结果及目标标签数据得到第一编码差错,并根据所述接收端预置公钥对所述第一编码差错进行同态加密,得到第一加密编码差错;输出模块,用于根据所述第一加密编码差错对所述第一加密编码训练参数更新后进行迭代训练,得到训练后的第二加密编码训练参数,并根据所述第二加密编码训练参数得到第二训练参数,以完成对所述第一训练参数的训练。
一种可能的实现方式中,所述秘密共享模块包括:创建单元,用于创建一个任意的随机数,对所述随机数进行定点数编码,得到发送端第一编码随机数,其中,所述发送端第一编码随机数的编码倍率与所述第一加密编码预测结果的编码倍率对应;交互单元,用于根据所述发送端第一编码随机数与所述第一加密编码预测结果的差值得到发送端第二加密编码随机数,并将所述发送端第二加密编码随机数发送至接收端,使得所述接收端对所述发送端第二加密编码随机数进行解密,得到发送端第二编码随机数;输出单元,用于接收所述接收端发送的发送端第二编码随机数,根据所述第一目标倍率分别对所述发送端第一编码随机数及所述发送端第二编码随机数进行定点数截取,得到发送端第三编码随机数及发送端第四编码随机数,并根据所述发送端第三编码随机数及发送端第四编码随机数的和值得到第二编码预测结果。
一种可能的实现方式中,所述加密模块包括:获取单元,用于获取标签数据,根据所述第二目标倍率对所述标签数据进行定点数编码,得到编码标签数据;计算单元,用于根据所述第二编码预测结果及所述编码标签数据的差值得到第一编码差错。
一种可能的实现方式中,所述输出模块包括:计算单元,用于根据所述第一加密编码差错及所述编码样本数据的乘积得到第一加密编码梯度;更新单元,用于根据所述第一加密编码梯度对所述第一加密编码训练参数进行更新,并根据所述更新后的第一加密编码训练参数进行迭代训练,得到训练后的第二加密编码训练参数。
一种可能的实现方式中,所述更新单元包括:更新子单元,用于根据所述第一加密编码训练参数与所述第一加密编码梯度的差值对所述第一加密编码训练参数进行更新;迭代子单元,用于根据所述更新后的第一加密编码训练参数及预置的轮数进行迭代训练,并在每一轮训练后更新所述第一加密编码训练参数;输出子单元,用于若当前的轮数达到所述预置轮数时,结束训练,并获得训练后的第二加密编码训练参数。
一种可能的实现方式中,所述输出模块包括:创建单元,用于创建一个任意的随机数,根据所述第二加密编码训练参数与所述随机数的差值得到第三加密编码训练参数,并将所述第三加密编码训练参数发送至接收端,使得所述接收端对所述第三加密编码训 练参数进行解密,得到第三编码训练参数;接收单元,用于接收所述接收端返回的第三编码训练参数,根据所述第三编码训练参数及所述随机数的和值得到第二编码训练参数;输出单元,用于根据所述第一目标倍率对所述第二编码训练参数进行定点数截取,得到第二训练参数。
第三方面,本说明书实施例提供一种电子设备,包括:至少一个处理器;及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面提供的方法。
第四方面,本说明书实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,当所述计算机指令在计算机上运行时,所述计算机指令使所述计算机执行第一方面提供的方法。
应当理解的是,本说明书的第二~第四方面与本说明书的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可根据这些附图获得其它的附图。
图1为本说明书基于秘密共享的训练方法一个实施例的流程图;
图2为本说明书秘密共享一个实施例的流程图;
图3为本说明书计算加密编码差错一个实施例的流程图;
图4为本说明书获取第二训练参数一个实施例的流程图;
图5为本说明书基于秘密共享的训练装置一个实施例的结构示意图;
图6为本说明书基于秘密共享的训练装置另一个实施例的结构示意图;
图7为本说明书基于秘密共享的训练装置再一个实施例的结构示意图;
图8为本说明书基于秘密共享的训练装置再一个实施例的结构示意图;
图9为本说明书电子设备一个实施例的结构示意图。
具体实施方式
为了更好的理解本说明书技术方案,下面结合附图对本说明书实施例进行详细描述。
应当明确,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本说明书保护的范围。
在本说明书实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书实施例和所附权利要求书中所使用的单数形式的“一种”、“所述” 和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
目前,在对联邦学习模型进行训练的时候,由于联邦学习的各参与方都需要对各自的数据保密,因此在各方进行通信的过程中都会用到同态加密(Homomorphic Encryption,HE),同态加密的效果是对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一致的;然而在进行模型训练的过程中,都会涉及小数的计算,而同态加密只能针对整数,因此需要将小数转换为整数后才能进行同态加密;其中,小数转换为整数通常可由定点数编码解决,即可将小数乘以一个固定大小的倍率值,由此将该小数进行放大,并取放大后的数的整数部分,例如,假设有一个小数为0.0003,则通过定点数编码之后可得到Encode(0.0003)=0.0003*10000=3,其中,编码倍率可是10000;但是,在线性回归(Logistic Regression,LR)的模型中,通常要进行大量的乘法运算,而这些乘法运算可能会导致在定点数编码时数值溢出,例如,假设有两个小数0.003及0.1,则0.003的定点数编码可是Encode(0.003)=0.003*10000=30,0.1的定点数编码为Encode(0.1)=0.1*10000=1000,但是Encode(0.003*0.1)=0.0003*10000=3,而Encode(0.003)*Encode(0.1)=30*1000=30000,两者的结果相差10000倍;因此还可对进行乘法后的定点数编码数据进行处理,避免数据溢出;例如,在上述例子中,可对两个定点数编码数据相乘的结果30000除以编码倍率值,即30000/10000=3,由此可使得两个结果一致;综上所述,在对LR模型的训练过程中,由于要经过多轮迭代训练,而每一轮迭代都要进行大量的乘法运算,每次乘法运算都要进行定点数编码与同态加密之间的转换及处理,不仅运算量大,而且数据传输效率也低,从而导致训练的效率也会降低。
图1为本说明书基于秘密共享的训练方法一个实施例的流程图,如图1所示,上述基于秘密共享的训练方法可包括:步骤101,获取第一训练参数,根据第一目标倍率对所述第一训练参数进行编码,得到第一编码训练参数,并根据接收端预置公钥对所述第一编码训练参数进行同态加密,得到第一加密编码训练参数。
具体地,该第一训练参数Wa可是本地的联邦学习模型的训练参数,通过对该联邦学习模型的训练,可将该第一训练参数Wa进行优化,由此可得到训练后的第二训练参数Wa’;其中,由于该联邦学习模型是由多个参与方共同进行训练,因此其它参与方也会对自身的训练参数进行优化,从而各参与方最终会获得各自最优的训练参数;以双方训练为例,则该联邦学习模型可对应一个发送端和一个接收端,则发送端(本地方)在对第一训练参数Wa训练的同时,接收端(对方)也可对自身的训练参数Wb进行训练。
需要说明的是,对于联邦学习模型来说,本地可是发送端,任何其它参与方都可是接收端;对于只有双方参与的模型来说,本地为发送端,对方则为接收端。
接着,可对发送端的第一训练参数Wa进行定点数编码,得到第一编码训练参数,该定点数编码可是对该第一训练参数Wa乘以一个预置的倍率值scale,以得到第一编码训练参数的整数部分,并舍弃小数部分。
在具体实现时,可对该第一训练参数Wa乘以2个相同的倍率值scale,由此可得到第一编码训练参数E2(Wa);其中,假设定点数编码E(X)=X*scale,E2(X)=X*scale*scale,E3(X)=X*scale*scale*scale,则此处可是对第一训练参数Wa进行E2编码,即E2(Wa)=Wa*scale*scale,其中,该scale可是一个预定的倍率值,例如,若预设scale=10000,则scale*scale=100000000;为方便说明,下文中E编码指代E(X),E2编码指代E2(X),E3编码指代E3(X)。
然后,发送端可根据接收端的预置公钥Pk b对该第一编码训练参数E2(Wa)进行同态加密,得到第一加密编码训练参数[E2(Wa)] b;其中,发送端和接收端可各维护一对预置的密钥,发送端维护发送端的公钥Pk a和私钥Sk a,接收端维护接收端的公钥Pk b和私钥Sk b,需要说明的是,发送端的公钥Pk a和接收端的公钥Pk b都可被对方知晓;发送端可根据公钥Pk a对数据进行加密,并可通过私钥Sk a对经公钥Pk a加密的数据进行解密,同样地,接收端端可根据公钥Pk b对数据进行加密,并可通过私钥Sk b对经公钥Pk b加密的数据进行解密。
可选地,接收端也可对自身的训练参数Wb进行E2编码,得到一个编码训练参数E2(Wb),接着可根据发送端预置公钥Pk a对该编码训练参数E2(Wb)进行同态加密,得到接收端的加密编码训练参数[E2(Wb)] a
步骤102,获取样本数据,根据第二目标倍率对所述样本数据进行定点数编码,得到编码样本数据,对所述第一加密编码训练参数及所述编码样本数据进行训练,得到第一加密编码预测结果。
具体地,当发送端得到第一加密编码训练参数[E2(Wa)] b后,可将该第一加密编码训练参数[E2(Wa)] b与发送端样本数据Xa进行训练,训练输出可通过对该第一加密编码训练参数[E2(Wa)] b与发送端样本数据Xa进行编码计算获得。
在具体实现时,首先可对该样本数据Xa进行E编码,得到编码样本数据E(Xa),即E(Xa)=Xa*scale,其中,倍率值scale可和步骤101中保持一致;并将该编码样本数据E(Xa)与该第一加密编码训练参数[E2(Wa)] b进行相乘,由此得到第一加密编码预测结果[E3(Wa*Xa)] b;其中,由于预测结果Pa=Wa*Xa,因此[E3(Wa*Xa)] b=[E3(Pa)] b,即[E3(Wa*Xa)] b可是发送端加密编码预测结果。
可选地,在接收端也可对自身的样本数据Xb进行相同的训练,由此得到接收端加密编码预测结果[E3(Wb*Xb)] a,即[E3(Pb)] a;其中,[E3(Wb*Xb)] a=E(Xb)*[E2(Wb)] a
步骤103,对所述第一加密编码预测结果进行秘密共享,得到第一编码预测结果,根据所述第一目标倍率对所述第一编码预测结果进行定点数截取,得到第二编码预测结果。
具体地,当发送端获得第一加密编码预测结果[E3(Pa)] b后,由于样本数据Xa和训练参数Wa是经过定点数编码之后相乘,因此数据可能会溢出,可对第一加密编码预测结果[E3(Pa)] b进行秘密共享,并可在秘密共享域内进行定点数截取, 由此避免数据溢出。
现结合图2对秘密共享及定点数截取进行说明,如图2所示,首先可在发送端随机选取一个随机数Pa1,并对该随机数Pa1进行E3编码,得到发送端第一编码随机数E3(Pa1),即E3(Pa1)=Pa1*scale*scale*scale,其中,倍率值scale可和步骤101中保持一致;然后根据同态加密的原理,可通过[E3(Pa)] b-E3(Pa1)得到发送端第二加密编码随机数[E3(Pa2)] b,并将该发送端第二加密编码随机数[E3(Pa2)] b发送给接收端;其中,E3(Pa)=E3(Pa1)+E3(Pa2);当接收端收到发送端第二加密编码随机数[E3(Pa2)] b后可根据接收端预置的私钥Sk b对发送端第二加密编码随机数[E3(Pa2)] b进行解密,由此可得到发送端第二编码随机数E3(Pa2)。
进一步地,接收端可将该发送端第二编码随机数E3(Pa2)返回给发送端,以让发送端进行定点数截取,当发送端收到发送端第二编码随机数E3(Pa2)后,可根据发送端第一编码随机数E3(Pa1)及发送端第二编码随机数E3(Pa2)的和值得到第一编码预测结果E3(Pa)。
可选地,发送端还可对发送端第一编码随机数E3(Pa1)进行定点数截取,得到第三编码随机数E(Pa1);其中,定点数截取的方式可是根据预定的倍率进行缩小;在具体实现中,由于E3(Pa1)=Pa1*scale*scale*scale,因此可选择倍率为scale*scale,对E3(Pa1)进行缩小,得到E(Pa1),即E(Pa1)=Pa1*scale,并截取E(Pa1)的整数部分。
进一步地,当发送端收到发送端第二编码随机数E3(Pa2)后,可对该发送端第二编码随机数E3(Pa2)进行定点数截取,得到第四编码随机数E(Pa2);其中,定点数截取的方式可按照上述E3(Pa1)定点数截取的方式。
可选地,发送端第二编码随机数E3(Pa2)的定点数截取还可在接收端完成,即通过接收端对发送端第二编码随机数E3(Pa2)进行定点数截取,得到发送端第四编码随机数E(Pa2),并将该发送端第四编码随机数E(Pa2)返回给发送端。
当发送端获得第三编码随机数E(Pa1)及第四编码随机数E(Pa2)后,可根据第三编码随机数E(Pa1)及第四编码随机数E(Pa2)的和值获得第二编码预测结果E(Pa),即E(Pa)=E(Pa1)+E(Pa2)。
可选地,发送端还可对第一编码预测结果E3(Pa)进行定点数截取,得到第二编码预测结果E(Pa)。
可选地,在接收端也可随机选取一个随机数Pb1,并对该随机数Pb1进行E3编码,得到E3(Pb1);然后通过同态加密,得到[E3(Pb2)] a,并将该[E3(Pb2)] a发送给发送端;其中,E3(Pb)=E3(Pb1)+E3(Pb2);当发送端收到[E3(Pb2)] a后可根据发送端预置的私钥Ska对[E3(Pb2)] a进行解密,得到E3(Pb2),并可对E3(Pb2)进行定点数截取,得到E(Pb2),并将该E(Pb2)返回给接收端,接收端可根据E(Pb1)及E(Pb2)的和值得到定点数截取后的编码预测结果E(Pb); 发送端也可将E3(Pb2)返回给接收端,当接收端收到E3(Pb2)后,可对E3(Pb1)及E3(Pb2)的和值E3(Pb)进行定点数截取,得到定点数截取后的编码预测结果E(Pb),由此完成秘密共享域内的定点数截取。
步骤104,根据第二编码预测结果及目标标签数据得到第一编码差错,并根据接收端预置公钥对第一编码差错进行同态加密,得到第一加密编码差错。
当发送端获得第二编码预测结果E(Pa)后,可根据预置的标签数据Y获得发送端训练编码差错E(Err_a),即第一编码差错。在具体实现中,可首先对标签数据Y进行E编码,得到编码标签数据E(Y),即E(Y)=Y*scale,以保证E(Y)与E(Pa)的编码倍率一致;然后根据第二编码预测结果E(Pa)与编码标签数据E(Y)的差值得到第一编码差错E(Err_a),即E(Err_a)=E(Pa)-E(Y)。
现结合图3进行说明,如图3所示,首先发送端可将标签数据Y进行E编码,得到编码标签数据E(Y),接着可将第二编码预测结果E(Pa)减去编码标签数据E(Y),由此可获得第一编码差错E(Err_a)=E(Pa)-E(Y),并可根据接收端公钥Pk b对该第一编码差错E(Err_a)进行同态加密,由此可得到发送端加密编码差错[E(Err_a)] b,即第一加密编码差错。
发送端还可根据发送端公钥Pk a对该编码标签数据E(Y)进行加密,由此得到加密编码标签数据[E(Y)] a,并将该加密编码标签数据[E(Y)] a发送给接收端,当接收端收到该加密编码标签数据[E(Y)] a后,可根据接收端编码预测结果E(Pb)与发送端加密编码标签数据的差值得到接收端加密编码差错[E(Err_b)] a,其中,
[E(Err_b)] a=E(Pb)-[E(Y)] a
步骤105,根据所述第一加密编码差错对所述第一加密编码训练参数更新后进行迭代训练,得到训练后的第二加密编码训练参数,并根据所述第二加密编码训练参数得到第二训练参数,以完成对所述第一训练参数的训练。
具体地,发送端首先可对样本数据Xa进行转置,得到样本数据的转置矩阵Xa T,接着可对该转置矩阵Xa T进行E编码,得到编码转置矩阵E(Xa T),即E(Xa T)=Xa T*scale;其中,scale倍率可和步骤101相同;当发送端获得第一加密编码差错[E(Err_a)] b后,可和编码转置矩阵E(Xa T)做乘积运算,由此获得第一加密编码梯度[E2(Ga)] b,即[E2(Ga)] b=E(Xa T)*[E(Err_a)] b;其中,Ga可是发送端的训练梯度,即Ga=Xa T*Err_a;当发送端获得当前第一加密编码梯度[E2(Ga)] b之后,可根据该当前第一加密编码梯度[E2(Ga)] b进行迭代训练,以对训练参数Wa进行更新,该迭代训练的方式可通过以下公式进行:
[E2(Wa)] b’=[E2(Wa)] b-Z*[E2(Ga)] b
其中,Z可是预先设置的权重系数,[E2(Wa)] b可是当前的加密编码训练参数,[E2(Wa)] b’可是更新后的加密编码训练参数;即在一轮训练后,可根据当前第一加密编码梯度[E2(Ga)] b对当前[E2(Wa)] b进行更新,以便发送端可根据新的加密编码训练参数[E2(Wa)] b’进行下一轮训练,由此进行反复迭代,并最终得 到最新的加密编码训练参数[E2(Wa)] b’,即第二加密编码训练参数;其中,迭代的轮数可预先设定,若当前训练轮数达到预定的轮数,则可结束训练,并输出第二加密编码训练参数[E2(Wa)] b’作为最终的加密编码训练参数;接着可对该第二加密编码训练参数[E2(Wa)] b’进行解密及定点数截取,由此获得Wa,该Wa即为训练后得到的训练参数,即第二训练参数。
其中,当发送端得到第二加密编码训练参数[E2(Wa)] b’后,可选取一个随机数Ra,并计算[E2(Wa)] b’-Ra的值,得到第三加密编码训练参数[Ya] b,即[Ya] b=[E2(Wa)] b’-Ra,并将该[Ya] b发送给接收端,接收端接收到该[Ya] b后,可根据接收端预置的私钥Skb对该[Ya] b进行解密,得到第三编码训练参数Ya,即Ya=E2(Wa)’-Ra,并将该Ya的值返回给发送端,发送端接收到Ya的值后加上随机数Ra的值即为第二编码训练参数E2(Wa)’,随后可对该E2(Wa)’进行定点数截取,由此得到第二训练参数Wa’,如图4所示。
可选地,接收端也可根据上述方式进行迭代训练,即在接收端也可对自身的样本数据Xb进行转置,得到样本数据的转置矩阵Xb T,接着可对该转置矩阵Xb T进行E编码,得到编码转置矩阵E(Xb T),并可将该编码转置矩阵E(Xb T)与接收端加密编码差错[E(Err_b)] a进行乘积运算,由此得到接收端加密编码梯度[E2(Gb)] a;接着可根据公式[E2(Wb)] a=[E2(Wb)] a-Z*[E2(Gb)] a进行迭代训练,以对加密编码训练参数[E2(Wb)] a进行更新,并最终得到最新的训练参数Wb。
本发明实施例中,通过对训练参数进行定点数编码,对编码后的训练参数进行训练,并在训练过程中通过一次秘密共享进行定点数截取,以完成一轮训练,并更新训练参数,以进行下一轮训练,由此可实现大规模数据的训练,避免由同态加密及定点数编码带来的数据溢出问题,并减少训练过程中数据的通信量,提高模型的训练效率,并且该秘密共享的训练方法可保护数据的隐私。
图5为本说明书基于秘密共享的训练装置50一个实施例的结构示意图,如图5所示,上述基于秘密共享的训练装置50可包括:编码模块51、训练模块52、秘密共享模块53、加密模块54及输出模块55;编码模块51,用于获取第一训练参数,根据第一目标倍率对所述第一训练参数进行定点数编码,得到第一编码训练参数,并根据接收端预置公钥对所述第一编码训练参数进行同态加密,得到第一加密编码训练参数;训练模块52,用于获取样本数据,根据第二目标倍率对所述样本数据进行定点数编码,得到编码样本数据,对所述第一加密编码训练参数及所述编码样本数据进行训练,得到第一加密编码预测结果;秘密共享模块53,用于对所述第一加密编码预测结果进行秘密共享,得到第一编码预测结果,根据所述第一目标倍率对所述第一编码预测结果进行定点数截取,得到第二编码预测结果;加密模块54,用于根据所述第二编码预测结果及目标标签数据得到第一编码差错,并根据所述接收端预置公钥对所述第一编码差错进行同态加密,得到第一加密编码差错;输出模块55,用于根据所述第一加密编码差错对所述第一加密编码训练参数更新后进行迭代 训练,得到训练后的第二加密编码训练参数,并根据所述第二加密编码训练参数得到第二训练参数,以完成对所述第一训练参数的训练。
图5所示实施例提供的基于秘密共享的训练装置可执行本说明书图1~图4所示方法实施例的技术方案,其实现原理和技术效果可参考方法实施例中的相关描述。
图6为本说明书基于秘密共享的训练装置60另一个实施例的结构示意图,与图5所示的基于秘密共享的训练装置50相比,图6所示的基于秘密共享的训练装置60中,上述秘密共享模块53可包括:创建单元6531、交互单元6532及输出单元6533;创建单元6531,用于创建一个任意的随机数,对所述随机数进行定点数编码,得到发送端第一编码随机数,其中,所述发送端第一编码随机数的编码倍率与所述第一加密编码预测结果的编码倍率对应;交互单元6532,用于根据所述发送端第一编码随机数与所述第一加密编码预测结果的差值得到发送端第二加密编码随机数,并将所述发送端第二加密编码随机数发送至接收端,使得所述接收端对所述发送端第二加密编码随机数进行解密,得到发送端第二编码随机数;输出单元6533,用于接收所述接收端发送的发送端第二编码随机数,根据所述第一目标倍率分别对所述发送端第一编码随机数及所述发送端第二编码随机数进行定点数截取,得到发送端第三编码随机数及发送端第四编码随机数,并根据所述发送端第三编码随机数及发送端第四编码随机数的和值得到第二编码预测结果。
一种可能的实现方式中,上述加密模块54可包括:获取单元6541及计算单元6542;获取单元6541,用于获取标签数据,根据所述第二目标倍率对所述标签数据进行定点数编码,得到编码标签数据;计算单元6542,用于根据所述第二编码预测结果及所述编码标签数据的差值得到第一编码差错。
图6所示实施例提供的基于秘密共享的训练装置可用于执行本申请图1~图4所示方法实施例的技术方案,其实现原理和技术效果可进一步参考方法实施例中的相关描述。
图7为本说明书基于秘密共享的训练装置70再一个实施例的结构示意图,与图5所示的基于秘密共享的训练装置50相比,图7所示的基于秘密共享的训练装置70中,上述输出模块55可包括:计算单元7551及更新单元7552;计算单元7551,用于根据所述第一加密编码差错及所述编码样本数据的乘积得到第一加密编码梯度;更新单元7552,用于根据所述第一加密编码梯度对所述第一加密编码训练参数进行更新,并根据所述更新后的第一加密编码训练参数进行迭代训练,得到训练后的第二加密编码训练参数。
一种可能的实现方式中,上述更新单元7552可包括:更新子单元75521、迭代子单元75522及输出子单元75523;更新子单元75521,用于根据所述第一加密编码训练参数与所述第一加密编码梯度的差值对所述第一加密编码训练参数进行更新;迭代子单元75522,用于根据所述更新后的第一加密编码训练参数及预置的轮数进行迭代训练,并在每一轮训练后更新所述第一加密编码训练参数;输出子单 元75523,用于若当前的轮数达到所述预置轮数时,结束训练,并获得训练后的第二加密编码训练参数。
图7所示实施例提供的基于秘密共享的训练装置可执行本申请图1~图4所示方法实施例的技术方案,其实现原理和技术效果可参考方法实施例中的相关描述。
图8为本说明书基于秘密共享的训练装置80再一个实施例的结构示意图,与图5所示的基于秘密共享的训练装置50相比,图8所示的基于秘密共享的训练装置80中,上述输出模块55可包括:创建单元8551、接收单元8552及输出单元8553;创建单元8551,用于创建一个任意的随机数,根据所述第二加密编码训练参数与所述随机数的差值得到第三加密编码训练参数,并将所述第三加密编码训练参数发送至接收端,使得所述接收端对所述第三加密编码训练参数进行解密,得到第三编码训练参数;接收单元8552,用于接收所述接收端返回的第三编码训练参数,根据所述第三编码训练参数及所述随机数的和值得到第二编码训练参数;输出单元8553,用于根据所述第一目标倍率对所述第二编码训练参数进行定点数截取,得到第二训练参数。
图8所示实施例提供的基于秘密共享的训练装置可执行本申请图1~图4所示方法实施例的技术方案,其实现原理和技术效果可参考方法实施例中的相关描述。
应理解以上图5-图8所示的基于秘密共享的训练装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可全部或部分集成到一个物理实体上,也可物理上分开。且这些模块可全部以软件通过处理元件调用的形式实现;也可全部以硬件的形式实现;还可部分模块以软件通过处理元件调用的形式实现,部分模块通过硬件的形式实现。例如,检测模块可为单独设立的处理元件,也可集成在电子设备的某一个芯片中实现。其它模块的实现与之类似。此外这些模块全部或部分可集成在一起,也可独立实现。在实现过程中,上述方法的各步骤或以上各个模块可通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit;以下简称:ASIC),或,一个或多个微处理器(Digital Singnal Processor;以下简称:DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array;以下简称:FPGA)等。再如,这些模块可集成在一起,以片上系统(System-On-a-Chip;以下简称:SOC)的形式实现
图9为本说明书电子设备900一个实施例的结构示意图,如图9所示,上述电子设备可包括至少一个处理器;及与上述处理器通信连接的至少一个存储器,其中:存储器存储有可被处理器执行的程序指令,上述处理器调用上述程序指令能够执行本说明书图1~图4所示实施例提供的基于秘密共享的训练方法。
其中,上述电子设备可为能够进行基于秘密共享的训练设备,例如:计算机,本说明书实施例对上述电子设备的具体形式不作限定。可理解的是,这里的电子设 备即为方法实施例中提到的机器。
图9示出了适于用来实现本说明书实施方式的示例性电子设备的框图。图9所示仅为示例,不应对本说明书实施例的功能和使用范围带来任何限制。
如图9所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可包括但不限于:一个或者多个处理器910,存储器930,连接不同系统组件(包括存储器930和处理单元910)的通信总线940。
通信总线940表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry Standard Architecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association;以下简称:VESA)局域总线及外围组件互连(Peripheral Component Interconnection;以下简称:PCI)总线。
电子设备典型地包括多种计算机系统可读介质。这些介质可是任何能够被电子设备访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器930可包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)和/或高速缓存存储器。电子设备可进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。存储器930可包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本说明书各实施例的功能。
具有一组(至少一个)程序模块的程序/实用工具,可存储在存储器930中,这样的程序模块包括但不限于操作系统、一个或者多个应用程序、其它程序模块及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块通常执行本说明书所描述的实施例中的功能和/或方法。
处理器910通过运行存储在存储器930中的程序,从而执行各种功能应用及数据处理,例如实现本说明书图1~图4所示实施例提供的基于秘密共享的训练方法。
以上各实施例中,涉及的处理器可例如包括CPU、DSP、微控制器或数字信号处理器,还可包括GPU、嵌入式神经网络处理器(Neural-network Process Units;以下简称:NPU)和图像信号处理器(Image Signal Processing;以下简称:ISP),该处理器还可包括必要的硬件加速器或逻辑处理硬件电路,如ASIC,或一个或多个用于控制本申请技术方案程序执行的集成电路等。此外,处理器可具有操作一个或多个软件程序的功能,软件程序可存储在存储介质中。
本说明书实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,当所述计算机指令在计算机上运行时,所述计算机指令使所述计算机执行本说明书图1~图4所示实施例提供的基于秘密共享的训练方法。
上述非暂态计算机可读存储介质可采用一个或多个计算机可读的介质的任意 组合。计算机可读介质可是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可为电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(Read Only Memory;以下简称:ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory;以下简称:EPROM)或闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可是任何包含或存储程序的有形介质,该程序可被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以一种或多种程序设计语言或其组合来编写用于执行本说明书操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可通过任意种类的网络——包括局域网(Local Area Network;以下简称:LAN)或广域网(Wide Area Network;以下简称:WAN)连接到用户计算机,或者,可连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可按照不同于实施例中的顺序来执行并且仍然可实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可的或者可能是有利的。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可将本说明书中描述的不同实施例或示例及不同实 施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可明示或者隐含地包括至少一个该特征。在本说明书的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本说明书的优选实施方式的范围包括另外的实现,其中可不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本说明书的实施例所属技术领域的技术人员所理解。
取决于语境,如在此所使用的词语“如果”可被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
本说明书实施例中所涉及的终端可包括但不限于个人计算机(Personal Computer;以下简称:PC)、个人数字助理(Personal Digital Assistant;以下简称:PDA)、无线手持设备、平板电脑(Tablet Computer)、手机、MP3播放器、MP4播放器等。
在本说明书所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可有另外的划分方式,例如,多个单元或组件可结合或者可集成到另一个系统,或一些特征可忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可是通过一些接口,装置或单元的间接耦合或通信连接,可是电性,机械或其它的形式。
另外,在本说明书各个实施例中的各功能单元可集成在一个处理单元中,也可是各个单元单独物理存在,也可两个或两个以上单元集成在一个单元中。上述集成的单元既可采用硬件的形式实现,也可采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本说明书各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory;以下简称:ROM)、随机存取存储器(Random Access Memory;以下简称:RAM)、磁碟或者光盘等各种可存储程序代码的介质。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (14)

  1. 一种基于秘密共享的训练方法,包括:
    获取第一训练参数,根据第一目标倍率对所述第一训练参数进行定点数编码,得到第一编码训练参数,并根据接收端预置公钥对所述第一编码训练参数进行同态加密,得到第一加密编码训练参数;
    获取样本数据,根据第二目标倍率对所述样本数据进行定点数编码,得到编码样本数据,对所述第一加密编码训练参数及所述编码样本数据进行训练,得到第一加密编码预测结果;
    对所述第一加密编码预测结果进行秘密共享,得到第一编码预测结果,根据所述第一目标倍率对所述第一编码预测结果进行定点数截取,得到第二编码预测结果;
    根据所述第二编码预测结果及目标标签数据得到第一编码差错,并根据所述接收端预置公钥对所述第一编码差错进行同态加密,得到第一加密编码差错;
    根据所述第一加密编码差错对所述第一加密编码训练参数更新后进行迭代训练,得到训练后的第二加密编码训练参数,并根据所述第二加密编码训练参数得到第二训练参数,以完成对所述第一训练参数的训练。
  2. 根据权利要求1所述的方法,所述对所述第一加密编码预测结果进行秘密共享,得到第一编码预测结果,根据所述第一目标倍率对所述第一编码预测结果进行定点数截取,得到第二编码预测结果包括:
    创建一个任意的随机数,对所述随机数进行定点数编码,得到发送端第一编码随机数,其中,所述发送端第一编码随机数的编码倍率与所述第一加密编码预测结果的编码倍率对应;
    根据所述发送端第一编码随机数与所述第一加密编码预测结果的差值得到发送端第二加密编码随机数,并将所述发送端第二加密编码随机数发送至接收端,使得所述接收端对所述发送端第二加密编码随机数进行解密,得到发送端第二编码随机数;
    接收所述接收端发送的发送端第二编码随机数,根据所述第一目标倍率分别对所述发送端第一编码随机数及所述发送端第二编码随机数进行定点数截取,得到发送端第三编码随机数及发送端第四编码随机数,并根据所述发送端第三编码随机数及发送端第四编码随机数的和值得到第二编码预测结果。
  3. 根据权利要求2所述的方法,所述根据所述第二编码预测结果及目标标签数据得到第一编码差错包括:
    获取标签数据,根据所述第二目标倍率对所述标签数据进行定点数编码,得到编码标签数据;
    根据所述第二编码预测结果及所述编码标签数据的差值得到第一编码差错。
  4. 根据权利要求1所述的方法,所述根据所述第一加密编码差错对所述第一加密编码训练参数更新后进行迭代训练,得到训练后的第二加密编码训练参数包括:
    根据所述第一加密编码差错及所述编码样本数据的乘积得到第一加密编码梯度;
    根据所述第一加密编码梯度对所述第一加密编码训练参数进行更新,并根据所述更新后的第一加密编码训练参数进行迭代训练,得到训练后的第二加密编码训练参数。
  5. 根据权利要求4所述的方法,所述根据所述第一加密编码梯度对所述第一加密编码训练参数进行更新,并根据所述更新后的第一加密编码训练参数进行迭代训练,得到训练后的第二加密编码训练参数包括:
    根据所述第一加密编码训练参数与所述第一加密编码梯度的差值对所述第一加密编码训练参数进行更新;
    根据所述更新后的第一加密编码训练参数及预置的轮数进行迭代训练,并在每一轮训练后更新所述第一加密编码训练参数;
    若当前的轮数达到所述预置轮数时,结束训练,并获得训练后的第二加密编码训练参数。
  6. 根据权利要求1所述的方法,所述根据所述第二加密编码训练参数得到第二训练参数包括:
    创建一个任意的随机数,根据所述第二加密编码训练参数与所述随机数的差值得到第三加密编码训练参数,并将所述第三加密编码训练参数发送至接收端,使得所述接收端对所述第三加密编码训练参数进行解密,得到第三编码训练参数;
    接收所述接收端返回的第三编码训练参数,根据所述第三编码训练参数及所述随机数的和值得到第二编码训练参数;
    根据所述第一目标倍率对所述第二编码训练参数进行定点数截取,得到第二训练参数。
  7. 一种基于秘密共享的训练装置,包括:
    编码模块,用于获取第一训练参数,根据第一目标倍率对所述第一训练参数进行定点数编码,得到第一编码训练参数,并根据接收端预置公钥对所述第一编码训练参数进行同态加密,得到第一加密编码训练参数;
    训练模块,用于获取样本数据,根据第二目标倍率对所述样本数据进行定点数编码,得到编码样本数据,对所述第一加密编码训练参数及所述编码样本数据进行训练,得到第一加密编码预测结果;
    秘密共享模块,用于对所述第一加密编码预测结果进行秘密共享,得到第一编码预测结果,根据所述第一目标倍率对所述第一编码预测结果进行定点数截取,得到第二编码预测结果;
    加密模块,用于根据所述第二编码预测结果及目标标签数据得到第一编码差错,并根据所述接收端预置公钥对所述第一编码差错进行同态加密,得到第一加密编码差错;
    输出模块,用于根据所述第一加密编码差错对所述第一加密编码训练参数更新后进行迭代训练,得到训练后的第二加密编码训练参数,并根据所述第二加密编码训练参数得到第二训练参数,以完成对所述第一训练参数的训练。
  8. 根据权利要求7所述的装置,所述秘密共享模块包括:
    创建单元,用于创建一个任意的随机数,对所述随机数进行定点数编码,得到发送端第一编码随机数,其中,所述发送端第一编码随机数的编码倍率与所述第一加密编码预测结果的编码倍率对应;
    交互单元,用于根据所述发送端第一编码随机数与所述第一加密编码预测结果的差值得到发送端第二加密编码随机数,并将所述发送端第二加密编码随机数发送至接收端,使得所述接收端对所述发送端第二加密编码随机数进行解密,得到发送端第二编码随机数;
    输出单元,用于接收所述接收端发送的发送端第二编码随机数,根据所述第一目标倍率分别对所述发送端第一编码随机数及所述发送端第二编码随机数进行定点数截取,得到发送端第三编码随机数及发送端第四编码随机数,并根据所述发送端第三编码随机数及发送端第四编码随机数的和值得到第二编码预测结果。
  9. 根据权利要求8所述的装置,所述加密模块包括:
    获取单元,用于获取标签数据,根据所述第二目标倍率对所述标签数据进行定点数编码,得到编码标签数据;
    计算单元,用于根据所述第二编码预测结果及所述编码标签数据的差值得到第一编码差错。
  10. 根据权利要求7所述的装置,所述输出模块包括:
    计算单元,用于根据所述第一加密编码差错及所述编码样本数据的乘积得到第一加密编码梯度;
    更新单元,用于根据所述第一加密编码梯度对所述第一加密编码训练参数进行更新,并根据所述更新后的第一加密编码训练参数进行迭代训练,得到训练后的第二加密编码训练参数。
  11. 根据权利要求10所述的装置,所述更新单元包括:
    更新子单元,用于根据所述第一加密编码训练参数与所述第一加密编码梯度的差值对所述第一加密编码训练参数进行更新;
    迭代子单元,用于根据所述更新后的第一加密编码训练参数及预置的轮数进行迭代训练,并在每一轮训练后更新所述第一加密编码训练参数;
    输出子单元,用于若当前的轮数达到所述预置轮数时,结束训练,并获得训练后的第二加密编码训练参数。
  12. 根据权利要求7所述的装置,所述输出模块包括:
    创建单元,用于创建一个任意的随机数,根据所述第二加密编码训练参数与所述随机数的差值得到第三加密编码训练参数,并将所述第三加密编码训练参数发送 至接收端,使得所述接收端对所述第三加密编码训练参数进行解密,得到第三编码训练参数;
    接收单元,用于接收所述接收端返回的第三编码训练参数,根据所述第三编码训练参数及所述随机数的和值得到第二编码训练参数;
    输出单元,用于根据所述第一目标倍率对所述第二编码训练参数进行定点数截取,得到第二训练参数。
  13. 一种电子设备,包括:
    至少一个处理器;及
    与所述处理器通信连接的至少一个存储器,其中:
    所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至6任一所述的方法。
  14. 一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,当所述计算机指令在计算机上运行时,所述计算机指令使所述计算机执行如权利要求1至6任一所述的方法。
PCT/CN2021/096166 2020-05-27 2021-05-26 基于秘密共享的训练方法、装置、电子设备及存储介质 WO2021239006A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010459211.7A CN111368336B (zh) 2020-05-27 2020-05-27 基于秘密共享的训练方法、装置、电子设备及存储介质
CN202010459211.7 2020-05-27

Publications (1)

Publication Number Publication Date
WO2021239006A1 true WO2021239006A1 (zh) 2021-12-02

Family

ID=71211105

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/096166 WO2021239006A1 (zh) 2020-05-27 2021-05-26 基于秘密共享的训练方法、装置、电子设备及存储介质

Country Status (2)

Country Link
CN (1) CN111368336B (zh)
WO (1) WO2021239006A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114648130A (zh) * 2022-02-07 2022-06-21 北京航空航天大学 纵向联邦学习方法、装置、电子设备及存储介质
CN117648999A (zh) * 2024-01-30 2024-03-05 上海零数众合信息科技有限公司 联邦学习回归模型损失函数评估方法、装置及电子设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111368336B (zh) * 2020-05-27 2020-09-04 支付宝(杭州)信息技术有限公司 基于秘密共享的训练方法、装置、电子设备及存储介质
CN111740815A (zh) * 2020-07-31 2020-10-02 支付宝(杭州)信息技术有限公司 基于密文的两方秘密分享方法、装置、设备及存储介质
CN112529101B (zh) * 2020-12-24 2024-05-14 深圳前海微众银行股份有限公司 分类模型的训练方法、装置、电子设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8229939B2 (en) * 2004-10-19 2012-07-24 Palo Alto Research Center Incorporated Server-implemented system and method for providing private inference control
CN110210619A (zh) * 2019-05-22 2019-09-06 上海商汤智能科技有限公司 神经网络的训练方法及装置、电子设备和存储介质
CN110276210A (zh) * 2019-06-12 2019-09-24 深圳前海微众银行股份有限公司 基于联邦学习的模型参数的确定方法及装置
CN110288094A (zh) * 2019-06-10 2019-09-27 深圳前海微众银行股份有限公司 基于联邦学习的模型参数训练方法及装置
CN110399742A (zh) * 2019-07-29 2019-11-01 深圳前海微众银行股份有限公司 一种联邦迁移学习模型的训练、预测方法及装置
CN110704860A (zh) * 2019-11-18 2020-01-17 深圳前海微众银行股份有限公司 提升安全性的纵向联邦学习方法、设备、系统及存储介质
US10601579B2 (en) * 2017-12-20 2020-03-24 Nxp B.V. Privacy preserving comparison
CN110955907A (zh) * 2019-12-13 2020-04-03 支付宝(杭州)信息技术有限公司 一种基于联邦学习的模型训练方法
CN111143878A (zh) * 2019-12-20 2020-05-12 支付宝(杭州)信息技术有限公司 一种基于隐私数据进行模型训练的方法及系统
CN111368336A (zh) * 2020-05-27 2020-07-03 支付宝(杭州)信息技术有限公司 基于秘密共享的训练方法、装置、电子设备及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018174873A1 (en) * 2017-03-22 2018-09-27 Visa International Service Association Privacy-preserving machine learning
CN108681698B (zh) * 2018-04-28 2021-03-16 武汉大学 一种具有隐私保护功能的大规模虹膜识别方法
CN109669973A (zh) * 2018-12-27 2019-04-23 深算科技(重庆)有限公司 一种基于分布式动态训练系统
WO2019072315A2 (en) * 2019-01-11 2019-04-18 Alibaba Group Holding Limited LOGISTIC REGRESSION MODELING SCHEME USING SECRET SHARING
KR102208188B1 (ko) * 2019-01-11 2021-01-29 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. 프라이버시 보호를 위한 분산형 다중 파티 보안 모델 트레이닝 프레임워크
CN110490128B (zh) * 2019-08-16 2022-09-06 南京邮电大学 一种基于加密神经网络的手写识别方法
CN110728375B (zh) * 2019-10-16 2021-03-19 支付宝(杭州)信息技术有限公司 多个计算单元联合训练逻辑回归模型的方法和装置
CN110782883B (zh) * 2019-11-12 2020-10-20 百度在线网络技术(北京)有限公司 一种模型训练方法、装置、电子设备及存储介质
CN111105240B (zh) * 2019-12-12 2022-12-20 中国科学院深圳先进技术研究院 资源敏感的联合金融欺诈检测模型训练方法及检测方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8229939B2 (en) * 2004-10-19 2012-07-24 Palo Alto Research Center Incorporated Server-implemented system and method for providing private inference control
US10601579B2 (en) * 2017-12-20 2020-03-24 Nxp B.V. Privacy preserving comparison
CN110210619A (zh) * 2019-05-22 2019-09-06 上海商汤智能科技有限公司 神经网络的训练方法及装置、电子设备和存储介质
CN110288094A (zh) * 2019-06-10 2019-09-27 深圳前海微众银行股份有限公司 基于联邦学习的模型参数训练方法及装置
CN110276210A (zh) * 2019-06-12 2019-09-24 深圳前海微众银行股份有限公司 基于联邦学习的模型参数的确定方法及装置
CN110399742A (zh) * 2019-07-29 2019-11-01 深圳前海微众银行股份有限公司 一种联邦迁移学习模型的训练、预测方法及装置
CN110704860A (zh) * 2019-11-18 2020-01-17 深圳前海微众银行股份有限公司 提升安全性的纵向联邦学习方法、设备、系统及存储介质
CN110955907A (zh) * 2019-12-13 2020-04-03 支付宝(杭州)信息技术有限公司 一种基于联邦学习的模型训练方法
CN111143878A (zh) * 2019-12-20 2020-05-12 支付宝(杭州)信息技术有限公司 一种基于隐私数据进行模型训练的方法及系统
CN111368336A (zh) * 2020-05-27 2020-07-03 支付宝(杭州)信息技术有限公司 基于秘密共享的训练方法、装置、电子设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114648130A (zh) * 2022-02-07 2022-06-21 北京航空航天大学 纵向联邦学习方法、装置、电子设备及存储介质
CN114648130B (zh) * 2022-02-07 2024-04-16 北京航空航天大学 纵向联邦学习方法、装置、电子设备及存储介质
CN117648999A (zh) * 2024-01-30 2024-03-05 上海零数众合信息科技有限公司 联邦学习回归模型损失函数评估方法、装置及电子设备
CN117648999B (zh) * 2024-01-30 2024-04-23 上海零数众合信息科技有限公司 联邦学习回归模型损失函数评估方法、装置及电子设备

Also Published As

Publication number Publication date
CN111368336B (zh) 2020-09-04
CN111368336A (zh) 2020-07-03

Similar Documents

Publication Publication Date Title
WO2021239006A1 (zh) 基于秘密共享的训练方法、装置、电子设备及存储介质
WO2022237450A1 (zh) 多方安全计算方法、装置、设备及存储介质
CN113033828B (zh) 模型训练方法、使用方法、系统、可信节点及设备
CN112287377A (zh) 基于联邦学习的模型训练方法、计算机设备及存储介质
CN111371544B (zh) 基于同态加密的预测方法、装置、电子设备及存储介质
Zhang et al. Privacy-preserving deep learning based on multiparty secure computation: A survey
CN112231740B (zh) 数据加密方法、数据解密方法、装置、计算机设备和介质
US20230186049A1 (en) Training method and apparatus for a neural network model, device and storage medium
WO2023169081A1 (zh) 数据处理
CN111813544B (zh) 计算任务的处理方法、装置、调度及管理系统和介质
Ding et al. East: Efficient and accurate secure transformer framework for inference
CN111859440B (zh) 基于混合协议的分布式隐私保护逻辑回归模型的样本分类方法
CN117592527A (zh) 基于函数秘密共享的隐私保护神经网络训练方法及装置
JP7297131B2 (ja) 分散型機械学習モデルのトレーニング方法、装置、機器および媒体
CN116861477A (zh) 基于隐私保护的数据处理方法、系统、终端及存储介质
US12021986B2 (en) Neural network processing method and server and electrical device therefor
CN115277031B (zh) 一种数据处理的方法和装置
KR101836947B1 (ko) 양자 통신에서의 다자간 키 분배 방법, 이를 이용하는 양자 통신 방법 및 이를 수행하는 양자 통신 시스템
CN114499845A (zh) 多方安全计算的方法、装置及系统
TWI764811B (zh) 分層確定性錢包的金鑰生成系統及其方法
CN117009723B (zh) 一种多方计算方法、装置、设备及存储介质
CN116089991B (zh) 数据对齐方法、装置、设备及存储介质
TWI737956B (zh) 基於秘密共享的門檻式簽章系統及其方法
TWI776416B (zh) 分層確定性錢包的門檻式簽章系統及其方法
WO2021131667A1 (ja) 秘匿計算装置、秘匿計算方法及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21811884

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21811884

Country of ref document: EP

Kind code of ref document: A1