CN112039702A - 基于联邦学习和相互学习的模型参数训练方法及装置 - Google Patents
基于联邦学习和相互学习的模型参数训练方法及装置 Download PDFInfo
- Publication number
- CN112039702A CN112039702A CN202010892666.8A CN202010892666A CN112039702A CN 112039702 A CN112039702 A CN 112039702A CN 202010892666 A CN202010892666 A CN 202010892666A CN 112039702 A CN112039702 A CN 112039702A
- Authority
- CN
- China
- Prior art keywords
- model
- parameter
- parameters
- sub
- submodel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/142—Network analysis or design using statistical or mathematical methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/147—Network analysis or design for predicting network behaviour
Abstract
本发明实施例提供了一种基于联邦学习和相互学习的模型参数训练方法及装置,所述方法包括:参数训练端将基于本地样本数据训练得到的子模型参数加密后发送给参数协调端,以使参数协调端对接收到的子模型参数进行汇总或安全聚合并发送给各参数训练端,参数训练端再基于本地样本数据以及解密后的汇总子模型参数集合,对子模型进行训练以更新子模型参数,或基于本地样本数据以及解密后的安全聚合子模型参数,对子模型进行训练进一步更新子模型的参数,得到子模型对应的总模型参数。本发明实施例,能够适用于跨机构的隐私安全模型参数训练,在数据安全的基础上,进一步挖掘各参数训练端的数据价值,有效提升所训练总模型的性能。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种基于联邦学习和相互学习的模型参数训练方法及装置。
背景技术
机器学习是人工智能的核心之一,基于机器学习的建模分析往往需要大量的数据支撑,而现实中数据往往分散在不同的设备或机构中(数据孤岛),如何安全合规地使用这些数据联合建立机器学习模型,始终是业界的一个难点。
为解决设备间的数据孤岛问题,谷歌提出了针对手机终端的联邦学习方法。联邦学习可以有效解决数据孤岛问题,让参与方在不共享数据的基础上联合建模,能从技术上打破数据孤岛。联邦学习以轮为单位,每轮包含设备选择、参数分发、本地更新和全局更新4个步骤。现有基于联邦学习的模型参数训练方法为:首先,服务器选择该轮参与训练的设备(如手机),被选中的设备参与该轮训练,其次,服务器将当前的模型参数分发给选中的设备,然后,本地设备(即该轮被选中的设备)下载到服务器发送的新的模型参数后,在此基础上,使用本地数据训练更新模型,最后,选中的设备将本地更新了的模型参数发送给服务器,服务器对接收到的各更新了的模型参数进行安全聚合,得到全局模型参数,并判断模型参数的训练是否满足收敛条件,如果满足,则将该轮得到的全局模型参数作为最终的模型参数。
然而,现有基于联邦学习的模型参数训练方法主要是针对手机终端设计的,在模型参数训练过程中,需要选择参与的设备,也就是说每轮参与的设备可以不同,而企业或机构之间进行模型参数训练不涉及参与方选择的问题,该企业或机构例如可以是金融机构(如银行等)。另外,跨机构的联邦学习的参与方数量(一般不超过50)远远小于跨设备的联邦学习的参与方数量(往往超过10000),使得现有针对手机终端的基于联邦学习的模型参数训练方法,无法满足跨机构模型参数训练应达到的性能要求,进而无法适用于跨机构的模型参数训练。
发明内容
本发明实施例的目的在于提供一种基于联邦学习和相互学习的模型参数训练方法及装置,以解决现有基于联邦学习的模型参数训练方法无法满足跨机构模型参数训练应达到的性能要求,进而无法适用于跨机构的模型参数训练的问题。具体技术方案如下:
第一方面,本发明实施例提供了一种基于联邦学习和相互学习的模型参数训练方法,应用于参数训练端,所述方法包括:
基于本地样本数据以及预设子模型的初始参数,对子模型进行训练,得到所述子模型的参数;
对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端,以使所述参数协调端对接收到的子模型参数进行汇总,并返回汇总后的子模型参数集合,或对接收到的子模型参数进行安全聚合,并返回安全聚合后的子模型参数;
在接收到所述参数协调端返回的汇总后的子模型参数集合的情况下,对所述汇总后的子模型参数集合中的各子模型参数进行解密,得到解密后的子模型参数集合;
基于本地样本数据以及所述解密后的子模型参数集合,对所述子模型进行训练,得到所述子模型的更新参数,将所述子模型的更新参数更新为所述子模型的参数,以及执行对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端的步骤;
在接收到所述参数协调端返回的安全聚合后的子模型参数的情况下,对所述安全聚合后的子模型参数进行解密,得到解密后的子模型参数;
基于本地样本数据以及所述解密后的子模型参数,对所述子模型进行训练,得到所述子模型的更新参数,将所述子模型的更新参数更新为所述子模型的参数,以及执行对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端的步骤;
或,将所述解密后的子模型参数确定为所述子模型对应的总模型参数。
可选地,所述对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端的步骤包括:
对所述子模型的参数进行加法同态加密,并将加密后的子模型参数发送给参数协调端。
可选地,所述基于本地样本数据以及预设子模型的初始参数,对子模型进行训练,得到所述子模型的参数的步骤,包括:
将由本地样本数据构成的本地数据集划分为多个小批量数据集;
基于预设子模型的初始参数,使用各小批量数据集对所述子模型进行训练,得到子模型更新参数;
在本地当前训练次数满足第一预设条件时,将当前训练次数对应的子模型更新参数,确定为所述子模型的参数;
其中,使用如下表达式对子模型的参数进行更新:
可选地,所述基于本地样本数据以及所述解密后的子模型参数集合,对所述子模型进行训练,得到所述子模型的更新参数的步骤,包括:
基于所述解密后的子模型参数集合,使用各小批量数据集对所述子模型进行训练,得到子模型更新参数;
使用如下表达式对子模型的参数进行更新:
其中,Θi表示第i个参数训练端子模型的参数,η表示学习率,表示第二损失函数对Θi所求的偏导,表示子模型参数集合,Θm表示第m个参数训练端子模型的参数,K表示参数训练端的个数,表示第i个参数训练端的第t个小批量数据集,表示计算损失函数所用到的数据集,为第一损失函数,表示数据集所包含的样本数,DKL表示KL离散距离, 对于m=1,2,...,,有 表示样本数据x通过参数为Θm的模型进行预测所得结果为l的概率,y表示标签数据,C表示标签数据y的取值个数,C为正整数。
可选地,在基于本地样本数据以及预设子模型的初始参数,对子模型进行训练,得到所述子模型的参数之前,所述方法还包括:
确定子模型以及所述子模型对应的总模型所对应的具体算法;
在得到子模型对应的总模型参数之后,所述方法还包括:
接收样本数据;
将所述样本数据输入所述总模型中进行预测,得到所述总模型输出的预测结果。
第二方面,本发明实施例提供了一种基于联邦学习和相互学习的模型参数训练方法,应用于参数协调端,所述方法包括:
接收各参数训练端发送的加密后的子模型参数;
判断当前迭代次数是否满足第二预设条件,所述第二预设条件用于表征相互学习训练过程是否完成;
在判断出当前迭代次数不满足第二预设条件时,对所述加密后的子模型参数进行汇总,并将汇总后的子模型参数集合发送给各参数训练端,以使所述参数训练端对所述汇总后的子模型参数集合中的各子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数集合,对子模型进行训练以更新子模型的参数;
在判断出当前迭代次数满足第二预设条件时,判断当前迭代次数是否满足第三预设条件,所述第三预设条件用于表征联邦学习训练过程是否完成;
在判断出当前迭代次数不满足第三预设条件时,对所述加密后的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端,以使所述参数训练端对所述安全聚合后的子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数,对子模型进行训练以更新子模型的参数;
或,在判断出当前迭代次数满足第三预设条件时,对所述加密后的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端,以使所述参数训练端对所述安全聚合后的子模型参数进行解密,并将解密后的子模型参数确定为子模型对应的总模型参数。
可选地,对接收到的子模型参数进行安全聚合,得到的聚合结果表示为:其中,K表示参数训练端的个数,N表示各参数训练端参与模型参数训练的样本总数,ni表示第i个参数训练端参与模型参数训练的样本总数,[[Θi]]表示加密后的第i个参数训练端子模型的参数。
第三方面,本发明实施例提供了一种基于联邦学习和相互学习的模型参数训练装置,应用于参数训练端,所述装置包括:
第一训练模块,用于基于本地样本数据以及预设子模型的初始参数,对子模型进行训练,得到所述子模型的参数;
加密发送模块,用于对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端,以使所述参数协调端对接收到的子模型参数进行汇总,并返回汇总后的子模型参数集合,或对接收到的子模型参数进行安全聚合,并返回安全聚合后的子模型参数;
第一解密模块,用于在接收到所述参数协调端返回的汇总后的子模型参数集合的情况下,对所述汇总后的子模型参数集合中的各子模型参数进行解密,得到解密后的子模型参数集合;
第二训练模块,用于基于本地样本数据以及所述解密后的子模型参数集合,对所述子模型进行训练,得到所述子模型的更新参数,将所述子模型的更新参数更新为所述子模型的参数,以及触发加密发送模块;
第二解密模块,用于在接收到所述参数协调端返回的安全聚合后的子模型参数的情况下,对所述安全聚合后的子模型参数进行解密,得到解密后的子模型参数;
第三训练模块,用于基于本地样本数据以及所述解密后的子模型参数,对所述子模型进行训练,得到所述子模型的更新参数,将所述子模型的更新参数更新为所述子模型的参数,以及触发加密发送模块;
确定模块,用于将所述解密后的子模型参数确定为所述子模型对应的总模型参数。
第四方面,本发明实施例提供了一种基于联邦学习和相互学习的模型参数训练装置,应用于参数协调端,所述装置包括:
接收模块,用于接收各参数训练端发送的加密后的子模型参数;
第一判断模块,用于判断当前迭代次数是否满足第二预设条件,所述第二预设条件用于表征相互学习训练过程是否完成;
第一发送模块,用于在所述第一判断模块判断出当前迭代次数不满足第二预设条件时,对所述加密后的子模型参数进行汇总,并将汇总后的子模型参数集合发送给各参数训练端,以使所述参数训练端对所述汇总后的子模型参数集合中的各子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数集合,对子模型进行训练以更新子模型的参数;
第二判断模块,用于在所述第一判断模块判断出当前迭代次数满足第二预设条件时,判断当前迭代次数是否满足第三预设条件,所述第三预设条件用于表征联邦学习训练过程是否完成;
第二发送模块,用于在所述第二判断模块判断出当前迭代次数不满足第三预设条件时,对所述加密后的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端,以使所述参数训练端对所述安全聚合后的子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数,对子模型进行训练以更新子模型的参数;
第三发送模块,用于在所述第二判断模块判断出当前迭代次数满足第三预设条件时,对所述加密后的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端,以使所述参数训练端对所述安全聚合后的子模型参数进行解密,并将解密后的子模型参数确定为子模型对应的总模型参数。
第五方面,本发明实施例提供了一种服务器设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述第一或第二方面任一所述的一种基于联邦学习和相互学习的模型参数训练方法的步骤。
本发明实施例有益效果:
本发明实施例提供了一种基于联邦学习和相互学习的模型参数训练方法及装置,参数训练端将基于本地样本数据训练得到的子模型参数加密后发送给参数协调端,以使参数协调端对接收到的子模型参数进行汇总或安全聚合,并将汇总后的子模型参数集合或安全聚合后的子模型参数发送给各参数训练端,参数训练端再基于本地样本数据以及解密后的子模型参数集合,对子模型进行训练以更新子模型参数,或基于本地样本数据以及解密后的子模型参数,对子模型进行训练,进一步更新子模型的参数,使得各参数训练端在更新子模型参数的过程中,可以通过互相学习的方式更新子模型参数,能够进一步挖掘各参数训练端的数据价值,有效提升所训练总模型的性能,且不需要参数协调端选择参数训练端,能够更好地适用于跨机构隐私安全的模型参数训练。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明实施例提供的一种基于联邦学习和相互学习的模型参数训练方法流程示意图;
图2为本发明实施例提供的另一种基于联邦学习和相互学习的模型参数训练方法流程示意图;
图3为本发明实施例提供的一种基于联邦学习和相互学习的模型参数训练装置的结构示意图;
图4为本发明实施例提供的另一种基于联邦学习和相互学习的模型参数训练装置的结构示意图;
图5为本发明实施例提供的一种参数训练服务器设备的结构示意图;
图6为本发明实施例提供的一种参数协调服务器设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有针对手机终端的基于联邦学习的模型参数训练方法,无法满足跨机构模型参数训练应达到的性能要求,进而无法适用于跨机构的模型参数训练的问题,本发明实施例提供了一种基于联邦学习和相互学习的模型参数训练方法,应用于参数训练端,所述方法包括:
基于本地样本数据以及预设子模型的初始参数,对子模型进行训练,得到所述子模型的参数;
对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端,以使所述参数协调端对接收到的子模型参数进行汇总,并返回汇总后的子模型参数集合,或对接收到的子模型参数进行安全聚合,并返回安全聚合后的子模型参数;
在接收到所述参数协调端返回的汇总后的子模型参数集合的情况下,对所述汇总后的子模型参数集合中的各子模型参数进行解密,得到解密后的子模型参数集合;
基于本地样本数据以及所述解密后的子模型参数集合,对所述子模型进行训练,得到所述子模型的更新参数,将所述子模型的更新参数更新为所述子模型的参数,以及执行对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端的步骤;
在接收到所述参数协调端返回的安全聚合后的子模型参数的情况下,对所述安全聚合后的子模型参数进行解密,得到解密后的子模型参数;
基于本地样本数据以及所述解密后的子模型参数,对所述子模型进行训练,得到所述子模型的更新参数,将所述子模型的更新参数更新为所述子模型的参数,以及执行对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端的步骤;
或,将所述解密后的子模型参数确定为所述子模型对应的总模型参数。
本发明实施例提供了一种基于联邦学习和相互学习的模型参数训练方法,参数训练端将基于本地样本数据训练得到的子模型参数加密后发送给参数协调端,以使参数协调端对接收到的子模型参数进行汇总或安全聚合,并将汇总后的子模型参数集合或安全聚合后的子模型参数发送给各参数训练端,参数训练端再基于本地样本数据以及解密后的子模型参数集合,对子模型进行训练以更新子模型参数,或基于本地样本数据以及解密后的子模型参数,对子模型进行训练,进一步更新子模型的参数,使得各参数训练端在更新子模型参数的过程中,可以通过互相学习的方式更新子模型参数,能够进一步挖掘各参数训练端的数据价值,有效提升所训练总模型的性能,且不需要参数协调端选择参数训练端,能够更好地适用于跨机构隐私安全的模型参数训练。
下面对本发明实施例提供的一种基于联邦学习和相互学习的模型参数训练方法进行详细介绍:
本发明实施例提供的基于联邦学习和相互学习的模型参数训练方法,可以用于金融风控的反欺诈、贷前准入、贷中监控等场景,还可以用于智慧医疗、政务大数据等场景中。
本发明实施例提供的一种基于联邦学习和相互学习的模型参数训练方法,可以是利用多家机构中存储的样本数据等进行的跨机构的模型参数训练,该样本数据可以是用户数据、商品数据或企业数据等,例如,利用多家银行中存储的用户数据,协同训练用于预测用户征信的模型参数等。当然,本发明实施例中的机构不仅限于银行,训练数据也不仅限于用户数据、商品数据或企业数据等。
本发明实施例中的参数训练端,可以是提供训练数据并参与训练的机构对应的服务器或终端等,参数协调端可以是第三方机构的服务器或终端等,可以理解的,为保证参与训练数据的安全性,第三方机构可以是不同于参数训练端的机构。
如图1所示,图1为本发明实施例提供的一种基于联邦学习和相互学习的模型参数训练方法流程示意图,应用于参数训练端,该方法可以包括:
S101,基于本地样本数据以及预设子模型的初始参数,对子模型进行训练,得到子模型的参数。
本发明实施例中,以参与模型参数训练的样本数据为用户数据为例进行说明,而实际应用中不仅限于用户数据、商品数据或企业数据。各参数训练端可以在进行协同训练之前,基于所要训练的模型确定各自参与训练的样本数据,该样本数据可以是从各参数训练端本地用户数据中确定。进一步的,各参数训练端在确定各自参与训练的样本数据时,可以确定各样本数据对应的特征维度,进而使用相同维度的样本数据进行训练。
示例性的,以银行中的用户数据为例,确定的样本数据对应的特征维度可以包括但不限于:用户的年龄、性别、收入、是否借款、是否正常还款、是否定期购物、以及购物消费额度等等。或,当样本数据为商品数据时,确定的样本数据对应的特征维度可以包括但不限于:商品价格、销量、销地、热度、以及价格波动范围等。或,当样本数据为企业数据时,确定的样本数据对应的特征维度可以包括但不限于:企业的经营年限、年净利润、员工数、信用等级、以及经营状态等。
各参数训练端在确定各自参与训练的样本数据时,还可以确定各自能够参与训练的样本数据的数量。示例性的,参与模型参数训练的参数训练端个数为K个,第1个参数训练端能够参与训练的样本数据的数量为n1个,第K个参数训练端能够参与训练的样本数据的数量为nK个,则各参数训练端能够参与训练的样本数据的总数可以为:个,第1个参数训练端能够参与训练的样本数据对应的数据集可以表示为第K个参数训练端能够参与训练的样本数据对应的数据集可以表示为
本发明实施例中,还可以在各参数训练端进行协同训练之前,确定需要训练的总模型以及各参数训练端中的子模型对应的机器学习算法,各参数训练端可以随机设置各自子模型的初始参数,进而,各参数训练端可以根据确定的样本数据以及预先设置的子模型初始参数,对子模型进行训练,得到子模型的参数。
作为本发明实施例一种可选的实施方式,基于本地样本数据以及预设子模型的初始参数,对子模型进行训练,得到子模型的参数的步骤,可以包括:
将由本地样本数据构成的本地数据集划分为多个小批量数据集。
本发明实施例中,参数训练端可以将本地数据集划分为多个小批量数据集,该本地数据集是由确定的参与训练的本地样本数据构成的。各参数训练端中每一小批量数据集中样本数据的个数相同,各参数训练端中参与训练的样本数据的个数可能不同,小批量数据集的个数也可能不同。
示例性的,可以将本地数据集随机划分为多个小批量数据集,第i个参数训练端的本地数据集可以表示为划分为小批量数据集后得到的小批量数据集集合可以表示为 表示第i个参数训练端的小批量数据集集合,表示第i个参数训练端的第j个小批量数据集,小批量数据集中可以包含b个样本数据,且互不相交,∪表示并集。
基于预设子模型的初始参数,使用各小批量数据集对子模型进行训练,得到子模型更新参数。
参数训练端可以基于预设子模型的初始参数,使用各小批量数据集对子模型进行训练,示例性的,可以使用第一个小批量数据集基于预设的子模型初始参数对子模型进行训练,在训练过程中对子模型的初始参数进行更新,得到第一次更新的子模型更新参数;再使用第二个小批量数据集基于第一次更新的子模型更新参数对子模型进行训练,在训练过程中对第一次更新的子模型更新参数进行更新,得到第二次更新的子模型更新参数,依次训练至各小批量数据集全部训练一次,完成一轮子模型的训练,得到子模型更新参数,并将该子模型更新参数用于下一轮训练的初始参数。
其中,可以使用如下表达式对子模型的参数进行更新:
在本地当前训练次数满足第一预设条件时,将当前训练次数对应的子模型更新参数,确定为子模型的参数。
本发明实施例中,可以预先设置参数训练端使用本地样本数据对子模型训练的轮次,进而在参数训练端进行子模型训练的过程中,可以判断本地当前训练次数是否达到设置的训练轮次,在本地当前训练次数达到设置的训练轮次时,使用本地样本数据对子模型训练完成,将当前训练次数对应的子模型更新参数,确定为子模型的参数。示例性的,本地训练的轮次可以设置为E次,在本地当前训练次数达到E次时,将当前训练次数对应的子模型更新参数,确定为子模型的参数。
本发明实施例中,将预先设置的训练轮次作为第一预设条件,实际应用中,也可以根据相邻两轮训练过程中子模型更新参数之间的差值或相应损失函数之间的差值是否小于某预先设定的阈值,判断子模型是否收敛,以确定训练是否完成。
参见图1,S102,对子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端,以使参数协调端对接收到的子模型参数进行汇总,并返回汇总后的子模型参数集合,或对接收到的子模型参数进行安全聚合,并返回安全聚合后的子模型参数。
本发明实施例中,参数训练端在得到其子模型的参数后,为保证本地原始数据不出本地,以及数据传输的安全性,可以对子模型的参数进行加密,进而将加密后的子模型参数发送给参数协调端,以使参数协调端对接收到的加密态的子模型参数进行汇总,并返回汇总后的子模型参数集合,或对接收到的加密态的子模型参数进行安全聚合,并返回安全聚合后的子模型参数。
本发明实施例中,各参数训练端可以预先约定一种加密方法,然后使用该约定的加密方法对子模型的参数进行加密,然后将加密后的子模型参数发送给参数协调端。
作为本发明实施例一种可选的实施方式,参数训练端可以对子模型的参数进行加法同态加密,并将加密后的子模型参数发送给参数协调端。
各参数训练端可以使用加法同态加密算法对子模型的参数进行加密,来保护交互数据的隐私,故而,各参数训练端需预先确定加法同态加密算法的密钥。示例性的,将加密后的数据记为[[·]],例如参数Θ加密后记为[[Θ]]。
为便于理解加法同态加密算法,对加法同态加密算法进行介绍如下:
原始数据经过加法同态加密算法加密后可进行加法运算(记为函数f),在运算过程中不会泄露任何原始数据的内容。而且,加密数据进行运算f后再解密,得到的正是原始数据经过相应运算f所得的结果。例如,对于数值a和d,加法同态加密[[·]]可满足:[[a]]+[[d]]=[[a+d]],a*[[d]]=[[a*d]]。
S103,在接收到参数协调端返回的汇总后的子模型参数集合的情况下,对汇总后的子模型参数集合中的各子模型参数进行解密,得到解密后的子模型参数集合。
接收到参数协调端返回的汇总后的子模型参数集合,表示模型参数训练处于相互学习阶段。示例性的,第i个参数训练端对子模型的参数Θi进行加法同态加密,将加密后的子模型参数[[Θi]]发送给参数协调端,参数协调端对接收的K个参数训练端发送的加密后的子模型参数进行汇总,得到汇总后的子模型参数集合表示为进而参数协调端将汇总后的子模型参数集合发送给各参数训练端。
因加密密钥是各参数训练端约定的,故而,参数训练端在接收到参数协调端返回的汇总后的子模型参数集合时,可以使用约定的密钥对汇总后的子模型参数集合中的各子模型参数进行解密,得到解密后的子模型参数集合,可以表示为
S104,基于本地样本数据以及解密后的子模型参数集合,对子模型进行训练,得到子模型的更新参数,将子模型的更新参数更新为子模型的参数,以及执行S102对子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端的步骤。
本发明实施例中,参数训练端在得到解密后的子模型参数集合后,参数训练端可以相互学习子模型参数,并基于得到的解密后的子模型参数集合,对本地子模型进行训练,进一步更新子模型的参数,以提升子模型的性能。
作为本发明实施例一种可选的实施方式,参数训练端在得到解密后的子模型参数集合后,可以基于解密后的子模型参数集合,使用各小批量数据集对子模型进行训练,得到子模型更新参数。
本发明实施例中,参数训练端在得到解密后的子模型参数集合后,使用解密后的子模型参数集合对子模型进行训练,并进一步更新本地子模型参数(具体更新过程见下文描述)。
具体的,基于解密后的子模型参数集合,使用各小批量数据集对子模型进行训练,得到子模型更新参数的实施过程,可以参见上文基于预设子模型的初始参数,使用各小批量数据集对子模型进行训练,得到子模型更新参数的实施过程,不同之处在于,使用如下表达式对子模型的参数进行更新:
其中,Θi表示第i个参数训练端子模型的参数,η表示学习率,表示第二损失函数对Θi所求的偏导,表示子模型参数集合,Θm表示第m个参数训练端子模型的参数,K表示参数训练端的个数,表示第i个参数训练端的第t个小批量数据集,表示计算损失函数所用到的数据集,为第一损失函数,表示数据集所包含的样本数,DKL表示KL离散距离, 对于m=1,2,...,,有 表示样本数据x通过参数为Θm的模型进行预测所得结果为l的概率,y表示标签数据,C表示标签数据y的取值个数,C为正整数。
S105,在接收到参数协调端返回的安全聚合后的子模型参数的情况下,对安全聚合后的子模型参数进行解密,得到解密后的子模型参数。
接收到参数协调端返回的安全聚合后的子模型参数,表示模型参数训练处于联邦学习阶段。示例性的,第i个参数训练端对子模型的参数Θi进行加法同态加密,将加密后的子模型参数[[Θi]]发送给参数协调端,参数协调端对接收的K个参数训练端发送的加密后的子模型参数进行安全聚合,得到安全聚合后的子模型参数表示为进而参数协调端将安全聚合后的子模型参数发送给各参数训练端。
S106,基于本地样本数据以及解密后的子模型参数,对子模型进行训练,得到子模型的更新参数,将子模型的更新参数更新为子模型的参数,以及执行S102对子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端的步骤。
本发明实施例中,参数训练端在得到解密后的子模型参数后,将解密后的子模型参数更新为本地子模型参数,进一步再对子模型进行训练。
具体的,基于本地样本数据以及解密后的子模型参数,对子模型进行训练,得到子模型的更新参数的实施过程,可以参见上文基于预设子模型的初始参数,使用各小批量数据集对子模型进行训练,得到子模型更新参数的实施过程,本发明实施例在此不再赘述。
S107,将解密后的子模型参数确定为子模型对应的总模型参数。
本发明实施例中,可以在各参数训练端进行协同训练之前,确定相互学习以及联邦学习的迭代次数或收敛条件,进而在训练的过程中,各参数训练端可以知晓训练进行到哪个阶段,当联邦学习阶段训练完成时,参数训练端对接收到的参数协调端发送的安全聚合后的子模型参数进行解密,得到解密后的子模型参数后,直接将解密后的子模型参数确定为子模型对应的总模型参数,完成模型参数的训练。
本发明实施例提供了一种基于联邦学习和相互学习的模型参数训练方法,参数训练端将基于本地样本数据训练得到的子模型参数加密后发送给参数协调端,以使参数协调端对接收到的子模型参数进行汇总或安全聚合,并将汇总后的子模型参数集合或安全聚合后的子模型参数发送给各参数训练端,参数训练端再基于本地样本数据以及解密后的子模型参数集合,对子模型进行训练以更新子模型参数,或基于本地样本数据以及解密后的子模型参数,对子模型进行训练,进一步更新子模型的参数,使得各参数训练端在更新子模型参数的过程中,可以通过互相学习的方式更新子模型参数,能够进一步挖掘各参数训练端的数据价值,有效提升训练模型的性能,且不需要参数协调端选择参数训练端,能够更好地适用于跨机构隐私安全的模型参数训练。
作为本发明实施例一种可选的实施方式,在步骤S101基于本地样本数据以及预设子模型的初始参数,对子模型进行训练,得到所述子模型的参数之前,还可以包括:
确定子模型以及子模型对应的总模型所对应的具体算法。
本发明实施例中,可以在各参数训练端进行协同训练之前,确定需要进行模型参数训练的总模型以及总模型对应的各参数训练端的子模型所对应的具体算法,进而构建需要训练的子模型以及子模型对应的总模型。进一步的,可以根据所确定的子模型以及子模型对应的总模型所对应的具体算法,设定对应的损失函数。
示例性的,确定的子模型以及子模型对应的总模型所对应的算法为二分类算法逻辑回归,可以设定损失函数为:
其中,为损失函数,Θ表示模型的参数,表示计算损失函数所用到的数据集,x和y分别表示数据集中样本数据和标签数据,y∈{0,1},即标签数据可以表示为0或1,p(x)是P(y=1|x;Θ)的缩写,表示样本数据x通过参数为Θ的逻辑回归模型进行预测所得结果为1的概率。
作为本发明实施例一种可选的实施方式,在步骤S107得到子模型对应的总模型参数之后,还可以包括:
接收样本数据,将样本数据输入总模型中进行预测,得到总模型输出的预测结果。
本发明实施例中,在训练好子模型以及子模型对应总模型的参数之后,各参数训练端可以直接利用训练好的总模型进行数据标签的预测或分类等。具体的,可以在接收样本数据,获取样本特征数据之后,直接将样本特征数据输入训练好的总模型中进行预测,得到总模型输出的预测结果,即得到样本的标签数据。
示例性的,样本数据为用户数据,总模型可以用于银行的用户征信预测,那么在获取用户特征数据之后,可以将用户特征数据输入训练好的总模型中进行预测,得到总模型输出的用户征信好或者不好的结果。
如图2所示,图2为本发明实施例提供的另一种基于联邦学习和相互学习的模型参数训练方法流程示意图,应用于参数协调端,该方法可以包括:
S201,接收各参数训练端发送的加密后的子模型参数。
本发明实施例中,参数协调端可以接收各参数训练端发送的加密后的子模型参数,进而对该加密后的子模型参数进行处理,以促使各参数训练端完成协同训练的过程。其中,参数协调端接收的加密后的子模型参数为:各参数训练端对各自子模型进行训练得到并加密之后的子模型参数。
S202,判断当前迭代次数是否满足第二预设条件。
本发明实施例中,可以在各参数训练端进行协同训练之前,确定相互学习以及联邦学习的迭代次数或收敛条件,本发明实施例以迭代次数为例进行说明。当参数协调端接收到各参数训练端发送的加密后的子模型参数后,可以判断当前迭代次数是否满足第二预设条件,该第二预设条件用于表征相互学习训练过程是否完成,即判断当前迭代次数是否达到预先设定的相互学习迭代次数。
示例性的,预先设定的相互学习迭代次数为M次,M为正整数,那么,判断当前迭代次数是否达到预先设定的M次,如果达到,则表示相互学习训练过程完成,如果没有达到,则表示相互学习训练过程还未完成,继续训练。
S203,在判断出当前迭代次数不满足第二预设条件时,对加密后的子模型参数进行汇总,并将汇总后的子模型参数集合发送给各参数训练端,以使参数训练端对汇总后的子模型参数集合中的各子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数集合,对子模型进行训练以更新子模型的参数。
在判断出当前迭代次数不满足第二预设条件时,即相互学习训练过程还未完成,对加密后的子模型参数进行汇总,并将汇总后的子模型参数集合发送给各参数训练端,以使各参数训练端对接收到的汇总后的子模型参数集合中的各子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数集合,继续对子模型进行训练以进一步更新子模型的参数。具体的,对加密后的子模型参数进行汇总,并将汇总后的子模型参数集合发送给各参数训练端可参见上文介绍,本发明实施例在此不再赘述。
S204,在判断出当前迭代次数满足第二预设条件时,判断当前迭代次数是否满足第三预设条件。
在判断出当前迭代次数满足第二预设条件时,即相互学习训练过程完成。此时,判断当前迭代次数是否满足第三预设条件,该第三预设条件用于表征联邦学习训练过程是否完成,即判断当前迭代次数是否达到预先设定的联邦学习迭代次数和相互学习迭代次数之和。
示例性的,预先设定的联邦学习迭代次数为T次,T为正整数,那么,判断当前迭代次数是否达到预先设定的(M+T)次,如果达到,则表示联邦学习训练过程完成,如果没有达到,则表示联邦学习训练过程还未完成,继续训练。
S205,在判断出当前迭代次数不满足第三预设条件时,对加密后的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端,以使参数训练端对安全聚合后的子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数,对子模型进行训练以更新子模型的参数。
在判断出当前迭代次数不满足第三预设条件时,即联邦学习训练过程还未完成,对加密后的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端,以使各参数训练端对接收到的安全聚合后的子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数,继续对子模型进行训练以进一步更新子模型的参数。
作为本发明实施例一种可选的实施方式,参数协调端对接收到的子模型参数进行安全聚合,得到的聚合结果可以表示为:其中,K表示参数训练端的个数,N表示各参数训练端参与模型参数训练的样本总数,ni表示第i个参数训练端参与模型参数训练的样本总数,[[Θi]]表示加密后的第i个参数训练端子模型的参数。
具体的,对加密后的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端可参见上文介绍,本发明实施例在此不再赘述。
S206,在判断出当前迭代次数满足第三预设条件时,对加密后的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端,以使参数训练端对安全聚合后的子模型参数进行解密,并将解密后的子模型参数确定为子模型对应的总模型参数。
在判断出当前迭代次数满足第三预设条件时,即联邦学习训练过程完成。此时,对加密后的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端,以使参数训练端对安全聚合后的子模型参数进行解密,并将解密后的安全聚合后的子模型参数确定为子模型最终的模型参数,以及该子模型对应的总模型参数。
本发明实施例提供了一种基于联邦学习和相互学习的模型参数训练方法,参数训练端与参数协调端协同训练,参数协调端接收参数训练端发送的加密后的子模型参数,在相互学习训练过程中,对接收到的子模型参数进行汇总,并将汇总后的子模型参数集合发送给各参数训练端,以使参数训练端对汇总后的子模型参数集合中的各子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数集合,对子模型进行训练以更新子模型的参数;在联邦学习训练过程中,对接收到的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端,以使参数训练端对安全聚合后的子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数,对子模型进行训练以更新子模型的参数,使得各参数训练端在更新子模型参数的过程中,可以通过互相学习的方式更新子模型参数,能够进一步挖掘各参数训练端的数据价值,有效提升所训练模型的性能,且不需要参数协调端选择参数训练端,能够更好地适用于跨机构隐私安全的模型参数训练。
示例性的,参数训练端为银行服务器,参数协调端为第三方服务器,训练的模型为用于预测用户征信的二分类模型,对模型参数的训练过程以及使用进行说明。
各参数训练端预先确定各自参与训练的样本数据(即参与训练的本地用户数据),样本数据的个数,本地子模型训练的轮次,相互学习以及联邦学习的迭代次数,小批量数据集中包含的样本数据个数,各参数训练端对子模型参数使用的密钥。其中,参与训练的样本数据例如可以是:用户的年龄、性别、收入、是否借款、是否正常还款、是否定期购物、以及购物消费额度等等用户特征数据,以及用户征信好或不好的用户标签数据。
参数训练端根据本地用户数据以及预设子模型的初始参数,对子模型进行训练,得到子模型的参数。
参数训练端对子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端。
参数协调端接收各参数训练端发送的加密后的子模型参数。
参数协调端判断当前迭代次数是否满足第二预设条件。
参数协调端在判断出当前迭代次数不满足第二预设条件时,对加密后的子模型参数进行汇总,并将汇总后的子模型参数集合发送给各参数训练端。
参数训练端接收参数协调端返回的汇总后的子模型参数集合,对汇总后的子模型参数集合中的各子模型参数进行解密,得到解密后的子模型参数集合。
参数训练端根据本地用户数据以及解密后的子模型参数集合,对子模型进行训练,得到子模型的更新参数,将子模型的更新参数更新为子模型的参数,以及对子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端。
参数协调端接收各参数训练端发送的加密后的子模型参数。
参数协调端在判断出当前迭代次数满足第二预设条件时,判断当前迭代次数是否满足第三预设条件。
参数协调端在判断出当前迭代次数不满足第三预设条件时,对加密后的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端。
参数训练端接收参数协调端返回的安全聚合后的子模型参数,对安全聚合后的子模型参数进行解密,得到解密后的子模型参数。
参数训练端根据本地用户数据以及解密后的子模型参数,对子模型进行训练,得到子模型的更新参数,将子模型的更新参数更新为子模型的参数,以及对子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端。
参数协调端接收各参数训练端发送的加密后的子模型参数。
参数协调端在判断出当前迭代次数满足第三预设条件时,对加密后的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端。
参数训练端接收参数协调端返回的安全聚合后的子模型参数,对安全聚合后的子模型参数进行解密,得到解密后的子模型参数,并将解密后的子模型参数确定为子模型对应的总模型参数。
在训练好子模型以及子模型对应总模型的参数之后,参数训练端获取用户特征数据,并将用户特征数据输入训练好的总模型中进行用户征信预测,得到总模型输出的用户征信好或者不好的结果。
与前述一种基于联邦学习和相互学习的模型参数训练方法相对应,本发明实施例还提供了一种基于联邦学习和相互学习的模型参数训练装置。图3为本发明实施例提供的一种基于联邦学习和相互学习的模型参数训练装置的结构示意图,应用于参数训练端,该装置可以包括:
第一训练模块301,用于基于本地样本数据以及预设子模型的初始参数,对子模型进行训练,得到子模型的参数。
加密发送模块302,用于对子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端,以使参数协调端对接收到的子模型参数进行汇总,并返回汇总后的子模型参数集合,或对接收到的子模型参数进行安全聚合,并返回安全聚合后的子模型参数。
第一解密模块303,用于在接收到参数协调端返回的汇总后的子模型参数集合的情况下,对汇总后的子模型参数集合中的各子模型参数进行解密,得到解密后的子模型参数集合。
第二训练模块304,用于基于本地样本数据以及解密后的子模型参数集合,对子模型进行训练,得到子模型的更新参数,将子模型的更新参数更新为子模型的参数,以及触发加密发送模块302。
第二解密模块305,用于在接收到参数协调端返回的安全聚合后的子模型参数的情况下,对安全聚合后的子模型参数进行解密,得到解密后的子模型参数。
第三训练模块306,用于基于本地样本数据以及解密后的子模型参数,对子模型进行训练,得到子模型的更新参数,将子模型的更新参数更新为子模型的参数,以及触发加密发送模块302。
确定模块307,用于将解密后的子模型参数确定为子模型对应的总模型参数。
本发明实施例提供了一种基于联邦学习和相互学习的模型参数训练装置,参数训练端将基于本地样本数据训练得到的子模型参数加密后发送给参数协调端,以使参数协调端对接收到的子模型参数进行汇总或安全聚合,并将汇总后的子模型参数集合或安全聚合后的子模型参数发送给各参数训练端,参数训练端再基于本地样本数据以及解密后的子模型参数集合,对子模型进行训练以更新子模型参数,或基于本地样本数据以及解密后的子模型参数,对子模型进行训练,进一步更新子模型的参数,使得各参数训练端在更新子模型参数的过程中,可以通过互相学习的方式更新子模型参数,能够进一步挖掘各参数训练端的数据价值,有效提升所训练模型的性能,且不需要参数协调端选择参数训练端,能够更好地适用于跨机构隐私安全的模型参数训练。
可选地,上述加密发送模块302,具体用于:
对子模型的参数进行加法同态加密,并将加密后的子模型参数发送给参数协调端。
可选地,上述第一训练模块301,具体用于
将由本地样本数据构成的本地数据集划分为多个小批量数据集;
基于预设子模型的初始参数,使用各小批量数据集对子模型进行训练,得到子模型更新参数。
在本地当前训练次数满足第一预设条件时,将当前训练次数对应的子模型更新参数,确定为子模型的参数。
其中,使用如下表达式对子模型的参数进行更新:
可选地,上述第二训练模块304,具体用于
基于解密后的子模型参数集合,使用各小批量数据集对子模型进行训练,得到子模型更新参数。
使用如下表达式对子模型的参数进行更新:
其中,Θi表示第i个参数训练端子模型的参数,η表示学习率,表示第二损失函数对Θi所求的偏导,表示子模型参数集合,Θm表示第m个参数训练端子模型的参数,K表示参数训练端的个数,表示第i个参数训练端的第t个小批量数据集,表示计算损失函数所用到的数据集,为第一损失函数,表示数据集所包含的样本数,DKL表示KL离散距离, 对于m=1,2,...,,有 表示样本数据x通过参数为Θm的模型进行预测所得结果为l的概率,y表示标签数据,C表示标签数据y的取值个数,C为正整数。
可选地,上述装置还包括:
确定模块,用于确定子模型以及所述子模型对应的总模型所对应的具体算法。
预测模块,用于接收样本数据,并将样本数据输入总模型中进行预测,得到总模型输出的预测结果。
与前述另一种基于联邦学习和相互学习的模型参数训练方法相对应,本发明实施例还提供了另一种基于联邦学习和相互学习的模型参数训练装置。图4为本发明实施例提供的另一种基于联邦学习和相互学习的模型参数训练装置的结构示意图,应用于参数协调端,该装置可以包括:
接收模块401,用于接收各参数训练端发送的加密后的子模型参数。
第一判断模块402,用于判断当前迭代次数是否满足第二预设条件,第二预设条件用于表征相互学习训练过程是否完成。
第一发送模块403,用于在第一判断模块402判断出当前迭代次数不满足第二预设条件时,对加密后的子模型参数进行汇总,并将汇总后的子模型参数集合发送给各参数训练端,以使参数训练端对汇总后的子模型参数集合中的各子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数集合,对子模型进行训练以更新子模型的参数。
第二判断模块404,用于在第一判断模块402判断出当前迭代次数满足第二预设条件时,判断当前迭代次数是否满足第三预设条件,第三预设条件用于表征联邦学习训练过程是否完成。
第二发送模块405,用于在第二判断模块404判断出当前迭代次数不满足第三预设条件时,对加密后的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端,以使参数训练端对安全聚合后的子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数,对子模型进行训练以更新子模型的参数。
第三发送模块406,用于在第二判断模块404判断出当前迭代次数满足第三预设条件时,对加密后的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端,以使参数训练端对安全聚合后的子模型参数进行解密,并将解密后的子模型参数确定为子模型对应的总模型参数。
本发明实施例提供了一种基于联邦学习和相互学习的模型参数训练装置,参数训练端与参数协调端协同训练,参数协调端接收参数训练端发送的加密后的子模型参数,在相互学习训练过程中,对接收到的子模型参数进行汇总,并将汇总后的子模型参数集合发送给各参数训练端,以使参数训练端对汇总后的子模型参数集合中的各子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数集合,对子模型进行训练以更新子模型的参数;在联邦学习训练过程中,对接收到的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端,以使参数训练端对安全聚合后的子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数,对子模型进行训练以更新子模型的参数,使得各参数训练端在更新子模型参数的过程中,可以通过互相学习的方式更新子模型参数,能够进一步挖掘各参数训练端的数据价值,有效提升所训练模型的性能,且不需要参数协调端选择参数训练端,能够更好地适用于跨机构隐私安全的模型参数训练。
可选地,参数协调端对接收到的子模型参数进行安全聚合,得到的聚合结果表示为:其中,K表示参数训练端的个数,N表示各参数训练端参与模型参数训练的样本总数,ni表示第i个参数训练端参与模型参数训练的样本总数,[[Θi]]表示加密后的第i个参数训练端子模型的参数。
本发明实施例还提供了一种服务器设备,该服务器设备可以是参数训练服务器设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现本发明实施例所提供的图1所示的一种基于联邦学习和相互学习的模型参数训练方法的步骤,并达到相同的技术效果。
本发明实施例还提供了一种服务器设备,该服务器设备可以是参数协调服务器设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现本发明实施例所提供的图2所示的一种基于联邦学习和相互学习的模型参数训练方法的步骤,并达到相同的技术效果。
上述服务器设备提到的通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述服务器设备与其他设备之间的通信。
存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processing,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、DSL(Digital Subscriber Line,数字用户线))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD(Digital Versatile Disc,数字多功能光盘))、或者半导体介质(例如SSD(Solid StateDisk,固态硬盘))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置/服务器设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种基于联邦学习和相互学习的模型参数训练方法,其特征在于,应用于参数训练端,所述方法包括:
基于本地样本数据以及预设子模型的初始参数,对子模型进行训练,得到所述子模型的参数;
对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端,以使所述参数协调端对接收到的子模型参数进行汇总,并返回汇总后的子模型参数集合,或对接收到的子模型参数进行安全聚合,并返回安全聚合后的子模型参数;
在接收到所述参数协调端返回的汇总后的子模型参数集合的情况下,对所述汇总后的子模型参数集合中的各子模型参数进行解密,得到解密后的子模型参数集合;
基于本地样本数据以及所述解密后的子模型参数集合,对所述子模型进行训练,得到所述子模型的更新参数,将所述子模型的更新参数更新为所述子模型的参数,以及执行对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端的步骤;
在接收到所述参数协调端返回的安全聚合后的子模型参数的情况下,对所述安全聚合后的子模型参数进行解密,得到解密后的子模型参数;
基于本地样本数据以及所述解密后的子模型参数,对所述子模型进行训练,得到所述子模型的更新参数,将所述子模型的更新参数更新为所述子模型的参数,以及执行对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端的步骤;
或,将所述解密后的子模型参数确定为所述子模型对应的总模型参数。
2.根据权利要求1所述的方法,其特征在于,所述对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端的步骤包括:
对所述子模型的参数进行加法同态加密,并将加密后的子模型参数发送给参数协调端。
4.根据权利要求1所述的方法,其特征在于,所述基于本地样本数据以及所述解密后的子模型参数集合,对所述子模型进行训练,得到所述子模型的更新参数的步骤,包括:
基于所述解密后的子模型参数集合,使用各小批量数据集对所述子模型进行训练,得到子模型更新参数;
使用如下表达式对子模型的参数进行更新:
5.根据权利要求1所述的方法,其特征在于,在基于本地样本数据以及预设子模型的初始参数,对子模型进行训练,得到所述子模型的参数之前,所述方法还包括:
确定子模型以及所述子模型对应的总模型所对应的具体算法;
在得到子模型对应的总模型参数之后,所述方法还包括:
接收样本数据;
将所述样本数据输入所述总模型中进行预测,得到所述总模型输出的预测结果。
6.一种基于联邦学习和相互学习的模型参数训练方法,其特征在于,应用于参数协调端,所述方法包括:
接收各参数训练端发送的加密后的子模型参数;
判断当前迭代次数是否满足第二预设条件,所述第二预设条件用于表征相互学习训练过程是否完成;
在判断出当前迭代次数不满足第二预设条件时,对所述加密后的子模型参数进行汇总,并将汇总后的子模型参数集合发送给各参数训练端,以使所述参数训练端对所述汇总后的子模型参数集合中的各子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数集合,对子模型进行训练以更新子模型的参数;
在判断出当前迭代次数满足第二预设条件时,判断当前迭代次数是否满足第三预设条件,所述第三预设条件用于表征联邦学习训练过程是否完成;
在判断出当前迭代次数不满足第三预设条件时,对所述加密后的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端,以使所述参数训练端对所述安全聚合后的子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数,对子模型进行训练以更新子模型的参数;
或,在判断出当前迭代次数满足第三预设条件时,对所述加密后的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端,以使所述参数训练端对所述安全聚合后的子模型参数进行解密,并将解密后的子模型参数确定为子模型对应的总模型参数。
8.一种基于联邦学习和相互学习的模型参数训练装置,其特征在于,应用于参数训练端,所述装置包括:
第一训练模块,用于基于本地样本数据以及预设子模型的初始参数,对子模型进行训练,得到所述子模型的参数;
加密发送模块,用于对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端,以使所述参数协调端对接收到的子模型参数进行汇总,并返回汇总后的子模型参数集合,或对接收到的子模型参数进行安全聚合,并返回安全聚合后的子模型参数;
第一解密模块,用于在接收到所述参数协调端返回的汇总后的子模型参数集合的情况下,对所述汇总后的子模型参数集合中的各子模型参数进行解密,得到解密后的子模型参数集合;
第二训练模块,用于基于本地样本数据以及所述解密后的子模型参数集合,对所述子模型进行训练,得到所述子模型的更新参数,将所述子模型的更新参数更新为所述子模型的参数,以及触发加密发送模块;
第二解密模块,用于在接收到所述参数协调端返回的安全聚合后的子模型参数的情况下,对所述安全聚合后的子模型参数进行解密,得到解密后的子模型参数;
第三训练模块,用于基于本地样本数据以及所述解密后的子模型参数,对所述子模型进行训练,得到所述子模型的更新参数,将所述子模型的更新参数更新为所述子模型的参数,以及触发加密发送模块;
确定模块,用于将所述解密后的子模型参数确定为所述子模型对应的总模型参数。
9.一种基于联邦学习和相互学习的模型参数训练装置,其特征在于,应用于参数协调端,所述装置包括:
接收模块,用于接收各参数训练端发送的加密后的子模型参数;
第一判断模块,用于判断当前迭代次数是否满足第二预设条件,所述第二预设条件用于表征相互学习训练过程是否完成;
第一发送模块,用于在所述第一判断模块判断出当前迭代次数不满足第二预设条件时,对所述加密后的子模型参数进行汇总,并将汇总后的子模型参数集合发送给各参数训练端,以使所述参数训练端对所述汇总后的子模型参数集合中的各子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数集合,对子模型进行训练以更新子模型的参数;
第二判断模块,用于在所述第一判断模块判断出当前迭代次数满足第二预设条件时,判断当前迭代次数是否满足第三预设条件,所述第三预设条件用于表征联邦学习训练过程是否完成;
第二发送模块,用于在所述第二判断模块判断出当前迭代次数不满足第三预设条件时,对所述加密后的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端,以使所述参数训练端对所述安全聚合后的子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数,对子模型进行训练以更新子模型的参数;
第三发送模块,用于在所述第二判断模块判断出当前迭代次数满足第三预设条件时,对所述加密后的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端,以使所述参数训练端对所述安全聚合后的子模型参数进行解密,并将解密后的子模型参数确定为子模型对应的总模型参数。
10.一种服务器设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5或6-7任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010892666.8A CN112039702B (zh) | 2020-08-31 | 2020-08-31 | 基于联邦学习和相互学习的模型参数训练方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010892666.8A CN112039702B (zh) | 2020-08-31 | 2020-08-31 | 基于联邦学习和相互学习的模型参数训练方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112039702A true CN112039702A (zh) | 2020-12-04 |
CN112039702B CN112039702B (zh) | 2022-04-12 |
Family
ID=73587537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010892666.8A Active CN112039702B (zh) | 2020-08-31 | 2020-08-31 | 基于联邦学习和相互学习的模型参数训练方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112039702B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112288572A (zh) * | 2020-12-24 | 2021-01-29 | 上海冰鉴信息科技有限公司 | 业务数据处理方法及计算机设备 |
CN112733967A (zh) * | 2021-03-30 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 联邦学习的模型训练方法、装置、设备及存储介质 |
CN113543120A (zh) * | 2021-09-17 | 2021-10-22 | 百融云创科技股份有限公司 | 一种基于联邦学习的移动终端信用反欺诈预估方法及系统 |
CN114881248A (zh) * | 2022-06-30 | 2022-08-09 | 华控清交信息科技(北京)有限公司 | 两方横向联邦学习方法和用于两方横向联邦学习的装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008696A (zh) * | 2019-03-29 | 2019-07-12 | 武汉大学 | 一种面向深度联邦学习的用户数据重建攻击方法 |
CN110399742A (zh) * | 2019-07-29 | 2019-11-01 | 深圳前海微众银行股份有限公司 | 一种联邦迁移学习模型的训练、预测方法及装置 |
US20200050951A1 (en) * | 2018-08-09 | 2020-02-13 | International Business Machines Corporation | Collaborative distributed machine learning |
CN110797124A (zh) * | 2019-10-30 | 2020-02-14 | 腾讯科技(深圳)有限公司 | 一种模型多端协同训练方法、医疗风险预测方法和装置 |
CN111046433A (zh) * | 2019-12-13 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 一种基于联邦学习的模型训练方法 |
US20200125739A1 (en) * | 2018-10-19 | 2020-04-23 | International Business Machines Corporation | Distributed learning preserving model security |
CN111091200A (zh) * | 2019-12-20 | 2020-05-01 | 深圳前海微众银行股份有限公司 | 训练模型的更新方法、系统、智能体、服务器及存储介质 |
CN111553443A (zh) * | 2020-05-14 | 2020-08-18 | 北京华宇元典信息服务有限公司 | 裁判文书处理模型的训练方法、训练装置和电子设备 |
-
2020
- 2020-08-31 CN CN202010892666.8A patent/CN112039702B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200050951A1 (en) * | 2018-08-09 | 2020-02-13 | International Business Machines Corporation | Collaborative distributed machine learning |
US20200125739A1 (en) * | 2018-10-19 | 2020-04-23 | International Business Machines Corporation | Distributed learning preserving model security |
CN110008696A (zh) * | 2019-03-29 | 2019-07-12 | 武汉大学 | 一种面向深度联邦学习的用户数据重建攻击方法 |
CN110399742A (zh) * | 2019-07-29 | 2019-11-01 | 深圳前海微众银行股份有限公司 | 一种联邦迁移学习模型的训练、预测方法及装置 |
CN110797124A (zh) * | 2019-10-30 | 2020-02-14 | 腾讯科技(深圳)有限公司 | 一种模型多端协同训练方法、医疗风险预测方法和装置 |
CN111046433A (zh) * | 2019-12-13 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 一种基于联邦学习的模型训练方法 |
CN111091200A (zh) * | 2019-12-20 | 2020-05-01 | 深圳前海微众银行股份有限公司 | 训练模型的更新方法、系统、智能体、服务器及存储介质 |
CN111553443A (zh) * | 2020-05-14 | 2020-08-18 | 北京华宇元典信息服务有限公司 | 裁判文书处理模型的训练方法、训练装置和电子设备 |
Non-Patent Citations (1)
Title |
---|
胡彬轩: "基于联邦学习的空气质量监测系统设计与实现", 《中国优秀博硕士学位论文全文数据库(硕士)工程科技Ⅰ辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112288572A (zh) * | 2020-12-24 | 2021-01-29 | 上海冰鉴信息科技有限公司 | 业务数据处理方法及计算机设备 |
US11321777B1 (en) | 2020-12-24 | 2022-05-03 | Shanghai Icekredit, Inc. | Business data processing method and computer device |
CN112733967A (zh) * | 2021-03-30 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 联邦学习的模型训练方法、装置、设备及存储介质 |
CN113543120A (zh) * | 2021-09-17 | 2021-10-22 | 百融云创科技股份有限公司 | 一种基于联邦学习的移动终端信用反欺诈预估方法及系统 |
CN113543120B (zh) * | 2021-09-17 | 2021-11-23 | 百融云创科技股份有限公司 | 一种基于联邦学习的移动终端信用反欺诈预估方法及系统 |
CN114881248A (zh) * | 2022-06-30 | 2022-08-09 | 华控清交信息科技(北京)有限公司 | 两方横向联邦学习方法和用于两方横向联邦学习的装置 |
CN114881248B (zh) * | 2022-06-30 | 2022-09-27 | 华控清交信息科技(北京)有限公司 | 两方横向联邦学习方法和用于两方横向联邦学习的装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112039702B (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112039702B (zh) | 基于联邦学习和相互学习的模型参数训练方法及装置 | |
CN110245510B (zh) | 用于预测信息的方法和装置 | |
WO2020220823A1 (zh) | 用于构建决策树的方法和装置 | |
CN111915023B (zh) | 一种基于联邦学习的超参数确定方法及装置 | |
US20230078061A1 (en) | Model training method and apparatus for federated learning, device, and storage medium | |
CN111814985A (zh) | 联邦学习网络下的模型训练方法及其相关设备 | |
CN111428887B (zh) | 一种基于多个计算节点的模型训练控制方法、装置及系统 | |
CN112465627B (zh) | 基于区块链和机器学习的金融借贷审核方法及系统 | |
CN112132198A (zh) | 数据处理方法、装置、系统和服务器 | |
US20190236607A1 (en) | Transaction Aggregation and Multiattribute Scoring System | |
CN112307472A (zh) | 基于智能决策的异常用户识别方法、装置及计算机设备 | |
CN109947740A (zh) | 区块链系统的性能优化方法及装置 | |
CN111553744A (zh) | 联邦产品推荐方法、装置、设备及计算机存储介质 | |
CN111563267A (zh) | 用于联邦特征工程数据处理的方法和装置 | |
WO2022156594A1 (zh) | 联邦模型训练方法、装置、电子设备、计算机程序产品及计算机可读存储介质 | |
WO2023216494A1 (zh) | 基于联邦学习的用户服务策略确定方法及装置 | |
WO2022237175A1 (zh) | 图数据的处理方法、装置、设备、存储介质及程序产品 | |
CN115545709A (zh) | 配资异常交易识别方法及装置 | |
CN113298121A (zh) | 基于多数据源建模的消息发送方法、装置和电子设备 | |
CN116432040B (zh) | 基于联邦学习的模型训练方法、装置、介质以及电子设备 | |
CN113221153A (zh) | 图神经网络训练方法、装置、计算设备及存储介质 | |
CN115099875A (zh) | 基于决策树模型的数据分类方法及相关设备 | |
US20230259786A1 (en) | Obfuscation of encoded data with limited supervision | |
US20240037543A1 (en) | Systems and methods for entity labeling based on behavior | |
Cui et al. | Digital marketing program design based on abnormal consumer behavior data classification and improved homomorphic encryption algorithm |
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 |