一种基于区块链与联邦学习的双重防御方法
未命名
08-07
阅读:126
评论:0
234-241)使用共识委员会的方法来改善该情况,通过验证节点(简称验证者)的本地模型精确度,选取提供模型精确度高的训练者形成共识委员会,让共识委员会负责验证数据与本地模型参数。该方法能在一定程度上缓解通信和资源开销问题,但仍存在问题p1:区块链的去中心化性大大减弱,而且选取共识委员会成员的过程同样需要较大通信和资源开销。
6.传统的聚合方法使用各训练者的本地样本数量作为聚合的权重(mcmahan b, moore e, ramage d, et al. communication-efficient learning of deep networks from decentralized data[c]. artificial intelligence and statistics. pmlr, 2017: 1273-1282),因为恶意节点可以故意使用较大的数据集来增加自己的聚合权重,从而对模型产生破坏。为解决该问题,已有多项研究提出一些聚合方法,但仍存在一些不足之处。例如,median方法(yin d, chen y, kannan r, et al. byzantine-robust distributed learning: towards optimal statistical rates[c]. international conference on machine learning. pmlr, 2018: 5650-5659)可以排除极端本地模型参数(即恶意节点故意产生远大于或远小于正常值域的本地模型参数)的影响,但是该方法只利用了中位数而没有充分利用其他本地模型参数信息。相比之下,trimmedmean方法(yin d, chen y, kannan r, et al. byzantine-robust distributed learning: towards optimal statistical rates[c]. international conference on machine learning. pmlr, 2018: 5650-5659)可以摒弃极端本地模型参数后充分利用剩余本地模型参数,但是其排除极端本地模型参数的能力有限。krum方法(blanchard p, el mhamdi e m, guerraoui r, et al. machine learning with adversaries: byzantine tolerant gradient descent[j]. advances in neural information processing systems, 2017, 30)可以根据本地模型参数之间在特征空间上的欧几里得距离来判断恶意本地模型参数,因为恶意节点上传的本地模型参数会远离诚实的训练者所上传的本地模型参数。然而,该方法可能会受到单个本地模型参数的影响,导致大量的本地模型参数被舍弃。综上可知,现有方法存在问题p2:攻击者可能会针对聚合方法来攻击目标模型,导致聚合方法效果大大降低。
技术实现要素:
[0007]
发明目的:本发明的目的是提供一种能避免恶意节点无法采用有针对性的攻击方法对模型进行攻击的基于区块链与联邦学习的双重防御方法。
[0008]
技术方案:本发明的双重防御方法,在物联网的场景下进行联邦学习并搭建模型框架,模型框架中的角色主要有任务发布者、验证者和训练者:任务发布者为联邦学习任务的发起节点;训练者为联邦学习任务的训练节点;验证者验证其他训练者发送的本地模型参数的验证节点;其特征在于,包括步骤如下: s1,判断联邦学习过程是否达到了迭代次数或模型精确度达到阈值,如果是,则退出该学习过程;否则,任务发布者上传任务区块,将任务的信息存储在该任务区块中; s2,训练者接收任务区块,该任务区块为当前最新的任务区块;s3,训练者根据任务区块上的信息,使用本地数据训练本地模型;s4,训练者完成训练后将本地模型参数发送给验证者;
s5,验证者接收到训练者的本地模型参数,并通过共识委员会机制验证这些参数;s6,验证者将通过验证的本地模型参数打包上链;s7,任务发布者从区块链上下载其他验证者提交的本地模型参数,采用hblend聚合方法形成全局模型参数,该全局模型参数为任务发布者发布新任务的数据;s8,根据验证者的本地模型精确度,更新共识委员会供下一轮的本地模型验证使用,随后回到步骤s1。
[0009]
进一步,所述模型框架中的区块链能存储多种信息,所述区块链包括:任务区块和本地模型区块; 所述任务区块和本地模型区块分别由header和body组成,header包括四个字段:;当一个新区块加入时,区块链将验证新区块与之前包含区块的合法性;任务区块的body包含模型参数,每完成一轮的模型聚合后都会生成一个该类型的新区块,为下一轮迭代提供全局模型参数; 本地模型区块的body包含验证者、模型精确度和本地模型参数。
[0010]
进一步,区块链验证新区块与之前包含区块的合法性时,新的区块必须满足以下约束:
[0011] 其中,和为前一个区块的字段,和为新来的区块中的字段。
[0012]
进一步,步骤s5中,采用共识委员会机制选择验证者,验证本地模型参数的步骤如下: sb1,在联邦学习任务发布后,iot设备参与训练任务,作为训练者,设训练者集合为,训练者; sb2,初始阶段,所有训练者都有资格成为验证者,验证者组成共识委员会;设表示第i轮共识委员会集合,;共识委员会中的验证者参与本地模型的训练和验证其他训练者发送的本地模型参数,验证者记为; sb3,将第轮验证者根据其本地模型精确度由小到大排序,得到;从每轮的共识委员会中选择本地模型验证后,在本地模型精确度低于的验证者中选择精确度最低的a个验证者放到集合中,
表示第i轮恶意节点集, 表示第i轮第a个恶意节点; ;为验证者的本地模型精确度阈值; sb4,从中去掉集合 ꢀ
中的恶意节点,得到优化后的共识委员会 : ;sb5,当 时或模型精确度达到阈值, ,转到步骤sb3, 为迭代次数的阈值;否则,结束共识委员会选举。
[0013]
进一步,步骤s6中,设通过共识委员会验证的本地模型参数集合,为训练者n的参数张量;设上传这些参数的训练者集合为 ,表示p中的第n个训练者,训练者总数为,其中恶意节点数为 ,需要满足
ꢀꢀ
。
[0014]
进一步,所述聚合方法中,在每轮聚合时需要生成一个随机数 ,第轮采用的处理方法根据
ꢀꢀ
进行选择,聚合得到全局模型参数,表达式如下:其中,表示 上第个张量元素,令 ;在聚合方法执行之前,对进行排序,得到, 为经过排序后的本地模型参数, ;表示经过排序的本地模型参数集合,;其中,表示产生一组本地模型参数的中位数,取 ꢀ
中的中位数作为聚合全局模型参数的结果 :
ꢀꢀ
表示从中删除首尾各 个参数,得到聚合全局模型参数的结果 : [0015]
表示动态地去除恶意本地模型参数,详细步骤如下:sc1,设置 初始值为0;
ꢀ
sc2,计算本地模型参数列表 ꢀ
中的平均值,记作; sc3,从 中去除与相差最大的本地模型参数,将此本地模型参数去除,并且将提交该本地模型参数的训练者视作一个恶意节点,将该训练者从集合中去除, ; sc4,如果 ,转到步骤sc2;否则,转到步骤sc4,表示已经达到了拜占庭容忍的恶意节点数阈值; sc5,选取 作为聚合全局模型参数。
[0016]
本发明与现有技术相比,其显著效果如下: 1、在验证阶段,为了抵御中毒攻击,采用联邦学习与区块链结合的方法,提出一种共识委员会机制,通过共识委员会验证训练者所上传的本地模型参数,在模型聚合前筛选出优质本地模型参数参与聚合;通过验证者在模型训练的中表现不断更新共识委员会,以不断优化共识委员会; 2、在模型聚合阶段,提出一种联邦学习方法,该方法包括三种优化的聚合方法,在每次联邦学习迭代中随机选择一种方法进行聚合,使得恶意节点无法对特定的聚合方法进行针对性的攻击,从而抵御中毒攻击;经过实验评估,并与其他相关方法进行对比分析,得出本发明在不同场景下都具有显著的优势。
附图说明
[0017]
图1为本发明的总框架示意图;图2为任务区块示意图;图3为本地模型区块示意图;图4为共识委员会选举策略示意图;图5为联邦学习的算法流程图。
实施方式
[0018]
下面结合说明书附图和具体实施方式对本发明做进一步详细描述。
[0019]
为解决区块链的去中心化性大大减弱,而且选取委员会成员的过程同样需要大的通信和资源开销的问题,本发明提出一种共识委员会机制,可在全局模型不断迭代的过程中,不断优化验证者的选择和验证方法。在第一轮训练中,所有训练者都可以自愿参与验证,组成初始共识委员会。然后在每一轮的全局模型迭代过程中,在共识委员会中去除本地模型精确度低的一定数量验证者,优化后形成新的共识委员会,以验证下一轮模型。随着模型的不断迭代,验证者的选择也越来越合理,通信资源和验证开销也越来越小。
[0020]
为解决攻击者可能会针对聚合方法来攻击目标模型,导致安全聚合方法效果大大降低的问题,本发明提出一种ifedavg联邦学习方法。通过随机选择不同聚合方法,使恶意节点无法针对特定聚合方法而做出针对性的攻击。
[0021]
(一)构建架构
ꢀ
联邦学习是一种分布式的机器学习范式,能够让多个数据拥有方在不共享数据的基础上联合建模,从而解决数据孤岛和用户隐私问题。本发明模型框架是在物联网的场景下进行联邦学习的整个过程。物联网中包含了各种智能设备,如车联网、船联网、工业物联网、医疗物联网等,这些设备需要具备存储和计算能力;例如智能手表、智能车辆、无人机和手机等,这些智能设备本质上是由人操控参与联邦学习,所以操控者即是联邦学习中的用户。本发明模型的角色主要有任务发布者、验证者和训练者,本发明模型框架图如图1所示。
[0022]
图1中角色分析如下:1)任务发布者:联邦学习任务的发起节点,通过发布任务区块发布任务及训练参数。每轮迭代负责更新参数并发布更新后的任务区块。
[0023]
2)训练者:联邦学习任务的训练节点,接收任务发布者发布的任务区块,根据任务区块上的信息使用本地数据训练出本地模型,然后将本地模型参数发送给验证者。
[0024]
3)验证者:验证其他训练者广播的本地模型参数的验证节点,将验证通过的本地模型参数打包上传至区块链。每一轮验证者组成该轮的共识委员会。共识委员会验证本地模型参数,并把经过验证的本地模型参数打包上链。
[0025]
如图1所示,本发明框架的具体工作流程如下: a1,判断模型联邦学习过程是否达到了迭代次数或模型精确度达到阈值,如果是,则退出该学习过程;否则,任务发布者上传任务区块,将任务的信息存储在该任务区块中; a2,训练者接收任务区块(即:当前最新的任务区块); a3,训练者根据任务区块上的信息,使用本地数据训练本地模型; a4,训练者完成训练后将本地模型参数发送给验证者; a5,验证者接收到训练者的本地模型参数,并验证这些参数; a6,验证者将通过验证的本地模型参数打包上链(对本地模型参数验证的过程:验证者将验证的模型精确度上传,当这些验证者个数达到共识委员会中验证者数量的三分之二时,取这些精确度中的中位数作为该本地模型精确度); a7,任务发布者从区块链上下载其他验证者提交的本地模型参数,采用本发明提出的聚合方法hblend聚合形成全局模型参数(为步骤a1的任务发布者发布新任务提供数据,从而生成新的任务区块,以让下一轮训练者使用); a8,根据验证者的本地模型精确度,更新共识委员会供下一轮的本地模型验证使用,随后回到步骤s1。
[0026]
(二)构建区块 本发明框架模型中需要区块链能存储多种信息,例如全局模型参数、本地模型参数、验证者信息等,分别为:任务区块如图2所示、本地模型区块如图3所示。
[0027]
在图2、图3中:每个区块由header和body组成, header主要包括四个字段:1) ;2) ;3) ;4) 。当一个新区块加入时,区块链将验证新区块与之前包含区块的合法性。具体来说,假设前一个区块的字段是假设前一个区块的字段是和,新来的区块中的字段
是和,则新的区块必须满足以下约束: [0028]
任务区块的body中的内容有全局模型参数,之后每完成一轮的模型聚合后都会生成一个该类型的新区块,为下一轮迭代提供全局模型参数。本地模型区块的body中的内容有打包此区块的验证者、模型精确度、本地模型参数。
[0029]
(三)共识委员会机制 本发明采用共识委员会机制来选择验证者,该机制在任务的初始阶段,每个训练者都有机会成为验证者。因为验证者验证后可以获得酬劳,验证者会积极参与验证工作。关于验证的选择方式,直接指定验证者会导致中心化。在本发明的共识委员会机制中,所有训练者在初始阶段都可以参与验证,以解决中心化问题。如图4所示,每一轮联邦迭代学习之后,选举下一轮的共识委员会,即:在每一轮模型训练并聚合结束后,在本轮共识委员会中,去除本地模型精确度低的验证者。随着共识委员会的不断优化,验证效果也会越来越好,并且共识委员会的不断精简,所需的验证时间也自然的减小。相关参数如表1所示。
[0030]
表1 共识委员会选举参数表
[0031]
共识委员会选举(即采用共识委员会机制来选择验证者)步骤如下:b1,在联邦学习任务发布后,iot设备可以参与训练任务,作为训练者,设训练者集合为,训练者。
[0032]
b2,初始阶段,所有训练者都有资格成为验证者,验证者组成共识委员会。设表示第轮共识委员会集合,。共识委员会中的验证者参与本地模型的训练和验证其他训练者发送的本地模型参数,验证者记为。
[0033]
b3,将第轮验证者根据其本地模型精确度由小到大排序,得到。
从每轮的共识委员会中选择本地模型验证后,在本地模型精确度低于的验证者中选择精确度最低的个验证者放到集合中(为验证者的本地模型精确度阈值)。表示第轮恶意节点集,表示第轮第个恶意节点,。
[0034]
b4,从中去掉集合中的恶意节点,得到优化后的共识委员会:
[0035]
b5,当时(为迭代次数的阈值)或模型精确度达到阈值转到步骤b3;否则,结束共识委员会选举。
[0036]
所有参与训练者均有机会参与验证本地模型参数,增加了模型的去中心化能力。共识委员会验证所需要的时间有验证时间和共识时间。假设每个验证者的验证时间相同,记为,令共识时间记为,则有:
[0037]
其中,是验证者向任务发布者发送请求的时间,任务发布者向验证者发送预准备消息的时间;是验证者向任务发布者发送准备消息的时间,以及任务发布者向验证者广播准备消息的时间;是验证者向任务发布者发送承诺消息的时间,以及任务发布者向验证者广播承诺消息的时间。每个时间项都与网络延迟和带宽以及消息大小和数量有关,假设每名验证者所需的时间相同。上述三项时间在共识过程中的时间分别为和,则共识的总时间为。因此可以计算出共识委员会验证所需的总时间为:
[0038]
由上述的共识委员更新过程可知,则。综上可以得出,随着共识委员会的不断优化,共识委员会所需要的验证时间也在不断减少。
[0039]
(四)联邦学习本发明设计一种联邦学习方法,称为ifedavg算法,该方法的核心内容是如何摒弃恶意节点的恶意本地模型参数。该方法中的混合聚合方法hblend包括:imedian(improved median)、itrimmedmean(improved trimmedmean)和ifaba(improved faba)。
[0040]
设通过共识委员会验证的本地模型参数集合,为训练者n的参数张量。设上传这些参数的训练者集合为。表示中的第n个训练者。训练者总数为,其中恶意节点数为,需要满足。
[0041]
本发明设计的聚合方法hblend,在每轮聚合时需要生成一个随机数,第轮采用的聚合方法根据,选择imedian(),itrimmedmean()和ifaba()其中的一种,聚合得到全局模型参数:
[0042]
表示上第个张量元素,令。在聚合方法执行之前,对进行排序,得到,为经过排序后的本地模型参数,。表示经过排序的本地模型参数集合,。由于经过排序,所以执行聚合方法时不需要对其进行排序,使得聚合方法更加简单和更快运行。
[0043]
imedian( )方法产生一组本地模型参数的中位数。具体地,也就是取中的中位数作为聚合全局模型参数的结果:
[0044]
itrimmedmean( )将统计学中的修剪平均值算法移植到联邦学习,并独立处理本地模型参数的每个参数。从中删除首尾各f个参数,得到聚合全局模型参数的结果:
[0045]
ifaba( )是一种动态聚合方法,动态去除恶意本地模型参数,详细的实现步骤如下:c1,设置初始值为0;c2,计算本地模型参数列表中的平均值,记作;c3,从中去除与相差最大的本地模型参数,将此本地模型参数去除,并且将提交该本地模型参数的训练者视作一个恶意节点,将该训练者从集合中去除,;则表达式为:
[0046]
其中,表示与相差最大的本地模型参数;c4,如果,转到步骤c2;否则,转到步骤c4,表示已经达到了拜占庭容忍的恶意节点数阈值;
c5,选取作为聚合全局模型参数,则有:
[0047]
如图5所示,联邦学习的算法实现步骤如下:步骤1,发布联邦学习任务,在本实施例框架中经过训练和验证,上传一批待聚合的本地模型参数。
[0048]
步骤2,聚合任务发起后需要调用算法1。
[0049]
步骤3,算法1调用算法2,更新本地模型参数。
[0050]
步骤4,算法1需要调用算法3完成鲁棒性的安全聚合,聚合任务在收集各个本地模型参数后调用算法3对这些数据聚合,最终形成全局模型。
[0051]
步骤5,判断是否为0;如果为0,执行步骤6;否则,执行步骤7。
[0052]
步骤6,则调用算法4聚合方法imedian( )完成一轮聚合。
[0053]
步骤7,判断是否为1,若为1,执行步骤8;否则,执行步骤9。
[0054]
步骤8,调用算法5聚合方法itrimmedmean( )完成一轮聚合。
[0055]
步骤9,调用算法6聚合方法ifaba( )完成一轮聚合。
[0056]
具体的fedavg算法如算法1所示,见表2。
[0057]
表2 算法1-fedavg算法
[0058]
算法1描述了本发明的fedavg算法,具体实现步骤如下:f1,初始化一个全局模型权重;f2,训练者接收到该全局参数后使用本地数据训练本地模型;f3,训练者上传本地模型参数并聚合为全局模型参数;f4,重复上述步骤f1-f3直到达到迭代次数或模型精确度达到阈值。
[0059]
表3 算法2-客户端模型的更新
else结构,根据r的值选择不同的聚合函数;imedian( )、itrimmedmean( )和ifaba( )算法的时间复杂度分别是和,因此算法3的复杂度是。
[0064]
表5 算法4
[0065]
算法4的核心思想是通过计算每个维度上的中位数,然后聚合得到全局模型参数。假设在维度上,计算出此维度的中位数作为全局模型参数在维度上的标量,计算出每个维度上的标量;n是本地模型参数的总数。算法4的时间复杂度计算过程为:第3~7行的if语句只会执行一次,并且由于经过排序,只需遍历数组取其中位数赋值给,时间复杂度为;第9行的赋值操作的复杂度是,因为需要遍历所有维度的中位数并存入中。因此,算法4的复杂度是。
[0066]
表6 算法5
[0067]
算法5通过排序维度上数据并去除两端各个数据,然后再计算在维度剩余数据的均值作为此维度的标量,计算出每个维度上的标量;n是本地模型参数的总数。算法5的时间复杂度计算过程为:在第2行,循环次数为,所以这一部分的时间复杂度为;在第3行,删除数组两端的个元素需要的时间;在第4行,计算平均值需要的时间。第6行的赋值操作的复杂度是,因为需要遍历所有维度的平均值并存入中。因此,算法5的复杂度是。
[0068]
表7 算法6
[0069]
算法6核心思想是通过计算每个维度上标量的均值,然后通过逐步去除与此均值相差最大的标量;之后再次计算剩余标量的均值,然后再次去除与此均值相差最大的那个标量。如此循环,直到去除的个数达到所有拜占庭工人的数量,将最终的均值作为此维度的标量,并计算出每个维度上的标量。算法6的时间复杂度计算过程为:第2行的循环次数为;第3行的循环次数为;第4~5行的循环次数为,所以for循环内循环次数为;第9行的赋值操作的复杂度是,因为需要遍历所有并存入中。因此,算法6的复杂度是。
[0070]
(五)效果验证选用pycharm搭建一个模拟联邦学习聚合过程的框架,通过分别使用不同的聚合方法、攻击方式和节点分布图作对比实验并分析结果。
[0071]
(51)参数设置本实施例是基于拜占庭环境进行的验证,本实验设置个节点上传的模型权重聚合,其中有名诚实节点和名恶意节点。本实验评估了softmax回归任务上的鲁棒性,数据集使用的是mnist。
[0072]
mnist:该数据集来自美国国家标准与技术研究所,包含60000个手写数字的训练
图像,从0到9。训练集由来自250个不同人手写的数字构成,其中50%是高中学生,50% 来自人口普查局的工作人员,测试集也是同样比例的手写数字数据。
[0073]
实验具体参数设置如表8所示,所有图像数据均匀分布给每个工人,使用系数为0.01、(表示训练的时间戳)、批量为32的平方范数正则化。本地数据分布分别采用i.i.d..(独立同步分布的)和non-i.i.d.(非独立同步分布的)的方式。
[0074]
表8 实验参数设置表
[0075]
本实施例的主要考虑对联邦学习聚合的攻击如下:1)gaussian:该攻击是一种模型攻击,即恶意节点在本地模型更新时加入高斯噪声,从而影响全局模型的收敛和性能。该攻击属于非定向攻击,目的是破坏联邦学习模型精确度。
[0076]
2)sign-flipping:该攻击是一种数据攻击,即恶意节点在本地数据集中随机或有针对性修改部分样本标签,从而影响全局模型的泛化能力和精确度。该攻击属于非定向攻击,目的是破坏联邦学习模型精确度。
[0077]
3)isolation:该攻击是一种模型攻击,恶意节点通过修改自己的本地模型或数据,来干扰或破坏全局模型的训练过程。该攻击的目的是使全局模型对某些类别的数据无法正确分类,从而降低模型的准确性和泛化能力。
[0078]
4)sample-duplicatin:该攻击是一种模型攻击,恶意节点通过复制或修改自己的本地数据来影响全局模型的攻击。恶意节点可以在本地数据中添加一些具有特定标签或特征的样本,从而使全局模型对这些标签或特征产生偏好或误判。
[0079]
(52)实验结果表9展示了各种聚合方法在使用i.i.d.划分数据方法,基于two-castle节点分布,分别受到gaussian、sign-flipping、isolation和sample-duplicatin攻击情况下,最终聚合的全局模型的精确度。
[0080]
表9 i.i.d. 案例基于two-castle节点分布的精确度
[0081]
在表9中,聚合规则是指在分布式优化中,如何将多个节点的权重或参数进行合并,以达到最优化目标。攻击模式是指在分布式优化中,可能存在一些恶意节点,它们会故意发送错误或随机的权重或参数,以干扰优化过程。two-castle节点分布图有两个维度,一个是通信轮数,一个是精确度;通信轮数表示在联邦学习过程中,各个参与者需要和中心服务器交换模型权重的次数。精确度表示联邦学习得到的模型在测试集上的预测正确率。
[0082]
从表9中可以得出,本发明提出的blend(混合聚合)方法,在受到这四种攻击时都有着不错的精确度,并且所得的模型的精确度也高于其他模型。
[0083]
表10展示了各种聚合方法在使用non-i.i.d.划分数据方法,基于two-castle节点分布,分别受到gaussian、sign-flipping、isolation和sample-duplicatin攻击情况下,最终聚合的全局模型的精确度。
[0084]
表10 non-i.i.d. 案例中基于two-castle节点分布的精确度
[0085]
联邦学习的数据划分有两种基本类型:i.i.d.和non-i.i.d.;i.i.d.意味着每个客户端的数据都是从同一个分布中独立地采样的,也就是说,每个客户端都有相似的数据特征和标签分布。non-i.i.d.意味着每个客户端的数据都是从不同的分布中采样的,也就是说,每个客户端都有不同的数据特征和标签分布。
[0086]
由表10可知,除了sample-duplication攻击下,其他的情况blend方法都优于其他方法,且在遭受sample-duplication攻击时,blend方法训练出的模型精确度更高,blend方法总体上鲁棒性更强。
技术特征:
1.一种基于区块链与联邦学习的双重防御方法,在物联网的场景下进行联邦学习并搭建模型框架,模型框架中的角色主要有任务发布者、验证者和训练者:任务发布者为联邦学习任务的发起节点;训练者为联邦学习任务的训练节点;验证者验证其他训练者发送的本地模型参数的验证节点;其特征在于,包括步骤如下:s1,判断联邦学习过程是否达到了迭代次数 或模型精确度达到阈值,如果是,则退出该学习过程;否则,任务发布者上传任务区块,将任务的信息存储在该任务区块中;s2,训练者接收任务区块,该任务区块为当前最新的任务区块;s3,训练者根据任务区块上的信息,使用本地数据训练本地模型;s4,训练者完成训练后将本地模型参数发送给验证者;s5,验证者接收到训练者的本地模型参数,并通过共识委员会机制验证这些参数;s6,验证者将通过验证的本地模型参数打包上链;s7,任务发布者从区块链上下载其他验证者提交的本地模型参数,采用hblend聚合方法形成全局模型参数,该全局模型参数为任务发布者发布新任务的数据;s8,根据验证者的本地模型精确度,更新共识委员会供下一轮的本地模型验证使用,随后回到步骤s1。2.根据权利要求1所述基于区块链与联邦学习的双重防御方法,其特征在于,所述模型框架中的区块链能存储多种信息,所述区块链包括:任务区块和本地模型区块;所述任务区块和本地模型区块分别由header和body组成, header包括四个字段: ;当一个新区块加入时,区块链将验证新区块与之前包含区块的合法性;任务区块的body包含模型参数,每完成一轮的模型聚合后都会生成一个该类型的新区块,为下一轮迭代提供全局模型参数;本地模型区块的body包含验证者、模型精确度和本地模型参数。3.根据权利要求2所述基于区块链与联邦学习的双重防御方法,其特征在于,区块链验证新区块与之前包含区块的合法性时,新的区块必须满足以下约束:其中,和为前一个区块的字段,和 为新来的区块中的字段。4.根据权利要求1所述基于区块链与联邦学习的双重防御方法,其特征在于,步骤s5中,采用共识委员会机制选择验证者,验证本地模型参数的步骤如下:sb1,在联邦学习任务发布后,iot设备参与训练任务,作为训练者,设训练者集合为,训练者;sb2,初始阶段,所有训练者m都有资格成为验证者,验证者组成共识委员会;设v
i
表示第i轮共识委员会集合,;共识委员会中的验证者参与本地模型的训
练和验证其他训练者发送的本地模型参数,验证者记为;sb3,将第i轮验证者根据其本地模型精确度由小到大排序,得到;从每轮的共识委员会中选择本地模型验证后,在本地模型精确度低于的验证者中选择精确度最低的a个验证者放到集合中,表示第i轮恶意节点集,表示第i轮第a个恶意节点;;为验证者的本地模型精确度阈值;sb4,从中去掉集合中的恶意节点,得到优化后的共识委员会:;sb5,当时或模型精确度达到阈值,,转到步骤sb3,为迭代次数的阈值;否则,结束共识委员会选举。5.根据权利要求4所述基于区块链与联邦学习的双重防御方法,其特征在于,步骤s6中,设通过共识委员会验证的本地模型参数集合 ,为训练者n的参数张量;设上传这些参数的训练者集合为,表示p中的第n个训练者,训练者总数为,其中恶意节点数为f,需要满足。6.根据权利要求4所述基于区块链与联邦学习的双重防御方法,其特征在于,步骤s7中,所述hblend聚合方法中,在每轮聚合时需要生成一个随机数,第i轮采用的处理方法根据r进行选择,聚合得到全局模型参数,表达式如下:其中,表示上第d个张量元素,令;在聚合方法执行之前,对进行排序,得到,为经过排序后的本地模型参数,;表示经过排序的本地模型参数集合,;其中,表示产生一组本地模型参数的中位数,取 中的中位数作为聚合全局模型参数的结果:其中,表示从中删除首尾各个参数,得到聚合全局模型参数的结果:其中,表示动态地去除恶
意本地模型参数,详细步骤如下:sc1,设置 初始值为0;sc2,计算本地模型参数列表中的平均值,记作;sc3,从中去除与相差最大的本地模型参数,将此本地模型参数去除,并且将提交该本地模型参数的训练者视作一个恶意节点,将该训练者从集合p中去除,;sc4,如果,转到步骤sc2;否则,转到步骤sc4,表示已经达到了拜占庭容忍的恶意节点数阈值;sc5,选取作为聚合全局模型参数。
技术总结
本发明公开了一种基于区块链与联邦学习的双重防御方法,包括步骤:S1,判断联邦学习过程是否达到了迭代次数或模型精确度达到设定阈值,如是,则退出该学习过程;否则,将任务信息存储;S2,训练者接收任务区块;S3,训练者使用本地数据训练本地模型;S4,训练者完成训练后将本地模型参数发送给验证者;S5,验证者接收本地模型参数,并通过共识委员会机制验证这些参数;S6,验证者将通过验证的本地模型参数打包上链;S7,任务发布者采用聚合方法形成全局模型参数;S8,根据验证者的本地模型精确度,更新共识委员会以验证下一轮模型,随后回到步骤S1。本发明使恶意节点无法对特定的聚合方法进行针对性的攻击,抵御中毒攻击。抵御中毒攻击。抵御中毒攻击。
技术研发人员:张佩云 丁松 刘颖 徐涪雅 何思开
受保护的技术使用者:南京信息工程大学
技术研发日:2023.07.05
技术公布日:2023/8/5
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
