CN117521102A - 一种基于联邦学习的模型训练方法及装置 - Google Patents
一种基于联邦学习的模型训练方法及装置 Download PDFInfo
- Publication number
- CN117521102A CN117521102A CN202311490088.5A CN202311490088A CN117521102A CN 117521102 A CN117521102 A CN 117521102A CN 202311490088 A CN202311490088 A CN 202311490088A CN 117521102 A CN117521102 A CN 117521102A
- Authority
- CN
- China
- Prior art keywords
- model
- ciphertext
- gradient
- data
- training
- 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.)
- Pending
Links
- 238000012549 training Methods 0.000 title claims abstract description 258
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000012545 processing Methods 0.000 claims description 31
- 238000012360 testing method Methods 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 abstract description 24
- 230000003993 interaction Effects 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000007781 pre-processing Methods 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
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/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- 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/098—Distributed learning, e.g. federated learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Bioethics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于联邦学习的模型训练方法及装置,包括:第一端根据自身的第一数据集和第一模型的参数确定第一训练参数;保证第一端的数据不出本地,防止数据泄露。基于第一公钥确定第一训练参数的第一密文,并发送至第二端,以使第二端根据第二数据集、第二模型的参数和第一训练参数的第一密文确定第一模型的第一梯度密文;其中,第一模型的第一梯度密文表示第一模型的梯度根据第一公钥加密后的结果;进而第一端根据第一私钥对第一模型的第一梯度密文进行解密,得到第一模型的梯度,以此对第一模型进行迭代。实现第一端和第二端之间的以密文的形式进行数据交互,既实现基于联邦学习的模型训练,又保证训练过程中数据的安全性。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及一种基于联邦学习的模型训练方法及装置。
背景技术
机器学习技术可以帮助我们更好的理解和使用数据,体现数据价值,经过大量数据训练出来的机器学习模型已经广泛应用在生产和生活的各类场景中。而在大多数情况下,由于行业竞争、隐私安全等原因,用于进行模型训练的数据常常是以孤岛的形式存在的,制约了数据的使用和价值的发挥。基于此,联邦学习(Federated machine learning/Federated Learning)的诞生实现多个数据源的数据交换,以此避免数据孤岛。
然而目前的联邦学习一般是通过第三方系统实现的,比如联邦系统通过加密机制获取发起模型训练任务的一端(下面简述为第一端)与参与模型训练任务的一端(下面简述为第二端)的数据,而后训练出一个虚拟的共有模型,进而避免数据孤岛。但是该种方式存在第三方系统泄露数据等情况,导致数据存在安全隐患。
因此,如何保证基于联邦学习的模型训练过程中数据的安全性,是目前急需解决的技术问题。
发明内容
本发明实施例提供一种基于联邦学习的模型训练方法及装置,用于保证基于联邦学习的模型训练过程中数据的安全性,防止数据泄露。
第一方面,本发明实施例提供一种基于联邦学习的模型训练方法,包括:
第一端根据自身的第一数据集和第一模型的参数确定第一训练参数;
所述第一端根据自身的第一公钥对所述第一训练参数进行加密,得到所述第一训练参数的第一密文,并将所述第一训练参数的第一密文发送至第二端,以使所述第二端根据自身的第二数据集、第二模型的参数和所述第一训练参数的第一密文确定所述第一模型的第一梯度密文;所述第一模型的第一梯度密文表示所述第一模型的梯度根据所述第一公钥加密后的结果;
所述第一端接收所述第二端反馈的所述第一模型的第一梯度密文,根据自身的第一私钥对所述第一模型的第一梯度密文进行解密,得到在本次迭代的所述第一模型的梯度;
所述第一端根据所述第一模型的梯度对所述第一模型进行迭代,更新所述第一模型的参数,直至所述第一模型迭代完成。
基于上述技术方案,第一训练参数为第一数据集和所述第一模型的参数的相乘结果,以此通过第一训练参数表示第一数据集和第一模型的参数,同理通过第二训练参数表示第二数据集和第二模型的参数,以此保证第一端和第二端各自的数据不出本地,防止数据泄露。并且,通过密文的形式交互第一训练参数、第一模型的第一梯度密文等参数,实现第一端和第二端之间的以密文的形式进行数据交互,既实现基于联邦学习的模型训练,又保证训练过程中数据的安全性。
可选的,第一端根据自身的第一数据集和第一模型的参数确定第一训练参数之前,还包括:
所述第一端向所述第二端发送自身的第一公钥以及所述第一数据集中各数据的标识,以使所述第二端根据所述第一数据集中各数据的标识确定所述第二数据集;
所述第一端接收所述第二端发送的第二公钥。
基于上述技术方案,加密方法可以为同态加密,通过第一端和第二端交互各自的公钥,可以实现第一端和第二端可以对基于第一公钥和/或第二公钥加密的数据进行计算,保证第一端和第二端之间以密文的形式进行数据交互。第一数据集和第二数据集作为模型训练的训练样本,各数据的标识为第一数据集和第二数据集共有的唯一标识,比如标识为用户的电话号、身份证号码等,用于对齐第一端和第二端的训练样本。
可选的,将所述第一训练参数的第一密文发送至第二端之后,还包括:
所述第一端接收所述第二端发送的中间参数的密文和基于随机数发送的所述第二模型的第一梯度密文;所述中间参数的密文是所述第二端基于第二公钥,根据所述第一训练参数的第一密文和所述第二训练参数的第一密文确定的;所述第二训练参数的第一密文是所述第二端根据所述第一公钥对所述第二训练参数与所述第二数据集的数据标签的差值进行加密后得到的,所述第二训练参数是所述第二端根据所述第二数据集和第二模型的参数确定的;所述第二模型的第一梯度密文表示所述第二模型的梯度根据所述第一公钥加密后的结果,是所述第二端根据所述中间参数的密文、所述第二数据集和所述第二模型的参数确定的;
所述第一端根据所述第一私钥对所述第二端基于随机数发送的所述第二模型的第一梯度密文进行解密,得到所述第二模型的梯度和所述随机数的运算结果,并将所述运算结果发送至所述第二端,以使所述第二端根据所述运算结果确定出所述第二模型的梯度;
所述第一端根据所述中间参数的密文、第一公钥、第二公钥、第一数据集和第一模型的参数确定所述第一模型的第二梯度密文;所述第一模型的第二梯度密文表示所述第一模型的第一梯度密文根据所述第二公钥加密后的结果;
所述第一端将所述第一模型的第二梯度密文发送至所述第二端,以使所述第二端根据自身的第二私钥对所述第一模型的第二梯度密文进行解密,得到第一模型的第一梯度密文。
基于上述技术方案,第一端基于第一公钥和第二公钥加密的中间参数进行计算,得到基于第一公钥和第二公钥加密的第一模型的第二梯度密文,以此保证第一端自身的数据不出本地,防止数据泄露,且实现基于联邦学习的模型训练。第一端还对基于基于随机数发送的第二模型的第一梯度密文进行解密,进而得到第二模型的梯度和随机数的运算结果,因为运算结果中具有随机数,因此保证第二模型的梯度的安全性;因为随机数是第二端生成的,因此可以使第二端得到自身的第二模型的梯度,实现第一端和第二端之间的以密文的形式进行数据交互,既实现基于联邦学习的模型训练,又保证训练过程中数据的安全性。
可选的,所述第一模型迭代完成之后,还包括:
所述第一端接收测试请求,所述测试请求包括待测数据的标识;
所述第一端根据所述待测数据的标识在本地确定第一待测数据,并根据迭代完成的第一模型对所述第一待测数据进行运算,得到第一结果;
所述第一端将所述待测数据的标识发送至第二端,以使所述第二端根据所述待测数据的标识在本地确定第二待测数据,并根据迭代完成的第二模型对所述第二待测数据进行运算,得到第二结果;
所述第一端接收所述第二端反馈的第二结果,并根据所述第一结果和第二结果确定所述待测数据的计算结果。
基于上述技术方案,第一端的第一模型和第二端的第二模型相当于局部模型,在对待测数据进行推理时,需第一端的第一模型和第二端的第二模型联合进行,实现在第一端和第二端各自的数据不出本地的基础上完成数据预测,以此防止数据泄露,保证数据的安全性。
第二方面,本发明实施例提供一种基于联邦学习的模型训练方法,包括:
第二端接收第一端发送的第一训练参数的第一密文;所述第一训练参数的第一密文是所述第一端根据第一公钥对所述第一训练参数进行加密后得到的,述第一训练参数是所述第一端根据第一数据集和第一模型的参数确定;
所述第二端根据自身的第二数据集、第二模型的参数和所述第一训练参数的第一密文确定所述第一模型的第一梯度密文;所述第一模型的第一梯度密文表示所述第一模型的梯度根据所述第一公钥加密后的结果;
所述第二端将所述第一模型的第一梯度密文发送至所述第一端,以使所述第一端根据第一私钥对所述第一模型的第一梯度密文进行解密,得到在本次迭代的所述第一模型的梯度,并根据所述第一模型的梯度对所述第一模型进行迭代,更新所述第一模型的参数。
基于上述技术方案,第二端根据自身的第二数据集、第二模型的参数和第一端发送的第一训练参数的第一密文进行计算,实现以密文的形式进行数据计算,保证第一端的数据的安全性,且实现基于联邦学习的模型训练,又保证训练过程中数据的安全性。
可选的,第二端接收第一端发送的第一训练参数的第一密文之前,还包括:
所述第二端接收所述第一端发送的第一公钥以及所述第一数据集中各数据的标识;
所述第二端根据所述第一数据集中各数据的标识从本地确定出与所述第一数据集中各数据的标识相同的数据,得到所述第二数据集;
所述第二端向所述第一端发送自身的第二公钥。
基于上述技术方案,加密方法可以为同态加密,通过第一端和第二端交互各自的公钥,可以实现第一端和第二端可以对基于第一公钥和/或第二公钥加密的数据进行计算,保证第一端和第二端之间以密文的形式进行数据交互。
可选的,所述第二端根据自身的第二数据集、第二模型的参数和所述第一训练参数的第一密文确定所述第一模型的第一梯度密文,包括:
所述第二端将所述第二数据集和所述第二模型的参数的相乘结果作为所述第二训练参数;
所述第二端确定所述第二训练参数与所述第二数据集的数据标签的差值,并根据所述第一公钥对所述差值进行加密,得到所述第二训练参数的第一密文;
所述第二端基于第二公钥,根据所述第一训练参数的第一密文和所述第二训练参数的第一密文确定中间参数的密文;
所述第二端将所述中间参数的密文发送至所述第一端,以使所述第一端根据所述中间参数的密文、第一公钥、第二公钥、第一数据集和第一模型的参数确定所述第一模型的第二梯度密文;所述第一模型的第二梯度密文表示所述第一模型的第一梯度密文根据所述第二公钥加密后的结果;
所述第二端接收所述第一端反馈的所述第一模型的第二梯度密文,根据自身的第二私钥对所述第一模型的第二梯度密文进行解密,得到第一模型的第一梯度密文。
基于上述技术方案,第二训练参数为第二数据集和所述第二模型的参数的相乘结果,以此通过第一训练参数表示第一数据集和第一模型的参数,同理通过第二训练参数表示第二数据集和第二模型的参数,以此保证第一端和第二端各自的数据不出本地,防止数据泄露。
可选的,所述第二端基于第二公钥,根据所述第一训练参数的第一密文和所述第二训练参数的第一密文确定中间参数的密文,包括:
所述第二端确定所述第一训练参数的第一密文与所述第二训练参数的第一密文的求和结果;
所述第二端根据自身的第二公钥对所述求和结果进行加密,得到中间参数的密文。
可选的,所述第二端根据自身的第二公钥对所述加密结果进行加密,得到中间参数的密文之后,还包括:
所述第二端根据所述中间参数的密文、所述第二数据集和所述第二模型的参数确定所述第二模型的第一梯度密文,所述第二模型的第一梯度密文表示所述第二模型的梯度根据所述第一公钥加密后的结果;
所述第二端对所述第二模型的第一梯度密文添加随机数,并基于所述随机数向所述第一端发送所述第二模型的第一梯度密文,以使所述第一端根据第一私钥对基于所述随机数发送的所述第二模型的第一梯度密文进行解密,得到所述第二模型的梯度和所述随机数的运算结果;
所述第二端接收第一端反馈的所述运算结果,并根据所述随机数从所述运算结果中确定出所述第二模型的梯度;
所述第二端根据所述第二模型的梯度对所述第二模型进行迭代,更新所述第二模型的参数,直至所述第二模型迭代完成。
基于上述技术方案,因为运算结果中具有随机数,因此保证第二模型的梯度的安全性;因为随机数是第二端生成的,因此第二端可以通过运算结果得到自身的第二模型的梯度,实现第一端和第二端之间的以密文的形式进行数据交互,既实现基于联邦学习的模型训练,又保证训练过程中数据的安全性。
可选的,所述第一模型迭代完成之后,还包括:
所述第二端接收所述第一端发送的待测数据的标识;
所述第二端根据所述待测数据的标识在本地确定第二待测数据,并根据迭代完成的第二模型对所述第二待测数据进行运算,得到第二结果;
所述第二端将所述第二结果发送至所述第一端,以使所述第一端根据第一结果和所述第二结果确定所述待测数据的计算结果;所述第一结果是所述第一端根据迭代完成的第一模型对所述第一待测数据进行运算得到的,所述第一待测数据是所述第一端根据所述待测数据的标识在本地确定的,所述待测数据的标识是所述第一端接收测试请求之后得到的。
基于上述技术方案,第一端的第一模型和第二端的第二模型相当于局部模型,在对待测数据进行推理时,需第一端的第一模型和第二端的第二模型联合进行,实现在第一端和第二端各自的数据不出本地的基础上完成数据预测,以此防止数据泄露,保证数据的安全性。
第三方面,本发明实施例提供一种基于联邦学习的模型训练装置,包括:
第一处理模块,用于根据自身的第一数据集和第一模型的参数确定第一训练参数;
根据自身的第一公钥对所述第一训练参数进行加密,得到所述第一训练参数的第一密文,并将所述第一训练参数的第一密文发送至第二端,以使所述第二端根据自身的第二数据集、第二模型的参数和所述第一训练参数的第一密文确定所述第一模型的第一梯度密文;所述第一模型的第一梯度密文表示所述第一模型的梯度根据所述第一公钥加密后的结果;
接收所述第二端反馈的所述第一模型的第一梯度密文,根据自身的第一私钥对所述第一模型的第一梯度密文进行解密,得到在本次迭代的所述第一模型的梯度;
第一迭代模块,用于根据所述第一模型的梯度对所述第一模型进行迭代,更新所述第一模型的参数,直至所述第一模型迭代完成。
可选的,所述第一处理模块还用于:
根据自身的第一数据集和第一模型的参数确定第一训练参数之前,向所述第二端发送自身的第一公钥以及所述第一数据集中各数据的标识,以使所述第二端根据所述第一数据集中各数据的标识确定所述第二数据集;接收所述第二端发送的第二公钥。
可选的,所述第一处理模块还用于:
将所述第一训练参数的第一密文发送至第二端之后,接收所述第二端发送的中间参数的密文和基于随机数发送的所述第二模型的第一梯度密文;所述中间参数的密文是所述第二端基于第二公钥,根据所述第一训练参数的第一密文和所述第二训练参数的第一密文确定的;所述第二训练参数的第一密文是所述第二端根据所述第一公钥对所述第二训练参数与所述第二数据集的数据标签的差值进行加密后得到的,所述第二训练参数是所述第二端根据所述第二数据集和第二模型的参数确定的;所述第二模型的第一梯度密文表示所述第二模型的梯度根据所述第一公钥加密后的结果,是所述第二端根据所述中间参数的密文、所述第二数据集和所述第二模型的参数确定的;
根据所述第一私钥对所述第二端基于随机数发送的所述第二模型的第一梯度密文进行解密,得到所述第二模型的梯度和所述随机数的运算结果,并将所述运算结果发送至所述第二端,以使所述第二端根据所述运算结果确定出所述第二模型的梯度;
根据所述中间参数的密文、第一公钥、第二公钥、第一数据集和第一模型的参数确定所述第一模型的第二梯度密文;所述第一模型的第二梯度密文表示所述第一模型的第一梯度密文根据所述第二公钥加密后的结果;
将所述第一模型的第二梯度密文发送至所述第二端,以使所述第二端根据自身的第二私钥对所述第一模型的第二梯度密文进行解密,得到第一模型的第一梯度密文。
可选的,所述第一处理模块还用于:
所述第一模型迭代完成之后,接收测试请求,所述测试请求包括待测数据的标识;根据所述待测数据的标识在本地确定第一待测数据,并根据迭代完成的第一模型对所述第一待测数据进行运算,得到第一结果;将所述待测数据的标识发送至第二端,以使所述第二端根据所述待测数据的标识在本地确定第二待测数据,并根据迭代完成的第二模型对所述第二待测数据进行运算,得到第二结果;接收所述第二端反馈的第二结果,并根据所述第一结果和第二结果确定所述待测数据的计算结果。
第四方面,本发明实施例提供一种基于联邦学习的模型训练装置,包括:
第二处理模块,用于接收第一端发送的第一训练参数的第一密文;所述第一训练参数的第一密文是所述第一端根据第一公钥对所述第一训练参数进行加密后得到的,述第一训练参数是所述第一端根据第一数据集和第一模型的参数确定;
根据自身的第二数据集、第二模型的参数和所述第一训练参数的第一密文确定所述第一模型的第一梯度密文;所述第一模型的第一梯度密文表示所述第一模型的梯度根据所述第一公钥加密后的结果;
将所述第一模型的第一梯度密文发送至所述第一端,以使所述第一端根据第一私钥对所述第一模型的第一梯度密文进行解密,得到在本次迭代的所述第一模型的梯度,并根据所述第一模型的梯度对所述第一模型进行迭代,更新所述第一模型的参数。
可选的,所述第二处理模块还用于:
接收第一端发送的第一训练参数的第一密文之前,接收所述第一端发送的第一公钥以及所述第一数据集中各数据的标识;根据所述第一数据集中各数据的标识从本地确定出与所述第一数据集中各数据的标识相同的数据,得到所述第二数据集;向所述第一端发送自身的第二公钥。
可选的,所述第二处理模块具体用于:
将所述第二数据集和所述第二模型的参数的相乘结果作为所述第二训练参数;确定所述第二训练参数与所述第二数据集的数据标签的差值,并根据所述第一公钥对所述差值进行加密,得到所述第二训练参数的第一密文;基于第二公钥,根据所述第一训练参数的第一密文和所述第二训练参数的第一密文确定中间参数的密文;参数的密文、第一公钥、第二公钥、第一数据集和第一模型的参数确定所述第一模型的第二梯度密文;所述第一模型的第二梯度密文表示所述第一模型的第一梯度密文根据所述第二公钥加密后的结果;接收所述第一端反馈的所述第一模型的第二梯度密文,根据自身的第二私钥对所述第一模型的第二梯度密文进行解密,得到第一模型的第一梯度密文。
可选的,所述第二处理模块具体用于:
确定所述第一训练参数的第一密文与所述第二训练参数的第一密文的求和结果;根据自身的第二公钥对所述求和结果进行加密,得到中间参数的密文。
可选的,所述第二处理模块还用于:
根据自身的第二公钥对所述加密结果进行加密,得到中间参数的密文之后,根据所述中间参数的密文、所述第二数据集和所述第二模型的参数确定所述第二模型的第一梯度密文,所述第二模型的第一梯度密文表示所述第二模型的梯度根据所述第一公钥加密后的结果;对所述第二模型的第一梯度密文添加随机数,并基于所述随机数向所述第一端发送所述第二模型的第一梯度密文,以使所述第一端根据第一私钥对基于所述随机数发送的所述第二模型的第一梯度密文进行解密,得到所述第二模型的梯度和所述随机数的运算结果;接收第一端反馈的所述运算结果,并根据所述随机数从所述运算结果中确定出所述第二模型的梯度;
所述装置还包括第二迭代模块,用于根据所述第二模型的梯度对所述第二模型进行迭代,更新所述第二模型的参数,直至所述第二模型迭代完成。
可选的,所述第二处理模块还用于:
接收所述第一端发送的待测数据的标识;根据所述待测数据的标识在本地确定第二待测数据,并根据迭代完成的第二模型对所述第二待测数据进行运算,得到第二结果;将所述第二结果发送至所述第一端,以使所述第一端根据第一结果和所述第二结果确定所述待测数据的计算结果;所述第一结果是所述第一端根据迭代完成的第一模型对所述第一待测数据进行运算得到的,所述第一待测数据是所述第一端根据所述待测数据的标识在本地确定的,所述待测数据的标识是所述第一端接收测试请求之后得到的。
第五方面,本发明实施例还提供一种计算机设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述基于联邦学习的模型训练方法。
第六方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述基于联邦学习的模型训练方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种系统架构示意图;
图2为本发明实施例提供的一种第一服务器112的结构示意图;
图3为本发明实施例提供的一种应用于第一端的基于联邦学习的模型训练方法的流程示意图;
图4为本发明实施例提供的一种应用于第二端的基于联邦学习的模型训练方法的流程示意图;
图5为本发明实施例提供的一种基于联邦学习的模型训练方法的流程示意图;
图6为本发明实施例提供的一种基于联邦学习的模型训练方法的流程示意图;
图7为本发明实施例提供的一种基于联邦学习的模型预测方法的流程示意图;
图8为本发明实施例提供的一种应用于第一端的基于联邦学习的模型训练装置的结构示意图;
图9为本发明实施例提供的一种应用于第二端的基于联邦学习的模型训练装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请中的“多个”可以表示至少两个,例如可以是两个、三个或者更多个,本申请实施例不做限制。
机器学习技术可以更好的理解和使用数据、体现数据价值。经过大量数据训练出来的机器学习模型已经应用在实际生活中。为了防止数据孤岛,提高数据的使用和价值的发挥,通过联邦学习实现多个数据源的数据交换,解决多个数据来源方无法直接交换数据的问题。
针对不同数据集,联邦学习分为横向联邦学习、纵向联邦学习和联邦迁移学习三种分类方案。其中,横向联邦学习应用于多个数据集的特征重叠多,样本重叠少的场景;比如样本为用户的手机号码,特征为用户的地区、使用时长、年龄、性别等,各样本互不相关,每样本的特征大致相同。纵向联邦学习应用于多个数据集的特征重叠少,样本重叠多的场景;比如同一地区的银行用户数据和电商购买记录,同一地区的用户群体为该地区的居民,银行数据为用户的收入、支出、信用评级等,购买数据为用户的购买历史和浏览记录等,两组数据样本大致重合,但特征不同,联合银行数据和电商数据可以对当地居民的消费进行建模。联邦迁移学习应用于是样本和特征重叠度均少的场景。
然而目前的联邦学习一般是通过第三方系统实现的,比如联邦系统通过加密机制获取发起模型训练任务的一端(下面简述为第一端)与参与模型训练任务的一端(下面简述为第二端)的数据,而后训练出一个虚拟的共有模型,进而避免数据孤岛。但是该种方式存在第三方系统泄露数据等情况,导致数据存在安全隐患。
因此,本申请提供一种基于联邦学习的模型训练方法及装置,实现交互的双方进行数据交互,保证基于联邦学习的模型训练过程中数据的安全性,防止数据泄露。
图1示例性的示出了本发明实施例所适用的一种系统架构,该系统架构包括第一端110和第二端120,其中第一端110包括自身的第一数据库111和第一服务器112,第二端120包括自身的第二数据库121和第二服务器122。示例性的,第一端110可以为发起模型训练的一端,第二端120可以为基于第一端110参与模型训练的一端。可以理解,第二端120的数量可以为多个,本申请实施例并不限定第二端120的数量。
以第一服务器112为例,参见图2,图2为本申请实施例提供的一种第一服务器112的结构示意图,包括数据采集模块201、特征处理模块202、存储模块203、训练模块204、密钥生成模块205、参数聚合模块206、模型部署评估模块207、决策推理模块208和模型仓库209。
其中,数据采集模块201,用于以数据接口的形式接入外部数据,以此获取多源的原始数据(包括训练数据和待测数据),如结构化数据、非结构化数据等。
特征处理模块202,用于对获取的原始数据进行预处理,得到特征数据,以此消除原始数据中的异常值和噪声,增强原始数据的稳定性,提升模型训练的稳定性,实现数据的离散化,降低模型复杂度。预处理的方法包括但不限于:重复值去除、缺失值填充、规范化异常值、特征归一化、特征分箱等。如第一端110根据自身的训练数据进行预处理,得到第一数据集。
存储模块203,用于将特征数据进行存储,如将特征数据以加密形态保留在本地。
训练模块204,用于根据存储在本地的特征数据进行模型训练,得到模型的参数。示例性的,第一端根据自身的第一数据集和第一模型的参数确定第一训练参数;然后根据自身的第一公钥对第一训练参数进行加密,得到第一训练参数的第一密文,并将第一训练参数的第一密文发送至第二端120,以使第二端120反馈的第一模型的第一梯度密文;再根据自身的第一私钥对第一模型的第一梯度密文进行解密,得到第一模型的梯度;进而根据第一模型的梯度对第一模型进行迭代,更新第一模型的参数,直至第一模型迭代完成。
密钥生成模块205,用于生成数据加解密算法使用的私钥和公钥。公钥用于对训练过程中相关数据进行加密,私钥保留在本地,用于对训练过程中相关数据进行解密。
参数聚合模块206,用于获取第二端120发送的密文数据,如第一模型的第一梯度密文,进而对第二端120发送的密文数据在本地进行聚合,得到聚合后的参数。
模型部署评估模块207,用于对迭代完成的联邦模型进行性能评估,并将其上线部署,以此实现对待测数据的分类和决策。
决策推理模块208,用于对待测数据使用联邦模型进行决策。示例性的,对待测数据进行推理前需要将其经过特征处理模块202进行预处理,预处理过程与训练数据的预处理过程完全相同以保证结果的有效性。决策推理过程中需要拥有联邦模型参数的所有计算服务器的参与。
模型仓库209,用于存储迭代完成的联邦模型,联邦模型的参数包括模型编号、模型类型、模型所在服务器的个数和地址、特征维度等。
需要说明的是,上述图1和图2所示的结构仅是一种示例,本发明实施例对此不做限定。可以理解,第一端110也可以作为参与模型训练的一端,因此第一服务器112与第二服务器122的结构和功能是相同的,在此不对第二服务器122进行赘述。
基于上述描述,图3示例性的示出了本发明实施例提供的一种应用于第一端的基于联邦学习的模型训练方法的流程示意图,如图3所示,该流程包括:
步骤310,第一端根据自身的第一数据集和第一模型的参数确定第一训练参数。
本申请实施例中,第一数据集是第一端根据获取的原始数据进行预处理后得到的。示例性的,第一端基于数据接口获取原始数据,对该原始数据进行预处理,以此得到特征形式的第一数据集。
第一端在获取原始数据之后,将原始数据的标识发送至第二端,以使第二端确定出第二数据集,使得第二数据集与第一数据集的数据对齐。示例性的,第一端向第二端发送自身的第一公钥以及第一数据集中各数据的标识,以使第二端根据第一数据集中各数据的标识确定第二数据集;并接收第二端发送的第二公钥。其中,各数据的标识可以是第一端通过第一公钥和/或第二公钥加密后的密文,以此保证数据的安全性。比如,第一端通过第二公钥对各数据的标识进行加密,然后将加密后的标识发送至第二端,由第二端根据自身的第二私钥对加密后的标识进行解密,进而得到各数据的标识,然后根据各数据的标识确定出第二数据集。可以理解,数据的标识为第一数据集和第二数据集共有的唯一标识,任意两个数据的标识对应的值是不同的,比如标识为用户的电话号、身份证号码等。
在一些实施例中,第一训练参数为第一数据集和第一模型的参数的相乘结果。比如第一数据集为xA∈(x1A,x2A,……,xiA,……,xnA),其中,xiA表示第一端A的第一数据集中第i个特征数据,n表示第一数据集中特征数据的数量;第一模型为第一端对应的局部模型,假设第一模型的参数为θA,因此第一训练参数为uiA=θA*xA。因此在进行模型训练过程中不用第一数据集直接进行计算,防止第一端本地数据泄露,保证第一端本地数据的安全性。
步骤320,所述第一端根据自身的第一公钥对所述第一训练参数进行加密,得到所述第一训练参数的第一密文,并将所述第一训练参数的第一密文发送至第二端。
本申请实施例中,加密方法为同态加密方法,以此实现第一端和第二端之间以密文的形式进行数据交互与计算,既实现基于联邦学习的模型训练,又保证训练过程中数据的安全性。下述描述的加解密均是基于同态加密方法实现的,下面不做赘述。示例性的,第一训练参数的第一密文为‖uiA‖A,其中,‖·‖表示同态加密,‖·‖A表示基于第一端A的第一公钥进行同态加密。
将所述第一训练参数的第一密文发送至第二端之后,第一端接收第二端发送的中间参数的密文。其中,中间参数的密文是第二端基于第二公钥,根据第一训练参数的第一密文和第二训练参数的第一密文确定的;第二训练参数的第一密文是第二端根据所述第一公钥对第二训练参数与第二数据集的数据标签的差值进行加密后得到的,第二训练参数是第二端根据第二数据集和第二模型的参数确定的。可以理解,数据标签用于表示第二数据集中各数据的分类结果,以此区分出正样本和负样本,比如第二数据集中第i个数据的数据标签表征第i个数据为正样本数据,第二数据集中第i+1个数据的数据标签表征第i+1个数据为负样本数据。
基于上述步骤310,第二训练参数为第二数据集和第二模型的参数的相乘结果。比如第二数据集为xB∈(x1B,x2B,……,xiB,……,xnB);第二模型为第二端对应的局部模型,假设第二模型的参数为θB,因此第二训练参数为uiB=θB*xB。可以理解,第一端和第二端共同实现联邦学习的模型训练,因此第一端和第二端基于相同的损失函数进行计算,损失函数如下述公式(1)所示。
其中,L为损失函数的损失值,yi为第二数据集中第i个特征数据的标签。
示例性的,简化后的损失函数如下述公式(2)和公式(3)所示。
/>
其中,λ表示正则化参数,LA为第二模型的第一损失值,LB为第二模型的第二损失值,‖LAB‖可以称为中间损失值。
基于上述公式(3),第二端根据第一公钥对第二训练参数与第二数据集的数据标签的差值进行加密后得到第二训练参数的第一密文‖uiB-yi‖A,第二端根据下述公式(4)计算中间参数的密文。
‖di‖=‖uiA‖+‖uiB-yi‖ (4);
一种可能的方式中,第二端基于第二公钥,分别对根据第一训练参数的第一密文和第二训练参数的第一密文进行加密,然后将再次加密后的第一训练参数的第一密文和第二训练参数的第一密文进行求和,进而得到中间参数的密文‖||di‖A‖B=‖‖uiA‖A‖B+‖‖uiB-yi‖A‖B。
另一种可能的方式中,第二端确定第一训练参数的第一密文与第二训练参数的第一密文的求和结果‖uiA‖A+‖uiB-yi‖A,然后根据自身的第二公钥对求和结果‖uiA‖A+‖uiB-yi‖A进行加密,得到中间参数的密文‖‖di||A||B=||‖uiA‖A+‖uiB-yi‖A‖B。
第一端接收第二端发送的中间参数的密文之后,根据中间参数的密文、第一公钥、第二公钥、第一数据集和第一模型的参数确定第一模型的第二梯度密文。其中,第一模型的第二梯度密文表示第一模型的第一梯度密文根据第二公钥加密后的结果。示例性的,基于上述公式(2)和(4),确定第一模型的梯度如下述公式(5)所示。
其中,表示第一模型的梯度。
因为中间参数的密文‖‖di‖A‖B是在第一公钥和第二公钥同态加密下的密文,因此为了实现计算,需要在第一公钥和第二公钥同态加密的基础上进行计算,因此基于上述公式(5)可以得到其中,/>为第一模型的第二梯度密文。
基于上述描述,第一模型的第二梯度密文表示第一模型的第一梯度密文根据第二公钥加密后的结果,因此第一端在确定出第一模型的第二梯度密文之后,需要将第一模型的第二梯度密文发送至第二端,以使第二端根据自身的第二私钥对第一模型的第二梯度密文进行解密,得到第一模型的第一梯度密文
在一些实施例中,第一端还接收第二端基于随机数发送的第二模型的第一梯度密文;该第二模型的第一梯度密文表示第二模型的梯度根据第一公钥加密后的结果,是第二端根据中间参数的密文、第二数据集和第二模型的参数确定的。
示例性的,基于上述公式(2)和(4),确定第二模型的梯度如下述公式(6)所示。
其中,表示第二模型的梯度。
第二端通过第一端的第一公钥对第二模型的梯度和第二端的随机掩码RB的运算结果进行加密,进而得到基于随机数发送的第二模型的第一梯度密文其中,/>为第二模型的第一梯度密文。
第一端在接收第二端基于随机数发送的第二模型的第一梯度密文之后,根据自身的第一私钥对第二端基于随机数发送的第二模型的第一梯度密文进行解密,得到第二模型的梯度和随机数RB的运算结果/>并将运算结果/>发送至第二端,以使第二端根据运算结果/>确定出第二模型的梯度/>
步骤330,所述第一端接收所述第二端反馈的所述第一模型的第一梯度密文,根据自身的第一私钥对所述第一模型的第一梯度密文进行解密,得到在本次迭代的所述第一模型的梯度。
本申请实施例中,第一模型的第一梯度密文表示第一模型的梯度根据第一公钥加密后的结果;如第一模型的第一梯度密文为因此第一端可以根据自身的第一私钥对第一模型的第一梯度密文/>进行解密,得到在本次迭代的第一模型的梯度/>
步骤340,所述第一端根据所述第一模型的梯度对所述第一模型进行迭代,更新所述第一模型的参数,直至所述第一模型迭代完成。
本申请实施例中,第一模型迭代完成之后,第一端接收测试请求,该测试请求包括待测数据的标识;进而根据待测数据的标识在本地确定第一待测数据,并根据迭代完成的第一模型对第一待测数据进行运算,得到第一结果。可以理解,待测数据为未知数据,相当于对未知数据进行推理和决策。
同理,第一端将待测数据的标识发送至第二端,以使第二端根据待测数据的标识在本地确定第二待测数据,并根据迭代完成的第二模型对第二待测数据进行运算,得到第二结果。基于此,第一端接收第二端反馈的第二结果之后,根据第一结果和第二结果确定待测数据的计算结果。进而在第一端和第二端各自的数据不出本地的基础上完成数据预测,以此防止数据泄露,数据的安全性。
为了更好的解释上述技术方案,图4示例性的示出了本发明实施例提供的一种应用于第二端的基于联邦学习的模型训练方法的流程示意图,如图4所示,该流程包括:
步骤410,第二端接收第一端发送的第一训练参数的第一密文。
本申请实施例中,第二端接收第一端发送的第一训练参数的第一密文之前,接收第一端发送的第一数据集中各数据的标识,进而确定出第二数据集,使得第二数据集与第一数据集的数据对齐。示例性的,第二端接收第一端发送的第一公钥以及第一数据集中各数据的标识;根据第一数据集中各数据的标识从本地确定出与第一数据集中各数据的标识相同的数据,得到第二数据集;然后向第一端发送自身的第二公钥。可以理解,在确定出与第一数据集中各数据的标识相同的数据之后,对与第一数据集中各数据的标识相同的数据进行预处理,进而得到第二数据集,预处理方式与上述图3中第一数据集的预处理方式相同,在此不做赘述。第一公钥和第二公钥用于对第一端和第二端之间交互的相关数据进行加解密,具体加解密方式已在上述图3进行描述,在此不做赘述。
步骤420,所述第二端根据自身的第二数据集、第二模型的参数和所述第一训练参数的第一密文确定所述第一模型的第一梯度密文。
本申请实施例中,第二端通过自身的数据确定出中间参数的密文之后,根据中间参数的密文确定第一模型的第一梯度密文。进一步的,第二端将第二数据集和第二模型的参数的相乘结果作为第二训练参数;比如第二训练参数为uiB=θB*xB。然后第二端确定第二训练参数uiB与第二数据集的数据标签yi的差值‖uiB-yi‖,根据第一公钥对差值‖uiB-yi‖进行加密,得到第二训练参数的第一密文‖uiB-yi‖A;在基于第二公钥,根据第一训练参数的第一密文‖uiA‖A和第二训练参数的第一密文‖uiB-yi‖A确定中间参数的密文‖‖di‖A‖B。示例性的,第二端确定第一训练参数的第一密文与第二训练参数的第一密文的求和结果‖uiA‖A+||uiB-yi||A;根据第二公钥对求和结果‖uiA‖A+‖uiB-yi‖A进行加密,得到中间参数的密文‖‖di‖A‖B=‖‖uiA‖A+‖uiB-yi‖A‖B。可以理解,中间参数的密文是基于上述图3中所述的公式(4)确定的,具体技术方案已在上述步骤320中进行描述,在此不做赘述。
第二端在确定出中间参数的密文‖‖di‖A‖B之后,将中间参数的密文‖‖di‖A‖B发送至第一端,以使第一端根据中间参数的密文‖‖di‖A‖B、第一公钥、第二公钥、第一数据集和第一模型的参数确定第一模型的第二梯度密文;其中,第一模型的第二梯度密文表示第一模型的第一梯度密文根据所述第二公钥加密后的结果。第一模型的第二梯度密文是基于上述图3中所述的公式(5)确定的,在此不做赘述。
第一端在确定出第一模型的第二梯度密文之后,第二端接收第一端反馈的第一模型的第二梯度密文/>然后根据自身的第二私钥对第一模型的第二梯度密文/>进行解密,得到第一模型的第一梯度密文/>
在一些实施例中,第二端通过自身的数据确定出中间参数的密文之后,还根据中间参数的密文确定出用于第二模型迭代的第二模型的梯度。进一步的,第二端根据中间参数的密文、第二数据集和第二模型的参数确定第二模型的第一梯度密;其中,第二模型的第一梯度密文表示所述第二模型的梯度根据所述第一公钥加密后的结果。可以理解,第二模型的第一梯度密文是基于上述公式(6)确定的,在此不做赘述。
然后第二端对第二模型的第一梯度密文添加随机数RB,并基于随机数RB向第一端发送第二模型的第一梯度密文/>以使第一端根据第一私钥对基于随机数发送的第二模型的第一梯度密文/>进行解密,得到第二模型的梯度和随机数的运算结果/>
所述最后第二端接收第一端反馈的运算结果并根据随机数RB从运算结果中确定出第二模型的梯度/>根据第二模型的梯度/>对第二模型进行迭代,更新第二模型的参数,直至第二模型迭代完成,具体迭代过程在此不作具体限定。
步骤430,述第二端将所述第一模型的第一梯度密文发送至所述第一端,以使所述第一端根据第一私钥对所述第一模型的第一梯度密文进行解密,得到在本次迭代的所述第一模型的梯度,并根据所述第一模型的梯度对所述第一模型进行迭代,更新所述第一模型的参数。
本申请实施例中,第一模型迭代完成之后,第一端接收测试请求,进而根据迭代完成的第一模型和第二模型对第一待测数据进行运算。示例性的,第二端接收第一端发送的待测数据的标识;根据待测数据的标识在本地确定第二待测数据,并根据迭代完成的第二模型对第二待测数据进行运算,得到第二结果;将第二结果发送至第一端,以使第一端根据第一结果和第二结果确定待测数据的计算结果;其中,第一结果是第一端根据迭代完成的第一模型对第一待测数据进行运算得到的,第一待测数据是第一端根据所述待测数据的标识在本地确定的,待测数据的标识是第一端接收测试请求之后得到的。具体技术方案已在上述步骤340进行描述,在此不做赘述。
为了更好的解释上述技术方案,图5示例性的示出了本发明实施例提供的一种基于联邦学习的模型训练方法的流程示意图,如图5所示,该流程包括:
S501、数据对齐。
第一端以用户的手机号作为数据标识,在自身的本地数据中确定出用于模型训练的第一数据集(也可以称为训练集、训练样本)。第一端将第一数据集中各用户的手机号发送至第二端,以使第二端根据各用户的手机号在自身的本地数据中确定出用于模型训练的第二数据集,进而实现第一端和第二端的训练样本数据对齐。
S502、参数交换。
第二端根据随机掩码RB从中确定出子模型B的梯度/>实现子模型B的迭代;根据自身的第二私钥对/>进行解密,得到子模型A的第一梯度密文/>并将/>发送至第一端。
第一端根据自身的第一私钥对解密,确定出自身子模型A的梯度/>实现子模型A的迭代。
S503、迭代训练。
第一端和第二端在确定出自身的梯度之后,基于自身的梯度进行迭代训练,直至自身的子模型收敛或达到预设训练次数,确定出迭代完成的子模型,进而通过第一端和第二端的子模型共同维护联邦模型。
在本申请实施例中,第二端的数量可以为多个,在此不对第二端的数量进行限定,参见图6,图6示例性的示出了本发明实施例提供的一种基于联邦学习的模型训练方法的流程示意图,该流程包括:
S601、数据对齐。
第一端以用户的手机号作为数据标识,在自身的本地数据中确定出用于模型训练的第一数据集(也可以称为训练集、训练样本)。第一端将第一数据集中各用户的手机号发送至第二端B和第二端C,以使第二端B和第二端C根据各用户的手机号在自身的本地数据中分别确定出用于模型训练的第二数据集和第三数据集,进而实现第一端、第二端B和第二端C的训练样本数据对齐。
S602、参数交换。
基于上述步骤502,第一端确定第一训练参数的第一密文‖uiA‖A;第二端B确定第二训练参数的第一密文‖uiB-yib‖A;第二端C确定第二训练参数的第一密文‖uiC-yic‖A。
进而第二端B和第二端C计算出中间参数的密文‖di‖,然后第一端基于中间参数的密文||di||确定出自身子模型A的梯度实现子模型A的迭代;第二B端基于中间参数的密文‖di‖确定出自身子模型B的梯度/>实现子模型B的迭代;第二端C基于中间参数的密文‖di‖确定出自身子模型C的梯度/>实现子模型C的迭代。可以理解,具体交互过程已在上述图5中进行描述,多个第二端的交互过程与上述图5中的描述类似,在此不做赘述。
S603、迭代训练。
第一端、第二端B和第二端C在确定出自身的梯度之后,基于自身的梯度分别进行迭代训练,直至自身的子模型收敛或达到预设训练次数,确定出迭代完成的子模型,进而通过第一端、第二端B和第二端C的子模型共同维护联邦模型。
本申请实施例中,第二端具有数据的标签,第一端和第二端之间拥有标识相同,但特征不同的数据,加密算法为全同态加密算法CKKS,在密文上进行的代数运算的结果与明文上进行相同的代数运算后的密文结果相同,以此实现第一端和第二端之间的以密文的形式进行数据交互(如通过密文的形式交互第一训练参数、第一模型的第一梯度密文等参数),无需可信第三方计算节点,减少对计算资源的依赖。在联邦学习的模型训练过程中,通过第一训练参数表示第一数据集和第一模型的参数,通过第二训练参数表示第二数据集和第二模型的参数,以此保证第一端和第二端各自的数据不出本地,防止数据泄露,保证训练过程中数据的安全性。
为了更好的解释上述技术方案,图7示例性的示出了本发明实施例提供的一种基于联邦学习的模型预测方法的流程示意图,如图7所示,该流程包括:
步骤701、交换公钥。
第一端和第二端互相交换各自的公钥,如第一端将自身的第一公钥发送至第二端,第二端将自身的第二公钥发送至第一端。
步骤702,发送待测数据的标识。
第一端接收测试请求,该测试请求包括待测数据的标识(如用户名、用户的手机号等);以用户的手机号为例,根据用户的手机号在本地确定第一待测数据,并将用户的手机号发送至第二端。
步骤703,预测第一结果。
第一端根据迭代完成的第一模型对第一待测数据进行运算,得到第一结果。
步骤704,判断是否确定出第二待测数据。
第二端根据用户的手机号在本地确定是否具有用户的手机号对应的数据,若是,则根据用户的手机号在本地确定第二待测数据,并执行步骤705;否则结束本次任务。
步骤705,预测第二结果。
第二端根据迭代完成的第二模型对第二待测数据进行运算,得到第二结果。
步骤706,确定待测数据的计算结果。
第一端接收第二端反馈的第二结果,将第一结果与第二结果的求和结果确定为待测数据的计算结果。
本申请实施例中,
对未知样本进行推理时,需要第一端和第二端的局部模型联合进行,因此不失一般性,实现在第一端和第二端各自的数据不出本地的基础上完成数据预测,以此防止数据泄露,保证数据的安全性。
基于相同的技术构思,图8示例性的示出了本发明实施例提供的一种应用于第一端的基于联邦学习的模型训练装置的结构示意图,该装置可以执行上述应用于第一端的基于联邦学习的模型训练方法的流程。
如图8所示,该装置具体包括:
第一处理模块810,用于根据自身的第一数据集和第一模型的参数确定第一训练参数;
根据自身的第一公钥对所述第一训练参数进行加密,得到所述第一训练参数的第一密文,并将所述第一训练参数的第一密文发送至第二端,以使所述第二端根据自身的第二数据集、第二模型的参数和所述第一训练参数的第一密文确定所述第一模型的第一梯度密文;所述第一模型的第一梯度密文表示所述第一模型的梯度根据所述第一公钥加密后的结果;
接收所述第二端反馈的所述第一模型的第一梯度密文,根据自身的第一私钥对所述第一模型的第一梯度密文进行解密,得到在本次迭代的所述第一模型的梯度;
第一迭代模块820,用于根据所述第一模型的梯度对所述第一模型进行迭代,更新所述第一模型的参数,直至所述第一模型迭代完成。
可选的,所述第一处理模块810还用于:
根据自身的第一数据集和第一模型的参数确定第一训练参数之前,向所述第二端发送自身的第一公钥以及所述第一数据集中各数据的标识,以使所述第二端根据所述第一数据集中各数据的标识确定所述第二数据集;接收所述第二端发送的第二公钥。
可选的,所述第一处理模块810还用于:
将所述第一训练参数的第一密文发送至第二端之后,接收所述第二端发送的中间参数的密文和基于随机数发送的所述第二模型的第一梯度密文;所述中间参数的密文是所述第二端基于第二公钥,根据所述第一训练参数的第一密文和所述第二训练参数的第一密文确定的;所述第二训练参数的第一密文是所述第二端根据所述第一公钥对所述第二训练参数与所述第二数据集的数据标签的差值进行加密后得到的,所述第二训练参数是所述第二端根据所述第二数据集和第二模型的参数确定的;所述第二模型的第一梯度密文表示所述第二模型的梯度根据所述第一公钥加密后的结果,是所述第二端根据所述中间参数的密文、所述第二数据集和所述第二模型的参数确定的;
根据所述第一私钥对所述第二端基于随机数发送的所述第二模型的第一梯度密文进行解密,得到所述第二模型的梯度和所述随机数的运算结果,并将所述运算结果发送至所述第二端,以使所述第二端根据所述运算结果确定出所述第二模型的梯度;
根据所述中间参数的密文、第一公钥、第二公钥、第一数据集和第一模型的参数确定所述第一模型的第二梯度密文;所述第一模型的第二梯度密文表示所述第一模型的第一梯度密文根据所述第二公钥加密后的结果;
将所述第一模型的第二梯度密文发送至所述第二端,以使所述第二端根据自身的第二私钥对所述第一模型的第二梯度密文进行解密,得到第一模型的第一梯度密文。
可选的,所述第一处理模块810还用于:
所述第一模型迭代完成之后,接收测试请求,所述测试请求包括待测数据的标识;根据所述待测数据的标识在本地确定第一待测数据,并根据迭代完成的第一模型对所述第一待测数据进行运算,得到第一结果;将所述待测数据的标识发送至第二端,以使所述第二端根据所述待测数据的标识在本地确定第二待测数据,并根据迭代完成的第二模型对所述第二待测数据进行运算,得到第二结果;接收所述第二端反馈的第二结果,并根据所述第一结果和第二结果确定所述待测数据的计算结果。
基于相同的技术构思,图9示例性的示出了本发明实施例提供的一种应用于第二端的基于联邦学习的模型训练装置的结构示意图,该装置可以执行上述应用于第二端的基于联邦学习的模型训练方法的流程。
如图9所示,该装置具体包括:
第二处理模块910,用于接收第一端发送的第一训练参数的第一密文;所述第一训练参数的第一密文是所述第一端根据第一公钥对所述第一训练参数进行加密后得到的,述第一训练参数是所述第一端根据第一数据集和第一模型的参数确定;
根据自身的第二数据集、第二模型的参数和所述第一训练参数的第一密文确定所述第一模型的第一梯度密文;所述第一模型的第一梯度密文表示所述第一模型的梯度根据所述第一公钥加密后的结果;
将所述第一模型的第一梯度密文发送至所述第一端,以使所述第一端根据第一私钥对所述第一模型的第一梯度密文进行解密,得到在本次迭代的所述第一模型的梯度,并根据所述第一模型的梯度对所述第一模型进行迭代,更新所述第一模型的参数。
可选的,所述第二处理模块910还用于:
接收第一端发送的第一训练参数的第一密文之前,接收所述第一端发送的第一公钥以及所述第一数据集中各数据的标识;根据所述第一数据集中各数据的标识从本地确定出与所述第一数据集中各数据的标识相同的数据,得到所述第二数据集;向所述第一端发送自身的第二公钥。
可选的,所述第二处理模块910具体用于:
将所述第二数据集和所述第二模型的参数的相乘结果作为所述第二训练参数;确定所述第二训练参数与所述第二数据集的数据标签的差值,并根据所述第一公钥对所述差值进行加密,得到所述第二训练参数的第一密文;基于第二公钥,根据所述第一训练参数的第一密文和所述第二训练参数的第一密文确定中间参数的密文;参数的密文、第一公钥、第二公钥、第一数据集和第一模型的参数确定所述第一模型的第二梯度密文;所述第一模型的第二梯度密文表示所述第一模型的第一梯度密文根据所述第二公钥加密后的结果;接收所述第一端反馈的所述第一模型的第二梯度密文,根据自身的第二私钥对所述第一模型的第二梯度密文进行解密,得到第一模型的第一梯度密文。
可选的,所述第二处理模块910具体用于:
确定所述第一训练参数的第一密文与所述第二训练参数的第一密文的求和结果;根据自身的第二公钥对所述求和结果进行加密,得到中间参数的密文。
可选的,所述第二处理模块910还用于:
根据自身的第二公钥对所述加密结果进行加密,得到中间参数的密文之后,根据所述中间参数的密文、所述第二数据集和所述第二模型的参数确定所述第二模型的第一梯度密文,所述第二模型的第一梯度密文表示所述第二模型的梯度根据所述第一公钥加密后的结果;对所述第二模型的第一梯度密文添加随机数,并基于所述随机数向所述第一端发送所述第二模型的第一梯度密文,以使所述第一端根据第一私钥对基于所述随机数发送的所述第二模型的第一梯度密文进行解密,得到所述第二模型的梯度和所述随机数的运算结果;接收第一端反馈的所述运算结果,并根据所述随机数从所述运算结果中确定出所述第二模型的梯度;
所述装置还包括第二迭代模块920,用于根据所述第二模型的梯度对所述第二模型进行迭代,更新所述第二模型的参数,直至所述第二模型迭代完成。
可选的,所述第二处理模块910还用于:
接收所述第一端发送的待测数据的标识;根据所述待测数据的标识在本地确定第二待测数据,并根据迭代完成的第二模型对所述第二待测数据进行运算,得到第二结果;将所述第二结果发送至所述第一端,以使所述第一端根据第一结果和所述第二结果确定所述待测数据的计算结果;所述第一结果是所述第一端根据迭代完成的第一模型对所述第一待测数据进行运算得到的,所述第一待测数据是所述第一端根据所述待测数据的标识在本地确定的,所述待测数据的标识是所述第一端接收测试请求之后得到的。
基于相同的技术构思,本发明实施例还提供一种计算机设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述基于联邦学习的模型训练方法。
基于相同的技术构思,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述基于联邦学习的模型训练方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (14)
1.一种基于联邦学习的模型训练方法,其特征在于,包括:
第一端根据自身的第一数据集和第一模型的参数确定第一训练参数;
所述第一端根据自身的第一公钥对所述第一训练参数进行加密,得到所述第一训练参数的第一密文,并将所述第一训练参数的第一密文发送至第二端,以使所述第二端根据自身的第二数据集、第二模型的参数和所述第一训练参数的第一密文确定所述第一模型的第一梯度密文;所述第一模型的第一梯度密文表示所述第一模型的梯度根据所述第一公钥加密后的结果;
所述第一端接收所述第二端反馈的所述第一模型的第一梯度密文,根据自身的第一私钥对所述第一模型的第一梯度密文进行解密,得到在本次迭代的所述第一模型的梯度;
所述第一端根据所述第一模型的梯度对所述第一模型进行迭代,更新所述第一模型的参数,直至所述第一模型迭代完成。
2.如权利要求1所述的方法,其特征在于,第一端根据自身的第一数据集和第一模型的参数确定第一训练参数之前,还包括:
所述第一端向所述第二端发送自身的第一公钥以及所述第一数据集中各数据的标识,以使所述第二端根据所述第一数据集中各数据的标识确定所述第二数据集;
所述第一端接收所述第二端发送的第二公钥。
3.如权利要求1所述的方法,其特征在于,将所述第一训练参数的第一密文发送至第二端之后,还包括:
所述第一端接收所述第二端发送的中间参数的密文和基于随机数发送的所述第二模型的第一梯度密文;所述中间参数的密文是所述第二端基于第二公钥,根据所述第一训练参数的第一密文和所述第二训练参数的第一密文确定的;所述第二训练参数的第一密文是所述第二端根据所述第一公钥对所述第二训练参数与所述第二数据集的数据标签的差值进行加密后得到的,所述第二训练参数是所述第二端根据所述第二数据集和第二模型的参数确定的;所述第二模型的第一梯度密文表示所述第二模型的梯度根据所述第一公钥加密后的结果,是所述第二端根据所述中间参数的密文、所述第二数据集和所述第二模型的参数确定的;
所述第一端根据所述第一私钥对所述第二端基于随机数发送的所述第二模型的第一梯度密文进行解密,得到所述第二模型的梯度和所述随机数的运算结果,并将所述运算结果发送至所述第二端,以使所述第二端根据所述运算结果确定出所述第二模型的梯度;
所述第一端根据所述中间参数的密文、第一公钥、第二公钥、第一数据集和第一模型的参数确定所述第一模型的第二梯度密文;所述第一模型的第二梯度密文表示所述第一模型的第一梯度密文根据所述第二公钥加密后的结果;
所述第一端将所述第一模型的第二梯度密文发送至所述第二端,以使所述第二端根据自身的第二私钥对所述第一模型的第二梯度密文进行解密,得到第一模型的第一梯度密文。
4.如权利要求1所述的方法,其特征在于,所述第一模型迭代完成之后,还包括:
所述第一端接收测试请求,所述测试请求包括待测数据的标识;
所述第一端根据所述待测数据的标识在本地确定第一待测数据,并根据迭代完成的第一模型对所述第一待测数据进行运算,得到第一结果;
所述第一端将所述待测数据的标识发送至第二端,以使所述第二端根据所述待测数据的标识在本地确定第二待测数据,并根据迭代完成的第二模型对所述第二待测数据进行运算,得到第二结果;
所述第一端接收所述第二端反馈的第二结果,并根据所述第一结果和第二结果确定所述待测数据的计算结果。
5.一种基于联邦学习的模型训练方法,其特征在于,包括:
第二端接收第一端发送的第一训练参数的第一密文;所述第一训练参数的第一密文是所述第一端根据第一公钥对所述第一训练参数进行加密后得到的,述第一训练参数是所述第一端根据第一数据集和第一模型的参数确定;
所述第二端根据自身的第二数据集、第二模型的参数和所述第一训练参数的第一密文确定所述第一模型的第一梯度密文;所述第一模型的第一梯度密文表示所述第一模型的梯度根据所述第一公钥加密后的结果;
所述第二端将所述第一模型的第一梯度密文发送至所述第一端,以使所述第一端根据第一私钥对所述第一模型的第一梯度密文进行解密,得到在本次迭代的所述第一模型的梯度,并根据所述第一模型的梯度对所述第一模型进行迭代,更新所述第一模型的参数。
6.如权利要求5所述的方法,其特征在于,第二端接收第一端发送的第一训练参数的第一密文之前,还包括:
所述第二端接收所述第一端发送的第一公钥以及所述第一数据集中各数据的标识;
所述第二端根据所述第一数据集中各数据的标识从本地确定出与所述第一数据集中各数据的标识相同的数据,得到所述第二数据集;
所述第二端向所述第一端发送自身的第二公钥。
7.如权利要求5所述的方法,其特征在于,所述第二端根据自身的第二数据集、第二模型的参数和所述第一训练参数的第一密文确定所述第一模型的第一梯度密文,包括:
所述第二端将所述第二数据集和所述第二模型的参数的相乘结果作为所述第二训练参数;
所述第二端确定所述第二训练参数与所述第二数据集的数据标签的差值,并根据所述第一公钥对所述差值进行加密,得到所述第二训练参数的第一密文;
所述第二端基于第二公钥,根据所述第一训练参数的第一密文和所述第二训练参数的第一密文确定中间参数的密文;
所述第二端将所述中间参数的密文发送至所述第一端,以使所述第一端根据所述中间参数的密文、第一公钥、第二公钥、第一数据集和第一模型的参数确定所述第一模型的第二梯度密文;所述第一模型的第二梯度密文表示所述第一模型的第一梯度密文根据所述第二公钥加密后的结果;
所述第二端接收所述第一端反馈的所述第一模型的第二梯度密文,根据自身的第二私钥对所述第一模型的第二梯度密文进行解密,得到第一模型的第一梯度密文。
8.如权利要求7所述的方法,其特征在于,所述第二端基于第二公钥,根据所述第一训练参数的第一密文和所述第二训练参数的第一密文确定中间参数的密文,包括:
所述第二端确定所述第一训练参数的第一密文与所述第二训练参数的第一密文的求和结果;
所述第二端根据自身的第二公钥对所述求和结果进行加密,得到中间参数的密文。
9.如权利要求8所述的方法,其特征在于,所述第二端根据自身的第二公钥对所述加密结果进行加密,得到中间参数的密文之后,还包括:
所述第二端根据所述中间参数的密文、所述第二数据集和所述第二模型的参数确定所述第二模型的第一梯度密文,所述第二模型的第一梯度密文表示所述第二模型的梯度根据所述第一公钥加密后的结果;
所述第二端对所述第二模型的第一梯度密文添加随机数,并基于所述随机数向所述第一端发送所述第二模型的第一梯度密文,以使所述第一端根据第一私钥对基于所述随机数发送的所述第二模型的第一梯度密文进行解密,得到所述第二模型的梯度和所述随机数的运算结果;
所述第二端接收第一端反馈的所述运算结果,并根据所述随机数从所述运算结果中确定出所述第二模型的梯度;
所述第二端根据所述第二模型的梯度对所述第二模型进行迭代,更新所述第二模型的参数,直至所述第二模型迭代完成。
10.如权利要求9所述的方法,其特征在于,所述第一模型迭代完成之后,还包括:
所述第二端接收所述第一端发送的待测数据的标识;
所述第二端根据所述待测数据的标识在本地确定第二待测数据,并根据迭代完成的第二模型对所述第二待测数据进行运算,得到第二结果;
所述第二端将所述第二结果发送至所述第一端,以使所述第一端根据第一结果和所述第二结果确定所述待测数据的计算结果;所述第一结果是所述第一端根据迭代完成的第一模型对所述第一待测数据进行运算得到的,所述第一待测数据是所述第一端根据所述待测数据的标识在本地确定的,所述待测数据的标识是所述第一端接收测试请求之后得到的。
11.一种基于联邦学习的模型训练装置,其特征在于,包括:
第一处理模块,用于根据自身的第一数据集和第一模型的参数确定第一训练参数;
根据自身的第一公钥对所述第一训练参数进行加密,得到所述第一训练参数的第一密文,并将所述第一训练参数的第一密文发送至第二端,以使所述第二端根据自身的第二数据集、第二模型的参数和所述第一训练参数的第一密文确定所述第一模型的第一梯度密文;所述第一模型的第一梯度密文表示所述第一模型的梯度根据所述第一公钥加密后的结果;
接收所述第二端反馈的所述第一模型的第一梯度密文,根据自身的第一私钥对所述第一模型的第一梯度密文进行解密,得到在本次迭代的所述第一模型的梯度;
第一迭代模块,用于根据所述第一模型的梯度对所述第一模型进行迭代,更新所述第一模型的参数,直至所述第一模型迭代完成。
12.一种基于联邦学习的模型训练装置,其特征在于,包括:
第二处理模块,用于接收第一端发送的第一训练参数的第一密文;所述第一训练参数的第一密文是所述第一端根据第一公钥对所述第一训练参数进行加密后得到的,述第一训练参数是所述第一端根据第一数据集和第一模型的参数确定;
根据自身的第二数据集、第二模型的参数和所述第一训练参数的第一密文确定所述第一模型的第一梯度密文;所述第一模型的第一梯度密文表示所述第一模型的梯度根据所述第一公钥加密后的结果;
将所述第一模型的第一梯度密文发送至所述第一端,以使所述第一端根据第一私钥对所述第一模型的第一梯度密文进行解密,得到在本次迭代的所述第一模型的梯度,并根据所述第一模型的梯度对所述第一模型进行迭代,更新所述第一模型的参数。
13.一种计算机设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至4或5至10任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行权利要求1至4或5至10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311490088.5A CN117521102A (zh) | 2023-11-09 | 2023-11-09 | 一种基于联邦学习的模型训练方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311490088.5A CN117521102A (zh) | 2023-11-09 | 2023-11-09 | 一种基于联邦学习的模型训练方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117521102A true CN117521102A (zh) | 2024-02-06 |
Family
ID=89747217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311490088.5A Pending CN117521102A (zh) | 2023-11-09 | 2023-11-09 | 一种基于联邦学习的模型训练方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117521102A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117972793A (zh) * | 2024-03-28 | 2024-05-03 | 中电科网络安全科技股份有限公司 | 一种纵向联邦树模型训练方法、装置、设备及存储介质 |
-
2023
- 2023-11-09 CN CN202311490088.5A patent/CN117521102A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117972793A (zh) * | 2024-03-28 | 2024-05-03 | 中电科网络安全科技股份有限公司 | 一种纵向联邦树模型训练方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Patra et al. | BLAZE: blazing fast privacy-preserving machine learning | |
CN110189192B (zh) | 一种信息推荐模型的生成方法及装置 | |
Zhao et al. | Machine learning based privacy-preserving fair data trading in big data market | |
US20230078061A1 (en) | Model training method and apparatus for federated learning, device, and storage medium | |
CN111512589B (zh) | 用于利用spdz的快速安全多方内积的方法 | |
US20200394518A1 (en) | Method for collaborative learning of an artificial neural network without disclosing training data | |
CN112989368B (zh) | 多方联合进行隐私数据处理的方法及装置 | |
US20230087864A1 (en) | Secure multi-party computation method and apparatus, device, and storage medium | |
WO2020015478A1 (zh) | 基于模型的预测方法和装置 | |
CN111723404B (zh) | 联合训练业务模型的方法及装置 | |
CN112347500B (zh) | 分布式系统的机器学习方法、装置、系统、设备及存储介质 | |
CN112380578A (zh) | 一种基于区块链和可信执行环境的边缘计算框架 | |
CN110032893B (zh) | 基于秘密分享的安全模型预测方法和装置 | |
Niu et al. | Toward verifiable and privacy preserving machine learning prediction | |
WO2020211240A1 (zh) | 预测模型的联合构建方法、装置及计算机设备 | |
CN113505882A (zh) | 基于联邦神经网络模型的数据处理方法、相关设备及介质 | |
CN117521102A (zh) | 一种基于联邦学习的模型训练方法及装置 | |
Weng et al. | pvcnn: Privacy-preserving and verifiable convolutional neural network testing | |
CN112818369A (zh) | 一种联合建模方法及装置 | |
CN113609781A (zh) | 基于联邦学习的汽车生产模具优化方法、系统、设备及介质 | |
Yadav et al. | Private computation of the Schulze voting method over the cloud | |
CN110175283B (zh) | 一种推荐模型的生成方法及装置 | |
CN114462626B (zh) | 联邦模型训练方法、装置、终端设备以及存储介质 | |
CN116502732A (zh) | 基于可信执行环境的联邦学习方法以及系统 | |
CN115130568A (zh) | 支持多参与方的纵向联邦Softmax回归方法及系统 |
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 |