一种模型的训练方法、装置及设备与流程

文档序号:29907234发布日期:2022-05-06 00:21阅读:72来源:国知局
一种模型的训练方法、装置及设备与流程

1.本文件涉及计算机技术领域,尤其涉及一种模型的训练方法、装置及设备。


背景技术:

2.随着大数据技术的广泛应用,其所带来的用户隐私泄露问题日益受到人们的关注。差分隐私机制是一种被广泛认可的严格的隐私保护机制,差分隐私机制通过对数据添加干扰噪声的方式来保护所发布数据中潜在的用户隐私信息,从而达成即便攻击者已经掌握了除某一条信息以外的其他信息,该攻击者仍然无法推测出该条信息。
3.对于机器学习算法,通常需要学习一个确定性的实值映射函数,差分隐私机制可以通过添加噪声信息,调整映射函数的敏感度,上述方式虽然可以对机器学习模型进行隐私保护,但是会使得模型的准确率降低,从而导致模型无法使用。为此,需要提供一种在对机器学习模型进行训练的过程中的隐私保护方案,并可以保证模型最终识别的准确性。


技术实现要素:

4.本说明书实施例的目的是提供一种在对机器学习模型进行训练的过程中的隐私保护方案,并可以保证模型最终识别的准确性。
5.为了实现上述技术方案,本说明书实施例是这样实现的:
6.本说明书实施例提供的一种模型的训练方法,所述方法包括:获取待训练的目标模型对应的模型参数和所述目标模型的训练样本,并将所述模型参数划分为多个不同的模型子参数。基于所述训练样本和每个所述模型子参数对应的损失函数,对所述目标模型进行模型训练,确定每个所述模型子参数对应的初始梯度信息。基于每个所述模型子参数对应的截断信息对相应的所述模型子参数对应的初始梯度信息进行梯度截断,得到每个所述模型子参数对应的梯度信息。向每个所述模型子参数对应的梯度信息中加入相应的噪声信息,得到每个所述模型子参数对应的目标梯度信息,并基于每个所述模型子参数对应的目标梯度信息对所述模型参数进行更新,得到训练后的目标模型。
7.本说明书实施例提供的一种模型的训练方法,应用于区块链系统,所述方法包括:获取目标模型的训练规则信息,采用所述目标模型的训练规则信息生成相应的第一智能合约,并将所述第一智能合约部署到所述区块链系统中。调用所述第一智能合约,获取待训练的目标模型对应的模型参数和所述目标模型的训练样本,并将所述模型参数划分为多个不同的模型子参数。基于所述第一智能合约,通过所述训练样本和每个所述模型子参数对应的损失函数,对所述目标模型进行模型训练,确定每个所述模型子参数对应的初始梯度信息。基于所述第一智能合约,通过每个所述模型子参数对应的截断信息对相应的所述模型子参数对应的初始梯度信息进行梯度截断,得到每个所述模型子参数对应的梯度信息。基于所述第一智能合约,向每个所述模型子参数对应的梯度信息中加入相应的噪声信息,得到每个所述模型子参数对应的目标梯度信息,并基于每个所述模型子参数对应的目标梯度信息对所述模型参数进行更新,得到训练后的目标模型。
8.本说明书实施例提供的一种模型的训练装置,所述装置包括:数据获取模块,获取待训练的目标模型对应的模型参数和所述目标模型的训练样本,并将所述模型参数划分为多个不同的模型子参数。训练模块,基于所述训练样本和每个所述模型子参数对应的损失函数,对所述目标模型进行模型训练,确定每个所述模型子参数对应的初始梯度信息。截断模块,基于每个所述模型子参数对应的截断信息对相应的所述模型子参数对应的初始梯度信息进行梯度截断,得到每个所述模型子参数对应的梯度信息。更新模块,向每个所述模型子参数对应的梯度信息中加入相应的噪声信息,得到每个所述模型子参数对应的目标梯度信息,并基于每个所述模型子参数对应的目标梯度信息对所述模型参数进行更新,得到训练后的目标模型。
9.本说明书实施例提供的一种模型的训练装置,所述装置为区块链系统中的装置,所述装置包括:合约部署模块,获取目标模型的训练规则信息,采用所述目标模型的训练规则信息生成相应的第一智能合约,并将所述第一智能合约部署到所述区块链系统中。数据获取模块,调用所述第一智能合约,获取待训练的目标模型对应的模型参数和所述目标模型的训练样本,并将所述模型参数划分为多个不同的模型子参数。训练模块,基于所述第一智能合约,通过所述训练样本和每个所述模型子参数对应的损失函数,对所述目标模型进行模型训练,确定每个所述模型子参数对应的初始梯度信息。截断模块,基于所述第一智能合约,通过每个所述模型子参数对应的截断信息对相应的所述模型子参数对应的初始梯度信息进行梯度截断,得到每个所述模型子参数对应的梯度信息。更新模块,基于所述第一智能合约,向每个所述模型子参数对应的梯度信息中加入相应的噪声信息,得到每个所述模型子参数对应的目标梯度信息,并基于每个所述模型子参数对应的目标梯度信息对所述模型参数进行更新,得到训练后的目标模型。
10.本说明书实施例提供的一种模型的训练设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:获取待训练的目标模型对应的模型参数和所述目标模型的训练样本,并将所述模型参数划分为多个不同的模型子参数。基于所述训练样本和每个所述模型子参数对应的损失函数,对所述目标模型进行模型训练,确定每个所述模型子参数对应的初始梯度信息。基于每个所述模型子参数对应的截断信息对相应的所述模型子参数对应的初始梯度信息进行梯度截断,得到每个所述模型子参数对应的梯度信息。向每个所述模型子参数对应的梯度信息中加入相应的噪声信息,得到每个所述模型子参数对应的目标梯度信息,并基于每个所述模型子参数对应的目标梯度信息对所述模型参数进行更新,得到训练后的目标模型。
11.本说明书实施例提供的一种模型的训练设备,所述设备为区块链系统中的设备,所述模型的训练设备包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:获取目标模型的训练规则信息,采用所述目标模型的训练规则信息生成相应的第一智能合约,并将所述第一智能合约部署到所述区块链系统中。调用所述第一智能合约,获取待训练的目标模型对应的模型参数和所述目标模型的训练样本,并将所述模型参数划分为多个不同的模型子参数。基于所述第一智能合约,通过所述训练样本和每个所述模型子参数对应的损失函数,对所述目标模型进行模型训练,确定每个所述模型子参数对应的初始梯度信息。基于所述第一智能合约,通过每个所述模型子参数对应的截断信息对相应的所述模型子参数对应的初始梯度信息进行梯度截断,得到每
个所述模型子参数对应的梯度信息。基于所述第一智能合约,向每个所述模型子参数对应的梯度信息中加入相应的噪声信息,得到每个所述模型子参数对应的目标梯度信息,并基于每个所述模型子参数对应的目标梯度信息对所述模型参数进行更新,得到训练后的目标模型。
12.本说明书实施例还提供了一种存储介质,其中,所述存储介质用于存储计算机可执行指令,所述可执行指令在被执行时实现以下流程:获取待训练的目标模型对应的模型参数和所述目标模型的训练样本,并将所述模型参数划分为多个不同的模型子参数。基于所述训练样本和每个所述模型子参数对应的损失函数,对所述目标模型进行模型训练,确定每个所述模型子参数对应的初始梯度信息。基于每个所述模型子参数对应的截断信息对相应的所述模型子参数对应的初始梯度信息进行梯度截断,得到每个所述模型子参数对应的梯度信息。向每个所述模型子参数对应的梯度信息中加入相应的噪声信息,得到每个所述模型子参数对应的目标梯度信息,并基于每个所述模型子参数对应的目标梯度信息对所述模型参数进行更新,得到训练后的目标模型。
13.本说明书实施例还提供了一种存储介质,其中,所述存储介质用于存储计算机可执行指令,所述可执行指令在被执行时实现以下流程:获取目标模型的训练规则信息,采用所述目标模型的训练规则信息生成相应的第一智能合约,并将所述第一智能合约部署到区块链系统中。调用所述第一智能合约,获取待训练的目标模型对应的模型参数和所述目标模型的训练样本,并将所述模型参数划分为多个不同的模型子参数。基于所述第一智能合约,通过所述训练样本和每个所述模型子参数对应的损失函数,对所述目标模型进行模型训练,确定每个所述模型子参数对应的初始梯度信息。基于所述第一智能合约,通过每个所述模型子参数对应的截断信息对相应的所述模型子参数对应的初始梯度信息进行梯度截断,得到每个所述模型子参数对应的梯度信息。基于所述第一智能合约,向每个所述模型子参数对应的梯度信息中加入相应的噪声信息,得到每个所述模型子参数对应的目标梯度信息,并基于每个所述模型子参数对应的目标梯度信息对所述模型参数进行更新,得到训练后的目标模型。
附图说明
14.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
15.图1为本说明书一种模型的训练方法实施例;
16.图2为本说明书一种模型的训练系统的结构示意图;
17.图3为本说明书一种模型的训练相关界面的结构示意图;
18.图4为本说明书另一种模型的训练方法实施例;
19.图5a为本说明书又一种模型的训练方法实施例;
20.图5b为本说明书一种模型的训练过程示意图;
21.图6为本说明书一种模型的训练装置实施例;
22.图7为本说明书另一种模型的训练装置实施例;
23.图8为本说明书一种模型的训练设备实施例。
具体实施方式
24.本说明书实施例提供一种模型的训练方法、装置及设备。
25.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
26.实施例一
27.如图1所示,本说明书实施例提供一种模型的训练方法,该方法的执行主体可以为终端设备或服务器,其中,该终端设备可以如手机、平板电脑等移动终端设备,也可以是个人计算机等设备,该服务器可以是独立的一个服务器,还可以是由多个服务器构成的服务器集群等,该服务器可以是如金融业务或网络购物业务等的后台服务器,也可以是某应用程序的后台服务器等。该方法可以应用于设置有模型训练等的相关场景中,本实施例中以服务器为执行主体进行详细说明,对于终端设备的情况,可以参见下述相关内容,在此不再赘述。该方法具体可以包括以下步骤:
28.在步骤s102中,获取待训练的目标模型对应的模型参数和目标模型的训练样本,并将该模型参数划分为多个不同的模型子参数。
29.其中,目标模型可以是任意模型,例如目标模型可以为面部识别模型,也可以为指纹识别模型,还可以是针对某项业务(如金融业务等)而构建的风险防控模型(例如可以是针对欺诈风险的风险防控模型等),具体可以根据实际情况设定,本说明书实施例对此不做限定。训练样本可以包括多种,具体可以根据需要训练的目标模型而设置,例如,需要训练的目标模型为面部识别模型,则训练样本可以是面部图像,再例如需要训练的目标模型为指纹识别模型,则训练样本可以是指纹数据,又例如需要训练的目标模型为针对某业务(如在线交易业务等)的风险防控模型,则训练样本可以是该业务的业务数据(可以包括如交易双方的相关信息、交易的资源信息、交易时间、交易地点、交易双方的交易历史数据等)等。模型参数可以是目标模型中需要确定的模型参数,模型参数确定后,目标模型即可投入使用。
30.在实施中,随着大数据技术的广泛应用,其所带来的用户隐私泄露问题日益受到人们的关注。差分隐私机制是一种被广泛认可的严格的隐私保护机制,差分隐私机制通过对数据添加干扰噪声的方式来保护所发布数据中潜在的用户隐私信息,从而达成即便攻击者已经掌握了除某一条信息以外的其他信息,该攻击者仍然无法推测出该条信息。
31.对于机器学习算法,通常需要学习一个确定性的实值映射函数例如,机器学习算法为针对风险识别的二分类算法,映射函数f将训练样本对应的特征映射到[0,1]之间的概率,即可以表示该训练样本是否存在风险的概率。差分隐私机制通过添加噪声信息,调整映射函数f的敏感度sf(即相邻输入的训练样本d与d

的函数值的最大距离|f(d)-f(d

)|),例如,在映射函数f中增加高斯噪声信息,具体如下:
[0032][0033]
如果
[0034][0035]
并且ε《1,则满足(ε,δ)的差分隐私,其中,d为输入的训练样本,的高斯噪声,ε,δ为预设参数,σ为噪声尺度。上述方式虽然可以对机器学习模型进行隐私保护,但是会使得模型的准确率降低,从而导致模型无法使用。为此,需要提供一种在对机器学习模型进行训练的过程中的隐私保护方案。本说明书实施例提供一种可选的技术方案,具体可以包括以下内容:
[0036]
可以通过多种不同的方式获取一定数量的训练样本,例如,如图2所示,可以预先设置有训练样本的输入页面,该输入页面中可以包括训练样本的数据输入框、确定按键和取消按键等,当需要向服务器上传某训练样本时,可以获取上述输入页面的数据,并可以显示该输入页面。如图3所示,用户可以在该输入页面的数据输入框中输入训练样本的数据,输入完成后,可以点击该输入页面中的确定按键,此时,服务器可以获取该训练样本,通过上述方式可以得到一定数量的训练样本。或者,服务器中可以记录某业务的相关数据,当需要获取目标模型的训练样本时,可以从上述业务的相关数据中获取满足指定需求的数据,将获取的数据作为训练样本等,除了可以通过上述方式获取目标模型的训练样本外,还可以通过多种不同的方式获取目标模型的训练样本,具体可以根据实际情况设定,本说明书实施例对此不做限定。
[0037]
此外,还可以获取待训练的目标模型,并可以获取目标模型对应的模型参数,该模型参数可以包括一个,也可以包括多个,具体可以根据实际情况设定。为了保证模型的准确性,可以将模型参数划分为多个不同的部分,然后,分别进行训练,得到训练后的较准确的模型参数,基于此,可以根据实际情况将该模型参数划分为多个不同的模型子参数,具体如,可以预先设定模型参数需要划分的数量,如10或5等,之后,可以根据上述设定的数量,将该模型参数进行拆分,得到上述设定的数量的模型子参数,在实际应用中,还可以通过其它多种方式对模型参数进行拆分,具体可以根据实际情况设定,本说明书实施例对此不做限定。
[0038]
在步骤s104中,基于上述训练样本和每个模型子参数对应的损失函数,对目标模型进行模型训练,确定每个模型子参数对应的初始梯度信息。
[0039]
在实施中,通过上述方式可以将该模型参数划分为多个不同的模型子参数,每个模型子参数可以对应有损失函数,然后,可以将上述训练样本输入到目标模型中,得到每个模型子参数相应的输出结果,针对任意一个模型子参数相应的输出结果,可以通过该模型子参数对应的损失函数,计算该模型子参数相应的输出结果对应的损失值,基于得到的损失值进行向后传播处理,得到该模型子参数对应的梯度信息,可以将得到的梯度信息作为该模型子参数对应的初始梯度信息。可以通过上述方式,继续下一个模型子参数相应的输出结果执行上述处理,以对对目标模型进行模型训练,确定每个模型子参数对应的初始梯度信息。
[0040]
在步骤s106中,基于每个模型子参数对应的截断信息对相应的模型子参数对应的初始梯度信息进行梯度截断,得到每个模型子参数对应的梯度信息。
[0041]
其中,截断信息可以是对梯度进行截断处理的信息,截断信息可以包括截断数值等,截断数值可以随机设定,也可以根据专家经验设定等,具体可以根据实际情况设定,本说明书实施例对此不做限定。
[0042]
在实施中,由于稀疏性对于高维特征向量以及大数据集非常重要,因此,为了得到稀疏的特征权重,可以对模型子参数对应的初始梯度信息进行梯度截断处理,具体地,可以预先为每个模型子参数设定相应的截断信息,例如,可以针对不同的模型子参数,分别设定满足该模型子参数对应的梯度截断条件的截断信息,如可以根据专家经验为不同的模型子参数设定相应的截断信息等。然后,可以基于设定的截断信息对相应的模型子参数对应的初始梯度信息进行梯度截断,得到该模型子参数对应的梯度信息,通过上述方式,可以计算得到每个模型子参数对应的梯度信息。
[0043]
在步骤s108中,向每个模型子参数对应的梯度信息中加入相应的噪声信息,得到每个模型子参数对应的目标梯度信息,并基于每个模型子参数对应的目标梯度信息对该模型参数进行更新,得到训练后的目标模型。
[0044]
其中,噪声信息可以是包括任意噪声数据的信息,该噪声信息可以包括随机噪声,也可以包括高斯噪声等,具体可以根据实际情况设定,本说明书实施例对此不做限定。
[0045]
在实施中,通过上述方式得到每个模型子参数对应的梯度信息后,为了保护训练样本中包含的隐私信息,可以向每个模型子参数对应的梯度信息中加入相应的噪声信息,其中,不同的模型子参数可以对应不同的噪声信息,在另一种实施例中,不同的模型子参数也可以设置相同的噪声信息,具体可以根据实际情况设定,本说明书实施例对此不做限定。通过上述处理,每个模型子参数可以对应有一个加入了噪声信息的梯度信息,可以将上述得到的信息作为模型子参数对应的目标梯度信息,从而可以得到每个模型子参数对应的目标梯度信息。通过上述方式得到的目标梯度信息可以作为模型子参数的最终梯度信息,可以使用每个模型子参数对应的最终梯度信息(即每个模型子参数对应的目标梯度信息)进行融合,得到目标模型的模型参数最终的梯度信息,可以使用目标模型的模型参数最终的梯度信息对目标模型中当前的模型参数进行更新,得到更新后的模型参数,可以再次通过上述步骤s102~步骤s108的处理过程对目标模型进行训练,得到更新的模型参数,直到目标模型对应的损失函数收敛为止,最终可以得到收敛后的模型参数,从而即可以得到训练后的目标模型。
[0046]
本说明书实施例提供一种模型的训练方法,获取待训练的目标模型对应的模型参数和目标模型的训练样本,并将模型参数划分为多个不同的模型子参数,然后,可以基于训练样本和每个模型子参数对应的损失函数,对目标模型进行模型训练,确定每个模型子参数对应的初始梯度信息,基于每个模型子参数对应的截断信息对相应的模型子参数对应的初始梯度信息进行梯度截断,得到每个模型子参数对应的梯度信息,最终,可以向每个模型子参数对应的梯度信息中加入相应的噪声信息,得到每个模型子参数对应的目标梯度信息,并基于每个模型子参数对应的目标梯度信息对模型参数进行更新,这样,通过计算梯度更新与模型参数之间的相对大小来自适应进行梯度截断处理,并通过向确定的梯度信息中添加噪声信息,能更有效的抑制单个样本对整体模型参数的影响,同时加快算法的收敛,提升最终模型预测的准确率。
[0047]
实施例二
[0048]
如图4所示,本说明书实施例提供一种模型的训练方法,该方法的执行主体可以为终端设备或服务器,其中,该终端设备可以如手机、平板电脑等移动终端设备,也可以是个人计算机等设备,该服务器可以是独立的一个服务器,还可以是由多个服务器构成的服务器集群等,该服务器可以是如金融业务或网络购物业务等的后台服务器,也可以是某应用程序的后台服务器等。该方法可以应用于设置有模型训练等的相关场景中,本实施例中以服务器为执行主体进行详细说明,对于终端设备的情况,可以参见下述相关内容,在此不再赘述。该方法具体可以包括以下步骤:
[0049]
在步骤s402中,获取待训练的目标模型对应的模型参数和目标模型的训练样本。
[0050]
其中,目标模型可以为神经网络算法构建的模型,神经网络算法可以是一种模仿动物神经网络行为特征进行分布式并行信息处理的算法,该算法依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
[0051]
在实施中,差分隐私机制通常作为一种被广泛认可的严格的隐私保护处理机制,例如,对于某医院的数据库,历史已有99个病人,其中10个感染a病毒,攻击者通过查询该数据库可得知当前感染a病毒的病人数量(未泄漏个人隐私),现在,用户b去医院,并确诊感染了a病毒,攻击者再次查询数据库可以获取到感染a病毒的病人数量为11,此时,攻击者即可获知用户b感染a病毒的隐私数据,上述对隐私数据的攻击行为即为差分攻击,防止差分攻击的方法即未差分隐私保护,一个简单的差分隐私保护方法就是对数据库的查询结果加入随机噪声。由于随机噪声的存在,不论用户b的信息是否出现在数据库中,两次查询输出感染a病毒的病人数量的概率不会发生显著的变化,因此,攻击者无法根据查询结果的不同而获取用户b的隐私数据。
[0052]
也可以对机器学习模型进行隐私保护,例如,可以通过差分隐私随机梯度下降学习算法训练的神经网络模型可以满足差分隐私要求,具体地,训练样本可以为{x1,

,xn},损失函数为
[0053][0054]
其中,n为训练样本的数量,上述算法需要设置以下超参数:学习率η
t
,噪声尺度σ,数据分组大小l,梯度范数大小限制c,迭代次数t。算法如下:
[0055]
1、模型参数随机初始化为θ0;
[0056]
2、循环执行以下步骤t次:
[0057]
(1)从训练样本中随机抽取l个训练样本构成样本子集l
t

[0058]
(2)计算损失函数关于训练样本的梯度:对于任意i∈l
t

[0059]
(3)对梯度信息进行截断:
[0060]
(4)对初始梯度信息添加噪声信息:
[0061]
(5)模型参数的更新:算法结束,输出模型参数θ
t

[0062]
上述算法中,(3)中对训练样本的梯度进行截断,以限制单个样本对模型的影响程度,防止差分攻击获取单个训练样本的信息,如果训练样本的梯度信息对应的‖g‖2≤c,梯度信息g原样保留,如果‖g‖2》c,需对其收缩,截断其范数等于c。通过限制训练样本对模型
的影响程度,及在梯度信息中添加噪声信息,该算法可有效保证差分隐私安全,且该算法可有效提升隐私保护效果,但该算法的收敛速度、模型的准确率仍可进一步提高。该算法将神经网络中所有参数组成统一向量进行截断,并使用固定的阈值c,这使得算法收敛较慢,通过上述算法进行模型训练过程中,梯度信息的范数大小会动态变化,固定的c值并不合适。为此,本说明书实施例提出将自适应梯度截断算法应用于差分隐私梯度下降算法,在保证算法的隐私安全前提下,加快算法收敛,获得更好的模型最终识别准确性的技术方案。
[0063]
对于目标模型,可以将目标模型的模型参数统一为θ(可以为一个向量),可以获取该模型参数θ和训练样本{x1,

,xn}。
[0064]
在步骤s404中,基于目标模型对应的网络层的数量,确定模型子参数的数量。
[0065]
在实施中,可以根据目标模型对应的网络层的数量确定模型子参数的数量,具体如,可以将目标模型对应的网络层的数量作为模型子参数的数量,或者,可以预先设定目标模型对应的网络层的数量与模型子参数的数量之间满足的倍数关系,然后,可以基于该倍数关系通过目标模型对应的网络层的数量确定模型子参数的数量等,具体可以根据实际情况设定,本说明书实施例对此不做限定。
[0066]
在步骤s406中,基于上述模型子参数的数量,将上述模型参数划分为多个不同的模型子参数。
[0067]
在实施中,例如,目标模型对应的网络层的数量作为模型子参数的数量,则可以将模型参数换分为网络层的数量个不同的模型子参数,如果目标模型由j个网络层组成,则第j(其中,j=1,2,3,4

j)个网络层的模型子参数可以表示为模型参数θ=[w1,w2,

,wj]。
[0068]
上述方式可以将目标模型的模型参数按照网络层进行拆分,但是,在实际应用中,也可以将模型参数以更细粒度为单位进行拆分,例如,以模型子参数wj对应的矩阵的行向量为单位,计算其范数并做归一化处理,基于此,上述步骤s406的具体处理可以通过下述步骤a2和步骤a4处理。
[0069]
在步骤a2中,获取每个模型子参数对应的表征向量。
[0070]
在步骤a4中,基于上述表征向量中的行向量,将模型参数划分为多个不同的模型子参数。
[0071]
在步骤s408中,基于上述训练样本和每个模型子参数对应的损失函数,对目标模型进行模型训练,确定每个模型子参数对应的初始梯度信息。
[0072]
在步骤s410中,获取每个模型子参数的范数,以及每个模型子参数对应的初始梯度信息的范数。
[0073]
在实施中,基于上述示例,可以取为损失函数关于模型子参数wj的梯度。‖
·
‖f为矩阵的frobenius范数,即
[0074][0075]
通过上述公式,可以分别计算得到每个模型子参数的范数,以及每个模型子参数对应的初始梯度信息的范数||gj||f。
[0076]
在步骤s412中,基于每个模型子参数的范数、每个模型子参数对应的初始梯度信
息的范数和预设的截断阈值,确定每个模型子参数对应的截断信息。
[0077]
在实施中,基于上述内容,可以更有效度量梯度对原始模型参数影响的大小,因此,本说明书实施例中改进的差分隐私梯度下降算法中,依据的值对相应的梯度信息进行梯度截断处理,而非根据一个简单的固定常数进行梯度截断处理,因此,可以基于确定每个模型子参数对应的截断信息,其中,λ为截断阈值,∈为预设初值,在实际应用中,∈的取值可以为10-3
,防止模型子参数初始化为0时,上述方式始终将梯度取为0值。
[0078]
针对多个不同的模型子参数中的任一模型子参数,执行以下步骤s414~步骤s418的处理:
[0079]
在步骤s414中,获取模型子参数的范数与预设初值之间的最大值。
[0080]
在实施中,基于上述内容,
[0081]
在步骤s416中,如果模型子参数对应的初始梯度信息的范数与获取的最大值的比值大于预设的截断阈值,则确定模型子参数对应的梯度信息为该截断阈值与获取的最大值的乘积,并与模型子参数对应的初始梯度信息的范数之间的比值的倍数的初始梯度信息。
[0082]
在步骤s418中,如果模型子参数对应的初始梯度信息的范数与获取的最大值的比值不大于预设的截断阈值,则确定模型子参数对应的梯度信息为模型子参数对应的初始梯度信息。
[0083]
在实施中,针对上述步骤s416和步骤s418的处理,初始梯度信息可以通过下述表达式确定:
[0084][0085]
在步骤s420中,向每个模型子参数对应的梯度信息中加入相应的噪声信息,得到每个模型子参数对应的目标梯度信息,并基于每个模型子参数对应的目标梯度信息对上述模型参数进行更新,得到训练后的目标模型。
[0086]
其中,噪声信息可以通过预设的噪声尺度信息、预设的截断阈值和模型子参数的范数确定。
[0087]
在实施中,基于上述内容,具体处理过程可以如下:训练样本为{x1,

,xn},损失函数为其中模型参数θ=[w1,w2,

,wj]。并可以设置以下超参数:学习率η
t
,噪声尺度σ,数据分组大小l,截断阈值λ,迭代次数t。具体算法如下:
[0088]
(1)模型参数随机初始化为θ0;
[0089]
(2)循环执行以下步骤t次:
[0090]
a)从训练样本中随机抽取l个训练样本构成样本子集l
t

[0091]
b)计算损失函数关于训练样本的梯度:对于任意i∈l
t
,j∈[1,2,

,j],
[0092]
c)对梯度信息进行梯度截断:
[0093][0094]
d)对初始梯度信息添加噪声信息:
[0095][0096]
e)模型参数的更新:
[0097][0098]
算法结束,输出模型参数
[0099]
本说明书实施例提供一种模型的训练方法,获取待训练的目标模型对应的模型参数和目标模型的训练样本,并将模型参数划分为多个不同的模型子参数,然后,可以基于训练样本和每个模型子参数对应的损失函数,对目标模型进行模型训练,确定每个模型子参数对应的初始梯度信息,基于每个模型子参数对应的截断信息对相应的模型子参数对应的初始梯度信息进行梯度截断,得到每个模型子参数对应的梯度信息,最终,可以向每个模型子参数对应的梯度信息中加入相应的噪声信息,得到每个模型子参数对应的目标梯度信息,并基于每个模型子参数对应的目标梯度信息对模型参数进行更新,这样,通过计算梯度更新与模型参数之间的相对大小来自适应进行梯度截断处理,并通过向确定的梯度信息中添加噪声信息,能更有效的抑制单个样本对整体模型参数的影响,同时加快算法的收敛,提升最终模型预测的准确率。
[0100]
此外,通过使用自适应梯度截断算法改进差分隐私梯度下降算法,算法通过计算梯度更新与模型参数之间的相对大小来自适应决定截断信息与噪声信息的大小,能更有效的抑制单个样本对整体模型参数的影响,同时加快算法的收敛,提升模型预测准确率。
[0101]
实施例三
[0102]
如图5a和图5b所示,本说明书实施例提供一种模型的训练方法,该方法的执行主体可以为区块链系统,该区块链系统可以由终端设备和/或服务器等组成,其中,该终端设备可以如手机、平板电脑等移动终端设备,也可以是个人计算机等设备,该服务器可以是独立的一个服务器,还可以是由多个服务器构成的服务器集群等,该服务器可以是如金融业务或网络购物业务等的后台服务器,也可以是某应用程序的后台服务器等。该方法可以应用于设置有模型训练等的相关场景中,该方法具体可以包括以下步骤:
[0103]
在步骤s502中,获取目标模型的训练规则信息,采用目标模型的训练规则信息生成相应的第一智能合约,并将第一智能合约部署到所述区块链系统中。
[0104]
其中,第一智能合约可以是一种旨在以信息化方式传播、验证或执行合同的计算机协议,智能合约允许在没有第三方的情况下进行可信交互,进行的上述交互过程可追踪且不可逆转,第一智能合约中包括合约参与方可以在上面执行合约参与方同意的权利和义
务的协议。
[0105]
在实施中,为了使得基于目标模型的训练过程的可追溯性更好,可以创建或加入指定的区块链系统,这样,可以基于区块链系统执行对目标模型的训练,具体地,区块链节点中可以安装有相应的应用程序,该应用程序中可以设置有目标模型的训练规则信息的输入框和/或选择框等,可以在上述输入框和/或选择框中设置相应的信息。然后,区块链系统可以接收目标模型的训练规则信息。区块链系统可以通过目标模型的训练规则信息生成相应的第一智能合约,并可以向该区块链系统中部署该第一智能合约,这样,区块链系统中存储了目标模型的训练规则信息和相应的第一智能合约,其他用户无法篡改目标模型的训练规则信息和相应的第一智能合约,而且,区块链系统通过第一智能合约执行对目标模型的训练。
[0106]
在步骤s504中,调用第一智能合约,获取待训练的目标模型对应的模型参数和目标模型的训练样本,并将模型参数划分为多个不同的模型子参数。
[0107]
在实施中,第一智能合约中可以设置有获取待训练的目标模型对应的模型参数和目标模型的训练样本,并将模型参数划分为多个不同的模型子参数的相关规则信息,这样,基于第一智能合约中的上述规则信息可以实现上述相应的处理,具体可以参见上述相关内容,在此不再赘述。
[0108]
在步骤s506中,基于第一智能合约,通过训练样本和每个模型子参数对应的损失函数,对目标模型进行模型训练,确定每个模型子参数对应的初始梯度信息。
[0109]
在实施中,第一智能合约中可以设置有通过训练样本和每个模型子参数对应的损失函数,对目标模型进行模型训练,确定每个模型子参数对应的初始梯度信息的相关规则信息,这样,基于第一智能合约中的上述规则信息可以实现上述相应的处理,具体可以参见上述相关内容,在此不再赘述。
[0110]
在步骤s508中,基于第一智能合约,通过每个模型子参数对应的截断信息对相应的模型子参数对应的初始梯度信息进行梯度截断,得到每个模型子参数对应的梯度信息。
[0111]
在实施中,第一智能合约中可以设置有通过每个模型子参数对应的截断信息对相应的模型子参数对应的初始梯度信息进行梯度截断的相关规则信息,这样,基于第一智能合约中的上述规则信息可以实现上述相应的处理,具体可以参见上述相关内容,在此不再赘述。
[0112]
在步骤s510中,基于第一智能合约,向每个模型子参数对应的梯度信息中加入相应的噪声信息,得到每个模型子参数对应的目标梯度信息,并基于每个模型子参数对应的目标梯度信息对模型参数进行更新,得到训练后的目标模型。
[0113]
在实施中,第一智能合约中可以设置有向每个模型子参数对应的梯度信息中加入相应的噪声信息,得到每个模型子参数对应的目标梯度信息,并基于每个模型子参数对应的目标梯度信息对模型参数进行更新的相关规则信息,这样,基于第一智能合约中的上述规则信息可以实现上述相应的处理,具体可以参见上述相关内容,在此不再赘述。
[0114]
在实际应用中,目标模型可以存储于区块链系统中,也可以存储于其它存储设备中,对于该目标模型存储于其它存储设备中的情况,考虑到目标模型可能需要进行定期或不定期更新,由于区块链系统具有不可篡改的特征,因此如果目标模型存储于区块链系统中,后续需要对区块链系统中的目标模型进行频繁的上传、删除和上传者的身份验证等操
作,增大区块链系统的处理压力,为了提高处理效率,降低区块链系统的处理压力,可以预先将目标模型存储于存储设备的指定存储地址内,而将该存储地址(即索引信息)上传于区块链系统中,由于该存储地址可以固定不变,并存储于区块链系统中,从而既保证了区块链系统中的数据的防篡改性,同时,目标模型还可以在上述存储设备中进行定期或不定期的更新。
[0115]
在步骤s508之前,还可以确定每个模型子参数对应的截断信息,具体可以参见下述步骤b2和步骤b4的处理。
[0116]
在步骤b2中,基于预先部署于区块链系统中的第二智能合约,获取每个模型子参数的范数,以及每个模型子参数对应的初始梯度信息的范数。
[0117]
在实施中,第二智能合约中可以设置有获取每个模型子参数的范数,以及每个模型子参数对应的初始梯度信息的范数的相关规则信息,这样,基于第二智能合约中的上述规则信息可以实现上述相应的处理,具体可以参见上述相关内容,在此不再赘述。
[0118]
在步骤b4中,基于第二智能合约、每个模型子参数的范数、每个模型子参数对应的初始梯度信息的范数和预设的截断阈值,确定每个模型子参数对应的截断信息。
[0119]
在实施中,第二智能合约中可以设置有基于第二智能合约、每个模型子参数的范数、每个模型子参数对应的初始梯度信息的范数和预设的截断阈值,确定每个模型子参数对应的截断信息的相关规则信息,这样,基于第二智能合约中的上述规则信息可以实现上述相应的处理,具体可以参见上述相关内容,在此不再赘述。
[0120]
在步骤s504中基于第一智能合约将所述模型参数划分为多个不同的模型子参数的处理可以多种多样,以下提供两种可选的处理方式,具体可以包括以下方式一中的步骤c2和步骤c4,以及方式二中的步骤d2和步骤d4的处理。
[0121]
在步骤c2中,基于第一智能合约、目标模型对应的网络层的数量,确定模型子参数的数量。
[0122]
在实施中,第一智能合约中可以设置有基于目标模型对应的网络层的数量,确定模型子参数的数量的相关规则信息,这样,基于第一智能合约中的上述规则信息可以实现上述相应的处理,具体可以参见上述相关内容,在此不再赘述。
[0123]
在步骤c4中,基于第一智能合约、模型子参数的数量,将模型参数划分为多个不同的模型子参数。
[0124]
在实施中,第一智能合约中可以设置有基于模型子参数的数量,将模型参数划分为多个不同的模型子参数的相关规则信息,这样,基于第一智能合约中的上述规则信息可以实现上述相应的处理,具体可以参见上述相关内容,在此不再赘述。
[0125]
在步骤d2中,基于第一智能合约,获取每个模型子参数对应的表征向量。
[0126]
在实施中,第一智能合约中可以设置有获取每个模型子参数对应的表征向量的相关规则信息,这样,基于第一智能合约中的上述规则信息可以实现上述相应的处理,具体可以参见上述相关内容,在此不再赘述。
[0127]
在步骤d4中,基于第一智能合约、上述表征向量中的行向量,将模型参数划分为多个不同的模型子参数。
[0128]
在实施中,第一智能合约中可以设置有基于上述表征向量中的行向量,将模型参数划分为多个不同的模型子参数的相关规则信息,这样,基于第一智能合约中的上述规则
信息可以实现上述相应的处理,具体可以参见上述相关内容,在此不再赘述。
[0129]
在步骤s508中基于第一智能合约,通过每个模型子参数对应的截断信息对相应的模型子参数对应的初始梯度信息进行梯度截断,得到每个模型子参数对应的梯度信息的处理可以多种多样,以下提供两种可选的处理方式,具体可以包括以下方式一和方式二。
[0130]
方式一:针对多个不同的模型子参数中的任一模型子参数,执行以下处理:基于第一智能合约,获取模型子参数的范数与预设初值之间的最大值;如果模型子参数对应的初始梯度信息的范数与获取的最大值的比值大于预设的截断阈值,则基于第一智能合约,确定模型子参数对应的梯度信息为截断阈值与获取的最大值的乘积,并与模型子参数对应的初始梯度信息的范数之间的比值的倍数的所述初始梯度信息。
[0131]
方式二:针对多个不同的模型子参数中的任一模型子参数,执行以下处理:基于第一智能合约,获取模型子参数的范数与预设初值之间的最大值;如果模型子参数对应的初始梯度信息的范数与获取的最大值的比值不大于预设的截断阈值,则基于第一智能合约确定模型子参数对应的梯度信息为模型子参数对应的初始梯度信息。
[0132]
其中,噪声信息为高斯噪声的信息,目标模型为神经网络算法构建的模型。噪声信息通过预设的噪声尺度信息、预设的截断阈值和模型子参数的范数确定。
[0133]
上述步骤s504~步骤s510的具体处理,可以参见上述实施例一~实施例二中的相关内容,即可以通过相应的第一智能合约,实现如上述实施例一~实施例二中的涉及的各种处理。
[0134]
本说明书实施例提供一种模型的训练方法,应用于区块链系统,获取目标模型的训练规则信息,采用目标模型的训练规则信息生成相应的第一智能合约,并将第一智能合约部署到区块链系统中,调用第一智能合约,获取待训练的目标模型对应的模型参数和目标模型的训练样本,并将模型参数划分为多个不同的模型子参数,基于第一智能合约,通过训练样本和每个模型子参数对应的损失函数,对目标模型进行模型训练,确定每个模型子参数对应的初始梯度信息,基于第一智能合约,通过每个模型子参数对应的截断信息对相应的模型子参数对应的初始梯度信息进行梯度截断,得到每个模型子参数对应的梯度信息,基于第一智能合约,向每个模型子参数对应的梯度信息中加入相应的噪声信息,得到每个模型子参数对应的目标梯度信息,并基于每个模型子参数对应的目标梯度信息对模型参数进行更新,得到训练后的目标模型,这样,通过计算梯度更新与模型参数之间的相对大小来自适应进行梯度截断处理,并通过向确定的梯度信息中添加噪声信息,能更有效的抑制单个样本对整体模型参数的影响,同时加快算法的收敛,提升最终模型预测的准确率。
[0135]
此外,通过使用自适应梯度截断算法改进差分隐私梯度下降算法,算法通过计算梯度更新与模型参数之间的相对大小来自适应决定截断信息与噪声信息的大小,能更有效的抑制单个样本对整体模型参数的影响,同时加快算法的收敛,提升模型预测准确率。
[0136]
实施例四
[0137]
以上为本说明书实施例提供的模型的训练方法,基于同样的思路,本说明书实施例还提供一种模型的训练装置,如图6所示。
[0138]
该模型的训练装置包括:数据获取模块601、训练模块602、截断模块603和更新模块604,其中:
[0139]
数据获取模块601,获取待训练的目标模型对应的模型参数和所述目标模型的训
练样本,并将所述模型参数划分为多个不同的模型子参数;
[0140]
训练模块602,基于所述训练样本和每个所述模型子参数对应的损失函数,对所述目标模型进行模型训练,确定每个所述模型子参数对应的初始梯度信息;
[0141]
截断模块603,基于每个所述模型子参数对应的截断信息对相应的所述模型子参数对应的初始梯度信息进行梯度截断,得到每个所述模型子参数对应的梯度信息;
[0142]
更新模块604,向每个所述模型子参数对应的梯度信息中加入相应的噪声信息,得到每个所述模型子参数对应的目标梯度信息,并基于每个所述模型子参数对应的目标梯度信息对所述模型参数进行更新,得到训练后的目标模型。
[0143]
本说明书实施例中,所述数据获取模块601,包括:
[0144]
数量确定单元,基于所述目标模型对应的网络层的数量,确定所述模型子参数的数量;
[0145]
第一参数划分单元,基于所述模型子参数的数量,将所述模型参数划分为多个不同的模型子参数。
[0146]
本说明书实施例中,所述数据获取模块601,包括:
[0147]
表征单元,获取每个所述模型子参数对应的表征向量;
[0148]
第二参数划分单元,基于所述表征向量中的行向量,将所述模型参数划分为多个不同的模型子参数。
[0149]
本说明书实施例中,所述装置还包括:
[0150]
范数获取模块,获取每个所述模型子参数的范数,以及每个所述模型子参数对应的初始梯度信息的范数;
[0151]
信息确定模块,基于每个所述模型子参数的范数、每个所述模型子参数对应的初始梯度信息的范数和预设的截断阈值,确定每个所述模型子参数对应的截断信息。
[0152]
本说明书实施例中,所述截断模块603,包括:
[0153]
针对多个不同的模型子参数中的任一模型子参数,执行以下处理:
[0154]
最大值获取单元,获取所述模型子参数的范数与预设初值之间的最大值;
[0155]
截断单元,如果所述模型子参数对应的初始梯度信息的范数与获取的最大值的比值大于预设的截断阈值,则确定所述模型子参数对应的梯度信息为所述截断阈值与获取的最大值的乘积,并与所述模型子参数对应的初始梯度信息的范数之间的比值的倍数的所述初始梯度信息。
[0156]
本说明书实施例中,所述截断模块603,包括:
[0157]
针对多个不同的模型子参数中的任一模型子参数,执行以下处理:
[0158]
截断单元,最大值获取单元,获取所述模型子参数的范数与预设初值之间的最大值;
[0159]
如果所述模型子参数对应的初始梯度信息的范数与获取的最大值的比值不大于预设的截断阈值,则确定所述模型子参数对应的梯度信息为所述模型子参数对应的初始梯度信息。
[0160]
本说明书实施例中,所述噪声信息为高斯噪声的信息,所述目标模型为神经网络算法构建的模型。
[0161]
本说明书实施例中,所述噪声信息通过预设的噪声尺度信息、预设的截断阈值和
所述模型子参数的范数确定。
[0162]
本说明书实施例提供一种模型的训练装置,获取待训练的目标模型对应的模型参数和目标模型的训练样本,并将模型参数划分为多个不同的模型子参数,然后,可以基于训练样本和每个模型子参数对应的损失函数,对目标模型进行模型训练,确定每个模型子参数对应的初始梯度信息,基于每个模型子参数对应的截断信息对相应的模型子参数对应的初始梯度信息进行梯度截断,得到每个模型子参数对应的梯度信息,最终,可以向每个模型子参数对应的梯度信息中加入相应的噪声信息,得到每个模型子参数对应的目标梯度信息,并基于每个模型子参数对应的目标梯度信息对模型参数进行更新,这样,通过计算梯度更新与模型参数之间的相对大小来自适应进行梯度截断处理,并通过向确定的梯度信息中添加噪声信息,能更有效的抑制单个样本对整体模型参数的影响,同时加快算法的收敛,提升最终模型预测的准确率。
[0163]
此外,通过使用自适应梯度截断算法改进差分隐私梯度下降算法,算法通过计算梯度更新与模型参数之间的相对大小来自适应决定截断信息与噪声信息的大小,能更有效的抑制单个样本对整体模型参数的影响,同时加快算法的收敛,提升模型预测准确率。
[0164]
实施例五
[0165]
基于同样的思路,本说明书实施例还提供一种模型的训练装置,该装置为区块链系统中的装置,如图7所示。
[0166]
该模型的训练装置包括:合约部署模块701、数据获取模块702、训练模块703、截断模块704和更新模块705,其中:
[0167]
合约部署模块701,获取目标模型的训练规则信息,采用所述目标模型的训练规则信息生成相应的第一智能合约,并将所述第一智能合约部署到所述区块链系统中;
[0168]
数据获取模块702,调用所述第一智能合约,获取待训练的目标模型对应的模型参数和所述目标模型的训练样本,并将所述模型参数划分为多个不同的模型子参数;
[0169]
训练模块703,基于所述第一智能合约,通过所述训练样本和每个所述模型子参数对应的损失函数,对所述目标模型进行模型训练,确定每个所述模型子参数对应的初始梯度信息;
[0170]
截断模块704,基于所述第一智能合约,通过每个所述模型子参数对应的截断信息对相应的所述模型子参数对应的初始梯度信息进行梯度截断,得到每个所述模型子参数对应的梯度信息;
[0171]
更新模块705,基于所述第一智能合约,向每个所述模型子参数对应的梯度信息中加入相应的噪声信息,得到每个所述模型子参数对应的目标梯度信息,并基于每个所述模型子参数对应的目标梯度信息对所述模型参数进行更新,得到训练后的目标模型。
[0172]
本说明书实施例中,所述装置还包括:
[0173]
范数获取模块,基于预先部署于所述区块链系统中的第二智能合约,获取每个所述模型子参数的范数,以及每个所述模型子参数对应的初始梯度信息的范数;
[0174]
信息确定模块,基于所述第二智能合约、每个所述模型子参数的范数、每个所述模型子参数对应的初始梯度信息的范数和预设的截断阈值,确定每个所述模型子参数对应的截断信息。
[0175]
本说明书实施例提供一种模型的训练装置,获取目标模型的训练规则信息,采用
目标模型的训练规则信息生成相应的第一智能合约,并将第一智能合约部署到区块链系统中,调用第一智能合约,获取待训练的目标模型对应的模型参数和目标模型的训练样本,并将模型参数划分为多个不同的模型子参数,基于第一智能合约,通过训练样本和每个模型子参数对应的损失函数,对目标模型进行模型训练,确定每个模型子参数对应的初始梯度信息,基于第一智能合约,通过每个模型子参数对应的截断信息对相应的模型子参数对应的初始梯度信息进行梯度截断,得到每个模型子参数对应的梯度信息,基于第一智能合约,向每个模型子参数对应的梯度信息中加入相应的噪声信息,得到每个模型子参数对应的目标梯度信息,并基于每个模型子参数对应的目标梯度信息对模型参数进行更新,得到训练后的目标模型,这样,通过计算梯度更新与模型参数之间的相对大小来自适应进行梯度截断处理,并通过向确定的梯度信息中添加噪声信息,能更有效的抑制单个样本对整体模型参数的影响,同时加快算法的收敛,提升最终模型预测的准确率。
[0176]
此外,通过使用自适应梯度截断算法改进差分隐私梯度下降算法,算法通过计算梯度更新与模型参数之间的相对大小来自适应决定截断信息与噪声信息的大小,能更有效的抑制单个样本对整体模型参数的影响,同时加快算法的收敛,提升模型预测准确率。
[0177]
实施例六
[0178]
以上为本说明书实施例提供的模型的训练装置,基于同样的思路,本说明书实施例还提供一种模型的训练设备,如图8所示。
[0179]
所述模型的训练设备可以为上述实施例提供终端设备、服务器或区块链系统中的设备等。
[0180]
模型的训练设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器801和存储器802,存储器802中可以存储有一个或一个以上存储应用程序或数据。其中,存储器802可以是短暂存储或持久存储。存储在存储器802的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对模型的训练设备中的一系列计算机可执行指令。更进一步地,处理器801可以设置为与存储器802通信,在模型的训练设备上执行存储器802中的一系列计算机可执行指令。模型的训练设备还可以包括一个或一个以上电源803,一个或一个以上有线或无线网络接口804,一个或一个以上输入输出接口805,一个或一个以上键盘806。
[0181]
具体在本实施例中,模型的训练设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对模型的训练设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
[0182]
获取待训练的目标模型对应的模型参数和所述目标模型的训练样本,并将所述模型参数划分为多个不同的模型子参数;
[0183]
基于所述训练样本和每个所述模型子参数对应的损失函数,对所述目标模型进行模型训练,确定每个所述模型子参数对应的初始梯度信息;
[0184]
基于每个所述模型子参数对应的截断信息对相应的所述模型子参数对应的初始梯度信息进行梯度截断,得到每个所述模型子参数对应的梯度信息;
[0185]
向每个所述模型子参数对应的梯度信息中加入相应的噪声信息,得到每个所述模
型子参数对应的目标梯度信息,并基于每个所述模型子参数对应的目标梯度信息对所述模型参数进行更新,得到训练后的目标模型。
[0186]
本说明书实施例中,所述将所述模型参数划分为多个不同的模型子参数,包括:
[0187]
基于所述目标模型对应的网络层的数量,确定所述模型子参数的数量;
[0188]
基于所述模型子参数的数量,将所述模型参数划分为多个不同的模型子参数。
[0189]
本说明书实施例中,所述将所述模型参数划分为多个不同的模型子参数,包括:
[0190]
获取每个所述模型子参数对应的表征向量;
[0191]
基于所述表征向量中的行向量,将所述模型参数划分为多个不同的模型子参数。
[0192]
本说明书实施例中,所述方法还包括:
[0193]
获取每个所述模型子参数的范数,以及每个所述模型子参数对应的初始梯度信息的范数;
[0194]
基于每个所述模型子参数的范数、每个所述模型子参数对应的初始梯度信息的范数和预设的截断阈值,确定每个所述模型子参数对应的截断信息。
[0195]
本说明书实施例中,所述基于每个所述模型子参数对应的截断信息对相应的所述模型子参数对应的初始梯度信息进行梯度截断,得到每个所述模型子参数对应的梯度信息,包括:
[0196]
针对多个不同的模型子参数中的任一模型子参数,执行以下处理:
[0197]
获取所述模型子参数的范数与预设初值之间的最大值;
[0198]
如果所述模型子参数对应的初始梯度信息的范数与获取的最大值的比值大于预设的截断阈值,则确定所述模型子参数对应的梯度信息为所述截断阈值与获取的最大值的乘积,并与所述模型子参数对应的初始梯度信息的范数之间的比值的倍数的所述初始梯度信息。
[0199]
本说明书实施例中,所述基于每个所述模型子参数对应的截断信息对相应的所述模型子参数对应的初始梯度信息进行梯度截断,得到每个所述模型子参数对应的梯度信息,包括:
[0200]
针对多个不同的模型子参数中的任一模型子参数,执行以下处理:
[0201]
获取所述模型子参数的范数与预设初值之间的最大值;
[0202]
如果所述模型子参数对应的初始梯度信息的范数与获取的最大值的比值不大于预设的截断阈值,则确定所述模型子参数对应的梯度信息为所述模型子参数对应的初始梯度信息。
[0203]
本说明书实施例中,所述噪声信息为高斯噪声的信息,所述目标模型为神经网络算法构建的模型。
[0204]
本说明书实施例中,所述噪声信息通过预设的噪声尺度信息、预设的截断阈值和所述模型子参数的范数确定。
[0205]
此外,具体在本实施例中,模型的训练设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对模型的训练设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
[0206]
获取目标模型的训练规则信息,采用所述目标模型的训练规则信息生成相应的第一智能合约,并将所述第一智能合约部署到所述区块链系统中;
[0207]
调用所述第一智能合约,获取待训练的目标模型对应的模型参数和所述目标模型的训练样本,并将所述模型参数划分为多个不同的模型子参数;
[0208]
基于所述第一智能合约,通过所述训练样本和每个所述模型子参数对应的损失函数,对所述目标模型进行模型训练,确定每个所述模型子参数对应的初始梯度信息;
[0209]
基于所述第一智能合约,通过每个所述模型子参数对应的截断信息对相应的所述模型子参数对应的初始梯度信息进行梯度截断,得到每个所述模型子参数对应的梯度信息;
[0210]
基于所述第一智能合约,向每个所述模型子参数对应的梯度信息中加入相应的噪声信息,得到每个所述模型子参数对应的目标梯度信息,并基于每个所述模型子参数对应的目标梯度信息对所述模型参数进行更新,得到训练后的目标模型。
[0211]
本说明书实施例中,还包括:
[0212]
基于预先部署于所述区块链系统中的第二智能合约,获取每个所述模型子参数的范数,以及每个所述模型子参数对应的初始梯度信息的范数;
[0213]
基于所述第二智能合约、每个所述模型子参数的范数、每个所述模型子参数对应的初始梯度信息的范数和预设的截断阈值,确定每个所述模型子参数对应的截断信息。
[0214]
本说明书实施例提供一种模型的训练设备,获取待训练的目标模型对应的模型参数和目标模型的训练样本,并将模型参数划分为多个不同的模型子参数,然后,可以基于训练样本和每个模型子参数对应的损失函数,对目标模型进行模型训练,确定每个模型子参数对应的初始梯度信息,基于每个模型子参数对应的截断信息对相应的模型子参数对应的初始梯度信息进行梯度截断,得到每个模型子参数对应的梯度信息,最终,可以向每个模型子参数对应的梯度信息中加入相应的噪声信息,得到每个模型子参数对应的目标梯度信息,并基于每个模型子参数对应的目标梯度信息对模型参数进行更新,这样,通过计算梯度更新与模型参数之间的相对大小来自适应进行梯度截断处理,并通过向确定的梯度信息中添加噪声信息,能更有效的抑制单个样本对整体模型参数的影响,同时加快算法的收敛,提升最终模型预测的准确率。
[0215]
此外,通过使用自适应梯度截断算法改进差分隐私梯度下降算法,算法通过计算梯度更新与模型参数之间的相对大小来自适应决定截断信息与噪声信息的大小,能更有效的抑制单个样本对整体模型参数的影响,同时加快算法的收敛,提升模型预测准确率。
[0216]
实施例七
[0217]
进一步地,基于上述图1到图5b所示的方法,本说明书一个或多个实施例还提供了一种存储介质,用于存储计算机可执行指令信息,一种具体的实施例中,该存储介质可以为u盘、光盘、硬盘等,该存储介质存储的计算机可执行指令信息在被处理器执行时,能实现以下流程:
[0218]
获取待训练的目标模型对应的模型参数和所述目标模型的训练样本,并将所述模型参数划分为多个不同的模型子参数;
[0219]
基于所述训练样本和每个所述模型子参数对应的损失函数,对所述目标模型进行模型训练,确定每个所述模型子参数对应的初始梯度信息;
[0220]
基于每个所述模型子参数对应的截断信息对相应的所述模型子参数对应的初始梯度信息进行梯度截断,得到每个所述模型子参数对应的梯度信息;
[0221]
向每个所述模型子参数对应的梯度信息中加入相应的噪声信息,得到每个所述模型子参数对应的目标梯度信息,并基于每个所述模型子参数对应的目标梯度信息对所述模型参数进行更新,得到训练后的目标模型。
[0222]
本说明书实施例中,所述将所述模型参数划分为多个不同的模型子参数,包括:
[0223]
基于所述目标模型对应的网络层的数量,确定所述模型子参数的数量;
[0224]
基于所述模型子参数的数量,将所述模型参数划分为多个不同的模型子参数。
[0225]
本说明书实施例中,所述将所述模型参数划分为多个不同的模型子参数,包括:
[0226]
获取每个所述模型子参数对应的表征向量;
[0227]
基于所述表征向量中的行向量,将所述模型参数划分为多个不同的模型子参数。
[0228]
本说明书实施例中,还包括:
[0229]
获取每个所述模型子参数的范数,以及每个所述模型子参数对应的初始梯度信息的范数;
[0230]
基于每个所述模型子参数的范数、每个所述模型子参数对应的初始梯度信息的范数和预设的截断阈值,确定每个所述模型子参数对应的截断信息。
[0231]
本说明书实施例中,所述基于每个所述模型子参数对应的截断信息对相应的所述模型子参数对应的初始梯度信息进行梯度截断,得到每个所述模型子参数对应的梯度信息,包括:
[0232]
针对多个不同的模型子参数中的任一模型子参数,执行以下处理:
[0233]
获取所述模型子参数的范数与预设初值之间的最大值;
[0234]
如果所述模型子参数对应的初始梯度信息的范数与获取的最大值的比值大于预设的截断阈值,则确定所述模型子参数对应的梯度信息为所述截断阈值与获取的最大值的乘积,并与所述模型子参数对应的初始梯度信息的范数之间的比值的倍数的所述初始梯度信息。
[0235]
本说明书实施例中,所述基于每个所述模型子参数对应的截断信息对相应的所述模型子参数对应的初始梯度信息进行梯度截断,得到每个所述模型子参数对应的梯度信息,包括:
[0236]
针对多个不同的模型子参数中的任一模型子参数,执行以下处理:
[0237]
获取所述模型子参数的范数与预设初值之间的最大值;
[0238]
如果所述模型子参数对应的初始梯度信息的范数与获取的最大值的比值不大于预设的截断阈值,则确定所述模型子参数对应的梯度信息为所述模型子参数对应的初始梯度信息。
[0239]
本说明书实施例中,所述噪声信息为高斯噪声的信息,所述目标模型为神经网络算法构建的模型。
[0240]
本说明书实施例中,所述噪声信息通过预设的噪声尺度信息、预设的截断阈值和所述模型子参数的范数确定。
[0241]
此外,在另一种具体的实施例中,该存储介质可以为u盘、光盘、硬盘等,该存储介质存储的计算机可执行指令信息在被处理器执行时,能实现以下流程:
[0242]
获取目标模型的训练规则信息,采用所述目标模型的训练规则信息生成相应的第一智能合约,并将所述第一智能合约部署到所述区块链系统中;
[0243]
调用所述第一智能合约,获取待训练的目标模型对应的模型参数和所述目标模型的训练样本,并将所述模型参数划分为多个不同的模型子参数;
[0244]
基于所述第一智能合约,通过所述训练样本和每个所述模型子参数对应的损失函数,对所述目标模型进行模型训练,确定每个所述模型子参数对应的初始梯度信息;
[0245]
基于所述第一智能合约,通过每个所述模型子参数对应的截断信息对相应的所述模型子参数对应的初始梯度信息进行梯度截断,得到每个所述模型子参数对应的梯度信息;
[0246]
基于所述第一智能合约,向每个所述模型子参数对应的梯度信息中加入相应的噪声信息,得到每个所述模型子参数对应的目标梯度信息,并基于每个所述模型子参数对应的目标梯度信息对所述模型参数进行更新,得到训练后的目标模型。
[0247]
本说明书实施例中,还包括:
[0248]
基于预先部署于所述区块链系统中的第二智能合约,获取每个所述模型子参数的范数,以及每个所述模型子参数对应的初始梯度信息的范数;
[0249]
基于所述第二智能合约、每个所述模型子参数的范数、每个所述模型子参数对应的初始梯度信息的范数和预设的截断阈值,确定每个所述模型子参数对应的截断信息。
[0250]
本说明书实施例提供一种存储介质,获取待训练的目标模型对应的模型参数和目标模型的训练样本,并将模型参数划分为多个不同的模型子参数,然后,可以基于训练样本和每个模型子参数对应的损失函数,对目标模型进行模型训练,确定每个模型子参数对应的初始梯度信息,基于每个模型子参数对应的截断信息对相应的模型子参数对应的初始梯度信息进行梯度截断,得到每个模型子参数对应的梯度信息,最终,可以向每个模型子参数对应的梯度信息中加入相应的噪声信息,得到每个模型子参数对应的目标梯度信息,并基于每个模型子参数对应的目标梯度信息对模型参数进行更新,这样,通过计算梯度更新与模型参数之间的相对大小来自适应进行梯度截断处理,并通过向确定的梯度信息中添加噪声信息,能更有效的抑制单个样本对整体模型参数的影响,同时加快算法的收敛,提升最终模型预测的准确率。
[0251]
此外,通过使用自适应梯度截断算法改进差分隐私梯度下降算法,算法通过计算梯度更新与模型参数之间的相对大小来自适应决定截断信息与噪声信息的大小,能更有效的抑制单个样本对整体模型参数的影响,同时加快算法的收敛,提升模型预测准确率。
[0252]
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0253]
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因
此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmable logic device,pld)(例如现场可编程门阵列(field programmable gate array,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardware description language,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advanced boolean expression language)、ahdl(altera hardware description language)、confluence、cupl(cornell university programming language)、hdcal、jhdl(java hardware description language)、lava、lola、myhdl、palasm、rhdl(ruby hardware description language)等,目前最普遍使用的是vhdl(very-high-speed integrated circuit hardware description language)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
[0254]
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmel at91sam、microchip pic18f26k20以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0255]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0256]
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书一个或多个实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0257]
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0258]
本说明书的实施例是参照根据本说明书实施例的方法、设备(系统)、和计算机程
序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程欺诈案例的串并设备的处理器以产生一个机器,使得通过计算机或其他可编程欺诈案例的串并设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0259]
这些计算机程序指令也可存储在能引导计算机或其他可编程欺诈案例的串并设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0260]
这些计算机程序指令也可装载到计算机或其他可编程欺诈案例的串并设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0261]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0262]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0263]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0264]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0265]
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0266]
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型
的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0267]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0268]
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1