本发明涉及一种基于学习行为的个性化区块链联邦学习方法,属于信息。
背景技术:
1、目前,深度学习的应用正逐步扩展到各个领域,从而在收集和存储大量数据方面带来了并行挑战。为了解决这个问题,联邦学习作为一种新兴的分布式学习框架被提出,使多个组织能够合作进行模型的分布式训练。各组织参与训练集有可能极大地扩展可用数据,进而促进开发更智能、更可靠的模型。联邦模型由多个参与者进行训练,同时由一个中心客户端进行聚合和分布。
2、传统的联合学习通常需要一个完全可信的中央服务器。因此,如果服务器出现故障或受到攻击,整个过程就会失效。区块链作为一种去中心化的存储解决方案,非常适合解决这一问题。区块链的去中心化特性使联邦学习能够从更高的安全性、隐私性和效率中获益,并减少对中心化服务器的依赖。
3、虽然将区块链与现有的联邦学习系统集成可以部分解决单点故障问题,但它仍然容易受到恶意攻击。一般恶意攻击的目的是损害全局模型的学习性能。攻击者可以通过操控客户端并进行数据中毒或模型中毒来达到这一目的。当这些客户端提交的中毒模型加入到聚合过程中,全局模型的性能就将受到有害的影响。
4、现有的几项防御研究正在开发特定的安全聚合算法。这些安全聚合算法的原理是在聚合过程中移除潜在的恶意模型,以减轻负面影响。然而,这些方法在有效去除潜在恶意模型的同时,也可能无意中去除良性模型,从而对全局模型性能产生不利影响。同时,这对花费资源进行正常学习的客户端也是不公平的。因此,在基于区块链的联邦学习场景下,如何在保证各个正常客户端可以有序加入联邦学习进程的同时,有效防止中毒攻击,保障全局模型的有效性和可靠性,是一个亟待解决的问题。
技术实现思路
1、本发明要解决的技术问题是:基于区块链的联邦学习场景下,如何保证各个客户端有序地进行联邦学习,降低中毒攻击带来的影响,保障全局模型的有效性和可靠性。
2、为了解决上述技术问题,本发明的技术方案是提供了一种基于学习行为的个性化区块链联邦学习方法涉及两个部分,分别是区块链和参与者。参与者通常分布在区块链网络中的不同客户端上,每个客户端都拥有独立的本地数据,从区块链中下载最新的全局模型,经本地训练后生成局部模型广播至区块链。区块链作为替代传统联邦学习中央服务器的结构,负责整个联邦学习过程中局部模型的收集、验证和全局模型的聚合、更新和分发等功能。
3、设参与者都有自己的本地数据集,这些数据集中相同标签下的训练样本的数据分布一致。大部分参与者都会诚实的遵循设计的规范,部分参与者可能会被恶意者攻击,参与者被攻击后,恶意者可以操纵其本地数据集进行中毒攻击,攻击方式分为脏数据攻击和后门攻击,从而产生错误的计算结果。我们假设在区块链中的验证协议与聚合协议无法被篡改。
4、本发明方法能够在上述参与者中实现安全的个性化区块链联邦学习,即,能够在每次迭代中削弱低质量模型对全局模型的影响,同时为各个客户端生成个性化的模型,以保证各个客户端的安全和效率。
5、具体而言,本发明公开的一种基于学习行为的个性化区块链联邦学习方法包括以下步骤:
6、s101:本地训练
7、客户端从区块链的最新区块中下载最新的全局模型;随后,客户端基于自己的本地训练样本,利用下载的全局模型进行局部模型训练,其中,训练迭代的过程是不断寻求使得局部损失值最小的模型参数最优解,最后更新局部模型;
8、s102:生成学习过程模型
9、客户端在本地训练的过程中,生成学习行为步调和学习行为方向;
10、在计算出学习行为步调和方向后,客户端对数据集中每个类别各抽取少量样本,并添加到本地知识集中;
11、由客户端的学习行为步调、学习行为方向、客户端本地数据集组成的三元组,即为学习过程模型;
12、s103:上传模型至记账节点
13、参与客户端在本地训练完局部模型和生成学习过程模型后,将其一同上传至记账节点;
14、s104:学习过程监控
15、区块链中的记账节点不断收集参与客户端上传的学习过程模型,并对它们进行监控,计算学习过程一致性,将学习过程相一致的客户端提交的样本集加入到双方的知识库中,由于攻击客户端通常在行为上与正常客户端不一致,其学习的知识将难以加入到正常客户端的知识库中;
16、利用各个客户端提交的知识集和局部模型对各个客户端的知识质量进行检验,为具有低质量知识以及行为与总体一致性弱的客户端提交的局部模型赋予更低的聚合权重,其中,每个客户端的学习质量应是由全局的客户端的学习过程共同决定的;
17、s105:全局模型更新
18、根据学习过程监控的结果,即每个客户端被赋予的聚合权重进行全局聚合,更新全局模型并上传至区块链;
19、在整个联邦学习过程中,每轮全局迭代不断重复上述操作,直至全局模型达到收敛要求,在全局模型达到收敛后,利用每个客户端的本地知识集,对知识库进行检验,之后,每个客户端将得到一个个性化的知识库,用于后续的本地预测;
20、s106:知识检验
21、记账节点根据每个客户端的本地知识集对各客户端的知识库进行检验,保留知识一致性较高的知识,这里要进行的比较是模型倒数第二层全连接层中样本的输出结果,即模型从样本中提取的特征;
22、在更新知识库之后,每个客户端将得到一个个性化的知识库,由于中毒样本与正常样本的特征间一致性较弱,即正常知识与攻击知识的一致性较弱,正常客户端中的知识库不会包含攻击知识,从而在随后的预测阶段,客户端可以将样本特征与知识库中的特征进行比较,以判断预测的样本相对本地的知识库是否为异常样本。
23、优选地,步骤s102中,参与者将自己的训练过程使用学习行为步调和学习行为方向进行表征,结合本地数据构成学习过程模型,具体包括以下步骤:
24、s201:计算更新模型与初始模型的梯度变化
25、在本地训练完成后,计算更新模型参数与初始模型的参数两者之间的差异,即梯度变化;
26、s202:计算学习行为步调
27、根据前一步得到的梯度变化,与本地迭代次数相除,得到平均梯度变化,即学习行为步调;
28、参与联邦学习的客户端在本地训练结束后,计算学习行为步调和学习行为方向,随后根据学习行为步调、学习行为方向、初始局部模型和最终局部模型所在轮数构建异步学习行为模型,该异步学习行为模型对客户端的训练过程进行了表征:
29、
30、式中,bpi(t)表示第i个客户端在第t次全局迭代中的学习行为步调,即第i个客户端局部模型在本地迭代前后的梯度变化除以本地迭代次数ei的结果;
31、s203:计算学习行为方向
32、根据前一步得到的学习行为步调,结合符号函数计算得到学习行为方向;
33、bdi(t)=sgn(bpi(t)),i=0,1,2,…n
34、式中,sgn(·)为符号函数,bdi(t)表示第i个客户端在第t次全局迭代中的学习行为方向,即第i个客户端在本地迭代后的梯度变化方向;
35、s204:获取本地知识集
36、在客户端学习过程中,正在学习的知识也可以说明客户端的学习质量,从本地数据中各类数据各抽取n个样本,加入到本地知识集中,以说明该客户端正在学习的知识的概况;
37、s205:生成学习过程模型。
38、在上述步骤后,即可得到学习过程模型所需的所有属性:
39、lpi(t)=(bpi(t),bdi(t),ksi(t)),i=0,1,2,…n
40、式中,lpi(t)是指在第t次全局迭代中,由客户端的学习行为步调、学习行为方向、客户端数据集中抽取的各类样本组成的三元组,即,学习过程模型。
41、优选地,步骤s104中,记账节点对客户端提交的过程模型进行监控,结合局部模型验证各客户端的知识质量,通过过程一致性和知识质量计算出各个客户端的学习质量,并以此为根据分配聚合权,同时,为各个客户端建立独立的知识库,知识库中包含与其行为一致的客户端提交的知识集,具体包括以下步骤:
42、s301:计算各客户端间的过程一致性
43、利用各客户端的学习过程模型中的学习行为步调以及学习行为方向来衡量两个客户端间学习过程的一致性:
44、
45、式中,pci,j指的是第i个客户端和第j个客户端间的过程一致性,以及分别代表第i个客户端和第j个客户端学习行为步调和方向的皮尔逊相关系数;
46、s302:更新客户端知识库
47、当第i个客户端和第j个客户端间的过程一致性较强,即pci,j较大时,说明二者的学习行为相似,那么将双方的知识集都加入到双方的知识库中;
48、s303:计算各客户端的知识质量
49、利用各个客户端提交的知识集和局部模型对各个客户端的知识质量进行检验,即检验各个客户端的知识相对各个局部模型的准确率:当准确率较高时,说明该客户端的知识集对于这个局部模型来说,质量是高的;反之,则说明质量较低:
50、kqi,j=acc(φj(ksi))
51、式中,kqi,j指的是相对于第j个客户端的局部模型,第i个客户端的知识质量,acc(φj(ksi))表示第i个客户端的知识集在第j个客户端的局部模型上的准确率;
52、s304:计算各客户端的学习质量
53、利用计算好的各个客户端的过程一致性和知识质量,为相对总体来说,具有低质量知识以及过程一致性弱的客户端提交的局部模型赋予更低的聚合权重:
54、
55、式中,lqi表示第i个客户端的学习质量,n表示客户端的数量,kqi,j指的是相对于第j个客户端的局部模型,第i个客户端的知识质量,pci,j指的是第i个客户端和第j个客户端的过程一致性。
56、优选地,步骤s106中,利用全局模型提取出知识库及客户端本地知识集中的样本特征,计算知识库中特征相对客户端本地知识的一致性,并最终保留与本地知识一致性强的样本特征,得到一个基于客户端本地知识的个性化的知识库,具体包括以下步骤:
57、s401:提取知识库中样本特征
58、利用训练好的全局模型作为特征提取器,将知识库中的样本送入全局模型,并将模型中倒数第二层全连接层的输出作为该样本的特征并提取出来;
59、s402:提取本地知识集中样本特征
60、本地知识集即为客户端每个轮次中提交的知识集的并集,将本地知识集中的样本特征提取出来;
61、s403:计算知识一致性
62、在完成本地知识集和知识库中样本的提取后,计算知识库中样本特征与本地知识集中特征的知识一致性:
63、
64、式中,si,c表示第i个客户端的知识库中属于c类的样本,ksi,c表示第i个客户端的本地知识集的并集中属于c类的样本集合,sj表示ksi,c中第j个样本,cos(φg(si,c),φg(sj))表示全局模型φg上倒数第二层全连接层中si,c和sj输出之间的余弦相似度,kc即表示si,c与客户端本地知识集的知识一致性;
65、s404:更新知识库
66、将知识库中知识一致性较低的特征移除,保留与该客户端本地知识集一致性较强的特征,得到一个基于客户端本地知识的个性化的知识库。
67、本发明公开的方法基于学习行为设计了过程监控和知识检验机制,保证了整个联邦学习过程中的安全性,其中区块链负责联邦学习过程中模型和数据的安全性,过程监控机制负责监控每个客户端的学习过程,为每个客户端建立知识库,同时对不同质量的局部模型分配不同的权重,有效地保障了全局模型聚合时的安全性和可靠性。而知识检验机制则为进一步检验每个客户端的知识库,通过知识一致性获得更符合客户端本地知识的知识库,以进行更个性化、更安全的预测。
68、与现有技术方案相比,本发明具有以下优点:
69、1.本发明在联邦学习过程中利用学习行为进行监控和检验,为每个客户端提供个性化的学习结果,保证训练过程的安全性的同时,保证学习模型的性能。
70、2.本发明对于联邦学习中所使用的训练算法没有限定和要求,可以支持对任意训练过程的防御,提高了该发明的可用性。
71、3.本发明利用客户端在本地训练模型时的行为及学习知识来构建学习过程模型,并结合学习过程监控机制,能够有效地降低低质量模型或者恶意模型的影响,而且在恶意客户端超过半数时,仍能有效保证安全性。同时在监控过程中,为每个客户端建立知识库,在联邦学习进程结束后,通过客户端的本地知识进行知识库检验,为每个客户端提供一个个性化的知识库以在后续的预测阶段进行防御。
1.一种基于学习行为的个性化区块链联邦学习方法,其特征在于,包括以下步骤:
2.如权利要求1所述的一种基于学习行为的个性化区块链联邦学习方法,其特征在于,步骤s102中,参与者将自己的训练过程使用学习行为步调和学习行为方向进行表征,结合本地数据构成学习过程模型,具体包括以下步骤:
3.如权利要求1所述的一种基于学习行为的个性化区块链联邦学习方法,其特征在于,步骤s104中,记账节点对客户端提交的过程模型进行监控,结合局部模型验证各客户端的知识质量,通过过程一致性和知识质量计算出各个客户端的学习质量,并以此为根据分配聚合权,同时,为各个客户端建立独立的知识库,知识库中包含与其行为一致的客户端提交的知识集,具体包括以下步骤:
4.如权利要求1所述的一种基于学习行为的个性化区块链联邦学习方法,其特征在于,步骤s106中,利用全局模型提取出知识库及客户端本地知识集中的样本特征,计算知识库中特征相对客户端本地知识的一致性,并最终保留与本地知识一致性强的样本特征,得到一个基于客户端本地知识的个性化的知识库,具体包括以下步骤:
