CN113688855B - 数据处理方法、联邦学习的训练方法及相关装置、设备 - Google Patents
数据处理方法、联邦学习的训练方法及相关装置、设备 Download PDFInfo
- Publication number
- CN113688855B CN113688855B CN202010427897.1A CN202010427897A CN113688855B CN 113688855 B CN113688855 B CN 113688855B CN 202010427897 A CN202010427897 A CN 202010427897A CN 113688855 B CN113688855 B CN 113688855B
- Authority
- CN
- China
- Prior art keywords
- terminal
- cooperative
- model parameters
- server
- model
- 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
- 238000000034 method Methods 0.000 title claims abstract description 189
- 238000012549 training Methods 0.000 title claims abstract description 162
- 238000003672 processing method Methods 0.000 title claims abstract description 27
- 238000010801 machine learning Methods 0.000 claims abstract description 293
- 238000012545 processing Methods 0.000 claims description 111
- 230000015654 memory Effects 0.000 claims description 86
- 238000003860 storage Methods 0.000 claims description 40
- 238000004364 calculation method Methods 0.000 claims description 23
- 230000002776 aggregation Effects 0.000 claims description 11
- 238000004220 aggregation Methods 0.000 claims description 11
- 230000036961 partial effect Effects 0.000 claims description 11
- 230000004931 aggregating effect Effects 0.000 claims description 4
- 230000003993 interaction Effects 0.000 abstract description 22
- 238000013528 artificial neural network Methods 0.000 description 69
- 230000006870 function Effects 0.000 description 42
- 230000008569 process Effects 0.000 description 36
- 239000011159 matrix material Substances 0.000 description 34
- 238000013527 convolutional neural network Methods 0.000 description 33
- 238000004891 communication Methods 0.000 description 32
- 238000011176 pooling Methods 0.000 description 32
- 239000013598 vector Substances 0.000 description 25
- 238000010586 diagram Methods 0.000 description 24
- 238000013473 artificial intelligence Methods 0.000 description 19
- 238000004422 calculation algorithm Methods 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 13
- 238000004590 computer program Methods 0.000 description 13
- 230000000694 effects Effects 0.000 description 11
- 210000002569 neuron Anatomy 0.000 description 11
- 230000001537 neural effect Effects 0.000 description 10
- 230000002411 adverse Effects 0.000 description 8
- 230000004913 activation Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 7
- 238000013500 data storage Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 4
- 230000000306 recurrent effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241000282472 Canis lupus familiaris Species 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 208000026350 Inborn Genetic disease Diseases 0.000 description 1
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 206010028980 Neoplasm Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 238000011001 backwashing Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 208000016361 genetic disease Diseases 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 230000007786 learning performance Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000007170 pathology Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 208000024891 symptom Diseases 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
-
- 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/60—Protecting data
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Networks & Wireless Communication (AREA)
- Medical Informatics (AREA)
- Bioethics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Neurology (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请提供了一种数据处理方法、联邦学习的训练方法及相关装置、设备,方法应用于联邦学习***,联邦学习***包括服务器和多个终端,服务器存储有每个终端各自对应的协同关系,协同关系用于指示每个终端各自对应的协同终端,方法包括:第一终端从服务器获取待训练的第一机器学习模型;其中,第一终端为多个终端中的任意一个终端;第一终端通过自身存储的本地数据对第一机器学习模型进行训练,得到训练好的模型参数;第一终端根据协同关系确定第一终端对应的第一协同终端,并通过第一协同终端将第一终端训练好的部分或全部模型参数发送给服务器;协同关系为服务器下发给第一终端的。实施本申请,可以提高服务器与终端之间数据交互的安全性。
Description
技术领域
本申请涉及数据安全保护技术领域,尤其涉及一种数据处理方法、联邦学习的训练方法及相关装置、设备。
背景技术
在互联网、大数据和机器学习的助推下,人工智能技术日新月异,刷脸支付、辅助诊断、个性化服务等逐步走人大众视野并深刻改变着人类的生产与生活方式。然而,在这些外表光鲜的智能产品背后,用户的生理特征、医疗记录、社交网络等大量个人敏感数据无时无刻不在被各类企业、机构肆意收集。大规模数据收集能够带动机器学习性能的提升,实现经济效益和社会效益的共贏,但也令个人隐私保护面临更大的风险与挑战,主要表现在2方面:首先,由不可靠的数据收集者导致的数据泄露事件频发,不仅对企业造成重大经济和信誉损失,也对社会稳定和国家安全构成极大威胁;其次,大量研究表明,攻击者通过分析机器学习模型的输出结果,能够逆向推理出训练数据中个体的敏感信息。
传统的机器学习训练中,各方数据首先被数据收集者集中收集,然后由数据分析者进行模型训练,此模式称为集中学习(centralized learning),其中,数据收集者与数据分析者可以是同一方,如移动应用开发者;也可以是多方,如开发者将数据共享给其他数据分析机构。可见集中学习模式下,用户一旦被收集数据,便很难再拥有对数据的控制权,其数据将被用于何处、如何使用也不得而知。近年来,一部分研究者尝试令各方数据保留在本地的同时训练全局模型,此工作的典型代表为2017年Google提出的联邦学习(federatedlearning)。具体来说,联邦学习***中的多个联邦客户端在模型训练时不用给出己方数据,而是根据服务器端下发的全局模型参数和客户端的本地的数据集来训练本地模型,并返回本地模型参数供服务器端聚合更新全局模型参数,更新后的全局模型参数重新下发到客户端,以使客户端可以根据更新后的全局模型参数再次通过本地数据进行训练,多次重复执行“上传”“下发”的步骤,直至服务器确定训练好的机器学习模型满足收敛状态,从而可以完成联邦学习的训练过程。在实际应用中,客户端的本地数据和客户端的本地模型不会进行传输,本地数据也不会被反猜,联邦学习在较高程度保持数据完整性的同时,可以保护数据隐私。
由此可见,联邦学习在不需要共享本地数据到服务器的情况下,可以完成模型训练,达到传统集中学习训练的效果。然而,现有的联邦学习的训练方法无法保证客户端上传到服务器的模型参数是否安全。如果模型参数被除联邦学习***之外的攻击者窃取,攻击者可以通过模型参数还原客户端本地数据或者根据模型参数重建本地模型。这在无形中给客户端带来很大的数据泄露风险。因此,如何提高联邦学习中数据的安全性是亟需解决的技术问题。
发明内容
本申请提供了一种数据处理方法、联邦学习的训练方法及相关装置、设备,在通过联邦学习***对机器学习模型进行训练时,联邦学习***中的每个终端可以通过与自身具有协同关系的协同终端来向服务器发送每个终端训练好的模型参数,从而可以提高服务器与终端之间数据交互的安全性。
第一方面,提供了一种联邦学习的训练方法,其特征在于,所述方法应用于联邦学习***,所述联邦学习***包括服务器和多个终端,所述服务器存储有所述联邦学习***中每个终端各自对应的协同关系,所述协同关系用于指示每个终端各自对应的协同终端,该方法包括:第一终端从所述服务器获取待训练的第一机器学习模型;其中,所述第一终端为所述多个终端中的任意一个终端;所述第一终端通过自身存储的本地数据对所述第一机器学习模型进行训练,得到训练好的模型参数;所述第一终端根据协同关系确定所述第一终端对应的第一协同终端,并通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器;所述协同关系为所述服务器下发给所述第一终端的;其中,在所述服务器根据所述多个终端各自训练好的模型参数进行聚合,得到满足收敛状态的第二机器学习模型的情况下,所述服务器将所述第二机器学习模型确定为所述联邦学习***训练好的结果。
实施本申请实施例,在通过联邦学习***对机器学习模型进行训练时,联邦学习***中的每个终端可以通过与自身具有协同关系的协同终端来向服务器发送每个终端训练好的模型参数,可以避免攻击者在攻击终端后获取到每个终端训练好的模型参数,以规避潜在的数据泄露风险,从而可以提高服务器与终端之间数据交互的安全性。
在一种可能的实现方式中,所述通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器,包括:通过所述第一协同终端将所述第一终端训练好的全部模型参数发送给所述服务器;或,通过所述第一终端和第一协同终端共同将所述第一终端训练好的模型参数发送给所述服务器。实施本申请实施例,在通过联邦学习***对机器学习模型进行训练时,联邦学习***中的每个终端可以通过与自身具有协同关系的协同终端来向服务器发送每个终端训练好的全部模型参数,或者,每个终端也可以通过自己与自身具有协同关系的协同终端一起向服务器发送每个终端训练好的模型参数,可以避免攻击者在攻击终端后获取到每个终端训练好的模型参数,以规避潜在的数据泄露风险,从而可以提高服务器与终端之间数据交互的安全性。
在一种可能的实现方式中,所述方法还包括:所述第一终端确定协同自身向所述服务器发送模型参数时所需的协同终端的数量;所述第一终端根据协同关系确定所述第一终端对应的第一协同终端,包括:所述第一终端根据确定好的所述数量以及所述协同关系确定所述第一协同终端。实施本申请实施例,联邦学习***中的每个终端可以根据协同终端的数量以及协同关系确定自己对应的协同终端,在通过联邦学习***对机器学习模型进行训练时,联邦学习***中的每个终端可以通过确定好的协同终端来向服务器发送每个终端训练好的全部模型参数,或者,每个终端也可以通过自己与确定好的协同终端一起向服务器发送每个终端训练好的模型参数,可以避免攻击者在攻击终端后获取到每个终端训练好的模型参数,以规避潜在的数据泄露风险,从而可以提高服务器与终端之间数据交互的安全性。
在一种可能的实现方式中,所述第一终端对应的第一协同终端的数量为N,在通过所述第一协同终端将所述第一终端训练好的部分模型参数发送给所述服务器的情况下,所述第一终端训练好的模型参数分为N+1份,其中,N为大于1的正整数;所述第一终端根据协同关系确定所述第一终端对应的第一协同终端之后,所述通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器之前,还包括:所述第一终端为自身以及所述N个第一协同终端分配1份模型参数;其中,不同的终端对应不同的模型参数;所述第一终端通过第一加密噪声对分配到自身的模型参数进行加密,得到加密后的第一模型参数;其中,所述N个第一协同终端通过各自的第二加密噪声对分配到自身的模型参数进行加密,得到加密后的第二模型参数;所述第一加密噪声和所述N个第一协同终端各自的第二加密噪声在叠加之后不包含噪声;所述通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器,包括:通过所述第一终端将所述第一模型参数发送给所述服务器,通过所述第一协同终端将所述第二模型参数发送给所述服务器。实施本申请实施例,在通过联邦学习***对机器学习模型进行训练时,联邦学习***中的每个终端可以通过与自身具有协同关系的协同终端来向服务器发送每个终端训练好的部分模型参数,这里,每个终端训练好的模型参数为每个终端以及每个终端对应的协同终端通过各自的加密噪声得到的模型参数,可以避免攻击者在攻击终端后获取到每个终端训练好的模型参数,以规避潜在的数据泄露风险,从而可以提高服务器与终端之间数据交互的安全性。
在一种可能的实现方式中,所述第一终端对应的协同终端的数量为N,在通过所述第一协同终端将所述第一终端训练好的全部模型参数发送给所述服务器的情况下,所述第一终端训练好的模型参数包括N份,其中,N为大于1的正整数;所述第一终端根据协同关系确定所述第一终端对应的第一协同终端之后,所述通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器之前,还包括:所述第一终端为所述N个第一协同终端分配1份模型参数;其中,不同的终端对应不同的模型参数;所述第一终端通过第一加密噪声对目标数据进行加密,得到加密后的第三模型参数;所述目标数据为空;其中,所述N个第一协同终端通过各自的第二加密噪声对分配到自身的模型参数进行加密,得到加密后的第四模型参数;所述第一加密噪声和所述N个第一协同终端各自的第二加密噪声在叠加之后不包含噪声;所述通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器,包括:通过所述第一终端将所述第三模型参数发送给所述服务器,通过所述第一协同终端将所述第四模型参数发送给所述服务器。实施本申请实施例中,在通过联邦学习***对机器学习模型进行训练时,联邦学习***中的每个终端可以通过与自身具有协同关系的协同终端来向服务器发送每个终端训练好的全部模型参数,这里,每个终端训练好的模型参数为每个终端以及每个终端对应的协同终端通过各自的加密噪声得到的模型参数,可以避免攻击者在攻击终端后获取到每个终端训练好的模型参数,以规避潜在的数据泄露风险,从而可以提高服务器与终端之间数据交互的安全性。
在一种可能的实现方式中,其特征在于,所述服务器存储有所述联邦学习***中每个终端各自对应的公钥;所述联邦学习***中的终端存储有所述服务器下发的,与自身具有协同关系的协同终端所对应的公钥;所述N个第一协同终端包括第一子协同终端;所述方法还包括:所述第一终端根据随机数种子生成所述第一加密噪声;所述第一终端通过所述第一子协同终端对应的公钥对所述第一加密噪声进行加密,得到第一中间噪声;所述第一中间噪声用于所述第一子协同终端通过自身对应的私钥对所述第一中间噪声进行解密,得到所述第二加密噪声;所述第一子协同终端为所述N个第一协同终端中的任意一个终端。实施本申请实施例,联邦学习***中的每个终端可以通过随机数种子以及协同终端对应的公钥生成各自的加密噪声,从而可以通过生成的加密噪声对模型参数进行加密,可以提高终端向服务器传输的数据的安全性。
在一种可能的实现方式中,所述第一终端训练好的模型参数为经过压缩后的模型参数。实施本申请实施例,在保证机器学习模型的精度不发生变化的情况下,联邦学习***中的终端可以向服务器发送压缩后的模型参数,可以提高终端与服务器之间进行数据传输的效率。
在一种可能的实现方式中,所述第一终端训练好的模型参数包括各自对应的索引值,所述索引值用于表征所述模型参数对应的存储地址;所述通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器包括:所述第一终端将自身需要所述第一协同终端向所述服务器发送的模型参数所对应的索引值发送给所述第一协同终端;所述第一协同终端根据所述索引值获取对应的模型参数,并将获取到的模型参数发送给所述服务器。
第二方面,本申请实施例提供了另一种联邦学习的训练方法,该方法应用于联邦学习***,所述联邦学习***包括服务器和多个终端,所述服务器存储有所述联邦学习***中每个终端各自对应的协同关系,所述协同关系用于指示每个终端各自对应的协同终端,该方法可以包括:所述服务器分别向所述多个终端发送待训练的第一机器学习模型;所述服务器获取所述多个终端中的每个终端根据协同关系确定的协同终端分别发送的部分或全部模型参数,其中,所述多个模型参数为每个终端通过自身存储的本地数据对所述第一机器学习模型进行训练得到的;所述协同关系为所述服务器下发给终端的;所述服务器根据所述多个模型参数进行聚合,得到第二机器学习模型;在所述服务器训练所述第二机器学习模型满足收敛状态的情况下,所述服务器将所述第二机器学习模型确定为所述联邦学习***训练好的结果。
实施本申请实施例,在通过联邦学习***对机器学习模型进行训练时,联邦学习***中的每个终端可以通过与自身具有协同关系的协同终端来向服务器发送每个终端训练好的模型参数,可以避免攻击者在攻击终端后获取到每个终端训练好的模型参数,以规避潜在的数据泄露风险,从而可以提高服务器与终端之间数据交互的安全性。
在一种可能的实现方式中,所述多个模型参数为每个终端以及每个终端对应的协同终端通过各自的加密噪声加密得到的模型参数;所述服务器根据所述多个模型参数进行聚合,得到第二机器学习模型之前,还包括:所述服务器判断所述多个终端各自对应的模型参数在经过叠加之后是否包含噪声;若否,所述服务器执行所述服务器根据所述多个模型参数进行聚合,得到第二机器学习模型的步骤;所述服务器根据所述多个模型参数进行聚合,得到第二机器学习模型,包括:所述服务器对所述多个模型参数进行均值计算,得到全局模型参数,并根据所述全局模型参数训练所述第一机器学习模型,得到所述第二机器学习模型。实施本申请实施例,由于服务器获取到的多个模型参数为每个终端以及每个终端对应的协同终端通过各自的加密噪声加密得到的模型参数,服务器在确定多个终端各自对应的模型参数在经过叠加之后不包含噪声的情况下,可以根据多个模型参数进行训练,可以避免加密噪声无法抵消的情形,进而可以避免因噪声对机器学习模型的精度产生的不利影响(例如,降低机器学习模型的精度)。
在一种可能的实现方式中,所述方法还包括:若是,所述服务器重新获取所述多个终端各自对应的模型参数,直至所述服务器获取到的多个终端各自对应的模型参数在经过叠加之后不包含噪声。实施本申请实施例,由于服务器获取到的多个模型参数为每个终端以及每个终端对应的协同终端通过各自的加密噪声加密得到的模型参数,服务器在确定多个终端各自对应的模型参数在经过叠加之后包含噪声的情况下,服务器重新获取多个终端各自对应的模型参数,以避免加密噪声无法抵消的情形,进而可以避免因噪声对机器学习模型的精度产生的不利影响(例如,降低机器学习模型的精度)。
第三方面,本申请实施例提供了一种数据处理方法,该方法包括:接收输入数据;将所述输入数据输入到训练好的第二机器学习模型,通过所述第二机器学习模型对所述输入数据进行处理,得到处理结果;其中,所述训练好的第二机器学习模型为通过上述第一方面或第二方面中任一项所述的联邦学习的训练方法得到的;输出所述处理结果。
实施本申请实施例,由于第二机器学习模型为通过多个不同终端各自对应的本地数据进行训练得到的,在每个终端的本地数据差异性很大或差异性不大的情况下,这一实现方式都可以使得训练好的第二机器学习模型具有很强的泛化能力,当通过训练好的第二机器学习模型对输入数据进行处理时,可以提高输入数据的处理精度。例如,当输入数据为图像时,可以提高图像的识别精度;又例如,当输入数据为语音时,可以提高语音的识别精度。
第四方面,本申请实施例提供了一种终端,该终端应用于联邦学习***,所述联邦学习***包括服务器和多个终端,所述服务器存储有所述联邦学习***中每个终端各自对应的协同关系,所述协同关系用于指示每个终端各自对应的协同终端,第一终端包括:获取单元,用于从所述服务器获取待训练的第一机器学习模型;其中,第一终端为所述多个终端中的任意一个终端;训练单元,用于通过自身存储的本地数据对所述第一机器学习模型进行训练,得到训练好的模型参数;第一确定单元,用于根据协同关系确定所述第一终端对应的第一协同终端;发送单元,用于通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器;所述协同关系为所述服务器下发给所述第一终端的;其中,在所述服务器根据所述多个终端各自训练好的模型参数进行聚合,得到满足收敛状态的第二机器学习模型的情况下,所述服务器将所述第二机器学习模型确定为所述联邦学习***训练好的结果。
实施本申请实施例,在通过联邦学习***对机器学习模型进行训练时,联邦学习***中的每个终端可以通过与自身具有协同关系的协同终端来向服务器发送每个终端训练好的模型参数,可以避免攻击者在攻击终端后获取到每个终端训练好的模型参数,以规避潜在的数据泄露风险,从而可以提高服务器与终端之间数据交互的安全性。
在一种可能的实现方式中,所述发送单元,具体用于:通过所述第一协同终端将所述第一终端训练好的全部模型参数发送给所述服务器;或,通过所述第一终端和第一协同终端共同将所述第一终端训练好的模型参数发送给所述服务器。
在一种可能的实现方式中,所述第一终端还包括:第二确定单元,用于确定协同自身向所述服务器发送模型参数时所需的协同终端的数量;所述第一确定单元,具体用于:所述第一终端根据确定好的所述数量以及所述协同关系确定所述第一协同终端。
在一种可能的实现方式中,所述第一终端对应的第一协同终端的数量为N,在通过所述第一协同终端将所述第一终端训练好的部分模型参数发送给所述服务器的情况下,所述第一终端训练好的模型参数包括N+1份,其中,N为大于1的正整数;所述第一终端还包括:
第一处理单元,用于为自身以及所述N个第一协同终端分配1份模型参数;其中,不同的终端对应不同的模型参数;通过第一加密噪声对分配到自身的模型参数进行加密,得到加密后的第一模型参数;其中,所述N个第一协同终端通过各自的第二加密噪声对分配到自身的模型参数进行加密,得到加密后的第二模型参数;所述第一加密噪声和所述N个第一协同终端各自的第二加密噪声在叠加之后不包含噪声;所述发送单元,具体用于:通过所述第一终端将所述第一模型参数发送给所述服务器,通过所述第一协同终端将所述第二模型参数发送给所述服务器。
在一种可能的实现方式中,所述第一终端对应的协同终端的数量为N,在通过所述第一协同终端将所述第一终端训练好的全部模型参数发送给所述服务器的情况下,所述第一终端训练好的模型参数包括N份,其中,N为大于1的正整数;所述第一终端还包括:第二处理单元,用于为所述N个第一协同终端分配1份模型参数;其中,不同的终端对应不同的模型参数;通过第一加密噪声对目标数据进行加密,得到加密后的第三模型参数;所述目标数据为空;其中,所述N个第一协同终端通过各自的第二加密噪声对分配到自身的模型参数进行加密,得到加密后的第四模型参数;所述第一加密噪声和所述N个第一协同终端各自的第二加密噪声在叠加之后不包含噪声;所述发送单元,具体用于:通过所述第一终端将所述第三模型参数发送给所述服务器,通过所述第一协同终端将所述第四模型参数发送给所述服务器。
在一种可能的实现方式中,所述服务器存储有所述联邦学习***中每个终端各自对应的公钥;所述联邦学习***中的终端存储有所述服务器下发的,与自身具有协同关系的协同终端所对应的公钥;所述N个第一协同终端包括第一子协同终端;所述第一终端还包括:噪声加密单元,用于根据随机数种子生成所述第一加密噪声;通过所述第一子协同终端对应的公钥对所述第一加密噪声进行加密,得到第一中间噪声;所述第一中间噪声用于所述第一子协同终端通过自身对应的私钥对所述第一中间噪声进行解密,得到所述第二加密噪声;所述第一子协同终端为所述N个第一协同终端中的任意一个终端。
在一种可能的实现方式中,所述第一终端训练好的模型参数包括各自对应的索引值,所述索引值用于表征所述模型参数对应的存储地址;所述发送单元,具体用于:所述第一终端将自身需要所述第一协同终端向所述服务器发送的模型参数所对应的索引值发送给所述第一协同终端;所述第一协同终端根据所述索引值获取对应的模型参数,并将获取到的模型参数发送给所述服务器。
第五方面,本申请实施例提供了一种服务器,该服务器应用于联邦学习***,所述联邦学习***包括服务器和多个终端,所述服务器存储有所述联邦学习***中每个终端各自对应的协同关系,所述协同关系用于指示每个终端各自对应的协同终端,该服务器包括:发送单元,用于分别向所述多个终端发送待训练的第一机器学习模型;获取单元,用于获取所述多个终端中的每个终端根据协同关系确定的协同终端分别发送的部分或全部模型参数,其中,所述多个模型参数为每个终端通过自身存储的本地数据对所述第一机器学习模型进行训练得到的;所述协同关系为所述服务器下发给终端的;训练单元,用于根据所述多个模型参数进行聚合,得到第二机器学习模型;确定单元,用于在所述服务器训练所述第二机器学习模型满足收敛状态的情况下,所述服务器将所述第二机器学习模型确定为所述联邦学习***训练好的结果。
实施本申请实施例,在通过联邦学习***对机器学习模型进行训练时,联邦学习***中的每个终端可以通过与自身具有协同关系的协同终端来向服务器发送每个终端训练好的模型参数,可以避免攻击者在攻击终端后获取到每个终端训练好的模型参数,以规避潜在的数据泄露风险,从而可以提高服务器与终端之间数据交互的安全性。
在一种可能的实现方式中,所述多个模型参数为每个终端以及每个终端对应的协同终端通过各自的加密噪声加密得到的模型参数;所述服务器还包括:判断单元,用于判断所述多个终端各自对应的模型参数在经过叠加之后是否包含噪声;第一执行单元,用于所述判断单元确定所述多个终端各自对应的模型参数在经过叠加之后不包含噪声的情况下,执行所述训练单元根据所述多个模型参数进行聚合,得到第二机器学习模型的步骤;所述训练单元,具体用于:对所述多个模型参数进行均值计算,得到全局模型参数,并根据所述全局模型参数训练所述第一机器学习模型,得到所述第二机器学习模型。
在一种可能的实现方式中,所述服务器还包括:第二执行单元,用于所述判断单元确定所述多个终端各自对应的模型参数在经过叠加之后包含噪声的情况下,重新获取所述多个终端各自对应的模型参数,直至获取到的多个终端各自对应的模型参数在经过叠加之后不包含噪声。
第六方面,本申请实施例提供了一种数据处理装置,该装置可以包括:接收单元,用于接收输入数据;处理单元,用于将所述输入数据输入到训练好的第二机器学习模型,通过所述第二机器学习模型对所述输入数据进行处理,得到处理结果;其中,所述训练好的第二机器学习模型为通过如上述第一方面或第二方面中任一项所述的联邦学习的训练方法得到的;输出单元,用于输出所述处理结果。
实施本申请实施例,由于第二机器学习模型为通过多个不同终端各自对应的本地数据进行训练得到的,在每个终端的本地数据差异性很大或差异性不大的情况下,这一实现方式都可以使得训练好的第二机器学习模型具有很强的泛化能力,当通过训练好的第二机器学习模型对输入数据进行处理时,可以提高输入数据的处理精度。例如,当输入数据为图像时,可以提高图像的识别精度;又例如,当输入数据为语音时,可以提高语音的识别精度。
第七方面,本申请实施例提供了另一种终端,该终端可以包括存储器和处理器,所述存储器用于存储支持终端执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。
第八方面,本申请实施例提供了另一种服务器,该服务器可以包括存储器和处理器,所述存储器用于存储支持服务器执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第二方面的方法。
第九方面,本申请实施例提供了一种数据处理设备,该设备可以包括存储器和处理器,所述存储器用于存储支持数据处理设备执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第三方面的方法。
第十方面,本申请实施例还提供一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
第十一方面,本申请实施例还提供一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第二方面的方法。
第十二方面,本申请实施例还提供一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第三方面的方法。
第十三方面,本申请实施例还提供了一种计算机程序,所述计算机程序包括计算机软件指令,所述计算机软件指令当被计算机执行时使所述计算机执行如第一方面所述的任一种联邦学习的训练方法。
第十四方面,本申请实施例还提供了一种计算机程序,所述计算机程序包括计算机软件指令,所述计算机软件指令当被计算机执行时使所述计算机执行如第二方面所述的任一种联邦学习的训练方法。
第十五方面,本申请实施例还提供了一种计算机程序,所述计算机程序包括计算机软件指令,所述计算机软件指令当被计算机执行时使所述计算机执行如第三方面所述的任一种数据处理方法。
附图说明
图1a为本申请实施例提供的一种联邦学习***的网络架构示意图;
图1b为本申请实施例提供的一种联邦机器学习的过程示意图;
图1c为本申请实施例提供的一种第一应用场景的示意图;
图1d为本申请实施例提供的一种第二应用场景的示意图;
图2a为本申请实施例提供的一种***架构200的结构示意图;
图2b为本申请实施例提供的一种卷积神经网络的结构示意图;
图2c为本申请实施例提供的另一种卷积神经网络的结构示意图;
图3为本申请实施例提供的一种芯片的硬件结构示意图;
图4a为本申请实施例提供的一种联邦学习的训练方法的流程示意图;
图4b为本申请实施例提供的一种协同关系的示意图;
图4c为本申请实施例提供的一种存储好的模型参数的示意图;
图5为本申请实施例提供的一种噪声加密方法的流程示意图;
图6a为本申请实施例提供的另一种联邦学习的训练方法的流程示意图;
图6b为本申请实施例提供的另一种联邦学习的训练方法的流程示意图;
图6c为本申请实施例提供的另一种联邦学习的训练方法的流程示意图;
图7a为本申请实施例提供的一种数据处理方法的流程示意图;
图7b为本申请实施例提供的一种数据处理过程的示意图;
图8为本申请实施例提供的一种终端的结构示意图;
图9为本申请实施例提供的一种服务器的结构示意图;
图10为本申请实施例提供的一种数据处理装置的结构示意图;
图11为本申请实施例提供的另一种终端的结构示意图;
图12为本申请实施例提供的另一种服务器的结构示意图;
图13为本申请实施例提供的一种数据处理设备的结构示意图。
具体实施方式
下面结合附图对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
本申请的说明书以及附图中的术语“第一”和“第二”等是用于区分不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一些列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。需要说明的是,本申请实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方法不应被解释为比其他实施例或设计方案更优地或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。在本申请实施例中,“A和/或B”表示A和B,A或B两个含义。“A,和/或B,和/或C”表示A、B、C中的任一个,或者,表示A、B、C中的任两个,或者,表示A和B和C。下面将结合附图,对本申请中的技术方案进行描述。
随着人工智能技术(Artificial Intelligence,AI)的发展,算法的准确率高度往往依赖于海量用户数据的训练分析,来进一步提供个性化的推荐、情景感知等服务,因此需要把大量用户个人信息传输给不同算法和***,这种情况无疑加大了用户个人信息泄露的风险。同时,一些第三方应用未经用户授权而私自使用用户数据的行为时有发生。隐私数据安全问题在AI终端上进一步凸显,如何平衡隐私保护与技术应用成为AI终端产业发展需要考虑的问题。基于此,谷歌提出的联邦学习网络可作为端侧人工智能的算法,具有即时响应、可靠性提升、保护隐私等优点,逐渐成为模型训练的发展趋势之一。
在本申请实施例中,联邦学习,又称联合学习、联盟学习,是指在满足隐私保护和数据安全的前提下,设计一个机器学习框架,使各个机构在不交换数据的情况下进行协作,提升机器学习的效果。其核心就是解决数据孤岛和数据隐私保护的问题,通过建立一个数据“联邦”,让参与各方都获益,推动技术整体持续进步。
在本申请实施例中,联邦学习的实现策略是:建立一个虚拟的共享模型。这个虚拟的共享模型为根据聚合起来的数据建立得到的最优模型(又称全局模型)。在实际应用中,在建立虚拟模型时,数据本身不移动,因此,这种实现方式不会泄露隐私,也不违反法律规定。再者,建立好的共享模型仅在各自的区域为本地的目标服务,在这样一个联邦机制下,各个参与者的身份和地位相同,实现“共同富裕”。这里,共享模型可以具体为机器学习模型。
本申请实施例中,“机器学习模型”也称“模型”,如“第一机器学习模型”、“第二机器学习模型”或“第三机器学习模型”,可以接收输入数据,并根据接收的输入数据和当前的模型参数生成预测输出。该机器学习模型可以是回归模型、神经网络(artificial neuralnetwork,ANN)、深度神经网络(deep neural network,DNN)、支持向量机(support vectormachine,SVM)或其他的机器学习模型等。
图1a为本申请实施例提供的一种联邦学习***的网络架构示意图。如图1a所示,该网络架构示意图可以包括多个终端(例如,终端1,终端2,......,终端n)和服务器,其中,服务器也可以协作终端。在实际应用中,服务器可以通过网络与多个终端进行通信连接。
在本申请实施例中,上述“多个”,应用理解为至少2个,例如,可以为2个,也可以为3个,还可以为4个等等。
现有技术中,联邦机器学习的过程可以如图1b所示,具有以下步骤:
步骤A1、服务器将共享的机器学习模型下发给各个终端;
步骤A2、每个终端使用自身的本地数据训练该模型,将训练后的模型参数(例如,权重)上传给服务器;
步骤A3、服务器对多个终端上传的模型参数进行加权取平均,得到一个新的机器学习模型;
步骤A4、服务器将更新后的全局模型参数下发给每个终端,终端再次通过自身的本地数据对该模型进行训练,得到新的模型参数,并将重新训练得到的模型参数上传给服务器进行训练,在满足服务器上训练好的机器学习模型处于收敛状态的情况下,停止训练。
步骤A5、服务器将训练好的机器学习模型下发给联邦学习***中的各个终端。
直至,通过联邦学习***完成了对机器学习模型的训练过程。
在这一实现方式中,无法保证终端上传到服务器的模型参数是否安全。如果模型参数被除联邦学习***之外的攻击者窃取,攻击者可以通过模型参数还原终端本地数据或者根据模型参数重建本地模型。这在无形中给终端带来很大的数据泄露风险。基于此,本申请对模型参数的传输过程进行了改进,例如,联邦学习***中的终端可以通过自身对应的协同终端来向服务器传输模型参数;又例如,联邦学习***中的每个终端以及每个终端对应的协同终端通过各自的加密噪声对传输给服务器的模型参数进行加密等等。在这些实现方式中,可以避免攻击者在攻击终端后获取到每个终端训练好的模型参数,以规避潜在的数据泄露风险,从而可以提高服务器与终端之间数据交互的安全性。
本申请实施例提供了一种联邦学习的训练方法,该训练方法应用于特定任务/预测模型(以下简称为任务模型)的训练。具体地,可以用于训练基于深度学习网络构建的各种任务模型,可以包括但不限于分类模型、识别模型、分割模型、检测模型。通过本申请所描述的训练方法得到的任务模型(例如,第二机器学习模型)可广泛应用到图像识别、音频识别等多种具体应用场景,以实现应用场景的智能化。
第一应用场景:
以图像识别应用场景为例,在一种具体的实施场景,如图1c所示,一轿车103在道路上高速行驶,一路人101使用数码相机102拍下了该轿车103的车牌号,但是由于轿车103具有较高的车速v,数码相机的输入信号104发生了运动模糊现象,该输入信号为二维数字图像信号,该数码相机102中配备有机器学习模型100,具体来说,该机器学习模型为根据本申请描述的通过如图1a所示的联邦学习***训练好的机器学习模型,例如,第二机器学习模型。具体地,当通过联邦学习***对机器学习模型进行训练,使得服务器上的机器学习模型处于收敛状态(例如,损失函数收敛)时,表示已经完成了对机器学习模型的训练阶段,终端可以进入机器学习模型的应用阶段。在实际应用中,该机器学习模型可以是以专用电路的形式在芯片中实现,也可以是运行在图像信号处理器中的软件模块。输入信号104在数码相机102中的机器学习模型中经过处理后,该处理包括轿车运动模型估计、运动模糊去除等,得到输出信号105,输出信号中包含的车牌号信息清晰度得以提高,可得到准确辨识。
第二应用场景:
以音频识别为例,在一种具体的实施场景,如图1d所示,智能手机102和104已内置神经网络相关的处理器,这里,该机器学习模型为根据本申请描述的通过如图1a所示的联邦学习***训练好的机器学习模型,例如,第二机器学习模型。当通过联邦学习***对机器学习模型进行训练,使得服务器上的机器学习模型处于收敛状态(例如,损失函数收敛)时,表示已经完成了对机器学习模型的训练阶段,终端可以进入机器学习模型的应用阶段。例如,移动智能手机客户101向移动智能手机客户105发起语音呼叫,语音信号经智能手机102发出,经基站103转送给智能手机104,由于发起语音呼叫时暴雨骤起且伴有强烈的电闪雷鸣,导致输入信号106被严重削弱且含有较大的噪声。这里,该输入信号可以为一维数字语音信号。由于智能手机104中配备有机器学习模型,具体地,该机器学习模型可以是以专用电路的形式在芯片中实现,也可以是运行在中央处理单元(Central Processing Unit,CPU)或其他处理器中的程序指令。输入信号106在智能手机104中的机器学习模型中经过处理,该处理包括噪声去除以及有效信号增强等,得到输出信号107,该输出信号完整的保留了主叫用户传送的语音信息,避免了恶劣自然环境对信号的干扰。
需要说明的是,上述例举的第一应用场景和第二应用场景均只是作为一种示例,不应构成限定。还需要说明的是,第一应用场景和第二应用场景为基于终端侧在实际应用时的场景。
在本申请实施例中,联邦学习可以应用在不同的领域中。
例如,在金融领域,多家机构联合建模的风控模型能更准确地识别信贷风险,联合反欺诈。多家银行建立的联邦反洗钱模型,能解决该领域样本少,数据质量低的问题。
又例如,在智慧零售领域,联邦学***台拥有用户个人偏好特征,电商平台则拥有产品特点的特征,传统的机器学习模型无法直接在异构数据上进行学习,联邦学习却能在保护三方数据隐私的基础上进行联合建模,为用户提供更精准的产品推荐等服务,从而打破数据壁垒,构建跨领域合作。
又例如,在医疗健康领域,联邦学***更具有突出意义。在推进智慧医疗的过程中,病症、病理报告、检测结果等病人隐私数据常常分散在多家医院诊所等跨区域不同类型的医疗机构、联邦学习使机构间可以跨地域协作而数据不出本地。多方合作建立的预测模型能够更准确地预测癌症、基因疾病等疑难病。如果所有的医疗机构能建立一个联邦学习联盟或许可以使人类的医疗卫生事业迈上一个全新的台阶。
下面从模型训练侧和模型应用侧对本申请提供的方法进行描述:
本申请实施例提供的联邦学习的训练方法,可以涉及计算机视觉的处理或自然语言的处理等等,具体可以应用于数据训练、机器学习、深度学习等数据处理方法,对训练数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等,最终得到训练好的机器学习模型(也即:目标模型/规则);并且,本申请实施例提供的数据处理方法可以运用上述训练好的机器学习模型,将输入数据(如本申请中的图片,语音片段)输入到所述训练好的机器学习模型中,得到输出数据(如,图片的识别结果)。需要说明的是,本申请实施例提供的联邦学习的训练方法和数据处理方法是基于同一个构思产生的发明,也可以理解为一个***中的两个部分,或一个整体流程的两个阶段:模型训练阶段和模型应用阶段。
由于本申请实施例涉及大量机器学习模型的应用,为了便于理解,下面先对本申请实施例涉及的相关术语及神经网络等相关概念进行介绍。
(1)图像/视频识别
本申请实施例中,图像/视频识别是利用图像处理和机器学习、计算机图形学等相关方法,根据图像识别图像所属的分类或者图像的属性等。例如,第一应用场景中,识别车牌所属的分类。
(2)文本识别
本申请实施例中,文本识别也成为自然语言识别,是利用语言学、计算机科学、人工智能等相关方法,根据文本识别文本所表达的意图、情感或者其他属性等。例如,第二应用场景中,识别文本所表达的意图。
需要说明的是,在本申请所描述的机器学习模型的特定功能中,图像/视频识别、文本识别等均只是一种示例,不应构成限定。
(3)神经网络
神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距b为输入的运算单元,该运算单元的输出可以为:
其中,s=1、2、……n,n为大于1的自然数,ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(4)深度神经网络
深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从DNN按不同层的位置划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,/>是输入向量,/>是输出向量,b是偏移向量,w是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量/>经过如此简单的操作得到输出向量/>由于DNN层数多,则系数w和偏移向量b的数量也就很多了。这些参数在DNN中的定义如下所述:以系数w为例:假设在一个三层的DNN中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为/>上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结就是:第L-1层的第k个神经元到第L层的第j个神经元的系数定义为/>需要注意的是,输入层是没有w参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量w形成的权重矩阵)。
(5)卷积神经网络
卷积神经网络(convolutional neuron network,CNN)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的数据(如图像数据,以图像数据为例描述)或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
(6)循环神经网络
循环神经网络(recurrent neural networks,RNN)是用来处理序列数据的。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然对很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,RNN能够对任何长度的序列数据进行处理。对于RNN的训练和对传统的CNN或DNN的训练一样。同样使用误差反向传播算法,不过有一点区别:即,如果将RNN进行网络展开,那么其中的参数,如W,是共享的;而如上举例上述的传统神经网络却不是这样。并且在使用梯度下降算法中,每一步的输出不仅依赖当前步的网络,还依赖前面若干步网络的状态。该学习算法称为基于时间的反向传播算法Back propagation Through Time(也即:BPTT)。
既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去(__)。这里填空,人类应该都知道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?RNN就应运而生了。RNN旨在让机器像人一样拥有记忆的能力。因此,RNN的输出就需要依赖当前的输入信息和历史的记忆信息。
(7)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
例如,在本申请实施例中,目标模型/规则可以为训练好的机器学习模型,例如,训练好的神经网络为第二机器学习模型,目标模型/规则可以实现对输入数据的处理,例如,当输入数据为图像时,可以准确识别图像;又例如,当输入图像为文本时,可以准确识别文本。因此,通过比较目标模型/规则对输入数据的判定结果与和真正想要的真实结果,再根据两者之间的差异情况来更新初始模型中每一层神经网络的权重向量(当然,在第一次更新之前通常会有过程,即为初始模型中的各层预先配置参数),比如,如果目标模型/规则的判定结果的值高了,就调整权重向量让它的值低一些,不断的调整,直到目标模型/规则能够预测出与真实结果非常接近的值。因此,就需要预先定义“如何比较判定结果和真实结果之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量判定结果和真实结果的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么初始模型的训练就变成了尽可能缩小这个loss的过程。
(8)反向传播算法
卷积神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正初始模型中参数的大小,使得初始模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的目标模型的参数,例如权重矩阵。
(9)协同终端
在本申请实施例中,协同终端是指,在联邦学***板电脑、个人数字助理(PersonalDigital Assistant,PDA)、移动互联网设备(Mobile Internet Device,MID)等各种用户可以使用的设备,本发明实施例不作具体限定。
下面介绍本申请实施例设计的一种***架构。参见附图2a,本申请实施例提供了一种***架构200。如所述***架构200所示,联合的训练设备220包括多个终端221和服务器222。其中,多个终端221中的每个终端均有各自对应的数据库。数据采集设备260用于采集或生成训练数据,本申请实施例中训练数据可以为:带标签的多张图像或多个语音片段等;并将训练数据存入数据库230,多个终端221中的每个终端基于各自对应的数据库130中维护的训练数据对服务器下发的机器学习模型进行训练,得到训练好的模型参数;之后,将训练好的模型参数上传给服务器,以使服务器根据多个模型参数进行聚合,生成目标模型/规则201。
具体来说,通过联合的训练设备220对机器学习模型的训练过程可以包括:以第一终端为例,第一终端为多个终端221中任意一个终端,第一终端221接收服务器222下发的第一机器学习模型和协同关系,第一终端221通过自身存储的本地数据对第一机器学习模型进行训练,得到训练好的模型参数;第一终端221根据协同关系确定第一终端对应的第一协同终端,并通过第一协同终端将第一终端训练好的部分或全部模型参数发送给服务器222,从而服务器222可以获取到多个模型参数,之后,服务器222可以对多个模型参数进行聚合,得到第二机器学习模型;在服务器222确定第二机器学习模型不满足收敛状态(例如,损失函数收敛)的情况下,联合的训练设备220进入迭代训练过程。具体来说,该迭代训练过程可以包括:服务器将第二机器学习模型下发给第一终端221,以使第一终端221可以通过自身存储的本地数据再次对第二机器学习模型进行训练,得到重新训练好的模型参数;并再次将训练好的模型参数上传给服务器222进行训练,直至服务器222确定第二机器学习模型满足收敛状态,表示已经完成了训练过程。关于联合的训练设备220如何基于训练数据集得到训练好的第二机器学习模型的详细描述可参见后续实施例中的相关描述,此处不对此展开。该训练好的第二机器学习模型能够用于实现本申请实施例提供的数据处理方法,即,输入数据输入到训练好的第二机器学习模型,通过第二机器学习模型对输入数据进行处理,得到处理结果。这里,输入数据可以图像、文本等。
在本申请提供的实施例中,该目标模型/规则201是通过训练机器学习模型得到的(例如,机器学习模型为深度神经网络)。需要说明的是,在实际的应用中,每个终端各自对应的所述数据库230中维护的训练数据不一定都来自于数据采集设备260的采集,也有可能是从其他设备接收得到的。另外需要说明的是,每个终端也不一定完全基于数据库230维护的训练数据进行目标模型/规则201的训练,也有可能从云端获取或者自己生成训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。
根据联合的训练设备220训练得到的目标模型/规则201可以应用于不同的***或设备中,如应用于图2a所示的执行设备210,所述执行设备210可以是终端,如手机终端,平板电脑,笔记本电脑,AR/VR,车载终端等,还可以是服务器或者云端等。执行设备210可以执行本申请实施例中数据处理方法,例如,该数据处理方法可以包括图像处理方法、文本处理方法等。在附图2a中,执行设备210配置有I/O接口212,用于与外部设备进行数据交互,用户可以通过客户设备240向I/O接口212输入数据,所述输入数据在本申请实施例中可以包括:待识别的图像、视频或待识别的语音片段。
在执行设备210的计算模块211执行计算等相关的处理过程中,执行设备210可以调用数据存储***270中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储***270中。
最后,I/O接口212将处理结果,如图像、视频或语音的识别结果或分类结果返回给客户设备240,从而客户设备240可以提供给用户设备250。该用户设备250可以是需要使用目标模型/规则201的轻量级终端,如手机终端、笔记本电脑、AR/VR终端或车载终端等,以用于响应于终端用户的相应需求,如对终端用户输入的图像进行图像识别输出识别结果给该终端用户,或对终端用户输入的文本进行文本分类输出分类结果给该终端用户等。
值得说明的是,联合的训练设备220可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型/规则201,该相应的目标模型/规则201即可以用于完成上述任务,从而为用户提供所需的结果。
在附图2a中所示情况下,用户可以手动指定输入执行设备210中的数据,例如,在I/O接口212提供的界面中操作。另一种情况下,客户设备240可以自动地向I/O接口212输入数据并获得结果,如果客户设备240自动输入数据需要获得用户的授权,用户可以在客户设备240中设置相应权限。用户可以在客户设备240查看执行设备210输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备240也可以作为数据采集端将采集到图片数据、视频数据或语音数据存入数据库230。
客户设备240在接收到输出结果后,可以将结果传输给用户设备250,用户设备250可以是终端,如手机终端,平板电脑,笔记本电脑,AR/VR,车载终端等。在其中一个示例中,用户设备250可以运行目标模型/规则201,以实现特定的功能。
值得注意的是,附图2a仅是本申请实施例提供的一种***架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在附图2a中,数据存储***270相对执行设备210是外部存储器,在其它情况下,也可以将数据存储***270置于执行设备210中。
如图2a所示,根据联合的训练设备220训练得到目标模型/规则201,该目标模型/规则201可以是第一应用场景中的图像识别模型、第二应用场景中的语音识别模型,具体的,本申请实施例提供的目标模型/规则201,例如,图像识别模型;又例如,语音识别模型等等,在实际应用中,图像识别模型、语音识别模型都可以是卷积神经网络模型。
为了便于理解以及出于阐述的便利,在本申请实施例中,以机器学习模型为卷积神经网络为例进行展开描述。如前文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。
在一些可能的实现方式中,如图2b所示,卷积神经网络(CNN)300可以包括输入层310,卷积层/池化层320(其中池化层为可选的),以及神经网络层330。
卷积层/池化层320:
卷积层:
如图2b所示卷积层/池化层320可以包括如示例321-326层,举例来说:在一种实现中,321层为卷积层,322层为池化层,323层为卷积层,324层为池化层,325为卷积层,326为池化层;在另一种实现方式中,321、322为卷积层,323为池化层,324、325为卷积层,326为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
下面将以卷积层321为例,介绍一层卷积层的内部工作原理。
卷积层321可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素,这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的特征图的尺寸也相同,再将提取到的多个尺寸相同的特征图合并形成卷积运算的输出。
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络300进行正确的预测。
当卷积神经网络300有多个卷积层的时候,初始的卷积层(例如321)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络300深度的加深,越往后的卷积层(例如326)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
池化层:
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图2b中320所示例的321-326各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。具体来说,池化层,用于对数据进行采样,降低数据的数量。例如,以数据为图像数据为例,在图像处理过程中,通过池化层,可以减少图像的空间大小。一般情况下,池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
神经网络层330:
在经过卷积层/池化层320的处理后,卷积神经网络300还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层320只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络300需要利用神经网络层330来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层330中可以包括多层隐含层(如图2b所示的331、332至33n)以及输出层340,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。
在神经网络层330中的多层隐含层之后,也就是整个卷积神经网络300的最后层为输出层340,该输出层340具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络300的前向传播(如图2b由310至340方向的传播为前向传播)完成,反向传播(如图2b由340至310方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络300的损失,及卷积神经网络300通过输出层输出的结果和理想结果之间的误差。
需要说明的是,如图2b所示的卷积神经网络300仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在。例如,如图2c所示的多个卷积层/池化层并行,将分别提取的特征均输入给神经网络层330进行处理。
下面介绍本申请实施例提供的一种芯片硬件结构。
图3为本申请实施例提供的一种芯片硬件结构,该芯片包括人工智能处理器30。该芯片可以被设置在如图2a所示的执行设备210中,用以完成计算模块211的计算工作。该芯片也可以被设置在如图2a所示的联合的训练设备220中,具体地,可以被设置在多个终端221中,也可以设置在服务器222中,用以完成联合的训练设备220的训练工作并输出目标模型/规则201。如图2b以及图2c以及所示的卷积神经网络中各层的算法均可在如图3所示的芯片中得以实现。
人工智能处理器30可以是神经网络处理器(Network ProcessingUnit,NPU),张量处理器(Tensor Processing Unit,TPU),或者图形处理器(Graphics Processing Unit,GPU)等一切适合用于大规模异或运算处理的处理器。以NPU为例:NPU可以作为协处理器挂载到主CPU(Host CPU)上,由主CPU为其分配任务。NPU的核心部分为运算电路303,通过控制器304控制运算电路303提取存储器(301和302)中的矩阵数据并进行乘加运算。
在一些实现中,运算电路303内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路303是二维脉动阵列。运算电路303还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路303是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路303从权重存储器302中取矩阵B的权重数据,并缓存在运算电路303中的每一个PE上。运算电路303从输入存储器301中取矩阵A的输入数据,根据矩阵A的输入数据与矩阵B的权重数据进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)308中。
统一存储器306用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(DMAC,Direct Memory Access Controller)305,被搬运到权重存储器302中。输入数据也通过DMAC被搬运到统一存储器306中。
总线接口单元(BIU,Bus Interface Unit)310,用于DMAC和取指存储器(Instruction Fetch Buffer)309的交互;总线接口单元310还用于取指存储器309从外部存储器获取指令;总线接口单元310还用于存储单元访问控制器305从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器306中,或将权重数据搬运到权重存储器302中,或将输入数据搬运到输入存储器301中。
向量计算单元307可以包括多个运算处理单元,在需要的情况下,对运算电路303的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。向量计算单元307主要用于神经网络中非卷积层,或全连接层(FC,fully connected layers)的计算,具体可以处理:Pooling(池化),Normalization(归一化)等的计算。例如,向量计算单元307可以将非线性函数应用到运算电路303的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元307生成归一化的值、合并值,或二者均有。
在一些实现中,向量计算单元307将经处理的向量存储到统一存储器306。在一些实现中,经向量计算单元307处理过的向量能够用作运算电路303的激活输入,例如用于神经网络中后续层中的使用,如图2b所示,若当前处理层是隐含层1(231),则经向量计算单元307处理过的向量还可以被用到隐含层2(232)中的计算。
控制器304连接的取指存储器(instruction fetch buffer)309,用于存储控制器304使用的指令;
统一存储器306,输入存储器301,权重存储器302以及取指存储器309均为On-Chip存储器。外部存储器独立于该NPU硬件架构。
其中,图2b、图2c所示的卷积神经网络中各层的运算可以由运算电路303或向量计算单元307执行。
下面详细描述本申请实施例涉及的方法。图4a为本申请实施例提供的一种联邦学习的训练方法,该方法可以由如图1a所示的联邦学习***执行,其中,联邦学习***可以由多个终端以及服务器组成。具体来说,服务器存储有联邦学习***中每个终端各自对应的协同关系,该协同关系用于指示每个终端各自对应的协同终端,该方法可以包括但不限于如下步骤:
步骤S400、服务器将待训练的第一机器学习模型发送给第一终端;其中,第一终端为多个终端中的任意一个终端。
步骤S402、第一终端接收服务器发送的第一机器学习模型。
步骤S404、第一终端通过自身存储的本地数据对所述第一机器学习模型进行训练,得到训练好的模型参数。
以预测用户的行为为例,可以通过用户的原始特征X和用户的标签特征Y对第一机器学习模型进行训练。具体来说,用户的原始特征X可以通过用户的基本数据来体现;用户的标签特征Y是指,期望获得的答案。例如,在金融领域,用户的标签特征Y是需要被预测的用户信用;又例如,在销售领域,用户的标签特征Y是用户的购买欲望;又例如,在教育领域,用户的标签特征Y是学生掌握知识的程度。这里,用户的原始特征X和用户的标签特征构成了完整的训练样本数据(X,Y)。
在本申请实施例中,每个终端各自对应的本地数据可以相同,也可以不同。以预测用户的行为为例,各个数据集的用户不完全相同,或,用户特征不完全相同。具体而言,以包含2个数据拥有方的联邦学习***为例,数据分布可以分为如下情况:
(1)、终端1对应的本地数据和终端2对应的本地数据的用户特征重叠部分较大,而用户重叠部分较小;
(2)、终端1对应的本地数据和终端2对应的本地数据的用户重叠部分较大,而用户特征重叠部分较小;
(3)、终端1对应的本地数据和终端2对应的本地数据的用户和用户特征重叠部分都比较小。
可以理解的是,每个终端各自对应的本地数据可以包括训练样本数据,也可以包括测试样本数据。其中,训练样本数据,可以用于对机器学习模型进行训练;测试样本数据可以用于评估训练好的机器学习模型的好坏和精确度。
在本申请实施例中,训练好的模型参数可以包括权重,也可以包括梯度信息等等。
步骤S406、第一终端根据协同关系确定所述第一终端对应的第一协同终端,并通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器。其中,协同关系为服务器下发给第一终端的。
在本申请实施例中,服务器可以在执行步骤S400之前,预先将第一终端对应的协同关系发送给第一终端,也可以在执行步骤S400的同时,服务器将第一终端对应的协同关系发送给第一终端,此处不作具体限定。
在本申请实施例中,协同关系可以为基于终端的收益确定的。例如,以联邦学习***包括3个终端和服务器为例,3个终端分别为终端1、终端2以及终端3。在终端1和终端2在通过自身的本地数据进行训练的过程中,由于终端1对应的本地数据和终端2对应的本地数据的用户和用户特征重叠部分都比较小,终端1训练产生的模型参数对终端2来说,是可以增大效益的,在这种情况下,终端2与终端1之间产生协同,此时,终端2为终端1的协同终端。
在本申请实施例中,以联邦学习***包括3个终端和服务器为例,这3个终端之间的协同关系可以如图4b所示,图中所示的“有向边”用于表征终端与协同终端之间的协同关系,有向边的指向表明了数据的流入或流出。其中,对终端1来说,终端2为终端1对应的协同终端,也即:终端1可以通过终端2传输终端1通过自身的本地数据训练好的模型参数;对终端2来说,终端3为终端2对应的协同终端,也即:终端2可以通过终端3传输终端2通过自身的本地数据训练好的模型参数;对终端3来说,终端1为终端3的协同终端,也即:终端3可以通过终端1传输终端3通过自身的本地数据训练好的模型参数。
在一个示例中,第一终端还可以通过确定好的协同终端的数量以及协同关系来确定第一协同终端,具体地,第一终端确定协同自身向服务器发送模型参数时所需的协同终端的数量,继而根据确定好的协同终端的数量以及协同关系确定第一协同终端。在本申请实施例中,每个终端各自确定好的协同终端的数量可以相同,也可以不同,本申请实施例不作具体限定。
具体来说,第一终端可以根据传输比值D确定协同自身向服务器发送模型参数时所需的协同终端的数量,例如,当传输比值D=50%时,这意味着,第一终端需要1个协同终端一起将自身训练好的模型数据发送给服务器,此时,第一终端为自身以及第一协同终端分配50%的模型参数,第一终端向服务器发送50%的模型参数,第一协同终端将第一终端分配到自身的50%的模型参数发送给服务器。又例如,当传输比值D=25%时,这意味着,第一终端需要3个协同终端一起将自身训练好的模型参数发送给服务器,此时,第一终端为自身以及3个第一协同终端各自分配25%的模型参数,第一终端向服务器发送25%的模型参数,3个第一协同终端将第一终端分配到自身的25%的模型参数发送给服务器。
例如,联邦学习***包括4个终端和服务器,其中,4个终端分别为终端1、终端2、终端3和终端4。对终端1来说,终端2、终端3、终端4为终端1对应的协同终端;对终端2来说,终端3为终端2对应的协同终端;对终端3来说,终端1、终端4为终端3的协同终端;对于终端4来说,终端1为终端4对应的协同终端。在一个示例中,4个终端设定好的传输比值D=50%,此时,对终端1来说,终端1可以通过终端2传输终端1通过自身的本地数据训练好的部分或全部模型参数;对终端2来说,终端2可以通过终端3传输终端2通过自身的本地数据训练好的部分或全部模型参数;对终端3来说,终端3可以通过终端1传输终端3通过自身的本地数据训练好的部分或全部模型参数;对终端4来说,终端4可以通过终端1传输终端4通过自身的本地数据训练好的部分或全部模型参数。在一个示例中,终端1设定好的传输比值D=25%,终端2设定好的传输比值D=50%,终端3设定好的传输比值为D=50%,终端4设定好的传输比值D=100%,在这种情况下,对终端1来说,终端1可以通过终端2、终端3以及终端4传输终端1通过自身的本地数据训练好的部分模型参数;对终端2来说,终端2可以通过终端3传输终端2通过自身的本地数据训练好的部分或全部模型参数;对终端3来说,终端3可以通过终端1传输终端3通过自身的本地数据训练好的部分或全部模型参数;对终端4来说,终端4可以通过终端1传输终端4通过自身的本地数据训练好的全部模型参数。需要说明的是,上述举例均只是一种示例,不应构成限定。
在本申请实施例中,第一终端通过第一协同终端将第一终端训练好的部分或全部模型参数发送给服务器的实现过程可以包括:通过第一协同终端将第一终端训练好的全部模型参数发送给服务器;或者,通过第一终端和第一协同终端共同将第一终端训练好的模型参数发送给服务器。
在上述举例中,当联邦学习***包括4个终端和服务器,其中,4个终端分别为终端1、终端2、终端3和终端4。对终端1来说,终端2、终端3、终端4为终端1对应的协同终端;对终端2来说,终端3为终端2对应的协同终端;对终端3来说,终端1、终端4为终端3的协同终端;对于终端4来说,终端1为终端4对应的协同终端。在一个示例中,终端1设定好的传输比值D=50%,此时,对终端1来说,终端1可以通过终端2传输终端1通过自身的本地数据训练好的部分或全部模型参数。具体地,在一种情形下,终端1可以通过终端2传输终端1通过自身的本地数据训练好的全部模型参数,此时,终端1自身不向服务器发送模型参数;在另一种情形下,终端1可以通过终端2传输终端1通过自身的本地数据训练好的部分模型参数,与此同时,终端1自身向服务器发送部分模型参数。
在本申请实施例中,第一终端训练好的模型参数可以包括各自对应的索引值,该索引值用于表征模型参数对应的存储地址。如图4c所示,在地址编号为I1、I2、......、I6的存储地址中存储有第一终端训练好的模型参数,其中,地址编号I1存储有模型参数“1”;地址编号I2存储有模型参数“2”。通过第一协同终端将第一终端训练好的全部模型参数发送给服务器的实现过程可以包括:第一终端将自身需要第一协同终端向服务器发送的全部模型参数所对应的索引值发送给第一协同终端;第一协同终端根据全部模型参数各自对应的索引值获取相应的模型参数,并将获取到的模型参数发送给服务器。从而,服务器可以获取到第一终端训练好的全部模型参数。
可以理解的是,模型参数可以存储在连续的存储地址中,也可以存储在非连续的存储地址中,上述地址编号为I1、I2、......、I6的连续存储地址只是作为一种示例,不应构成限定。
在本申请实施例中,通过第一终端和第一协同终端共同将第一终端训练好的模型参数发送给服务器的实现过程可以包括:第一终端将自身需要第一协同终端向服务器发送的部分模型参数所对应的索引值发送给第一协同终端;第一协同终端根据部分模型参数各自对应的索引值获取相应的模型参数,并将获取到的模型参数发送给服务器。与此同时,第一终端还将需要自己传输的模型参数发送给服务器。从而,服务器可以获取到第一终端训练好的全部模型参数。
步骤S408、服务器根据多个终端各自训练好的模型参数进行聚合,得到第二机器学习模型。
在本申请实施例中,服务器在获取到多个终端各自对应的全部模型参数之后,服务器可以对多个模型参数进行聚合。具体地,服务器可以对多个模型参数以及每个模型参数各自对应的权重系数进行平均计算,得到第二机器学***均后的全局模型参数。这里,权重系数为联邦学习***中每个终端的数据量占数据总量的比值。在实际训练中,每个终端由于其训练数据的不同,训练处的机器学习模型的性能也是参差不齐的,在权重系数的作用下,可以避免服务器训练得到的第二机器学习模型的效果不理想(例如,第二机器学习模型的精度过低)。
步骤S4010、服务器判断训练好的第二机器学习模型是否满足收敛状态,若是,执行步骤S4012;若否执行步骤S4014。
在本申请实施例中,服务器可以根据第二机器学习模型的损失函数得到损失值,然后根据损失值判断第二机器学习模型是否满足收敛状态。具体地,服务器存储有第一机器学习模型对应的第一损失值,服务器根据第二机器学习模型的损失函数得到第二损失值,通过计算第一损失值与第二损失值之间的差值,并判断该差值是否小于或等于设定好的预设阈值,若该差值小于或等于设定好的预设阈值,则服务器确定训练好的第二机器学习模型满足收敛状态,这意味着通过联邦学习***完成了对待训练的第一机器学习模型的训练过程。若该差值大于设定好的预设阈值,则服务器需要再次对第二机器学习模型进行训练。
在实际训练过程中,设定好的预设阈值可以根据用户的需求来自行设定,本申请实施例对预设阈值不作具体限定。
步骤S4012、在服务器确定第二机器学习模型满足收敛状态的情况下,服务器将第二机器学习模型确定为联邦学习***训练好的结果。
步骤S4014、在服务器确定第二机器学习模型不满足收敛状态的情况下,服务器将第二机器学习模型下发给第一终端,以便第一终端通过自身存储的本地数据再次对第二机器学习模型进行训练,得到训练好的模型参数,直至服务器根据多个终端各自训练好的模型参数,得到满足收敛状态的第二机器学习模型。
步骤S4016、服务器将第二机器学习模型发送给第一终端。
步骤S4018、第一终端接收第二机器学习模型。
可以理解的是,在服务器确定第二机器学习模型满足收敛状态的情况下,服务器将第二机器学习模型确定为联邦学习***训练好的结果,此时,服务器将第二机器学习模型发送给第一终端。那么,在这种情况下,第一终端可以将测试样本数据输入到第二机器学习模型中,以实现第二机器学习模型的特定功能。
实施本申请实施例,在通过联邦学习***对机器学习模型进行训练时,联邦学习***中的每个终端可以通过与自身具有协同关系的协同终端来向服务器发送每个终端训练好的模型参数,可以避免攻击者在攻击终端后获取到每个终端训练好的模型参数,以规避潜在的数据泄露风险,从而可以提高服务器与终端之间数据交互的安全性。
本申请实施例还提供了一种如何基于公钥和私钥对终端传输给服务器的模型参数进行加密的方法。这里,公钥用于加密,私钥用于解密。图5为本申请实施例提供的一种噪声加密方法,该方法应用于联邦学习***,联邦学习***包括服务器和多个终端;该方法可以包括但不限于如下步骤:
步骤S500、第一终端将自身对应的公钥发送给服务器;其中,第一终端为多个终端中的任意一个终端。
步骤S502、服务器获取每个终端各自对应的公钥,并存储每个终端各自对应的公钥。
步骤S504、服务器根据协同关系确定第一终端对应的N个第一协同终端,并将N个第一协同终端各自对应的公钥发送给第一终端;其中,N为大于1的正整数。
步骤S506、第一终端根据随机数种子生成第一加密噪声。
在本申请实施例中,每个终端对应的随机数种子可以相同,也可以不同,此处不作具体限定。
步骤S508、第一终端通过第一子协同终端对应的公钥对第一加密噪声进行加密,得到第一中间噪声;其中,第一子协同终端为N个第一协同终端中的任意一个终端。
步骤S5010、第一终端将第一中间噪声发送给服务器。
步骤S5012、服务器接收第一中间噪声。
步骤S5014、服务器将第一中间噪声发送给第一子协同终端。
步骤S5016、第一子协同终端通过自身对应的私钥对第一中间噪声进行解密得到第二加密噪声。
举例来说,联邦学习***中包含终端1、终端2和服务器。结合本申请描述的噪声加密方法,终端1和终端2将各自对应的公钥发送给服务器,例如,终端1对应的公钥为公钥1,终端2对应的公钥为公钥2,服务器在获取到2个终端各自对应的公钥之后,将公钥1和公钥2存储起来。对于终端1来说,服务器通过协同关系确定终端1对应的协同终端为终端2,并将终端2对应的公钥发送给终端1,终端1根据随机数种子生成第一加密噪声,并通过终端2对应的公钥对第一加密噪声进行加密,得到第一中间噪声;然后,终端1将第一中间噪声发送给服务器,服务器将第一中间噪声发送给终端2,在这种情况下,终端2可以通过自身对应的私钥对第一中间噪声进行解密,得到第二加密噪声。
需要说明的是,在本申请实施例中,第一加密噪声和第二加密噪声为不同的加密噪声。例如,第一加密噪声为noise,第二加密噪声为noise’,且第一加密噪声和第二加密噪声之间满足:noise!=noise’。
可以理解的是,当通过本申请描述的加密方法对发送给服务器的模型参数进行加密时,可以提高终端与服务器之间数据交互的安全性。
基于图5所示的噪声加密方法,如图6a所示,本申请实施例还提供了另一种联邦学习的训练方法,具体描述了在通过第一协同终端将第一终端训练好的部分模型参数发送给服务器的情况下,该方法是如何实现的。例如,第一终端训练好的模型参数分为N+1份,第一终端对应的第一协同终端的数量为N,此时,通过第一终端将1份模型参数发送给服务器,通过N个第一协同终端分别将N份模型参数发送给服务器。具体地,该方法可以由如图1a所示的联邦学习***执行,其中,联邦学习***可以由多个终端以及服务器组成。具体来说,服务器存储有联邦学习***中每个终端各自对应的协同关系,该协同关系用于指示每个终端各自对应的协同终端,该方法可以包括但不限于如下步骤:
步骤S600、服务器将待训练的第一机器学习模型发送给第一终端;其中,第一终端为多个终端中的任意一个终端。
步骤S602、第一终端接收服务器发送的第一机器学习模型。
步骤S604、第一终端通过自身存储的本地数据对所述第一机器学习模型进行训练,得到训练好的模型参数。
步骤S606、第一终端根据协同关系确定所述第一终端对应的第一协同终端。
在本申请实施例中,关于步骤S600-步骤S606的具体实现,请参考前述步骤S400-步骤S406的描述,此处不多加赘述。
步骤S608、第一终端为自身以及N个第一协同终端分配1份模型参数;其中,不同的终端对应不同的模型参数。
例如,第一终端训练好的模型参数分为4份,分别为模型参数1、模型参数2、模型参数3和模型参数4;第一终端对应的第一协同终端的数量为3,分别为协同终端1、协同终端2和协同终端3,第一终端将模型参数1分配给自身,将模型参数2分配给协同终端1,将模型参数3分配给协同终端2,将模型参数4分配给协同终端3。可以理解的是,第一终端为不同的终端分配了不同的模型参数。
步骤S6010、第一终端通过第一加密噪声对分配到自身的模型参数进行加密,得到加密后的第一模型参数;其中,所述N个第一协同终端通过各自的第二加密噪声对分配到自身的模型参数进行加密,得到加密后的第二模型参数;所述第一加密噪声和所述N个第一协同终端各自的第二加密噪声在叠加之后不包含噪声。
在本申请实施例中,关于第一终端以及第一协同终端如何生成各自的加密噪声实现过程请参考前述描述,此处不多加赘述。具体来说,第一终端以及第一协同终端在生成了各自的加密噪声之后,可以通过各自的加密噪声对分配到自身的模型参数进行加密,通过这一实现方式,可以提高数据的安全性。
如前述举例,第一终端训练好的模型参数分为4份,分别为模型参数1、模型参数2、模型参数3和模型参数4;第一终端对应的第一协同终端的数量为3,分别为协同终端1、协同终端2和协同终端3,第一终端将模型参数1分配给自身,将模型参数2分配给协同终端1,将模型参数3分配给协同终端2,将模型参数4分配给协同终端3。在这种情况下,第一终端通过第一加密噪声对模型参数1进行加密,得到第一模型参数;协同终端1通过自身对应的第二加密噪声a对模型参数2进行加密,得到第二模型参数a;协同终端2通过自身对应的第二加密噪声b对模型参数3进行加密,得到第二模型参数b;协同终端3通过自身对应的第二加密噪声c对模型参数4进行加密,得到第二模型参数c。
步骤S6012、通过所述第一终端将第一模型参数发送给所述服务器,通过第一协同终端将第二模型参数发送给服务器。
在本申请实施例中,对于第一协同终端来说,其无法获取真实的第二模型参数,其原因在于:第二模型参数为经过加密后的模型参数,而经过加密后的第二模型参数由模型参数本身以及模型参数各自对应的索引值组成。
如前述举例,第一终端通过第一加密噪声对模型参数1进行加密,得到第一模型参数;协同终端1通过自身对应的第二加密噪声a对模型参数2进行加密,得到第二模型参数a;协同终端2通过自身对应的第二加密噪声b对模型参数3进行加密,得到第二模型参数b;协同终端3通过自身对应的第二加密噪声c对模型参数4进行加密,得到第二模型参数c。那么,在这种情况下,第一终端将经过加密噪声加密后的第一模型参数发送给服务器,第一终端对应的协同终端将通过各自的加密噪声加密后的第二模型参数(a+b+c)发送给服务器。
步骤S6014、服务器根据多个终端各自训练好的模型参数进行聚合,得到第二机器学习模型。
在本申请实施例中,服务器在获取到多个终端各自对应的全部模型参数之后,服务器可以对多个模型参数进行聚合。具体地,服务器可以对多个模型参数以及每个模型参数各自对应的权重系数进行平均计算,得到第二机器学***均后的全局模型参数。这里,权重系数为联邦学习***中每个终端的数据量占数据总量的比值。以模型参数为梯度信息为例,每个终端对应的模型参数为包含加密噪声的梯度信息。在一个示例中,联邦学习***中终端的数量为M,当服务器获取到M个模型参数之后,服务器对多个模型参数进行聚合时,得到的全局梯度信息中不包含噪声。在这种情况下,当服务器通过全局模型参数进行训练时,由于加密噪声可以相互抵消,可以避免因噪声对机器学习模型的精度产生的不利影响(例如,降低机器学习模型的精度)。在一个示例中,联邦学习***中终端的数量为M,以其中某个终端(终端1)为例,当服务器并没有获取到该终端1对应的全部模型参数,服务器对多个模型参数进行聚合时,得到的全局梯度信息中包含噪声。在这种情况下,当服务器通过全局模型参数进行训练时,由于加密噪声一直存在于梯度信息中,这将对机器学习模型的精度产生严重影响。为了解决这一问题,后续实施例中详细阐述了服务器在何种条件下对多个模型参数进行聚合,以规避加密噪声对机器学习模型精度产生的不利影响。
步骤S6016、服务器判断训练好的第二机器学习模型是否满足收敛状态,若是,执行步骤S6018;若否执行步骤S6020。
步骤S6018、在服务器确定第二机器学习模型满足收敛状态的情况下,服务器将第二机器学习模型确定为联邦学习***训练好的结果。
步骤S6020、在服务器确定第二机器学习模型不满足收敛状态的情况下,服务器将第二机器学习模型下发给第一终端,以便第一终端通过自身存储的本地数据再次对第二机器学习模型进行训练,得到训练好的模型参数,直至服务器根据多个终端各自训练好的模型参数,得到满足收敛状态的第二机器学习模型。
步骤S6022、服务器将第二机器学习模型发送给第一终端。
步骤S6024、第一终端接收第二机器学习模型。
在本申请实施例中,关于步骤S6014-步骤S6024的具体实现,请参考前述步骤S408-步骤S4018的描述,此处不多加赘述。
实施本申请实施例,在通过联邦学习***对机器学习模型进行训练时,联邦学习***中的每个终端可以通过与自身具有协同关系的协同终端以及终端自身来向服务器发送每个终端训练好的部分模型参数,这里,每个终端训练好的模型参数为每个终端以及每个终端对应的协同终端通过各自的加密噪声得到的模型参数,可以避免攻击者在攻击终端后获取到每个终端训练好的模型参数,以规避潜在的数据泄露风险,从而可以提高服务器与终端之间数据交互的安全性。
基于图5所示的噪声加密方法,如图6b所示,本申请实施例还提供了另一种联邦学习的训练方法,具体描述了在通过第一协同终端将第一终端训练好的全部模型参数发送给服务器的情况下,该方法是如何实现的。例如,第一终端训练好的模型参数分为N份,第一终端对应的第一协同终端的数量为N,此时,通过N个第一协同终端分别将N份模型参数发送给服务器。具体地,该方法可以由如图1a所示的联邦学习***执行,其中,联邦学习***可以由多个终端以及服务器组成。具体来说,服务器存储有联邦学习***中每个终端各自对应的协同关系,该协同关系用于指示每个终端各自对应的协同终端,该方法可以包括但不限于如下步骤:
步骤S600’、服务器将待训练的第一机器学习模型发送给第一终端;其中,第一终端为多个终端中的任意一个终端。
步骤S602’、第一终端接收服务器发送的第一机器学习模型。
步骤S604’、第一终端通过自身存储的本地数据对所述第一机器学习模型进行训练,得到训练好的模型参数。
步骤S606’、第一终端根据协同关系确定所述第一终端对应的第一协同终端。
在本申请实施例中,关于步骤S600'-步骤S606'的具体实现,请参考前述步骤S400-步骤S406的描述,此处不多加赘述。
步骤S608’、第一终端为N个第一协同终端分配1份模型参数;其中,不同的终端对应不同的模型参数。
例如,第一终端训练好的模型参数分为3份,分别为模型参数1、模型参数2和模型参数3;第一终端对应的第一协同终端的数量为3,分别为协同终端1、协同终端2和协同终端3,第一终端将模型参数1分配给协同终端1,将模型参数2分配给协同终端2,将模型参数3分配给协同终端3。可以理解的是,第一终端为不同的协同终端分配了不同的模型参数。
步骤S6010’、所述第一终端通过第一加密噪声对目标数据进行加密,得到加密后的第三模型参数;所述目标数据为空;其中,所述N个第一协同终端通过各自的第二加密噪声对分配到自身的模型参数进行加密,得到加密后的第四模型参数;所述第一加密噪声和所述N个第一协同终端各自的第二加密噪声在叠加之后不包含噪声。
在本申请实施例中,关于第一终端以及第一协同终端如何生成各自的加密噪声实现过程请参考前述描述,此处不多加赘述。具体来说,第一终端以及第一协同终端在生成了各自的加密噪声之后,可以通过各自的加密噪声对分配到自身的模型参数进行加密,通过这一实现方式,可以提高数据的安全性。
如前述举例,第一终端训练好的模型参数分为3份,分别为模型参数1、模型参数2和模型参数3;第一终端对应的第一协同终端的数量为3,分别为协同终端1、协同终端2和协同终端3,由于第一终端自身不向服务器发送模型参数,此时,第一终端将模型参数1分配给协同终端1,将模型参数2分配给协同终端2,将模型参数3分配给协同终端3。在这种情况下,第一终端通过第一加密噪声对空的目标数据进行加密,得到第一模型参数;协同终端1通过自身对应的第二加密噪声a对模型参数1进行加密,得到第二模型参数a;协同终端2通过自身对应的第二加密噪声b对模型参数2进行加密,得到第二模型参数b;协同终端3通过自身对应的第二加密噪声c对模型参数3进行加密,得到第二模型参数c。
步骤S6012’、通过所述第一终端将所述第三模型参数发送给所述服务器,通过所述第一协同终端将所述第四模型参数发送给所述服务器。
如前述举例,第一终端通过第一加密噪声对空的目标数据进行加密,得到第一模型参数;协同终端1通过自身对应的第二加密噪声a对模型参数1进行加密,得到第二模型参数a;协同终端2通过自身对应的第二加密噪声b对模型参数2进行加密,得到第二模型参数b;协同终端3通过自身对应的第二加密噪声c对模型参数3进行加密,得到第二模型参数c。那么,在这种情况下,第一终端对应的协同终端将通过各自的加密噪声加密后的第二模型参数(a+b+c)发送给服务器。步骤S6014’、服务器根据多个终端各自训练好的模型参数进行聚合,得到第二机器学习模型。
在本申请实施例中,服务器在获取到多个终端各自对应的全部模型参数之后,服务器可以对多个模型参数进行聚合。具体地,服务器可以对多个模型参数以及每个模型参数各自对应的权重系数进行平均计算,得到第二机器学***均后的全局模型参数。这里,权重系数为联邦学习***中每个终端的数据量占数据总量的比值。以模型参数为梯度信息为例,每个终端对应的模型参数为包含加密噪声的梯度信息。在一个示例中,联邦学习***中终端的数量为M,当服务器获取到M个模型参数之后,服务器对多个模型参数进行聚合时,得到的全局梯度信息中不包含噪声。在这种情况下,当服务器通过全局模型参数进行训练时,由于加密噪声可以相互抵消,可以避免因噪声对机器学习模型的精度产生的不利影响(例如,降低机器学习模型的精度)。在一个示例中,联邦学习***中终端的数量为M,以其中某个终端(终端1)为例,当服务器并没有获取到该终端1对应的全部模型参数,服务器对多个模型参数进行聚合时,得到的全局梯度信息中包含噪声。在这种情况下,当服务器通过全局模型参数进行训练时,由于加密噪声一直存在于梯度信息中,这将对机器学习模型的精度产生严重影响。为了解决这一问题,后续实施例中详细阐述了服务器在何种条件下对多个模型参数进行聚合,以规避加密噪声对机器学习模型精度产生的不利影响。
步骤S6016’、服务器判断训练好的第二机器学习模型是否满足收敛状态,若是,执行步骤S6018;若否执行步骤S6020。
步骤S6018’、在服务器确定第二机器学习模型满足收敛状态的情况下,服务器将第二机器学习模型确定为联邦学习***训练好的结果。
步骤S6020’、在服务器确定第二机器学习模型不满足收敛状态的情况下,服务器将第二机器学习模型下发给第一终端,以便第一终端通过自身存储的本地数据再次对第二机器学习模型进行训练,得到训练好的模型参数,直至服务器根据多个终端各自训练好的模型参数,得到满足收敛状态的第二机器学习模型。
步骤S6022’、服务器将第二机器学习模型发送给第一终端。
步骤S6024’、第一终端接收第二机器学习模型。
在本申请实施例中,关于步骤S6014'-步骤S6024'的具体实现,请参考前述步骤S408-步骤S4018的描述,此处不多加赘述。
实施本申请实施例,在通过联邦学习***对机器学习模型进行训练时,联邦学习***中的每个终端可以仅通过与自身具有协同关系的协同终端来向服务器发送每个终端训练好的全部模型参数,这里,每个终端训练好的模型参数为每个终端以及每个终端对应的协同终端通过各自的加密噪声得到的模型参数,可以避免攻击者在攻击终端后获取到每个终端训练好的模型参数,以规避潜在的数据泄露风险,从而可以提高服务器与终端之间数据交互的安全性。
在本申请实施例中,以模型参数为梯度信息为例,服务器获取到的多个终端各自对应的梯度信息之后,可以得到全局梯度信息,具体地,该全局梯度信息可以表示为如公式(2)所示:
Grandient'=C_i*Gradient+noisei-noise'i (2)
其中,C_i表示联邦学习***中第i终端对应的权重系数,noisei表示第i终端对应的加密噪声,noise'i表示第i终端对应的协同终端各自的加密噪声。可以理解的是,在服务器对多个梯度信息进行聚合的过程中,如果noise与noise'无法相互抵消,使得加密噪声一直存在于梯度信息中,这将对机器学习模型的精度产生严重影响(例如,降低机器学习模型的精度)。为了避免加密噪声无法相互抵消,继而对机器学习模型的精度产生影响,如图6c所示,本申请实施例还提供另一种联邦学习的训练方法,在前述图6a所示的步骤S6014(亦或者在图6b所示的步骤S6014’)之前,还可以包括步骤S6026-步骤S6028,下面对其进行具体阐述:
步骤S6026、服务器判断所述多个终端各自对应的模型参数在经过叠加之后是否包含噪声;若否,执行步骤S6014;若是,执行步骤S6028。
步骤S6028、服务器重新获取所述多个终端各自对应的模型参数,直至所述服务器获取到的多个终端各自对应的模型参数在经过叠加之后不包含噪声。
举例来说,联邦学习***中终端的数量为M,服务器在获取到M个模型参数的情况下,服务器才对多个模型参数进行聚合,以规避噪声对机器学习模型的精度产生不利的影响。
实施本申请实施例,由于服务器获取到的多个模型参数为每个终端以及每个终端对应的协同终端通过各自的加密噪声加密得到的模型参数,服务器在确定多个终端各自对应的模型参数在经过叠加之后不包含噪声的情况下,可以根据多个模型参数进行训练,可以避免加密噪声无法抵消的情形,进而可以避免因噪声对机器学习模型的精度产生的不利影响(例如,降低机器学习模型的精度)。
需要说明的是,在前述任一实施例中,第一终端训练好的模型参数可以为经过压缩后的模型参数。经过压缩后的模型参数包括模型参数本身以及各自对应的索引值。例如,当第一终端通过自身存储的本地数据对第一机器学习模型进行训练,可以得到长度为100的模型参数。在一个示例中,压缩比例R值是随机给定的。例如,若通过压缩比例R=0.1对长度为100的模型参数进行压缩时,可以得到长度为10的模型参数。可以理解的是,在不同的应用场景中,压缩比例R的取值可以是不同的。也即,可以基于特定的应用场景设置适配的压缩比例R。在一个示例中,可以将100个模型参数分别与设定的阈值进行比较,去除小于阈值的模型参数,以得到压缩后的模型参数。通过这一实现方式,在保证机器学习模型的精度不发生变化的情况下,联邦学习***中的终端可以向服务器发送压缩后的模型参数,可以提高终端与服务器之间进行数据传输的效率。
前述实施例重点阐述了如何通过联邦学习***对机器学习模型进行训练,以得到训练好的第二机器学习模型。接下来将具体阐述如何使用训练好的第二机器学习模型。
在一个示例中,在服务器222得到训练好的机器学习模型后,可以将该训练好的机器学习模型发送给客户设备240(也即联邦学习***中的终端),由客户设备240将该训练好的机器学习模型发送给用户设备250(终端)。在一个示例中,服务器222也可以将训练好的机器学习模型直接发送至用户设备250。用户设备250可以运行该训练好的机器学习模型以实现特定功能。下面结合图7a描述本申请实施例提供的一种数据处理方法,该方法可以包括但不限于如下部分或全部步骤:
S700:接收输入数据;
S702:将接收到的输入数据输入到训练好的第二机器学习模型,通过所述第二机器学习模型对所述输入数据进行处理,得到处理结果;
S704:输出该处理结果。
其中,输出的方式包括但不限于通过文本、图像、语音、视频等方式输出。
其中,训练好的第二机器学习模型为通过上述任一实施例所述的联邦学习的训练方法训练得到的。该输入数据可以是图像、文本等,与待训练的机器学习模型的具体功能有关。关于机器学习模型的训练过程可以参见上述实施例中相关描述,本申请实施例不再赘述。
在本申请实施例的一种应用场景中,该数据处理方法具体为图像处理方法,包括:终端接收输入图像;将该输入图像输入到训练好的第二机器学习模型,例如,第二机器学习模型可以具体为卷积神经网络,通过该训练好的卷积神经网络对输入图像进行处理,得到处理结果。例如,该处理过程可以如图7b所示。其中,该处理结果的内容依赖于训练好的神经网络的功能,而训练好的神经网络的功能依赖于待训练神经网络的功能,可以是对图像的分类结果、识别结果等。例如,待训练神经网络为人脸属性识别网络,用于识别输入的人脸图像所描述的人的属性,比如性别、年龄、种族等,那么,训练好的神经网络可以识别输入图像描述人的性别、年龄、种族等,该处理结果可以包括输入图像被识别到的性别、年龄和种族。
在本申请实施例的另一种应用场景中,该数据处理方法具体为文本处理方法,包括:终端接收输入文本;将该输入文本输入到训练好的第二机器学习模型,例如,第二机器学习模型可以具体为循环神经网络,通过该训练好的循环神经网络对输入文本进行处理,得到处理结果。其中,该处理结果的内容依赖于训练好的神经网络的功能,而训练好的神经网络的功能依赖于待训练神经网络的功能,可以是对文本的分类结果、识别结果等。例如,待训练神经网络为文本识别网络,用于识别输入文本的描述的意图,那么,训练好的神经网络可以识别输入文本的意图,进而执行该该识别到的意图对应的操作,例如,在识别到意图为“接通电话”,终端(如手机)可以接通当前的呼叫。
实施本申请实施例,由于第二机器学习模型为通过多个不同终端各自对应的本地数据进行训练得到的,在每个终端的本地数据差异性很大或差异性不大的情况下,这一实现方式都可以使得训练好的第二机器学习模型具有很强的泛化能力,当通过训练好的第二机器学习模型对输入数据进行处理时,可以提高输入数据的处理精度。例如,当输入数据为图像时,可以提高图像的识别精度;又例如,当输入数据为语音时,可以提高语音的识别精度。
下面结合附图介绍本申请实施例涉及的装置。
图8为本申请实施例中一种终端的示意性框图。具体来说,图8所示的第一终端可以具体为图2a所示的终端,如图8所示,第一终端80可以包括:
获取单元800,用于从所述服务器获取待训练的第一机器学习模型;其中,第一终端为所述多个终端中的任意一个终端;
训练单元802,用于通过自身存储的本地数据对所述第一机器学习模型进行训练,得到训练好的模型参数;
第一确定单元804,用于根据协同关系确定所述第一终端对应的第一协同终端;
发送单元806,用于通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器;所述协同关系为所述服务器下发给所述第一终端的;其中,在所述服务器根据所述多个终端各自训练好的模型参数进行聚合,得到满足收敛状态的第二机器学习模型的情况下,所述服务器将所述第二机器学习模型确定为所述联邦学习***训练好的结果。
在一种可能的实现方式中,所述发送单元806,具体用于:
通过所述第一协同终端将所述第一终端训练好的全部模型参数发送给所述服务器;
或,
通过所述第一终端和第一协同终端共同将所述第一终端训练好的模型参数发送给所述服务器。
在一种可能的实现方式中,所述第一终端80还可以包括:
第二确定单元808,用于确定协同自身向所述服务器发送模型参数时所需的协同终端的数量;
所述第一确定单元804,具体用于:
所述第一终端根据确定好的所述数量以及所述协同关系确定所述第一协同终端。
在一种可能的实现方式中,所述第一终端对应的第一协同终端的数量为N,在通过所述第一协同终端将所述第一终端训练好的部分模型参数发送给所述服务器的情况下,所述第一终端训练好的模型参数包括N+1份,其中,N为大于1的正整数;所述第一终端还可以包括:
第一处理单元8010,用于为自身以及所述N个第一协同终端分配1份模型参数;其中,不同的终端对应不同的模型参数;通过第一加密噪声对分配到自身的模型参数进行加密,得到加密后的第一模型参数;其中,所述N个第一协同终端通过各自的第二加密噪声对分配到自身的模型参数进行加密,得到加密后的第二模型参数;所述第一加密噪声和所述N个第一协同终端各自的第二加密噪声在叠加之后不包含噪声;
所述发送单元806,具体用于:
通过所述第一终端将所述第一模型参数发送给所述服务器,通过所述第一协同终端将所述第二模型参数发送给所述服务器。
在一种可能的实现方式中,所述第一终端对应的协同终端的数量为N,在通过所述第一协同终端将所述第一终端训练好的全部模型参数发送给所述服务器的情况下,所述第一终端训练好的模型参数包括N份,其中,N为大于1的正整数;所述第一终端80还可以包括:
第二处理单元8012,用于为所述N个第一协同终端分配1份模型参数;其中,不同的终端对应不同的模型参数;通过第一加密噪声对目标数据进行加密,得到加密后的第三模型参数;所述目标数据为空;其中,所述N个第一协同终端通过各自的第二加密噪声对分配到自身的模型参数进行加密,得到加密后的第四模型参数;所述第一加密噪声和所述N个第一协同终端各自的第二加密噪声在叠加之后不包含噪声;
所述发送单元806,具体用于:
通过所述第一终端将所述第三模型参数发送给所述服务器,通过所述第一协同终端将所述第四模型参数发送给所述服务器。
在一种可能的实现方式中,所述服务器存储有所述联邦学习***中每个终端各自对应的公钥;所述联邦学习***中的终端存储有所述服务器下发的,与自身具有协同关系的协同终端所对应的公钥;所述N个第一协同终端包括第一子协同终端;所述第一终端80还可以包括:
噪声加密单元8014,用于根据随机数种子生成所述第一加密噪声;通过所述第一子协同终端对应的公钥对所述第一加密噪声进行加密,得到第一中间噪声;所述第一中间噪声用于所述第一子协同终端通过自身对应的私钥对所述第一中间噪声进行解密,得到所述第二加密噪声;所述第一子协同终端为所述N个第一协同终端中的任意一个终端。
在一种可能的实现方式中,所述第一终端训练好的模型参数为经过压缩后的模型参数。
在一种可能的实现方式中,所述第一终端训练好的模型参数包括各自对应的索引值,所述索引值用于表征所述模型参数对应的存储地址;所述发送单元806,具体用于:
所述第一终端将自身需要所述第一协同终端向所述服务器发送的模型参数所对应的索引值发送给所述第一协同终端;
所述第一协同终端根据所述索引值获取对应的模型参数,并将获取到的模型参数发送给所述服务器。
本申请实施例中,各个的单元的具体实现可以参见上述实施例中的相关描述,此处不再赘述。
实施本申请实施例,在通过联邦学习***对机器学习模型进行训练时,联邦学习***中的每个终端可以通过与自身具有协同关系的协同终端来向服务器发送每个终端训练好的模型参数,可以避免攻击者在攻击终端后获取到每个终端训练好的模型参数,以规避潜在的数据泄露风险,从而可以提高服务器与终端之间数据交互的安全性。
图9为本申请实施例中一种服务器的示意性框图。具体来说,图9所示的服务器可以具体为图2a所示的服务器,如图9所示,服务器90可以包括:
发送单元900,用于分别向所述多个终端发送待训练的第一机器学习模型;
获取单元902,用于获取所述多个终端中的每个终端根据协同关系确定的协同终端分别发送的部分或全部模型参数,其中,所述多个模型参数为每个终端通过自身存储的本地数据对所述第一机器学习模型进行训练得到的;所述协同关系为所述服务器下发给终端的;
训练单元904,用于根据所述多个模型参数进行聚合,得到第二机器学习模型;
确定单元906,用于在所述服务器训练所述第二机器学习模型满足收敛状态的情况下,所述服务器将所述第二机器学习模型确定为所述联邦学习***训练好的结果。
在一种可能的实现方式中,所述多个模型参数为每个终端以及每个终端对应的协同终端通过各自的加密噪声加密得到的模型参数;所述服务器90还可以包括:
判断单元908,用于判断所述多个终端各自对应的模型参数在经过叠加之后是否包含噪声;
第一执行单元9010,用于所述判断单元908确定所述多个终端各自对应的模型参数在经过叠加之后不包含噪声的情况下,执行所述训练单元根据所述多个模型参数进行聚合,得到第二机器学习模型的步骤;
所述训练单元904,具体用于:
对所述多个模型参数进行均值计算,得到全局模型参数,并根据所述全局模型参数训练所述第一机器学习模型,得到所述第二机器学习模型。
在一种可能的实现方式中,所述服务器90还可以包括:
第二执行单元9012,用于所述判断单元908确定所述多个终端各自对应的模型参数在经过叠加之后包含噪声的情况下,重新获取所述多个终端各自对应的模型参数,直至获取到的多个终端各自对应的模型参数在经过叠加之后不包含噪声。
本申请实施例中,各个的单元的具体实现可以参见上述实施例中的相关描述,此处不再赘述。
实施本申请实施例,在通过联邦学习***对机器学习模型进行训练时,联邦学习***中的每个终端可以通过与自身具有协同关系的协同终端来向服务器发送每个终端训练好的模型参数,可以避免攻击者在攻击终端后获取到每个终端训练好的模型参数,以规避潜在的数据泄露风险,从而可以提高服务器与终端之间数据交互的安全性。
图10为本申请实施例中一种数据处理装置100(终端)的示意性框图,图10所示的数据处理装置100(该装置100具体可以是图2a中的用户设备250),可以包括:
接收单元1000,用于接收输入数据;
处理单元1002,用于将所述输入数据输入到训练好的第二机器学习模型,通过所述第二机器学习模型对所述输入数据进行处理,得到处理结果;其中,所述训练好的第二机器学习模型为通过上述实施例描述的任意一种联邦学习的训练方法得到的;
输出单元1004,用于输出处理结果。
上述各个功能单元的具体实现可以参见上述方法实施例中的相关描述,本申请实施例不再赘述。
如图11所示,本申请实施例提供的另一种终端,该终端可以包括处理器1101、存储器1102、通信总线1103和通信接口1104,所述处理器1101通过所述通信总线1103连接所述存储器1102和所述通信接口1104。
处理器1101可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(Graphics Processing Unit,GPU)、神经网络处理器(Network Processing Unit,NPU)或者一个或多个集成电路,用于执行相关程序,以执行本申请方法实施例的第一机器学习模型的训练方法。
处理器1101还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的联邦学习的训练方法的各个步骤可以通过处理器1101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1101还可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1102,处理器1101读取存储器1102中的信息,结合其硬件执行本申请方法实施例的联邦学习的训练方法。
存储器1102可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器1102可以存储程序和数据,例如本申请实施例中联邦学习的训练方法的程序等。当存储器1102中存储的程序被处理器1101执行时,处理器1101和通信接口1104用于执行本申请实施例的联邦学习的训练方法的各个步骤。
例如,本申请实施例中用于实现本申请实施例中联邦学习的训练方法的程序等。
通信接口1104使用例如但不限于收发器一类的收发装置,来实现终端1100与其他设备或通信网络之间的通信。例如,可以通过通信接口1104获取训练好的神经网络,以实现与执行设备、客户设备、用户设备或者终端设备等的信息交互。
可选地,该终端还可以包括人工智能处理器1105,人工智能处理器1105可以是神经网络处理器(Network Processing Unit,NPU),张量处理器(Tensor Processing Unit,TPU),或者图形处理器(Graphics Processing Unit,GPU)等一切适合用于大规模异或运算处理的处理器。人工智能处理器1105可以作为协处理器挂载到主CPU(Host CPU)上,由主CPU为其分配任务。人工智能处理器1105可以实现上述联邦学习的训练方法中涉及的一种或多种运算。例如,以NPU为例,NPU的核心部分为运算电路,通过控制器控制运算电路提取存储器1102中的矩阵数据并进行乘加运算。
所述处理器1101用于调用所述存储器中的数据和程序代码,执行:
从所述服务器获取待训练的第一机器学习模型;其中,所述第一终端为所述多个终端中的任意一个终端;
通过自身存储的本地数据对所述第一机器学习模型进行训练,得到训练好的模型参数;
根据协同关系确定所述第一终端对应的第一协同终端,并通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器;所述协同关系为所述服务器下发给所述第一终端的;其中,在所述服务器根据所述多个终端各自训练好的模型参数进行聚合,得到满足收敛状态的第二机器学习模型的情况下,所述服务器将所述第二机器学习模型确定为所述联邦学习***训练好的结果。
其中,处理器1101通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器,可以包括:
通过所述第一协同终端将所述第一终端训练好的全部模型参数发送给所述服务器;
或,
通过所述第一终端和第一协同终端共同将所述第一终端训练好的模型参数发送给所述服务器。
其中,所述处理器1101还可以用于:
确定协同自身向所述服务器发送模型参数时所需的协同终端的数量;
处理器1101根据协同关系确定所述第一终端对应的第一协同终端,包括:
根据确定好的所述数量以及所述协同关系确定所述第一协同终端。
其中,所述第一终端对应的第一协同终端的数量为N,在通过所述第一协同终端将所述第一终端训练好的部分模型参数发送给所述服务器的情况下,所述第一终端训练好的模型参数分为N+1份,其中,N为大于1的正整数;所述处理器1101根据协同关系确定所述第一终端对应的第一协同终端之后,所述通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器之前,还可以包括:
为自身以及所述N个第一协同终端分配1份模型参数;其中,不同的终端对应不同的模型参数;
通过第一加密噪声对分配到自身的模型参数进行加密,得到加密后的第一模型参数;其中,所述N个第一协同终端通过各自的第二加密噪声对分配到自身的模型参数进行加密,得到加密后的第二模型参数;所述第一加密噪声和所述N个第一协同终端各自的第二加密噪声在叠加之后不包含噪声;
所述通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器,包括:
通过所述第一终端将所述第一模型参数发送给所述服务器,通过所述第一协同终端将所述第二模型参数发送给所述服务器。
其中,所述第一终端对应的协同终端的数量为N,在通过所述第一协同终端将所述第一终端训练好的全部模型参数发送给所述服务器的情况下,所述第一终端训练好的模型参数包括N份,其中,N为大于1的正整数;所述处理器1101根据协同关系确定所述第一终端对应的第一协同终端之后,所述通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器之前,还包括:
为所述N个第一协同终端分配1份模型参数;其中,不同的终端对应不同的模型参数;
通过第一加密噪声对目标数据进行加密,得到加密后的第三模型参数;所述目标数据为空;其中,所述N个第一协同终端通过各自的第二加密噪声对分配到自身的模型参数进行加密,得到加密后的第四模型参数;所述第一加密噪声和所述N个第一协同终端各自的第二加密噪声在叠加之后不包含噪声;
所述通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器,包括:
通过所述第一终端将所述第三模型参数发送给所述服务器,通过所述第一协同终端将所述第四模型参数发送给所述服务器。
其中,所述服务器存储有所述联邦学习***中每个终端各自对应的公钥;所述联邦学习***中的终端存储有所述服务器下发的,与自身具有协同关系的协同终端所对应的公钥;所述N个第一协同终端包括第一子协同终端;所述处理器1101还可以用于:
根据随机数种子生成所述第一加密噪声;
通过所述第一子协同终端对应的公钥对所述第一加密噪声进行加密,得到第一中间噪声;所述第一中间噪声用于所述第一子协同终端通过自身对应的私钥对所述第一中间噪声进行解密,得到所述第二加密噪声;所述第一子协同终端为所述N个第一协同终端中的任意一个终端。
其中,所述第一终端训练好的模型参数为经过压缩后的模型参数。
其中,所述第一终端训练好的模型参数包括各自对应的索引值,所述索引值用于表征所述模型参数对应的存储地址;所述通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器包括:
所述第一终端将自身需要所述第一协同终端向所述服务器发送的模型参数所对应的索引值发送给所述第一协同终端;
所述第一协同终端根据所述索引值获取对应的模型参数,并将获取到的模型参数发送给所述服务器。
应理解,各个器件的实现还可以对应参照上述联邦学习的训练方法实施例中的相应描述,本申请实施例不再赘述。
如图12所示,本申请实施例提供的另一种服务器,该服务器可以包括处理器1201、存储器1202、通信总线1203和通信接口1204,所述处理器1201通过所述通信总线1203连接所述存储器1202和所述通信接口1204。
处理器1201可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(Graphics Processing Unit,GPU)、神经网络处理器(Network Processing Unit,NPU)或者一个或多个集成电路,用于执行相关程序,以执行本申请方法实施例的第一机器学习模型的训练方法。
处理器1201还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的联邦学习的训练方法的各个步骤可以通过处理器1201中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1201还可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1202,处理器1201读取存储器1202中的信息,结合其硬件执行本申请方法实施例的联邦学习的训练方法。
存储器1202可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器1202可以存储程序和数据,例如本申请实施例中联邦学习的训练方法的程序等。当存储器1202中存储的程序被处理器1201执行时,处理器1201和通信接口1204用于执行本申请实施例的联邦学习的训练方法的各个步骤。
例如,本申请实施例中用于实现本申请实施例中联邦学习的训练方法的程序等。
通信接口1204使用例如但不限于收发器一类的收发装置,来实现服务器1200与其他设备或通信网络之间的通信。例如,可以通过通信接口1204获取训练好的神经网络,以实现与执行设备、客户设备、用户设备或者终端设备等的信息交互。
可选地,该服务器还可以包括人工智能处理器1205,人工智能处理器1205可以是神经网络处理器(Network Processing Unit,NPU),张量处理器(Tensor ProcessingUnit,TPU),或者图形处理器(Graphics Processing Unit,GPU)等一切适合用于大规模异或运算处理的处理器。人工智能处理器1205可以作为协处理器挂载到主CPU(Host CPU)上,由主CPU为其分配任务。人工智能处理器1205可以实现上述联邦学习的训练方法中涉及的一种或多种运算。例如,以NPU为例,NPU的核心部分为运算电路,通过控制器控制运算电路提取存储器1202中的矩阵数据并进行乘加运算。
所述处理器1201用于调用所述存储器中的数据和程序代码,执行:
分别向所述多个终端发送待训练的第一机器学习模型;
获取所述多个终端中的每个终端根据协同关系确定的协同终端分别发送的部分或全部模型参数,其中,所述多个模型参数为每个终端通过自身存储的本地数据对所述第一机器学习模型进行训练得到的;所述协同关系为所述服务器下发给终端的;
根据所述多个模型参数进行聚合,得到第二机器学习模型;
在训练所述第二机器学习模型满足收敛状态的情况下,将所述第二机器学习模型确定为所述联邦学习***训练好的结果。
其中,所述多个模型参数为每个终端以及每个终端对应的协同终端通过各自的加密噪声加密得到的模型参数;所述处理器1201根据所述多个模型参数进行聚合,得到第二机器学习模型之前,还包括:
判断所述多个终端各自对应的模型参数在经过叠加之后是否包含噪声;
若否,执行所述根据所述多个模型参数进行聚合,得到第二机器学习模型的步骤;
所述处理器1201根据所述多个模型参数进行聚合,得到第二机器学习模型,包括:
对所述多个模型参数进行均值计算,得到全局模型参数,并根据所述全局模型参数训练所述第一机器学习模型,得到所述第二机器学习模型。
其中,所述处理器1201还可以执行:
若是,重新获取所述多个终端各自对应的模型参数,直至获取到的多个终端各自对应的模型参数在经过叠加之后不包含噪声。
应理解,各个器件的实现还可以对应参照上述联邦学习的训练方法实施例中的相应描述,本申请实施例不再赘述。
图13为本申请实施例中一种数据处理设备的结构示意图,如图13所示,该数据处理设备可以包括处理器1301、存储器1302、通信总线1303和通信接口1304,所述处理器1301通过所述通信总线1303连接所述存储器1302和所述通信接口1304。
处理器1301可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(Graphics Processing Unit,GPU)、神经网络处理器(Network Processing Unit,NPU)或者一个或多个集成电路,用于执行相关程序,以执行本申请方法实施例的第一机器学习模型的训练方法。
处理器1301还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的数据处理方法的各个步骤可以通过处理器1301中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1301还可以是通用处理器、数字信号处理器(DigitalSignal Processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(Field ProgrammableGate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1302,处理器1301读取存储器1302中的信息,结合其硬件执行本申请方法实施例的数据处理方法。
存储器1302可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器1302可以存储程序和数据,例如本申请实施例中联邦学习的训练方法的程序等。当存储器1302中存储的程序被处理器1301执行时,处理器1301和通信接口1304用于执行本申请实施例的数据处理方法的各个步骤。
例如,本申请实施例中用于实现本申请实施例中数据处理方法的程序等。
通信接口1304使用例如但不限于收发器一类的收发装置,来实现数据处理设备1300与其他设备或通信网络之间的通信。例如,可以通过通信接口1304获取训练好的神经网络,以实现与执行设备、客户设备、用户设备或者终端设备等的信息交互。
可选地,该数据处理设备还可以包括人工智能处理器1305,人工智能处理器1305可以是神经网络处理器(Network Processing Unit,NPU),张量处理器(TensorProcessing Unit,TPU),或者图形处理器(Graphics Processing Unit,GPU)等一切适合用于大规模异或运算处理的处理器。人工智能处理器1305可以作为协处理器挂载到主CPU(Host CPU)上,由主CPU为其分配任务。人工智能处理器1305可以实现上述数据处理方法中涉及的一种或多种运算。例如,以NPU为例,NPU的核心部分为运算电路,通过控制器控制运算电路提取存储器1302中的矩阵数据并进行乘加运算。
所述处理器1301用于调用所述存储器中的数据和程序代码,执行:
接收输入数据;
将所述输入数据输入到训练好的第二机器学习模型,通过所述第二机器学习模型对所述输入数据进行处理,得到处理结果;其中,所述训练好的第二机器学习模型为通过上述实施例中任一项所述的联邦学习的训练方法得到的;
输出所述处理结果。
应理解,各个器件的实现还可以对应参照上述联邦学习的训练方法实施例中的相应描述,本申请实施例不再赘述。
本发明实施例还提供了一种计算机存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述任一个实施例所述方法中的一个或多个步骤。上述装置的各组成模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在所述计算机可读取存储介质中,基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机产品存储在计算机可读存储介质中。
上述计算机可读存储介质可以是前述实施例所述的设备的内部存储单元,例如硬盘或内存。上述计算机可读存储介质也可以是上述设备的外部存储设备,例如配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,上述计算机可读存储介质还可以既包括上述设备的内部存储单元也包括外部存储设备。上述计算机可读存储介质用于存储上述计算机程序以及上述设备所需的其他程序和数据。上述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可通过计算机程序来指令相关的硬件来完成,该计算机的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可存储程序代码的介质。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
可以理解,本领域普通技术人员可以意识到,结合本申请各个实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本领域技术人员能够领会,结合本申请各个实施例中公开描述的各种说明性逻辑框、模块和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本申请中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (30)
1.一种联邦学习的训练方法,其特征在于,所述方法应用于联邦学习***,所述联邦学习***包括服务器和多个终端,所述服务器存储有所述联邦学习***中每个终端各自对应的协同关系,所述协同关系用于指示每个终端各自对应的协同终端,所述方法包括:
第一终端从所述服务器获取待训练的第一机器学习模型;其中,所述第一终端为所述多个终端中的任意一个终端;
所述第一终端通过自身存储的本地数据对所述第一机器学习模型进行训练,得到训练好的模型参数;
所述第一终端根据协同关系确定所述第一终端对应的第一协同终端,并通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器;所述协同关系为所述服务器下发给所述第一终端的;其中,在所述服务器根据所述多个终端各自训练好的模型参数进行聚合,得到满足收敛状态的第二机器学习模型的情况下,所述服务器将所述第二机器学习模型确定为所述联邦学习***训练好的结果。
2.如权利要求1所述的方法,其特征在于,所述通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器,包括:
通过所述第一协同终端将所述第一终端训练好的全部模型参数发送给所述服务器;
或,
通过所述第一终端和第一协同终端共同将所述第一终端训练好的模型参数发送给所述服务器。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述第一终端确定协同自身向所述服务器发送模型参数时所需的协同终端的数量;
所述第一终端根据协同关系确定所述第一终端对应的第一协同终端,包括:
所述第一终端根据确定好的所述数量以及所述协同关系确定所述第一协同终端。
4.如权利要求1或2所述的方法,其特征在于,所述第一终端对应的第一协同终端的数量为N,在通过所述第一协同终端将所述第一终端训练好的部分模型参数发送给所述服务器的情况下,所述第一终端训练好的模型参数分为N+1份,其中,N为大于1的正整数;所述第一终端根据协同关系确定所述第一终端对应的第一协同终端之后,所述通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器之前,还包括:
所述第一终端为自身以及所述N个第一协同终端分配1份模型参数;其中,不同的终端对应不同的模型参数;
所述第一终端通过第一加密噪声对分配到自身的模型参数进行加密,得到加密后的第一模型参数;其中,所述N个第一协同终端通过各自的第二加密噪声对分配到自身的模型参数进行加密,得到加密后的第二模型参数;所述第一加密噪声和所述N个第一协同终端各自的第二加密噪声在叠加之后不包含噪声;
所述通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器,包括:
通过所述第一终端将所述第一模型参数发送给所述服务器,通过所述第一协同终端将所述第二模型参数发送给所述服务器。
5.如权利要求1或2所述的方法,其特征在于,所述第一终端对应的协同终端的数量为N,在通过所述第一协同终端将所述第一终端训练好的全部模型参数发送给所述服务器的情况下,所述第一终端训练好的模型参数包括N份,其中,N为大于1的正整数;所述第一终端根据协同关系确定所述第一终端对应的第一协同终端之后,所述通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器之前,还包括:
所述第一终端为所述N个第一协同终端分配1份模型参数;其中,不同的终端对应不同的模型参数;
所述第一终端通过第一加密噪声对目标数据进行加密,得到加密后的第三模型参数;所述目标数据为空;其中,所述N个第一协同终端通过各自的第二加密噪声对分配到自身的模型参数进行加密,得到加密后的第四模型参数;所述第一加密噪声和所述N个第一协同终端各自的第二加密噪声在叠加之后不包含噪声;
所述通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器,包括:
通过所述第一终端将所述第三模型参数发送给所述服务器,通过所述第一协同终端将所述第四模型参数发送给所述服务器。
6.如权利要求4所述的方法,其特征在于,所述服务器存储有所述联邦学习***中每个终端各自对应的公钥;所述联邦学习***中的终端存储有所述服务器下发的,与自身具有协同关系的协同终端所对应的公钥;所述N个第一协同终端包括第一子协同终端;所述方法还包括:
所述第一终端根据随机数种子生成所述第一加密噪声;
所述第一终端通过所述第一子协同终端对应的公钥对所述第一加密噪声进行加密,得到第一中间噪声;所述第一中间噪声用于所述第一子协同终端通过自身对应的私钥对所述第一中间噪声进行解密,得到所述第二加密噪声;所述第一子协同终端为所述N个第一协同终端中的任意一个终端。
7.如权利要求1、2、6中任一项所述的方法,其特征在于,所述第一终端训练好的模型参数为经过压缩后的模型参数。
8.如权利要求1、2、6中任一项所述的方法,其特征在于,所述第一终端训练好的模型参数包括各自对应的索引值,所述索引值用于表征所述模型参数对应的存储地址;所述通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器包括:
所述第一终端将自身需要所述第一协同终端向所述服务器发送的模型参数所对应的索引值发送给所述第一协同终端;
所述第一协同终端根据所述索引值获取对应的模型参数,并将获取到的模型参数发送给所述服务器。
9.一种联邦学习的训练方法,其特征在于,所述方法应用于联邦学习***,所述联邦学习***包括服务器和多个终端,所述服务器存储有所述联邦学习***中每个终端各自对应的协同关系,所述协同关系用于指示每个终端各自对应的协同终端,所述方法包括:
所述服务器分别向所述多个终端发送待训练的第一机器学习模型;
所述服务器获取所述多个终端中的每个终端根据协同关系确定的协同终端分别发送的部分或全部模型参数,其中,所述多个模型参数为每个终端通过自身存储的本地数据对所述第一机器学习模型进行训练得到的;所述协同关系为所述服务器下发给终端的;
所述服务器根据所述多个模型参数进行聚合,得到第二机器学习模型;
在所述服务器训练所述第二机器学习模型满足收敛状态的情况下,所述服务器将所述第二机器学习模型确定为所述联邦学习***训练好的结果。
10.如权利要求9所述的方法,其特征在于,所述多个模型参数为每个终端以及每个终端对应的协同终端通过各自的加密噪声加密得到的模型参数;所述服务器根据所述多个模型参数进行聚合,得到第二机器学习模型之前,还包括:
所述服务器判断所述多个终端各自对应的模型参数在经过叠加之后是否包含噪声;
若否,所述服务器执行所述服务器根据所述多个模型参数进行聚合,得到第二机器学习模型的步骤;
所述服务器根据所述多个模型参数进行聚合,得到第二机器学习模型,包括:
所述服务器对所述多个模型参数进行均值计算,得到全局模型参数,并根据所述全局模型参数训练所述第一机器学习模型,得到所述第二机器学习模型。
11.如权利要求9所述的方法,其特征在于,所述方法还包括:
若是,所述服务器重新获取所述多个终端各自对应的模型参数,直至所述服务器获取到的多个终端各自对应的模型参数在经过叠加之后不包含噪声。
12.一种数据处理方法,其特征在于,包括:
接收输入数据;
将所述输入数据输入到训练好的第二机器学习模型,通过所述第二机器学习模型对所述输入数据进行处理,得到处理结果;其中,所述训练好的第二机器学习模型为通过如权利要求1-11任一项所述的联邦学习的训练方法得到的;
输出所述处理结果。
13.一种终端,其特征在于,所述终端应用于联邦学习***,所述联邦学习***包括服务器和多个终端,所述服务器存储有所述联邦学习***中每个终端各自对应的协同关系,所述协同关系用于指示每个终端各自对应的协同终端,第一终端包括:
获取单元,用于从所述服务器获取待训练的第一机器学习模型;其中,第一终端为所述多个终端中的任意一个终端;
训练单元,用于通过自身存储的本地数据对所述第一机器学习模型进行训练,得到训练好的模型参数;
第一确定单元,用于根据协同关系确定所述第一终端对应的第一协同终端;
发送单元,用于通过所述第一协同终端将所述第一终端训练好的部分或全部模型参数发送给所述服务器;所述协同关系为所述服务器下发给所述第一终端的;其中,在所述服务器根据所述多个终端各自训练好的模型参数进行聚合,得到满足收敛状态的第二机器学习模型的情况下,所述服务器将所述第二机器学习模型确定为所述联邦学习***训练好的结果。
14.如权利要求13所述的终端,其特征在于,所述发送单元,具体用于:
通过所述第一协同终端将所述第一终端训练好的全部模型参数发送给所述服务器;
或,
通过所述第一终端和第一协同终端共同将所述第一终端训练好的模型参数发送给所述服务器。
15.如权利要求13或14所述的终端,其特征在于,所述第一终端还包括:
第二确定单元,用于确定协同自身向所述服务器发送模型参数时所需的协同终端的数量;
所述第一确定单元,具体用于:
所述第一终端根据确定好的所述数量以及所述协同关系确定所述第一协同终端。
16.如权利要求13或14所述的终端,其特征在于,所述第一终端对应的第一协同终端的数量为N,在通过所述第一协同终端将所述第一终端训练好的部分模型参数发送给所述服务器的情况下,所述第一终端训练好的模型参数包括N+1份,其中,N为大于1的正整数;所述第一终端还包括:
第一处理单元,用于为自身以及所述N个第一协同终端分配1份模型参数;其中,不同的终端对应不同的模型参数;通过第一加密噪声对分配到自身的模型参数进行加密,得到加密后的第一模型参数;其中,所述N个第一协同终端通过各自的第二加密噪声对分配到自身的模型参数进行加密,得到加密后的第二模型参数;所述第一加密噪声和所述N个第一协同终端各自的第二加密噪声在叠加之后不包含噪声;
所述发送单元,具体用于:
通过所述第一终端将所述第一模型参数发送给所述服务器,通过所述第一协同终端将所述第二模型参数发送给所述服务器。
17.如权利要求13或14所述的终端,其特征在于,所述第一终端对应的协同终端的数量为N,在通过所述第一协同终端将所述第一终端训练好的全部模型参数发送给所述服务器的情况下,所述第一终端训练好的模型参数包括N份,其中,N为大于1的正整数;所述第一终端还包括:
第二处理单元,用于为所述N个第一协同终端分配1份模型参数;其中,不同的终端对应不同的模型参数;通过第一加密噪声对目标数据进行加密,得到加密后的第三模型参数;所述目标数据为空;其中,所述N个第一协同终端通过各自的第二加密噪声对分配到自身的模型参数进行加密,得到加密后的第四模型参数;所述第一加密噪声和所述N个第一协同终端各自的第二加密噪声在叠加之后不包含噪声;
所述发送单元,具体用于:
通过所述第一终端将所述第三模型参数发送给所述服务器,通过所述第一协同终端将所述第四模型参数发送给所述服务器。
18.如权利要求16所述的终端,其特征在于,所述服务器存储有所述联邦学习***中每个终端各自对应的公钥;所述联邦学习***中的终端存储有所述服务器下发的,与自身具有协同关系的协同终端所对应的公钥;所述N个第一协同终端包括第一子协同终端;所述第一终端还包括:
噪声加密单元,用于根据随机数种子生成所述第一加密噪声;通过所述第一子协同终端对应的公钥对所述第一加密噪声进行加密,得到第一中间噪声;所述第一中间噪声用于所述第一子协同终端通过自身对应的私钥对所述第一中间噪声进行解密,得到所述第二加密噪声;所述第一子协同终端为所述N个第一协同终端中的任意一个终端。
19.如权利要求13、14、16中任一项所述的终端,其特征在于,所述第一终端训练好的模型参数为经过压缩后的模型参数。
20.如权利要求13、14、16中任一项所述的终端,其特征在于,所述第一终端训练好的模型参数包括各自对应的索引值,所述索引值用于表征所述模型参数对应的存储地址;所述发送单元,具体用于:
所述第一终端将自身需要所述第一协同终端向所述服务器发送的模型参数所对应的索引值发送给所述第一协同终端;
所述第一协同终端根据所述索引值获取对应的模型参数,并将获取到的模型参数发送给所述服务器。
21.一种服务器,其特征在于,所述服务器应用于联邦学习***,所述联邦学习***包括服务器和多个终端,所述服务器存储有所述联邦学习***中每个终端各自对应的协同关系,所述协同关系用于指示每个终端各自对应的协同终端,所述服务器包括:
发送单元,用于分别向所述多个终端发送待训练的第一机器学习模型;
获取单元,用于获取所述多个终端中的每个终端根据协同关系确定的协同终端分别发送的部分或全部模型参数,其中,所述多个模型参数为每个终端通过自身存储的本地数据对所述第一机器学习模型进行训练得到的;所述协同关系为所述服务器下发给终端的;
训练单元,用于根据所述多个模型参数进行聚合,得到第二机器学习模型;
确定单元,用于在所述服务器训练所述第二机器学习模型满足收敛状态的情况下,所述服务器将所述第二机器学习模型确定为所述联邦学习***训练好的结果。
22.如权利要求21所述的服务器,其特征在于,所述多个模型参数为每个终端以及每个终端对应的协同终端通过各自的加密噪声加密得到的模型参数;所述服务器还包括:
判断单元,用于判断所述多个终端各自对应的模型参数在经过叠加之后是否包含噪声;
第一执行单元,用于所述判断单元确定所述多个终端各自对应的模型参数在经过叠加之后不包含噪声的情况下,执行所述训练单元根据所述多个模型参数进行聚合,得到第二机器学习模型的步骤;
所述训练单元,具体用于:
对所述多个模型参数进行均值计算,得到全局模型参数,并根据所述全局模型参数训练所述第一机器学习模型,得到所述第二机器学习模型。
23.如权利要求22所述的服务器,其特征在于,所述服务器还包括:
第二执行单元,用于所述判断单元确定所述多个终端各自对应的模型参数在经过叠加之后包含噪声的情况下,重新获取所述多个终端各自对应的模型参数,直至获取到的多个终端各自对应的模型参数在经过叠加之后不包含噪声。
24.一种数据处理装置,其特征在于,包括:
接收单元,用于接收输入数据;
处理单元,用于将所述输入数据输入到训练好的第二机器学习模型,通过所述第二机器学习模型对所述输入数据进行处理,得到处理结果;其中,所述训练好的第二机器学习模型为通过如权利要求1-11任一项所述的联邦学习的训练方法得到的;
输出单元,用于输出所述处理结果。
25.一种终端,其特征在于,包括:存储器和处理器,所述存储器用于程序,所述处理器执行所述存储器存储的程序,当存储器存储的程序被执行时,所述处理器用于执行如权利要求1-8任一项所述的联邦学习的训练方法。
26.一种服务器,其特征在于,包括:存储器和处理器,所述存储器用于程序,所述处理器执行所述存储器存储的程序,当存储器存储的程序被执行时,所述处理器用于执行如权利要求9-11任一项所述的联邦学习的训练方法。
27.一种数据处理设备,其特征在于,包括:存储器和处理器,所述存储器用于程序,所述处理器执行所述存储器存储的程序,当存储器存储的程序被执行时,所述处理器用于执行如权利要求12所述的数据处理方法。
28.一种计算机可读存储介质,其特征在于,所述计算机可读介质存储用于设备执行的程序代码,所述程序代码包括如权利要求1-8任一项所述的联邦学习的训练方法。
29.一种计算机可读存储介质,其特征在于,所述计算机可读介质存储用于设备执行的程序代码,所述程序代码包括如权利要求9-11任一项所述的联邦学习的训练方法。
30.一种计算机可读存储介质,其特征在于,所述计算机可读介质存储用于设备执行的程序代码,所述程序代码如权利要求12所述的数据处理方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010427897.1A CN113688855B (zh) | 2020-05-19 | 2020-05-19 | 数据处理方法、联邦学习的训练方法及相关装置、设备 |
PCT/CN2021/072421 WO2021232832A1 (zh) | 2020-05-19 | 2021-01-18 | 数据处理方法、联邦学习的训练方法及相关装置、设备 |
US17/989,777 US20230082173A1 (en) | 2020-05-19 | 2022-11-18 | Data processing method, federated learning training method, and related apparatus and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010427897.1A CN113688855B (zh) | 2020-05-19 | 2020-05-19 | 数据处理方法、联邦学习的训练方法及相关装置、设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113688855A CN113688855A (zh) | 2021-11-23 |
CN113688855B true CN113688855B (zh) | 2023-07-28 |
Family
ID=78576021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010427897.1A Active CN113688855B (zh) | 2020-05-19 | 2020-05-19 | 数据处理方法、联邦学习的训练方法及相关装置、设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230082173A1 (zh) |
CN (1) | CN113688855B (zh) |
WO (1) | WO2021232832A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220210140A1 (en) * | 2020-12-30 | 2022-06-30 | Atb Financial | Systems and methods for federated learning on blockchain |
CN116248256A (zh) * | 2021-12-03 | 2023-06-09 | 华为技术有限公司 | 通信方法及装置、存储介质、程序产品 |
CN114301935B (zh) * | 2021-12-10 | 2023-11-17 | 大庆市凯德信信息技术有限公司 | 一种基于声誉的物联网边云协同联邦学习节点选择方法 |
CN113961967B (zh) * | 2021-12-13 | 2022-03-22 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护联合训练自然语言处理模型的方法及装置 |
CN114254398B (zh) * | 2021-12-16 | 2023-03-28 | 重庆大学 | 一种基于区块链的联邦学习***及参数聚合方法 |
CN113987589B (zh) * | 2021-12-27 | 2022-03-18 | 飞天诚信科技股份有限公司 | 一种处理数据的方法、装置、计算机可读存储介质及装置 |
CN113987255B (zh) * | 2021-12-30 | 2022-04-01 | 南湖实验室 | 基于联邦学习与秘密分享的多源密文图像检索方法 |
CN116796850A (zh) * | 2022-03-09 | 2023-09-22 | 华为技术有限公司 | 模型训练方法、装置、设备及存储介质 |
CN114611720B (zh) * | 2022-03-14 | 2023-08-08 | 抖音视界有限公司 | 联邦学习模型训练方法、电子设备及存储介质 |
CN114422606B (zh) * | 2022-03-15 | 2022-06-28 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 联邦学习的通信开销压缩方法、装置、设备及介质 |
CN114912605B (zh) * | 2022-04-02 | 2024-07-05 | 西安电子科技大学 | 基于自适应分割联邦学习的模型训练方法和人脸识别方法 |
CN114861790B (zh) * | 2022-04-29 | 2023-03-17 | 深圳大学 | 联邦学习压缩通信的优化方法、***及装置 |
WO2024044881A1 (zh) * | 2022-08-29 | 2024-03-07 | 华为技术有限公司 | 一种数据处理方法、训练方法及相关装置 |
US11810366B1 (en) * | 2022-09-22 | 2023-11-07 | Zhejiang Lab | Joint modeling method and apparatus for enhancing local features of pedestrians |
CN117792838A (zh) * | 2022-09-27 | 2024-03-29 | 华为技术有限公司 | 传输数据的方法和相关装置 |
CN115617827B (zh) * | 2022-11-18 | 2023-04-07 | 浙江大学 | 一种基于参数压缩的业务模型联合更新方法及*** |
CN115865521B (zh) * | 2023-02-09 | 2023-05-09 | 智慧眼科技股份有限公司 | 一种模型局部数据处理方法、装置、设备及存储介质 |
CN116032663B (zh) * | 2023-03-27 | 2023-06-02 | 湖南红普创新科技发展有限公司 | 基于边缘设备的隐私数据处理***、方法、设备及介质 |
CN116680625B (zh) * | 2023-08-04 | 2024-01-05 | 山东华科信息技术有限公司 | 基于云边端协同的配网多场景匹配数据处理方法及*** |
CN117196014B (zh) * | 2023-09-18 | 2024-05-10 | 深圳大学 | 基于联邦学习的模型训练方法、装置、计算机设备及介质 |
CN117217710B (zh) * | 2023-10-19 | 2024-07-02 | 深圳市金文网络科技有限公司 | 一种虚拟商品与快捷服务的智能化管理方法及*** |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109255444A (zh) * | 2018-08-10 | 2019-01-22 | 深圳前海微众银行股份有限公司 | 基于迁移学习的联邦建模方法、设备及可读存储介质 |
CN109492420A (zh) * | 2018-12-28 | 2019-03-19 | 深圳前海微众银行股份有限公司 | 基于联邦学习的模型参数训练方法、终端、***及介质 |
CN109871702A (zh) * | 2019-02-18 | 2019-06-11 | 深圳前海微众银行股份有限公司 | 联邦模型训练方法、***、设备及计算机可读存储介质 |
CN110245510A (zh) * | 2019-06-19 | 2019-09-17 | 北京百度网讯科技有限公司 | 用于预测信息的方法和装置 |
CN110399742A (zh) * | 2019-07-29 | 2019-11-01 | 深圳前海微众银行股份有限公司 | 一种联邦迁移学习模型的训练、预测方法及装置 |
CN110442457A (zh) * | 2019-08-12 | 2019-11-12 | 北京大学深圳研究生院 | 基于联邦学习的模型训练方法、装置及服务器 |
CN110572253A (zh) * | 2019-09-16 | 2019-12-13 | 济南大学 | 一种联邦学习训练数据隐私性增强方法及*** |
CN110874484A (zh) * | 2019-10-16 | 2020-03-10 | 众安信息技术服务有限公司 | 基于神经网络和联邦学习的数据处理方法和*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9946799B2 (en) * | 2015-04-30 | 2018-04-17 | Microsoft Technology Licensing, Llc | Federated search page construction based on machine learning |
-
2020
- 2020-05-19 CN CN202010427897.1A patent/CN113688855B/zh active Active
-
2021
- 2021-01-18 WO PCT/CN2021/072421 patent/WO2021232832A1/zh active Application Filing
-
2022
- 2022-11-18 US US17/989,777 patent/US20230082173A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109255444A (zh) * | 2018-08-10 | 2019-01-22 | 深圳前海微众银行股份有限公司 | 基于迁移学习的联邦建模方法、设备及可读存储介质 |
CN109492420A (zh) * | 2018-12-28 | 2019-03-19 | 深圳前海微众银行股份有限公司 | 基于联邦学习的模型参数训练方法、终端、***及介质 |
CN109871702A (zh) * | 2019-02-18 | 2019-06-11 | 深圳前海微众银行股份有限公司 | 联邦模型训练方法、***、设备及计算机可读存储介质 |
CN110245510A (zh) * | 2019-06-19 | 2019-09-17 | 北京百度网讯科技有限公司 | 用于预测信息的方法和装置 |
CN110399742A (zh) * | 2019-07-29 | 2019-11-01 | 深圳前海微众银行股份有限公司 | 一种联邦迁移学习模型的训练、预测方法及装置 |
CN110442457A (zh) * | 2019-08-12 | 2019-11-12 | 北京大学深圳研究生院 | 基于联邦学习的模型训练方法、装置及服务器 |
CN110572253A (zh) * | 2019-09-16 | 2019-12-13 | 济南大学 | 一种联邦学习训练数据隐私性增强方法及*** |
CN110874484A (zh) * | 2019-10-16 | 2020-03-10 | 众安信息技术服务有限公司 | 基于神经网络和联邦学习的数据处理方法和*** |
Also Published As
Publication number | Publication date |
---|---|
US20230082173A1 (en) | 2023-03-16 |
WO2021232832A1 (zh) | 2021-11-25 |
CN113688855A (zh) | 2021-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113688855B (zh) | 数据处理方法、联邦学习的训练方法及相关装置、设备 | |
CN110084281B (zh) | 图像生成方法、神经网络的压缩方法及相关装置、设备 | |
Li et al. | A review of applications in federated learning | |
CN112949837B (zh) | 一种基于可信网络的目标识别联邦深度学习方法 | |
WO2022105714A1 (zh) | 数据处理方法、机器学习的训练方法及相关装置、设备 | |
CN111401558B (zh) | 数据处理模型训练方法、数据处理方法、装置、电子设备 | |
CN111819568B (zh) | 人脸旋转图像的生成方法及装置 | |
WO2021155792A1 (zh) | 一种处理装置、方法及存储介质 | |
WO2021190296A1 (zh) | 一种动态手势识别方法及设备 | |
CN113326930B (zh) | 数据处理方法、神经网络的训练方法及相关装置、设备 | |
CN110222718B (zh) | 图像处理的方法及装置 | |
CN112580720B (zh) | 一种模型训练方法及装置 | |
CN114418030B (zh) | 图像分类方法、图像分类模型的训练方法及装置 | |
WO2023174036A1 (zh) | 联邦学习模型训练方法、电子设备及存储介质 | |
CN111738403B (zh) | 一种神经网络的优化方法及相关设备 | |
WO2024041479A1 (zh) | 一种数据处理方法及其装置 | |
WO2022156475A1 (zh) | 神经网络模型的训练方法、数据处理方法及装置 | |
CN111767906A (zh) | 人脸检测模型训练方法、人脸检测方法、装置及电子设备 | |
WO2023168903A1 (zh) | 模型训练和身份匿名化方法、装置、设备、存储介质及程序产品 | |
Zhang et al. | Effective presentation attack detection driven by face related task | |
WO2022227024A1 (zh) | 神经网络模型的运算方法、训练方法及装置 | |
WO2023185541A1 (zh) | 一种模型训练方法及其相关设备 | |
CN114723012B (zh) | 基于分布式训练***的计算方法和装置 | |
CN113542527B (zh) | 一种人脸图像传输方法、装置、电子设备及存储介质 | |
CN114004265A (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 |