一种基于安全多方计算的模型联合训练方法与流程

文档序号:23857039发布日期:2021-02-05 15:27阅读:107来源:国知局

[0001]
本说明书涉及机器学习领域,特别涉及一种基于安全多方计算的模型联合训练方法和系统。


背景技术:

[0002]
为了得到更好的机器学习模型,通过多个参与方的数据或计算资源进行合作,以进行模型的联合训练。然而在一些联合训练场景中,各参与方的训练数据可能涉及用户隐私或商业秘密,一旦信息泄露,将导致不可挽回的负面影响。出于信息安全考虑,在模型的联合训练中,数据是加密的。数据加密确保了信息安全,但也使得模型的训练状态难以及时获知。
[0003]
因此,有必要提出一种基于安全多方计算的模型联合训练方法,在训练过程加密的情况下能获知模型在训练中的状态,提高训练效率。


技术实现要素:

[0004]
本说明书实施例之一提供一种基于安全多方计算的模型联合训练方法,所述安全多方计算包括多个参与方,所述方法由其中某一参与方执行;所述方法包括:与其他参与方协同,基于密态特征和密态标签对模型进行联合训练,在密态下对所述模型进行一轮或多轮迭代更新,获得更新后的密态模型参数;其中,所述一轮或多轮迭代更新中的至少一轮进一步包括:与其他参与方协同,确定模型的密态损失函数值;与其他参与方协同,基于所述密态损失函数值判断该模型的损失函数值是否满足预设的阈值条件,得到判断结果;基于所述判断结果确定是否停止联合训练。
[0005]
本说明书实施例之一提供一种基于安全多方计算的模型联合训练系统,所述安全多方计算包括多个参与方,所述系统由其中某一参与方实现,其包括:训练模块,用于与其他参与方协同,基于密态特征和密态标签对模型进行联合训练,在密态下对所述模型进行一轮或多轮迭代更新,获得更新后的密态模型参数;其中,所述训练模块进一步包括:损失函数确定单元,用于在所述一轮或多轮迭代更新中的至少一轮中与其他参与方协同,确定模型的密态损失函数值;判断结果获取单元,用于在所述至少一轮中与其他参与方协同,基于所述密态损失函数值判断该模型的损失函数值是否满足预设的阈值条件,得到判断结果;判断结果执行单元,用于在所述至少一轮中基于所述判断结果确定是否停止联合训练。
[0006]
本说明书实施例之一提供一种基于安全多方计算的模型联合训练,包括处理器以及存储质,所述存储介质用于存储计算机指令,所述处理器用于执行计算机指令中的至少一部分以实现上述基于安全多方计算的模型联合训练方法。
附图说明
[0007]
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其
中:图1是根据本说明书一些实施例所示的基于安全多方计算的模型联合训练系统的应用场景示意图;图2是根据本说明书一些实施例所示的基于安全多方计算的模型联合训练方法的示例性流程图;图3为根据本说明书一些实施例所示的得到判断结果的示例性流程图;图4为根据本说明书另一些实施例所示的得到判断结果的示例性流程图;图5是根据本说明书一些实施例所示的秘密分享加密算法下得到判断结果的示例性流程图;图6是根据本说明书一些实施例所示的基于安全多方计算的模型联合训练系统的示例性系统框图。
具体实施方式
[0008]
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
[0009]
应当理解,本文使用的“服务端”、“平台”、“后台”、“服务器”等可以互换,“用户端”、“用户终端”、“请求者”、“前端”、“用户设备”等可以互换。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
[0010]
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
[0011]
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
[0012]
图1是根据本说明书一些实施例所示的基于安全多方计算的模型联合训练系统的应用场景示意图。
[0013]
在应用场景中可以包括多个参与方110与网络120,多个参与方110通过网络120进行信息交互,其中参与方110可以进一步包括处理设备112和存储设备130。在一些实施例中,还可以包括第三方150。
[0014]
基于安全多方计算的模型联合训练系统100可以通过实施本说明书中披露的方法和/或过程来进行模型的联合训练。在一些实施例中,模型可以用于处理各个行业的数据,包括但不限于金融行业、保险行业、互联网行业、汽车行业、餐饮行业、电信行业、能源行业、娱乐行业、体育行业、物流行业、医疗行业、安全行业等。
[0015]
在应用场景中,每一个参与方110可以持有模型训练所需的一部分数据。具体的,
参与方110a可以与参与方110b协同,对模型进行联合训练。两者各自持有的数据可以储存于自身的存储设备130中。在一些实施例中,参与方110a或110b避免其数据泄漏,可以对其持有的数据进行加密,而为了进行联合训练,参与方110a和110b之间加密的方式需要达成共识。
[0016]
参与方110可以用于处理来自本系统至少一个组件或外部数据源(例如,云数据中心)的数据和/或信息。在一些实施例中,参与方110可以是单一服务器或服务器组。该服务器组可以是集中式或分布式的(例如,参与方110可以是分布式系统)。在一些实施例中,参与方110可以是区域的或者远程的。在一些实施例中,参与方110可以在云平台上实施,或者以虚拟方式提供。仅作为示例,所述云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。
[0017]
在一些实施例中,参与方110可包含处理设备112。处理设备112可以处理从其他设备或系统组成部分中获得的数据和/或信息。处理设备112可以基于这些数据、信息和/或处理结果执行程序指令,以执行一个或多个本说明书中描述的功能。在一些实施例中,处理设备112可以包含一个或多个子处理设备(例如,单核处理设备或多核多芯处理设备)。仅作为示例,处理设备112可以包括中央处理器(cpu)、专用集成电路(asic)、专用指令处理器(asip)、图形处理器(gpu)、物理处理器(ppu)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编辑逻辑电路(pld)、控制器、微控制器单元、精简指令集电脑(risc)、微处理器等或以上任意组合。
[0018]
网络120可以连接系统的各组成部分和/或连接系统与外部资源部分。网络120使得各组成部分之间,以及与系统之外其他部分之间可以进行通讯,促进数据和/或信息的交换。在一些实施例中,网络120可以是有线网络或无线网络中的任意一种或多种。例如,网络120可以包括电缆网络、光纤网络、电信网络、互联网、局域网络(lan)、广域网络(wan)、无线局域网络(wlan)、城域网(man)、公共交换电话网络(pstn)、蓝牙网络、紫蜂网络(zigbee)、近场通信(nfc)、设备内总线、设备内线路、线缆连接等或其任意组合。各部分之间的网络连接可以是采用上述一种方式,也可以是采取多种方式。在一些实施例中,网络可以是点对点的、共享的、中心式的等各种拓扑结构或者多种拓扑结构的组合。在一些实施例中,网络120可以包括一个或以上网络接入点。例如,网络120可以包括有线或无线网络接入点,例如基站和/或网络交换点,通过这些系统的一个或多个组件可连接到网络120上以交换数据和/或信息。
[0019]
存储设备130可以用于存储数据和/或指令,如训练样本、模型参数以及与模型训练过程相关的其他数据。存储设备130可以包括一个或多个存储组件,每个存储组件可以是一个独立的设备,也可以是其他设备的一部分。在一些实施例中,存储设备130可包括随机存取存储器(ram)、只读存储器(rom)、大容量存储器、可移动存储器、易失性读写存储器等或其任意组合。示例性的,大容量储存器可以包括磁盘、光盘、固态磁盘等。在一些实施例中,所述存储设备130可在云平台上实现。
[0020]
第三方150与参与方110类似,可以用于处理来自本系统至少一个组件或外部数据源(例如,云数据中心)的数据和/或信息。在一些实施例中,第三方150可以是单一服务器或服务器组。在一些实施例中,第三方不持有模型联合训练所需的数据,在进行安全多方计算的场景下,可以作为解密方解密中间数据或结果,或者用于生成随机数等。
[0021]
安全多方计算(secure multi-party computation,mpc)是一种安全多方计算协议,各参与方110之间安全地计算一个约定函数。在一些实施例中,安全多方计算涉及混淆电路、秘密共享、同态加密、不经意传输等多种密码学技术。
[0022]
秘密分享加密算法通过各将隐私数据分片储存于各个参与方110,即所有参与方110得到的分片的合值即为隐私数据,攻击者若想获知隐私数据需要得到所有参与方110的分片。在一些实施例中,对模型联合训练中所使用的安全多方计算可以基于秘密分享实现,各参与方110可以将自身持有的训练样本的特征和标签拆分成多个分片,并与其他参与方交互,将自身持有的一部分数据分片传输给其他各参与方,同时获得其他各参与方的部分数据分片,进而每个参与方都拥有自身训练样本的特征分片和标签分片,以及其他各参与方的训练数据的特征分片和标签分片,各参与方可以协同完成多方计算,如多方乘法计算、比较运算等,以基于各参与方的训练样本共同进行模型训练,并获得模型参数分片。任意参与方无法通过其自身持有的特征分片或标签分片进行解密,对联合训练中任意密态(如分片形式)的数据进行解密都需要所有参与方110协同进行。
[0023]
由于训练所需的特征和标签在训练过程中都是经过加密的,因此在一些实施例中,确定是基于当前轮更新获得的参数进行下一次迭代还是确定最终模型的方式主要基于判断迭代次数是否已经达到预设迭代次数。预设迭代次数可以根据模型中样本数量或设计者的经验选取,例如,预设迭代次数可以设置为5000、20000、50000、100000等。但在训练过程中,模型可能不是逐渐收敛的,预设迭代次数设置过小,过早的结束模型训练可能会导致模型训练不到位,训练完成的模型效果比较差;而预设迭代次数设置过大,过晚的结束模型训练,可能在训练后期模型并没有继续收敛,从而导致运算资源的浪费。
[0024]
基于上述一些实施例中存在的问题,本说明书提出了一种在模型联合训练过程中,在每一个轮次或其中某些轮次中判断一次当前模型的损失函数值是否达到预设条件,以确定当前模型的状态的方法。在一些实施例中,当损失函数过大时,可以认为模型在此次训练中是发散的,无法继续收敛,因此可以停止训练;当损失函数值较小时,可以认为模型此时已经训练完成,继续训练容易造成运算资源的浪费,因此可以停止联合训练。
[0025]
在一些实施例中,基于安全多方计算的模型联合训练方法可以由图1中参与方110中的任一方,如参与方110a,执行,其主流程包括:与其他参与方协同,基于密态特征和密态标签对模型进行联合训练,在密态下对所述模型进行一轮或多轮迭代更新,获得更新后的密态模型参数。在一些实施例中,该步骤可以由训练模块710执行。
[0026]
在一些实施例中,上述步骤可以是参与方110a与其他参与方(如参与方110b)协同执行,以实现对模型进行联合训练。
[0027]
因此,在一些实施例中,可以将训练所需的特征表示为x、将训练所需的标签表示为y。在一些实施例中,x、y可以分别表示多个训练样本(如一次迭代更新中使用的训练样本)的特征与标签组成的矩阵或向量,对特征加密得到的加密特征可以表示为[x]、对标签加密得到的加密标签可以表示为[y]。需要说明的时,当x为矩阵时,x表示多个训练样本的特征组成的特征矩阵,[x]表示对矩阵内的每个元素进行加密。此外,在本说明书中,如无进一步说明,加密可指任何加密方法。
[0028]
在一些实施例中,在联合训练过程中对模型的迭代更新方法取决于模型的类型。在一些实施例中,模型可以为线性回归模型,具体的,在一些实施例中,线性回归模型的迭
代公式可以表示为:(1)公式(1)中,x和y分别为前述进行联合训练所需的训练特征和训练标签;为训练特征x的转置矩阵;w为模型参数;为模型的学习率,其中模型的学习率为一个常数,在一些实施例中,根据模型中样本数量或设计者的经验来选择合适的学习率,例如,学习率可以设置为3、1、0.5、0.1、0.05、0.01、0.005,0.001等,在一些实施例中,较小的学习率可以抑制模型发散,但模型收敛速度相对较慢。
[0029]
基于公式(1),可以将密态模型参数表示为[w],密态模型参数可以是模型参数w加密得到,在一些实施例中,由于密态特征和密态标签均为加密后的数据,根据密文的性质可知,在迭代后得到的模型参数也是经过加密的。在一些实施例中,在密态下对所述模型进行迭代更新,获得更新后的密态模型参数可以表示为:(2)需要说明的是,在一些实施例中,公式(2)中的学习率也可以进行加密。在基于秘密分享加密算法的安全多方计算场景下,各参与方基于自身持有的模型参数分片、特征分片与标签分片(包括自身训练样本的分片和来自其他参与方的训练样本的分片)与其他各参与方多次交互,完成多方乘法计算等操作,得到当前轮更新后的模型参数分片。
[0030]
在一些实施例中,参与方与其他参与方协同下,每执行一次上述公式(2),即对模型进行一轮迭代更新,获得更新后的模型参数以基于此进行下一次迭代,或者基于此确定最终模型。
[0031]
在一些实施例中,模型还可以是逻辑回归模型,逻辑回归可以理解成是将线性回归在上的结果,通过sigmoid函数映射到(0,1)之间,可以用于解决一些分类问题。因此,在一些实施例中,与线性回归类似,逻辑回归模型的迭代公式可以表示为:(3)同理,在一些实施例中,在密态下对所述模型进行迭代更新,获得更新后的密态模型参数可以表示为:(4)在一些实施例中,可以基于线性拟合将sigmoid函数转换为线性函数,以实现基于秘密分享加密算法的逻辑回归模型训练。具体应用时,线性函数的形式可以由多种,各参与方可以实现基于此达成共识。在一些实施例中,进行联合训练的模型还可以是能够使用梯度下降法进行参数调整的其他模型,如gbdt(gradient boosting decision tree,梯度提升决策树)模型或随机森林等。
[0032]
图2是根据本说明书一些实施例所示的基于安全多方计算的模型联合训练方法的示例性流程图。
[0033]
在一些实施例中,在上述对模型参数进行一轮或多轮迭代更新中的至少一轮进一步包括如图2所示的步骤:
步骤220,与其他参与方协同,确定模型的密态损失函数值。在一些实施例中,步骤220可以由损失函数确定单元711执行。
[0034]
在一些实施例中,在一轮迭代结束时,参与方可以与其他参与方协同,基于密态特征、密态标签和密态模型参数确定模型的密态损失函数值。可以理解的,在模型联合训练过程中,特征、标签均为加密的情况下,所得到的损失函数值也是经过加密的。
[0035]
在一些实施例中,损失函数值可以基于模型参数和特征得到预测值,再由预测值和标签通过计算得到。在一些实施例中,损失函数值的计算方式与模型相关,继续采用先前的示例,当模型为线性回归模型时,基于密态模型参数和密态特征得到密态预测值可以表示为:(5)进一步的,根据密态预测值和密态标签计算得到密态损失函数,在一些实施例中,可以选择均方方差(mse)作为损失函数,表示为:(6)公式(6)中,n为一轮迭代更新中训练样本的数量,在一些实施例中,可以利用公式(6)计算训练样本中的一个子集的损失函数,此时n可以是训练样本的一个子集的样本数量。在其他实施例中,还可以选择其他指标作为损失函数,如平均绝对误差(mae),pr曲线(precision-recall curves)或f度量值(f-measure)等。可以理解的是,密态损失函数的计算方式根据损失函数的指标选取也会相应变化,在本说明书中不做限制。
[0036]
示例性的,当模型为逻辑回归时,与线性回归类似,在一些实施例中,可以通过公式(5)基于密态模型参数和密态特征得到密态预测值,根据密态预测值和密态标签计算得到密态损失函数,在一些实施例中,可以表示为:(7)在一些实施例中,可以基于线性拟合将log函数转换为线性函数,以实现基于秘密分享加密算法的逻辑回归模型训练。具体应用时,线性函数的形式可以由多种,各参与方可以实现基于此达成共识。
[0037]
步骤230,与其他参与方协同,基于所述密态损失函数值判断该模型的损失函数值是否满足预设的阈值条件,得到判断结果。在一些实施例中,步骤230可以由判断结果获取单元712执行。
[0038]
在一些实施例中,由于密态模型参数和密态损失函数值是经过加密的,参与方无法直接获知,因此在更新模型参数后是进行下一次迭代还是确定最终模型通常取决于判断迭代次数是否已经达到预设迭代次数,这样可能会导致模型训练不足或者浪费训练资源。基于此,在一些实施例中,设置预设的阈值条件,通过判断密态损失函数值是否满足预设的阈值条件,以确定是否继续训练。
[0039]
在一些实施例中,步骤230中基于密态损失函数值判断该模型的损失函数值是否满足预设的阈值条件的方式并不唯一,在后文中依照步骤310~320和步骤410~420两种方案
分别进行描述。
[0040]
步骤240,基于判断结果确定是否停止联合训练。在一些实施例中,步骤240可以由判断结果执行单元713执行。
[0041]
应当注意的是,上述有关流程200的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程200进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
[0042]
图3为根据本说明书一些实施例所示的得到判断结果的示例性流程图。
[0043]
步骤310,与其他参与方协同,解密密态损失函数值,得到该模型的损失函数值。
[0044]
在一些实施例中,密态损失函数值是经过加密的,并且安全多方计算的模型联合训练中的加密方案是参与方之间达成共识的,因此参与方可以与其他参与方协同,解密密态损失函数值得到明文的模型的损失函数值。以基于秘密分享的模型联合训练为例,各参与方通过协同运算可以得到损失函数值分片,各参与方可以将自身的损失函数值分片传输给解密方,解密方计算各个损失函数值分片的合值,得到解密后的模型的损失函数值。其中,计算合值的方式基于秘密分享的方式确定,例如,对于加性秘密分享,合值可以通过对各个分片求和得到。
[0045]
步骤320,判断所述损失函数值是否满足预设的阈值条件,得到所述判断结果。
[0046]
在一些实施例中,所述预设的阈值条件包括大于第一阈值或者小于第二阈值;且当该模型的损失函数值满足所述预设的阈值条件,得到的判断结果用于指示停止联合训练。需要说明的是,在其他实施例中,预设的阈值条件还可以是其他条件,如与上一次迭代获得的损失函数值的差值范围等,本说明书不做限制。
[0047]
在一些实施例中,当损失函数值大于第一阈值,即在本次迭代后,所得到的损失函数大于预期,可以认为模型在此次训练中是发散的,无法继续收敛,因此没有继续训练的必要。当损失函数值小于第二阈值,即在本次迭代后,所得到的损失函数已经足够小,可以认为模型此时已经训练完成,继续迭代使损失函数进一步降低的空间较小,容易造成运算资源的浪费,因此可以停止联合训练。
[0048]
在一些实施例中,由于损失函数值已经解密,因此可以直接进行判断损失函数值是否满足预设的阈值条件所需的大于和/或小于的运算,得到判断结果。可以理解的是,在一些现实应用场景中,损失函数值的暴露不会轻易导致训练样本特征或标签的泄露。因此,在得到密态损失函数值后,对其进行解密再判断其是否满足预设的阈值条件可以降低运算成本,提高运算效率。
[0049]
图4为根据本说明书另一些实施例所示的得到判断结果的示例性流程图。
[0050]
在一些实施例中,所示的方案会揭露损失函数,在一些实施例中,为了满足更强的数据隐私需求场景,本说明书还提供了一种不揭露损失函数获取判断结果的方案,包括:步骤410,与其他参与方协同,基于密态损失函数值判断该模型的损失函数值是否满足预设的阈值条件,得到密态判断结果。
[0051]
在一些实施例中,参与方通过与其他参与方协同进行多方条件运算,以基于密态损失函数值判断该模型的损失函数值是否满足预设的阈值条件。在一些实施例中,继续以预设的阈值条件包括大于第一阈值或者小于第二阈值为例,参与方与其他参与方协同进行的多方条件运算即包括大于、小于、或者等逻辑运算,在加密的形式下进行上述运算的方式
在后文中进行说明。
[0052]
由于密态损失函数是经过加密的,因此通过密态损失函数与第一阈值或第二阈值得到的判断结果也是经过加密的。需要说明的是,在一些实施例中,第一阈值和第二阈值也可以是经过加密的。
[0053]
步骤420,与其他参与方协同,解密所述密态判断结果得到所述判断结果。
[0054]
在一些实施例中,由于密态判断结果也是经过加密的,因此参与方需要与其他参与方协同,解密密态判断结果得到明文的判断结果。
[0055]
示例性的,可以将损失函数值大于第一阈值或者小于第二阈值表示为1,损失函数并未大于第一阈值或者小于第二阈值表示为0,此时解密后,得到的判断结果仅为1位,无法泄露其他任何隐私数据,较大程度上保护了数据隐私。示例性的,当判断结果为1时,指示可以停止联合训练。
[0056]
在一些实施例中,模型联合训练中的安全多方计算可以是基于秘密分享加密算法实现的。不难理解,前述步骤中,参与者所持有的密态特征、密态标签和密态模型参数即为通过秘密分享加密算法加密后的特征分片、标签分片和模型参数分片。参与方基于自身持有的分片协同运算,得到的运算结果依然以秘密分享的分片形式存储在本地。如步骤220中计算损失函数值时涉及的乘法为多方乘法运算,同时sigmoid函数、对数计算(log)也需要转成近似的线性公式。
[0057]
图5是根据本说明书一些实施例所示的秘密分享加密算法下得到判断结果的示例性流程图。
[0058]
在一些实施例中,预设的阈值条件包括大于第一阈值或者小于第二阈值;基于该秘密分享加密算法,所述与其他参与方协同,基于密态损失函数值判断该模型的损失函数值是否满足预设的阈值条件,得到判断结果,包括:步骤610,获得第一阈值分片与第二阈值分片。
[0059]
在一些实施例中,各参与方可以对第一阈值和第二阈值达成共识,即第一阈值和第二阈值可以暴露给各参与方的,同时为了进行多方条件运算,其中一方可以将第一阈值和第二阈值分别拆分成多个分片,使得各参与方分别持有第一阈值分片和第二阈值分片。在一些实施例中,也可以由第三方对第一阈值和第二阈值分别拆分后将各个分片分发给各参与方。
[0060]
步骤620,基于本地持有的损失函数值分片、所述第一阈值分片和所述第二阈值分片,与其他参与方协同完成多方条件判断运算,判断该模型的损失函数值是否大于第一阈值或者小于第二阈值,得到判断结果分片。
[0061]
与步骤420类似,参与方与其他参与方协同判断,得到判断结果。在一些实施例中,基于秘密分享完成多方条件判断运算,不难理解,参与方得到的结果为判断结果分片,若要获取用于指示停止联合训练的判断结果,需要获取所有参与方的判断结果分片。
[0062]
步骤630,接收其他参与方的判断结果分片,基于全部参与方的判断结果分片得到所述判断结果。
[0063]
在一些实施例中,参与方接收其他参与方的判断结果分片,基于全部参与方的判断结果分片得到所述判断结果。在其他实施例中,可以是任意参与方接收其他参与方的判断结果分片,基于全部参与方的判断结果分片得到所述判断结果。揭露判断结果的一方可
以指示所有参与方,以终止训练。
[0064]
在一些实施例中,可以通过解密方获取全部参与方的判断结果分片,从而使解密方获取判断结果。基于此,在一些实施例中,步骤630可以替换为步骤640,将本地持有的判断结果分片发送给解密方以便解密方基于全部参与方的判断结果分片得到所述判断结果。
[0065]
在一些实施例中,解密方可以是图1中的第三方,第三方获取判断结果后可以直接将该结果发送至所有参与方,以终止训练。
[0066]
在一些实施例中,不必在模型参数每一轮迭代更新后执行流程200,作为示例,可以再所述一轮或多轮模型参数迭代更新中间隔预设更新次数的轮次。
[0067]
在一些实施例中,判断损失函数值是否满足预设的阈值条件会消耗一定计算资源,因此可以通过设置中间隔预设更新次数,减少进行条件判断的次数。在一些实施例中,中间隔预设更新次数的设置可以与模型中样本数量或模型的类型决定。以中间隔预设更新次数为20为例,在参与方与其他参与方协同,基于密态特征和密态标签对模型进行联合训练,在密态下对所述模型每进行20轮模型参数的迭代更新后,执行步骤220~230,判断当前损失函数是否满足预设的阈值条件,得到判断结果,并基于判断结果确定否则停止联合训练。在一些实施例中,中间隔预设更新次数可以设置为10、50、100或1000等。在其他实施例中,还可以将中间隔预设更新次数设置为0,此时该模型的联合训练过程中,不进行损失函数的判断,模型迭代直至达到预设迭代次数后停止。
[0068]
图6是根据本说明书一些实施例所示的基于安全多方计算的模型联合训练系统的示例性系统框图。
[0069]
如图6所示,该基于安全多方计算的模型联合训练系统700可以包括训练模块710,训练模块710还可以进一步包括损失函数确定单元711、判断结果获取单元712和判断结果执行单元713。这些模块或单元也可以作为应用程序或一组由处理引擎读取和执行的指令实现。此外,模块或单元可以是硬件电路和程序/指令的任何组合。例如,当处理引擎或处理器执行应用程序/一组指令时,模块或单元可以是处理器的一部分。
[0070]
训练模块710用于与其他参与方协同,基于密态特征和密态标签对模型进行联合训练,在密态下对所述模型进行一轮或多轮迭代更新,获得更新后的密态模型参数;在一些实施例中,关于迭代更新的更多描述可以参考图1和图2中相关描述,在此不再赘述。
[0071]
基于安全多方计算的模型联合训练系统中所述训练模块710进一步包括:损失函数确定单元711用于在所述一轮或多轮迭代更新中的至少一轮中与其他参与方协同,确定模型的密态损失函数值。
[0072]
在一些实施例中,关于密态损失函数值的更多描述可以参考步骤220中相关描述,在此不再赘述。
[0073]
判断结果获取单元712,用于在所述至少一轮中与其他参与方协同,基于密态损失函数值判断该模型的损失函数值是否满足预设的阈值条件,得到判断结果。
[0074]
在一些实施例中,关于判断该模型的损失函数值是否满足预设的阈值条件的更多描述可以参考步骤230中相关描述,在此不再赘述。
[0075]
判断结果执行单元713,用于在所述至少一轮中基于判断结果确定否则停止联合训练。
[0076]
在一些实施例中,关于判断结果确定否则停止的更多描述可以参考步骤240中相关描述,在此不再赘述。
[0077]
在一些实施例中,所述判断结果获取单元还用于在所述至少一轮中:与其他参与方协同,解密密态损失函数值,得到该模型的损失函数值;判断所述损失函数值是否满足预设的阈值条件,得到所述判断结果。
[0078]
在一些实施例中,所述判断结果获取单元还用于在所述至少一轮中:与其他参与方协同,基于密态损失函数值判断该模型的损失函数值是否满足预设的阈值条件,得到密态判断结果;与其他参与方协同,解密密态判断结果得到所述判断结果。
[0079]
在一些实施例中,所述预设的阈值条件包括大于第一阈值或者小于第二阈值;且当该模型的损失函数值满足所述预设的阈值条件,得到的判断结果用于指示停止联合训练。
[0080]
在一些实施例中,所述安全多方计算基于秘密分享加密算法实现;所述判断结果获取单元还用于在所述至少一轮中:获得第一阈值分片与第二阈值分片;基于本地持有的损失函数值分片、第一阈值分片和第二阈值分片,与其他参与方协同完成多方条件判断运算,判断该模型的损失函数值是否大于第一阈值或者小于第二阈值,得到判断结果分片;接收其他参与方的判断结果分片,基于全部参与方的判断结果分片得到所述判断结果;或者,将本地持有的判断结果分片发送给解密方以便解密方基于全部参与方的判断结果分片得到所述判断结果。
[0081]
在一些实施例中,所述模型为逻辑回归模型、线性回归模型或gbdt模型。
[0082]
在一些实施例中,所述至少一轮为所述一轮或多轮迭代更新中间隔预设更新次数的轮次。
[0083]
需要注意的是,以上对于模块及单元的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块或单元进行任意组合,或者构成子系统与其他模块连接。
[0084]
本说明书实施例可能带来的有益效果包括但不限于:(1)在保护隐私数据安全的前提下,通过仅揭示损失函数值或者基于密态损失函数值获得损失函数值是否满足预设的阈值条件的判断结果,基于判断结果了解模型的训练状态,进而能够及时终止联合训练,节省了计算资源,提高了训练效率;(2)选择性的在多轮模型参数迭代更新中的部分轮次中对模型的损失函数值进行阈值条件判断,进一步节省了计算资源。
[0085]
需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
[0086]
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
[0087]
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特
点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
[0088]
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
[0089]
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
[0090]
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有
±
20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
[0091]
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
[0092]
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1