一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

多方联合训练逻辑回归模型的方法及装置与流程

2022-08-31 22:26:56 来源:中国专利 TAG:


1.本说明书一个或多个实施例涉及机器学习技术领域,尤其涉及一种多方联合训练逻辑回归模型的方法及装置。


背景技术:

2.数据是机器学习的基础,而在大多数行业中,出于隐私安全等问题,数据常常是以孤岛的形式存在,甚至在同一个公司的不同部门之间实现数据集中整合也面临重重阻力。针对数据孤岛和数据隐私的两难问题,业界提出联邦学习(federated learning,简称fl),又名联邦机器学习、联合学习、联盟学习,fl是一个机器学习框架,旨在帮助多个数据方在满足数据隐私安全的前提下,进行数据使用和机器学习建模。
3.逻辑回归(logistic regression,简称lr)模型是一种被广泛应用的机器学习模型,在fl框架下训练lr模型是一大研究热点。然而,目前尚不存在对lr模型在训练过程中的收敛程度进行安全评判的方案,导致lr模型的训练效率受到限制。
4.因此,需要一种针对lr模型的联合训练方案,在保护各方输入的隐私安全的同时,高效评判lr模型的收敛状态,用于指导lr模型训练的后续进程,例如,及时停止训练以避免过拟合等。


技术实现要素:

5.本说明书一个或多个实施例描述了多方联合训练逻辑回归模型的方法及装置,通过及时、高效地评估逻辑回归模型的收敛状态,指导后续训练进程,从而训练出性能优异的逻辑回归模型。
6.根据第一方面,提供一种多方联合训练逻辑回归模型的方法,所述多方各自持有形成训练样本集的部分数据,所述方法应用于多方中任意的第一方;所述方法涉及多期训练,其中任一期包括:获取本期针对所述训练样本集划分出的多个批次;针对所述多个批次中的每个批次,基于该批次训练样本的第一特征分片和第一标签分片,以及所述逻辑回归模型的第一参数分片,确定第一损失分片,用于还原该批次对应的训练损失;在所述第一方为指定方的情况下,基于所述多个批次对应的多个训练损失,确定本期训练损失,用于评估本期训练后的逻辑回归模型的收敛状态。
7.在一个实施例中,所述方法还包括:基于所述第一特征分片、第一标签分片和第一参数分片,确定第一梯度分片;利用所述第一梯度分片更新所述第一参数分片。
8.在一个实施例中,在基于所述多个批次对应的多个训练损失,确定本期训练损失之前,所述方法还包括:从所述多方中除所述第一方以外的其他方,接收与所述每个批次对应的其他损失分片;基于与所述每个批次对应的第一损失分片和其他损失分片,还原对应的训练损失。
9.在一个实施例中,基于所述多个批次对应的多个训练损失,确定本期训练损失,包括:从所述多个训练损失中随机抽取预定数量的训练损失;求取所述预定数量的训练损失
的平均值,作为所述本期训练损失。
10.在一个实施例中,在确定本期训练损失之后,所述方法还包括:根据所述本期训练损失,确定所述收敛状态;在所述收敛状态为已收敛的情况下,停止训练,并将所述本期训练后的逻辑回归模型确定为训练好的逻辑回归模型。
11.在一个具体的实施例中,本期训练非首期;其中,根据所述本期训练损失,确定所述收敛状态,包括:根据所述本期训练损失与上一期训练损失,确定训练损失的变化率;在所述变化率小于预设阈值的情况下,将所述收敛状态确定为已收敛。
12.在另一个具体的实施例中,所述方法还包括:在所述收敛状态为异常的情况下,停止训练,并提示工作人员调整训练使用的超级参数,所述超级参数包括学习率或每批次的样本量。
13.根据第二方面,提供一种多方联合训练逻辑回归模型的方法,所述多方各自持有形成训练样本集的部分数据,所述方法应用于多方中任意的第一方;所述方法涉及多期训练,其中任一期包括:获取本期针对所述训练样本集划分出的多个批次;针对所述多个批次中的每个批次,基于该批次训练样本的第一特征分片和第一标签分片,以及所述逻辑回归模型的第一参数分片,确定第一梯度分片,用于更新所述第一参数分片和还原对应的训练梯度;在所述第一方为指定方的情况下,基于所述多个批次对应的多个训练梯度,确定本期的训练梯度范数,用于评估本期训练后的逻辑回归模型的收敛状态。
14.在一个实施例中,在基于所述多个批次对应的多个训练梯度,确定本期的训练梯度范数之前,所述方法还包括:从所述多方中除所述第一方以外的其他方,接收与所述每个批次对应的其他梯度分片;基于与所述每个批次对应的第一梯度分片和其他梯度分片,还原对应的训练梯度。
15.在一个实施例中,基于所述多个批次对应的多个训练梯度,确定本期的训练梯度范数,包括:从所述多个训练梯度中随机抽取预定数量的训练梯度;针对所述预定数量的训练梯度中的各个训练梯度,计算其对应的范数;求取所述范数的均值,作为所述训练梯度范数。
16.在一个实施例中,在确定本期的训练梯度范数之后,所述方法还包括:根据所述训练梯度范数,确定所述收敛状态;在所述收敛状态为已收敛的情况下,停止训练,并将所述本期训练后的逻辑回归模型确定为训练好的逻辑回归模型。
17.在一个具体的实施例中,本期训练非首期;其中,根据所述本期的训练梯度范数,确定所述收敛状态,包括:根据本期的训练梯度范数与上一期的训练梯度范数,确定训练梯度范数的变化率;在所述变化率小于预设阈值的情况下,将所述收敛状态确定为已收敛。
18.在另一个具体的实施例中,所述方法还包括:在所述收敛状态为异常的情况下,停止训练,并提示工作人员调整训练使用的超级参数,所述超级参数包括学习率或每批次的样本量。
19.根据第三方面,提供一种多方联合训练逻辑回归模型的方法,所述多方各自持有形成训练样本集的部分数据,所述方法应用于多方中任意的第一方;所述方法涉及多期训练,其中任一期包括:获取本期针对所述训练样本集划分出的多个批次;利用与所述多个批次对应的多组第一训练特征分片和第一训练标签分片,对所述逻辑回归模型的第一参数分片进行多轮迭代更新,得到本期更新后的第一参数分片;基于验证样本集对应的第一验证
特征分片和第一验证标签分片,以及所述本期更新后的第一参数分片,确定第一验证损失分片,用于还原本期验证损失;在所述第一方为指定方的情况下,基于所述本期验证损失,评估本期训练后的逻辑回归模型的收敛状态。
20.在一个实施例中,在基于所述本期验证损失,评估本期训练后的逻辑回归模型的收敛状态之前,所述方法还包括:从所述多方中除所述第一方以外的其他方,接收其他验证损失分片;基于所述第一验证损失分片和其他验证损失分片,还原所述本期验证损失。
21.在一个实施例中,所述验证样本集被预先划分为多个验证子集;其中,基于验证样本集对应的第一验证特征分片和第一验证标签分片,以及所述本期更新后的第一参数分片,确定第一验证损失分片,包括:从所述多个验证子集中确定与本期训练对应的本期验证子集;基于所述本期验证子集的第一验证特征分片和第一验证标签分片,以及所述本期更新后的第一参数分片,确定第一验证损失分片;其中,所述方法还包括:根据所述第一验证特征分片和第一验证标签分片,对所述本期更新后的第一参数分片进行更新。
22.在一个实施例中,本期训练非首期;其中,基于所述本期验证损失,评估本期训练后的逻辑回归模型的收敛状态,包括:根据所述本期验证损失与上一期验证损失,确定验证损失的变化率;在所述变化率小于预设阈值的情况下,将所述收敛状态确定为已收敛。
23.在一个实施例中,在基于所述本期验证损失,评估本期训练后的逻辑回归模型的收敛状态后,所述方法还包括:在所述收敛状态为已收敛的情况下,停止训练,并将所述本期训练后的逻辑回归模型确定为训练好的逻辑回归模型;或,在所述收敛状态为异常的情况下,停止训练,并提示工作人员调整训练使用的超级参数,所述超级参数包括学习率或每批次的样本量。
24.根据第四方面,提供一种多方联合训练逻辑回归模型的装置,所述多方各自持有形成训练样本集的部分数据,所述装置集成于多方中任意的第一方;所述装置通过以下单元执行所述训练涉及的多期训练中的任一期:批次获取单元,配置为获取本期针对所述训练样本集划分出的多个批次;损失分片确定单元,配置为针对所述多个批次中的每个批次,基于该批次训练样本的第一特征分片和第一标签分片,以及所述逻辑回归模型的第一参数分片,确定第一损失分片,用于还原该批次对应的训练损失;训练损失确定单元,配置为在所述第一方为指定方的情况下,基于所述多个批次对应的多个训练损失,确定本期训练损失,用于评估本期训练后的逻辑回归模型的收敛状态。
25.根据第五方面,提供一种多方联合训练逻辑回归模型的装置,所述多方各自持有形成训练样本集的部分数据,所述装置集成于多方中任意的第一方;所述装置通过以下单元执行所述训练涉及的多期训练中的任一期:批次获取单元,配置为获取本期针对所述训练样本集划分出的多个批次;梯度分片确定单元,配置为针对所述多个批次中的每个批次,基于该批次训练样本的第一特征分片和第一标签分片,以及所述逻辑回归模型的第一参数分片,确定第一梯度分片,用于更新所述第一参数分片和还原对应的训练梯度;梯度范数确定单元,配置为在所述第一方为指定方的情况下,基于所述多个批次对应的多个训练梯度,确定本期的训练梯度范数,用于评估本期训练后的逻辑回归模型的收敛状态。
26.根据第六方面,提供一种多方联合训练逻辑回归模型的装置,所述多方各自持有形成训练样本集的部分数据,所述装置应用于多方中任意的第一方;所述装置涉及多期训练,其中任一期包括:批次获取单元,配置为获取本期针对所述训练样本集划分出的多个批
次;参数分片确定单元,配置为利用与所述多个批次对应的多组第一训练特征分片和第一训练标签分片,对所述逻辑回归模型的第一参数分片进行多轮迭代更新,得到本期更新后的第一参数分片;损失分片确定单元,配置为基于验证样本集对应的第一验证特征分片和第一验证标签分片,以及所述本期更新后的第一参数分片,确定第一验证损失分片,用于还原本期验证损失;收敛状态评估单元,配置为在所述第一方为指定方的情况下,基于所述本期验证损失,评估本期训练后的逻辑回归模型的收敛状态。
27.根据第七方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面或第三方面的方法。
28.根据第八方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,该处理器执行所述可执行代码时,实现第一方面或第二方面或第三方面的方法。
29.采用本说明书实施例提供的方法和装置,通过及时、高效地评估逻辑回归模型的收敛状态,指导后续训练进程,从而训练出性能优异的逻辑回归模型。
附图说明
30.为了更清楚地说明本发明实施例的技术方案,下面对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
31.图1示出根据一个实施例的多方联合训练逻辑回归模型的通信架构图;
32.图2示出根据一个实施例的多方联合训练逻辑回归模型的方法流程示意图;
33.图3示出数据垂直切分和数据水平切分的场景示意图;
34.图4示出根据一个实施例的两方协同执行smm的交互示意图;
35.图5示出根据另一个实施例的多方联合训练逻辑回归模型的方法流程示意图;
36.图6示出根据又一个实施例的多方联合训练逻辑回归模型的方法流程示意图;
37.图7示出根据一个实施例的多方联合训练逻辑回归模型的装置结构示意图;
38.图8示出根据另一个实施例的多方联合训练逻辑回归模型的装置结构示意图;
39.图9示出根据又一个实施例的多方联合训练逻辑回归模型的装置结构示意图。
具体实施方式
40.下面结合附图,对本说明书提供的方案进行描述。
41.承前所述,在fl框架下训练lr模型是一大研究热点。在lr模型的训练过程中,随着模型参数逐渐收敛,在一种常见的情况中,在模型参数达到一定的复杂程度后,模型在训练数据集上的训练误差会逐渐减小,但在验证集上的误差反而随着继续训练而增大,此时便是发生了过拟合,即,模型的复杂度虽然升高,但是该模型在除训练集之外的数据集上却不能很好的进行预测。多余的训练不但消耗资源,还会降低模型训练的效果,因此要避免过拟合的发生;在另一种可能的情况中,模型在验证集上的误差存在抖动,一直无法趋于平稳,模型参数无法收敛至最优解。
42.为了避免这些不良情况的发生,需要判断训练中模型的收敛情况。然而,在基于隐
私保护的lr模型训练中,需要保护参与方的私有输入,通常是各方训练到底后,互相交换参数分片以构建完整模型,才能看到模型训练效果,由于没有任何中间结果的输出,很难在训练过程中判断模型的收敛情况。
43.基于以上观察和分析,发明人提出一种多方联合训练lr模型的方案,可以在保护参与方数据隐私的同时,安全地刻画模型在训练过程中的收敛性。
44.图1示出根据一个实施例的多方联合训练逻辑回归模型的通信架构图。如图1所示,在训练过程中,多方中任意的第i方pi除了根据其持有的特征分片[x]i和标签分片[y]i,更新其持有的参数分片[θ]i(图1中示意更新为[θ

]i)以外,还计算对应的损失分片[l]i,从而,在第i方属于指定方的情况下,根据来自多方的损失分片其中n表示参与方的总数,还原对应的训练损失l,进而根据训练损失l进行收敛性判断。如此,可以实现对收敛性的安全刻画。
[0045]
下面结合具体的实施例,描述实现上述发明构思的方案步骤。
[0046]
图2示出根据一个实施例的多方联合训练逻辑回归模型的方法流程示意图,其中多方各自持有形成训练样本集的部分数据。典型地,训练数据在多方的不同分布形态包括水平切分场景和垂直切分场景。图3中以多方为两方为例示出两种场景下的数据切分形态,图3中的左侧为数据水平切分场景,即两方拥有不同样本,但这些样本的特征项和标签样式相同。举例而言,有两个银行,它们都有用户的信贷特征和信用标签,但这些用户群体不同。图3中的右侧为数据垂直切分场景,即两方拥有相同的业务对象,但它们拥有相同业务对象的不同特征,并且,只有一方拥有标签,举例而言,两个平台拥有相同的一批用户,但它们维护的用户特征是不同的,且只有一方拥有用户标签。
[0047]
以上,对训练样本集在多方中的分布情况进行介绍。另一方面,训练样本集涉及的业务对象除了可以是上述提及的用户以外,还可以是商品或事件等,示例性地,其中事件可以是访问事件、登录事件、交易事件或投诉事件等;另外,训练样本中包括其所对应业务对象的对象特征和对象标签。在一个实施例中,业务对象是用户,相应,用户特征可以包括用户的属性特征和行为特征,示例性地,属性特征包括年龄、性别、常驻地、兴趣爱好等;行为特征包括交易次数、登录次数、社交活跃度、使用信用服务的次数、违约记录等。用户标签可以为高风险用户或低风险用户。在另一个实施例中,业务对象是商品,相应,商品特征可以包括商品名称、类目、产地、成本、售价等,商品标签可以为热门产品或冷门产品。在又一个实施例中,业务对象是事件,相应,事件特征可以包括事件发生的时间、地理位置、网络地址,以及相关的终端设备信息等,事件标签可以是安全事件或异常事件。此处对训练样本的内容进行介绍。
[0048]
需理解,对lr模型的训练包括多期,在训练过程中完整遍历一次训练样本集称为一期(epoch)。另外,上述多方(或称多个参与方、多个数据方、多个计算方)中的各方可以实现为具有计算、处理能力的装置、服务器或设备集群等。
[0049]
图2示出的方法可以由上述多方(或记作n方)中任意的一方(或称第一方、pi方)执行,图2中示出第一方执行所述方法涉及的多期训练中任意一期的步骤:
[0050]
步骤s210,获取本期针对所述训练样本集划分出的多个批次;步骤s220,针对所述多个批次中的每个批次,基于该批次训练样本的第一特征分片和第一标签分片,以及所述逻辑回归模型的第一参数分片,确定第一损失分片,用于还原该批次对应的训练损失;步骤
s230,在所述第一方为指定方的情况下,基于所述多个批次对应的多个训练损失,确定本期训练损失,用于评估本期训练后的逻辑回归模型的收敛状态。
[0051]
对以上步骤的展开介绍如下:
[0052]
首先,在步骤s210,获取本期针对所述训练样本集划分出的多个批次。需理解,训练集的数据量通常较为庞大,因此需要将其划分为多个批次(batch)进行训练;并且,每期训练中对训练集的划分方式通常不同。
[0053]
因对训练样本集进行划分的批次信息不会导致隐私泄露,所以批次信息的确定和传播可以灵活设置。在一种实施方式中,可以由多方中的某一方根据训练样本集中各个样本的编号,进行批次的划分,并建立起训练期次与批次划分信息的映射关系,其中批次划分信息包括各个样本编号所属的批次;之后,指定方可以向其他方广播此映射关系。如此,各方均可以获得此映射关系。于是,在本步骤中,第一方可以根据获得的映射关系,确定与本期次对应的批次划分信息。在另一种实施方式中,可以由多方轮流进行批次的划分,相应,本步骤中,第一方可以从负责本期批次划分的一方中获取批次信息。
[0054]
以上,可以获取本期训练对应的多个批次。然后,在步骤s220,针对该多个批次中的每个批次,基于该批次的训练样本的第一特征分片和第一标签分片,以及逻辑回归模型的第一参数分片,确定第一损失分片,用于还原该批次对应的训练损失。
[0055]
需说明,上述第一特征分片和第一标签分片可以基于秘密分享(secret sharing,简称ss)技术而得到。ss技术是一种安全计算的基础技术,通过对原始数据进行随机拆分后分发,每一份分发数据由不同管理者持有,单个(或协议规定数量以下的)数据持有者无法进行秘密回恢复。举例来说,对原始数据s实施秘密分享的过程可以包括:先选取安全等级参数(系统默认或人工选取)并生成相应的有限域(例如2
256
),再在有限域内均匀分布地选取随机数并计算s2=s-s1,从而将s1和s2作为原始数据s的两个分片,分发给两个不同管理者。
[0056]
基于此,在本步骤之前,对于pi方所持有的部分训练数据中对应单个样本的特征数据或标签数据,pi方可以利用ss技术将之拆分成n个秘密分享分片,保留其中一个分片,并将其他n-1个分片对应发送给其他n-1方,相应,pi方也可以从其他n-1方接收样本特征分片或样本标签分片。进一步,pi方根据自身保留的分片和从其他n-1方接收的分片,可以得到训练样本集中各个样本的特征分片和标签分片。示例性地,在数据水平切分的场景下,多方持有不同业务对象的完整样本数据,此时,pi方可以对自身持有样本的样本特征和样本标签分别进行拆分,并且,从其他n-1方接收其他样本的特征分片和标签分片,于是,pi方持有训练集中全量样本的特征分片和标签分片。
[0057]
进一步,在本步骤中,针对本期训练中的每个批次,基于该批次的训练样本的第一特征分片和第一标签分片,以及逻辑回归模型的第一参数分片,确定第一损失分片,用于还原该批次对应的训练损失。需理解的是,每个批次样本通常为多个,相应,pi方可以利用该批次多个样本对应的多个特征分片组成矩阵,作为上述第一特征分片,以及,利用该批次多个样本对应的多个标签分片组成向量,作为上述第一标签分片。另外,对于上述第一参数分片,其基于多个批次的训练样本实现多次迭代更新,具体,在该批次为不是本期训练中首个批次的情况下,第一参数分片是基于上一批次样本训练更新而得到;在该批次是本期训练中首个批次的情况下,进一步,若本期训练是首期,那么第一参数分片可以是随机初始化而
得到,若本期训练不是首期,那么第一参数分片可以是经过上一期训练而得到。
[0058]
以上,对pi方持有的第一特征分片、第一标签分片和第一参数分片进行介绍,为方便数学描述,或分别记作[x]i、[y]i和[θ]i。对于第一损失分片的确定,可以由pi基于[x]i、[y]i和[θ]i,与其他n-1方采用安全多方计算(secure multi-party computation,简称mpc)技术进行协同计算而得到。在一种计算方式中,可以设计混淆电路、同态运算等实现损失分片的计算。
[0059]
在另一种计算方式中,可以对lr模型的损失函数进行泰勒展开,使得仅需要进行少量加法和乘法运算,即可计算出损失分片。典型地,lr模型的原始损失计算式为:
[0060][0061]
上式中,s表示一批次训练样本形成的样本子集;xi和yi表示样本子集s中第i个样本的特征和标签,θ表示模型参数。
[0062]
对式(1)进行一阶泰勒展开,可以得到损失估计式:
[0063][0064]
根据上式(2),pi方可以基于其持有的[x]i、[y]i和[θ]i,与其他n-1方共同执行秘密分享矩阵乘法(secret matrix multiplication,简称smm),从而得到l(θ)的第一损失分片[l]i。换言之,多方基于各自持有的特征分片、标签分片和参数分片,采用smm乘法计算上式(2),从而各自得到计算出的损失分片。
[0065]
下面以两方交互,共同计算公式(2)中的θ
t xi为例,对应用smm计算损失分片进行说明。图4示出根据一个实施例的两方协同执行smm的交互示意图,其中示出参与方pa和pb,并且,pa方持有参数分片[θ
t
]a和特征分片[x]a,pb方持有参数分片[θ
t
]b和特征分片[x]b。
[0066]
如图4所示,在步骤s41,pa方和pb方离线生成beaver乘法三元组,并且pa方拥有矩阵分片[u]1、[v]1和[w]1,pb方拥有矩阵分片[u]2、[v]2和[w]2,其中[u]1、[u]2跟[θ
t
]a和[θ
t
]b具有相同维度,[v]1、[v]2跟[x]a和[x]b具有相同维度,且满足([u]1 [u]2)*([v]1 [v]2)=([w]1 [w]2)。在步骤s42,pa方计算出分片[d]1和[e]1,并发送给pb方;pb方计算出分片[d]2和[e]2,并发送给pa方;在步骤s43,pa方还原出d和e,并计算分片[z]1;pb方还原出d和e,并计算分片[z]2。其中,[z]1 [z]2=z=θ
t
·
x。如此,pa方和pb方基于各自持有的参数分片和特征分片,计算出了θ
t
·
x的分片[z]1和[z]2。
[0067]
进一步,pa方计算出[z]1、pb方计算出[z]2后,可以进一步计算针对(1-2yi)θ
t xi项的分片,具体,基于图4示出的方案,将其中的[θ
t
]a和[x]a分别替换为(1-2[y]a)和[z]1,以及将其中的[θ
t
]b和[x]b分别替换为(1-2[y]b)和[z]2。由此,pa方和pb方可以共同计算出(1-2yi)θ
t xi的分片。另外,对于式(2)中log(2)项的计算,可以由两方中的任一方完成,对于数乘项1/n,两方可以各自在本地计算。于是,两方可以协同计算出l(θ)的分片,具体,pa方得到损失分片[l]a,pb方得到损失分片[l]b。
[0068]
另外需理解,pi方可以是pa方或pb方,并且,图4示出的方案可以拓展至包括更多参与方的场景。
[0069]
由上,pi方可以得到每个批次对应的第一损失分片[l]i,从而得到本期训练中多批次(可记作m个批次)对应的m个第一损失分片用以还原出m个训练损失。
[0070]
之后,在步骤s230,在pi方为指定方的情况下,基于所述多个批次对应的多个训练
损失,确定本期训练损失,用于评估本期训练后的逻辑回归模型的收敛状态。
[0071]
需理解,对于训练损失的还原和模型收敛状态的评估,可以由多方中的指定方执行,此指定方的数量可以为一个或一个以上。
[0072]
在一个实施例中,在pi方为指定方的情况下,针对本期m个批次中的每个批次,从其他n-1方接收与该批次对应的其他n-1个损失分片,进而根据该批次对应的第一损失分片和其他n-1个损失分片,还原出对应的训练损失。由此,可以得到m个批次对应的m个训练损失。
[0073]
进一步,在一个具体的实施例中,可以从m个训练损失中随机抽取预定数量个训练损失,并求取平均值,作为本期训练损失。在另一个具体的实施例中,可以直接求取m个训练损失的平均值,作为本期训练损失。
[0074]
在另一个实施例中,pi方中存储有与其他n-1方预先协商好的随机种子,本步骤中,pi方根据此随机种子对m个批次进行随机采样,再与其他n-1方共同计算随机采样出的批次所对应的损失分片。进一步,在pi方为指定方的情况下,从其他方接收针对采样批次的其他损失分片,从而还原出采样批次对应的训练损失,进而求取均值作为本期训练损失。
[0075]
如此,可以计算出本期训练损失。根据另一方面的实施例,在步骤s230之后,所述方法还可以包括:根据本期训练损失,确定本期训练后的逻辑回归模型的收敛状态。在一个实施例中,可以仅根据本期训练损失,确定收敛状态,例如,在判断出本期训练损失小于预设阈值的情况下,判定已收敛,否则判定未收敛。
[0076]
在另一个实施例中,可以结合往期训练损失,确定训练损失的当前变化趋势,进而根据变化趋势,更加精准地判断出收敛状态。在一个实施例中,若本期训练非首期,可以根据本期训练损失与上一期训练损失,确定训练损失的变化率;进一步,在此变化率小于预设阈值的情况下,将收敛状态确定为已收敛,否则确定为未收敛。进一步,在一个更具体的实施例中,可以采用下式计算训练损失的变化率:
[0077][0078]
上式中,lj、l
j-1
和l
j-2
分别表示本期、上一期和上上期的训练损失。
[0079]
另一方面,在判断出收敛状态为未收敛的情况下,还可以进一步判断收敛状态是否存在异常。在一个具体的实施例中,判断本期训练损失是否小于上一期训练损失,若不小于,则说明模型训练出现异常,将收敛状态判定为收敛异常。在另一个具体的实施例中,判断本期训练损失对应的变化率是否小于上一期训练损失对应的变化率,若不小于,则说明模型训练出现异常。
[0080]
由上,可以判断出本期训练后的lr模型的收敛状态。进一步,可以根据此收敛状态辅助决策对lr模型的后续操作。在一个实施例中,在收敛状态为已收敛的情况下,停止训练,并将所述本期训练后的lr模型确定为训练好的lr模型。也就是说,本期训练为对lr模型的最后一期训练。在另一个实施例中,在收敛状态为异常的情况下,停止训练,并提示工作人员调整训练使用的超级参数,包括学习率或每批次的样本量(batch_size)等,在调整以后再继续进行训练。在还一个实施例中,在收敛状态为未收敛的情况下,继续进行后续期次的训练。
[0081]
综上,采用本说明书实施例披露的多方联合训练lr模型的方法,通过在保护各方
隐私输入安全的情况下,计算每期次训练的训练损失,实现对lr模型收敛状态及时、高效地评估,用于指导训练进程,从而训练出性能优异的lr模型。
[0082]
根据另一方面的实施例,发明人还提出通过计算模型梯度的范数进行收敛状态的评估。图5示出根据另一个实施例的多方联合训练逻辑回归模型的方法流程示意图,其中多方各自持有形成训练样本集的部分数据,所述方法可以由多方中任意的一方(或称第一方、pi方)执行,图5中示出第一方执行所述方法涉及的多期训练中任意一期的步骤:
[0083]
步骤s510,获取本期针对所述训练样本集划分出的多个批次;步骤s520,针对所述多个批次中的每个批次,基于该批次训练样本的第一特征分片和第一标签分片,以及所述逻辑回归模型的第一参数分片,确定第一梯度分片,用于更新所述第一参数分片和还原对应的训练梯度;步骤s530,在所述第一方为指定方的情况下,基于所述多个批次对应的多个训练梯度,确定本期的训练梯度范数,用于评估本期训练后的逻辑回归模型的收敛状态。
[0084]
对以上步骤的展开介绍如下:
[0085]
首先,在步骤s510,获取本期针对所述训练样本集划分出的多个批次。需说明,对步骤s510的描述,可以参见前述对步骤s210的介绍,在此不作赘述。
[0086]
步骤s520,针对所述多个批次中的每个批次,基于该批次训练样本的第一特征分片[x]i和第一标签分片[y]i,以及所述逻辑回归模型的第一参数分片[θ]i,确定第一梯度分片需说明,对[x]i、[y]i和[θ]i的描述,可以参见前述实施例中的相关介绍,在此不作赘述。
[0087]
对于第一梯度分片的确定,可以由pi方基于[x]i、[y]i和[θ]i,与其他n-1方采用mpc技术进行协同计算而得到。在一种计算方式中,可以设计混淆电路、同态运算等实现梯度分片的计算。在另一种计算方式中,可以对lr模型的梯度计算式进行泰勒展开,使得仅需要进行运算量小的加法和乘法运算,即可计算出梯度分片。典型地,lr模型的梯度计算式为:
[0088][0089]
上式中,σ(
·
)表示逻辑函数。
[0090]
在联合训练lr模型时,直接利用上式(4)计算梯度是非常复杂的,因而提出使用逻辑函数的线性近似,通常为其泰勒展开式,对梯度计算进行简化,例如使用逻辑函数的一阶泰勒展开式,参见下式(5),将上述公式(4)简化为公式(6)的形式。
[0091][0092][0093]
pi方可以基于其持有的[x]i、[y]i和[θ]i,通过与其他n-1方共同执行smm乘法计算公式(6),从而得到梯度分片需说明,具体的计算流程可以参见前述实施例中的相关描述进行设计,不作他述。
[0094]
如此,pi方可以得到梯度分片从而利用其更新参数分片[θ]i,计算式可以为:
[0095]
[0096]
上式中,α表示学习率(或称学习步长)。
[0097]
由上,pi方可以得到每个批次对应的第一梯度分片从而得到本期训练中多(记作m)批次对应的m个第一梯度分片用于还原m个训练梯度。
[0098]
之后,在步骤s530,在所述第一方为指定方的情况下,基于多个批次对应的多个训练梯度,确定本期的训练梯度范数,用于评估本期训练后的逻辑回归模型的收敛状态。
[0099]
需理解,对于训练梯度的还原和模型收敛状态的评估,可以由多方中的指定方执行,此指定方的数量可以为一个或一个以上。
[0100]
对于本期的训练梯度范数的确定,需要先还原训练梯度,再确定梯度范数。在一个实施例中,在pi方为指定方的情况下,针对本期m个批次中的每个批次,从其他n-1方接收与该批次对应的其他n-1个梯度分片,还原出对应的训练梯度。由此,可以得到m个批次对应的m个训练梯度。
[0101]
进一步,在一个具体的实施例中,可以从m个训练梯度中随机抽取预定数量的训练梯度,并求取其中各个训练梯度的范数(如二范数),进而求取这些梯度范数的平均值,作为本期的训练梯度范数。在另一个具体的实施例中,可以计算m个训练梯度中各个训练梯度的范数,进而求取m个梯度范数的平均值,作为本期的训练梯度范数。
[0102]
在另一个实施例中,pi方中存储有与其他n-1方预先协商好的随机种子,本步骤中,pi方根据此随机种子对m个批次进行随机采样,再与其他n-1方共同计算随机采样出的批次所对应的梯度分片。进一步,在pi方为指定方的情况下,从其他方接收针对采样批次的其他梯度分片,从而还原出采样批次对应的训练梯度,进而求取其中各个训练梯度的范数的均值,作为本期的训练梯度范数。
[0103]
如此,可以计算出本期的训练梯度范数。根据另一方面的实施例,在步骤s530之后,所述方法还可以包括:根据本期的训练梯度范数,确定本期训练后的逻辑回归模型的收敛状态。在一个实施例中,可以仅根据本期的训练梯度范数,确定收敛状态,例如,在判断出本期训练梯度范数小于预设阈值的情况下,判定已收敛,否则判定未收敛。
[0104]
在另一个实施例中,可以结合往期的训练梯度范数,确定梯度范数的当前变化趋势,进而根据变化趋势,更加精准地进行收敛状态判断。在一个实施例中,若本期训练非首期,可以根据本期梯度范数与上一期梯度范数,确定梯度范数的变化率;进一步,在此变化率小于预设阈值的情况下,将收敛状态确定为已收敛,否则确定为未收敛。
[0105]
另一方面,在判断出收敛状态为未收敛的情况下,还可以进一步判断收敛状态是否存在异常。在一个具体的实施例中,判断本期梯度范数是否小于上一期梯度范数,若不小于,则说明模型训练出现异常,将收敛状态判定为收敛异常。在另一个具体的实施例中,判断本期梯度范数对应的变化率是否小于上一期梯度范数对应的变化率,若不小于,则说明模型训练出现异常。
[0106]
由上,可以判断出本期训练后的lr模型的收敛状态。进一步,可以根据此收敛状态辅助决策对lr模型的后续操作。在一个实施例中,在收敛状态为已收敛的情况下,停止训练,并将所述本期训练后的lr模型确定为训练好的lr模型。在另一个实施例中,在收敛状态为异常的情况下,停止训练,并提示工作人员调整训练使用的超级参数,包括学习率或每批次的样本量(batch_size)等,在调整以后再继续进行训练。在还一个实施例中,在收敛状态
为未收敛的情况下,继续进行后续期次的训练。
[0107]
综上,采用本说明书实施例披露的多方联合训练lr模型的方法,通过在保护各方隐私输入安全的情况下,计算每期次训练的训练梯度范数,实现对lr模型收敛状态及时、高效地评估,用于指导训练进程,从而训练出性能优异的lr模型。
[0108]
根据另一方面的实施例,发明人还提出,通过计算每期次训练后的lr模型在验证集上的验证损失,来判断模型收敛状态。图6示出根据又一个实施例的多方联合训练逻辑回归模型的方法流程示意图,其中多方各自持有形成训练样本集的部分数据,所述方法可以由多方中任意的一方(或称第一方、pi方)执行,图6中示出第一方执行所述方法涉及的多期训练中任意一期的步骤:
[0109]
步骤s610,获取本期针对所述训练样本集划分出的多个批次;步骤s620,利用所述多个批次的训练样本所对应多个组别的第一训练特征分片和第一训练标签分片,对所述逻辑回归模型的第一参数分片进行多轮迭代更新,得到本期更新后的第一参数分片;步骤s630,基于验证样本集对应的第一验证特征分片和第一验证标签分片,以及所述本期更新后的第一参数分片,确定第一验证损失分片,用于还原本期验证损失;步骤s640,在所述第一方为指定方的情况下,基于所述本期验证损失,评估本期训练后的逻辑回归模型的收敛状态。
[0110]
对以上步骤的展开介绍如下:
[0111]
首先,在步骤s610,获取本期针对所述训练样本集划分出的多个批次。需说明,对步骤s610的描述,可以参见前述对步骤s210的介绍,在此不作赘述。
[0112]
步骤s620,利用所述多个批次的训练样本所对应多个组别的第一训练特征分片和第一训练标签分片,对所述逻辑回归模型的第一参数分片进行多轮迭代更新,得到本期更新后的第一参数分片。具体,针对每个批次,利用该批次训练样本的第一训练特征分片和第一训练标签分片,计算第一梯度分片,再利用该第一梯度分片对逻辑回归模型的第一参数分片进行更新。如此,进行对应多个批次的多轮次迭代更新后,可以得到本期更新后的第一参数分片。另外需说明的是,对本步骤的介绍还可以参见前述实施例中的相关描述。
[0113]
步骤s630,基于验证样本集对应的第一验证特征分片和第一验证标签分片,以及所述本期更新后的第一参数分片,确定第一验证损失分片,用于还原本期验证损失。
[0114]
在一个实施例中,pi方可以将其持有的与验证样本集中各个验证样本对应的特征分片进行堆叠,从而将堆叠形成的矩阵作为第一验证特征分片,以及,将对应的标签分片进行堆叠,从而将堆叠形成的向量作为第一验证标签分片。进一步,可以根据第一验证特征分片和第一验证标签分片,以及本期更新后的第一参数分片,确定第一验证损失分片。
[0115]
在另一个实施例中,完整的验证样本集被预先划分为多个验证子集,并顺序对应多期训练。由此,可以从多个验证子集中确定与本期训练对应的验证子集,进而确定该验证子集的第一验证特征分片和第一验证标签分片。进一步,一方面,可以根据确定出的第一验证特征分片和第一验证标签分片,以及本期更新后的第一参数分片,确定第一验证损失分片。另一方面,还可以根据确定出的第一验证特征分片和第一验证标签分片,对本期更新后的第一参数分片再次进行更新,从而实现对验证分片等计算数据的充分利用。
[0116]
需说明的是,对于本步骤中确定第一验证损失分片的方式,还可以参见前述实施例中对确定第一损失分片的介绍。
[0117]
由上,可以得到第一验证损失分片。
[0118]
步骤s640,在第一方为指定方的情况下,基于所述本期验证损失,评估本期训练后的逻辑回归模型的收敛状态。需理解,对于验证损失的还原和模型收敛状态的评估,可以由多方中的指定方执行,此指定方的数量可以为一个或一个以上。另外,对于上述本期验证损失,可以从所述多方中除所述第一方以外的其他方,接收其他验证损失分片,进而基于第一验证损失分片和其他验证损失分片,还原所述本期验证损失。
[0119]
在一个实施例中,可以直接根据本期验证损失,确定收敛状态,例如,在判断出本期验证损失小于预设阈值的情况下,判定已收敛,否则判定未收敛。
[0120]
在另一个实施例中,可以结合往期验证损失,确定验证损失的当前变化趋势,进而根据变化趋势,更加精准地进行收敛状态判断。在一个实施例中,若本期验证非首期,可以根据本期验证损失与上一期验证损失,确定验证损失的变化率;进一步,在此变化率小于预设阈值的情况下,将收敛状态确定为已收敛,否则确定为未收敛。
[0121]
另一方面,在判断出收敛状态为未收敛的情况下,还可以进一步判断收敛状态是否存在异常。在一个具体的实施例中,判断本期验证损失是否小于上一期验证损失,若不小于,则说明模型训练出现异常,将收敛状态判定为收敛异常。在另一个具体的实施例中,判断本期验证损失对应的变化率是否小于上一期验证损失对应的变化率,若不小于,则说明模型训练出现异常。
[0122]
由上,可以判断出本期训练后的lr模型的收敛状态。进一步,可以根据此收敛状态辅助决策对lr模型的后续操作。在一个实施例中,在收敛状态为已收敛的情况下,停止训练,并将所述本期训练后的lr模型确定为训练好的lr模型。也就是说,本期训练为对lr模型的最后一期训练。在另一个实施例中,在收敛状态为异常的情况下,停止训练,并提示工作人员调整训练使用的超级参数,包括学习率或每批次的样本量(batch_size)等,在调整以后再继续进行训练。在还一个实施例中,在收敛状态为未收敛的情况下,继续进行后续期次的训练。
[0123]
综上,采用本说明书实施例披露的多方联合训练lr模型的方法,通过在保护各方隐私输入安全的情况下,计算每期次训练的验证损失,实现对lr模型收敛状态及时、高效地评估,用于指导训练进程,从而训练出性能优异的lr模型。
[0124]
与上述训练方法相对应的,本说明书实施例还披露训练装置。图7示出根据一个实施例的多方联合训练逻辑回归模型的装置结构示意图,所述多方各自持有形成训练样本集的部分数据,所述装置集成于多方中任意的第一方;所述装置700通过以下单元执行所述训练涉及的多期训练中的任一期:
[0125]
批次获取单元710,配置为获取本期针对所述训练样本集划分出的多个批次;损失分片确定单元720,配置为针对所述多个批次中的每个批次,基于该批次训练样本的第一特征分片和第一标签分片,以及所述逻辑回归模型的第一参数分片,确定第一损失分片,用于还原该批次对应的训练损失;训练损失确定单元730,配置为在所述第一方为指定方的情况下,基于所述多个批次对应的多个训练损失,确定本期训练损失,用于评估本期训练后的逻辑回归模型的收敛状态。
[0126]
在一个实施例中,所述装置700还包括:参数分片更新单元740,配置为:基于所述第一特征分片、第一标签分片和第一参数分片,确定第一梯度分片;利用所述第一梯度分片
更新所述第一参数分片。
[0127]
在一个实施例中,训练损失确定单元730还配置为:从所述多方中除所述第一方以外的其他方,接收与所述每个批次对应的其他损失分片;基于与所述每个批次对应的第一损失分片和其他损失分片,还原对应的训练损失。
[0128]
在一个实施例中,训练损失确定单元730具体配置为:从所述多个训练损失中随机抽取预定数量的训练损失;求取所述预定数量的训练损失的平均值,作为所述本期训练损失。
[0129]
在一个实施例中,所述装置700还包括:收敛状态评估单元750,配置为根据所述本期训练损失,确定所述收敛状态;训练进程控制单元760,配置为在所述收敛状态为已收敛的情况下,停止训练,并将本期训练后的逻辑回归模型确定为训练好的逻辑回归模型。
[0130]
在一个具体的实施例中,本期训练非首期;收敛状态评估单元750具体配置为:根据所述本期训练损失与上一期训练损失,确定训练损失的变化率;在所述变化率小于预设阈值的情况下,将所述收敛状态确定为已收敛。
[0131]
在一个具体的实施例中,训练进程控制单元760还配置为:在所述收敛状态为异常的情况下,停止训练,并提示工作人员调整训练使用的超级参数,所述超级参数包括学习率或每批次的样本量。
[0132]
图8示出根据另一个实施例的多方联合训练逻辑回归模型的装置结构示意图,所述多方各自持有形成训练样本集的部分数据,所述装置集成于多方中任意的第一方;所述装置800通过以下单元执行所述训练涉及的多期训练中的任一期:
[0133]
批次获取单元810,配置为获取本期针对所述训练样本集划分出的多个批次;梯度分片确定单元820,配置为针对所述多个批次中的每个批次,基于该批次训练样本的第一特征分片和第一标签分片,以及所述逻辑回归模型的第一参数分片,确定第一梯度分片,用于更新所述第一参数分片和还原对应的训练梯度;梯度范数确定单元830,配置为在所述第一方为指定方的情况下,基于所述多个批次对应的多个训练梯度,确定本期的训练梯度范数,用于评估本期训练后的逻辑回归模型的收敛状态。
[0134]
在一个实施例中,梯度范数确定单元830还配置为:从所述多方中除所述第一方以外的其他方,接收与所述每个批次对应的其他梯度分片;基于与所述每个批次对应的第一梯度分片和其他梯度分片,还原对应的训练梯度。
[0135]
在一个实施例中,梯度范数确定单元830具体配置为:从所述多个训练梯度中随机抽取预定数量的训练梯度;针对所述预定数量的训练梯度中的各个训练梯度,计算其对应的范数;求取所述范数的均值,作为所述训练梯度范数。
[0136]
在一个实施例中,所述装置800还包括:收敛状态评估单元840,配置为根据所述训练梯度范数,确定所述收敛状态;训练进程控制单元850,配置为在所述收敛状态为已收敛的情况下,停止训练,并将本期训练后的逻辑回归模型确定为训练好的逻辑回归模型。
[0137]
在一个具体的实施例中,本期训练非首期;其中,收敛状态评估单元840具体配置为:根据本期的训练梯度范数与上一期的训练梯度范数,确定训练梯度范数的变化率;在所述变化率小于预设阈值的情况下,将所述收敛状态确定为已收敛。
[0138]
在一个具体的实施例中,所述训练进程控制单元850还配置为:在所述收敛状态为异常的情况下,停止训练,并提示工作人员调整训练使用的超级参数,所述超级参数包括学
习率或每批次的样本量。
[0139]
图9示出根据又一个实施例的多方联合训练逻辑回归模型的装置结构示意图,所述多方各自持有形成训练样本集的部分数据,所述装置集成于多方中任意的第一方;所述装置900通过以下单元执行所述训练涉及的多期训练中的任一期:
[0140]
批次获取单元910,配置为获取本期针对所述训练样本集划分出的多个批次;参数分片确定单元920,配置为利用与所述多个批次对应的多组第一训练特征分片和第一训练标签分片,对所述逻辑回归模型的第一参数分片进行多轮迭代更新,得到本期更新后的第一参数分片;损失分片确定单元930,配置为基于验证样本集对应的第一验证特征分片和第一验证标签分片,以及所述本期更新后的第一参数分片,确定第一验证损失分片,用于还原本期验证损失;收敛状态评估单元940,配置为在所述第一方为指定方的情况下,基于所述本期验证损失,评估本期训练后的逻辑回归模型的收敛状态。
[0141]
在一个实施例中,收敛状态评估单元940还配置为:从所述多方中除所述第一方以外的其他方,接收其他验证损失分片;基于所述第一验证损失分片和其他验证损失分片,还原所述本期验证损失。
[0142]
在一个实施例中,所述验证样本集被预先划分为多个验证子集;损失分片确定单元930具体配置为:从所述多个验证子集中确定与本期训练对应的本期验证子集;基于所述本期验证子集的第一验证特征分片和第一验证标签分片,以及所述本期更新后的第一参数分片,确定第一验证损失分片;所述装置还包括:参数分片更新单元950,配置为根据所述第一验证特征分片和第一验证标签分片,对所述本期更新后的第一参数分片进行更新。
[0143]
在一个实施例中,本期训练非首期;收敛状态评估单元940具体配置为:根据所述本期验证损失与上一期验证损失,确定验证损失的变化率;在所述变化率小于预设阈值的情况下,将所述收敛状态确定为已收敛。
[0144]
在一个实施例中,所述装置900还包括训练进程控制单元960,配置为:在所述收敛状态为已收敛的情况下,停止训练,并将所述本期训练后的逻辑回归模型确定为训练好的逻辑回归模型;或,在所述收敛状态为异常的情况下,停止训练,并提示工作人员调整训练使用的超级参数,所述超级参数包括学习率或每批次的样本量。
[0145]
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2、图5或图6所描述的方法。
[0146]
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2、图5或图6所描述的方法。
[0147]
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
[0148]
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献