一种基于信息熵的联邦学习参与方权重计算方法

文档序号:29816880发布日期:2022-04-27 10:33阅读:293来源:国知局
一种基于信息熵的联邦学习参与方权重计算方法

1.本发明涉及一种基于信息熵的联邦学习参与方权重计算方法,该发明面向工业控制系统,属于入侵检测领域。


背景技术:

2.近几年来,各种工业控制系统(industrial control system,ics)正在快速地从封闭孤立的系统走向开放便利的互联网,伴随着网络技术的飞速发展,工业控制系统不再局限于单一封闭的系统,逐渐呈现分布式管理形态,即通过中心总控室管理分布在全国各地的工控厂商。传统的防范攻击者入侵工业控制系统的方法一般为过提取攻击者的攻击特征利用机器学习进行攻击检测。利用机器学习进行入侵检测可以很好的防范攻击者的入侵行为,然而假若攻击者少量多次地向一个工控系统厂商注入错误的训练数据,导致训练数据毒化,将会使该ics的训练模型出现严重偏移,进一步导致检测结果出现较大错误。
3.联邦学习是一种新兴的分布式学习方法,它构建的是基于分布在多个设备上的数据集的机器学习模型,主要用来保障数据的隐私性问题,多用于金融领域。传统的联邦学习在聚合端进行模型聚合时采用的是无差别平均算法,无法根据不同客户端的模型性能结果给予不同权重。现有针对客户端权重的计算方法多为单因子计算,仅根据客户端模型正确率计算分配权重,单一维度的权重分配方式不能综合考虑多个因子的作用结果,缺乏灵活性。
4.本发明首次将联邦学习应用于解决工业控制领域的数据毒化问题,提出一种基于信息熵的联邦学习参与方权重计算方法,该方法采用多因子综合评价的方式计算客户端的权重,相较其他方法更加合理,聚合后的模型准确率更高。


技术实现要素:

5.本发明提供了一种基于联邦学习中客户端权值分配的入侵检测方法,该发明面向工业控制系统,解决了现有针对分布式工业控制系统的入侵检测技术中,当某个参与方的模型由于数据毒化等问题出现偏移时,经过协调方聚合后带偏其他参与方的模型,进而影响整体检测准确率的问题。
6.本发明提出的入侵检测方法,在协调方能依据各参与方模型准确率情况,给予其不同的权值,在进行模型聚合时,按照各参与方的权值信息进行聚合。这样不仅可以将某个参与方的优良模型参数分配给其他参与方,同时还能将出现模型偏移现象的某个参与方的劣质模型剔除训练,防止其参数影响其他参与方。
7.本发明将联邦学习技术应用在分布式工业控制系统中,该分布式工业控制系统是由一个总控中心和分布在各地的ics厂商组成,总控中心负责协调各地ics的工作。在本发明中,将各地ics厂商作为联邦学习的客户端参与方,负责本地的模型训练;将总控中心作为联邦学习的服务端协调方,负责聚合并更新下发的全局参数。在训练开始时,由所有客户端参与方在本地完成各自的模型训练,经若干次迭代后,将模型参数上传给服务端协调方。
服务端协调方将所有参与方上传的模型参数根据聚合算法进行聚合,得到并更新全局模型参数。之后协调方将得到的新的模型参数下发给各个参与方,所有参与方从协调方下载更新后的全局模型参数后保存到本地,作为本地模型参数继续进行迭代训练。
8.本发明采取如下技术方案实现:
9.步骤1上传局部模型参数
10.假设当前参与联邦学习的客户端集合为c={c1,c2,

,cn},其中n表示客户端参与方的数量,ci表示参与训练的第i个客户端。假设当前的模型结构为g=g1,g2,

,gm},其中m表示模型的层数,gi表示的是模型的第i层所表示的参数矩阵。在联邦学习进行到第t轮时,客户端ci的本地迭代训练中,模型将从g
t
变为其中g
t
表示联邦学习进行到第t轮时的全局模型,表示在第t+1轮时,第i个客户端在本地训练生成的本地模型。根据联邦学习聚合更新的思想,客户端ci将向服务端上传模型参数的变化量
11.步骤2更新全局模型参数
12.在上述情景中的分布式工业控制系统中,假若有攻击者对参与训练的某个客户端少量多次的注入错误数据,则会导致该模型的客户端在训练中出现严重的偏移。本发明在服务端进行聚合时做了改进,增加权重设置,通过自适应权重来决定某个参与方的模型贡献度,及时剔除掉出错的客户端。
13.步骤2.1上传客户端模型正确率初始值
14.假设si表示在使用客户端ci的本地模型进行迭代训练时,训练结果正确率的初始预期值,该值可通过客户端ci在进行联邦学习前由本地数据迭代训练得出。在联邦学习开始时,客户端ci先向服务端上传该客户端的正确率初始预期值si,服务端收到后将该值保存起来供后续使用。
15.步骤2.2上传客户端模型实时正确率与参数
16.假设表示在实际生产环境下进行联邦学习,客户端ci在完成第t轮训练后的模型正确率,该值是客户端ci在联邦学习每轮次完成本地迭代训练后同本地模型参数一同上传到服务端的。
17.步骤2.3求客户端的贡献度
18.本发明通过在协调方计算得出各个客户端的贡献度,由各客户端贡献度的相对大小关系,归一化处理后得出各客户端的权值。下面详细阐述本发明在协调方计算客户端贡献度的方法。
19.服务端协调方在每轮次联邦学习中得到客户端ci的模型参数与实际正确率后,将步骤2.1中保存的客户端ci的正确率初始预期值si与做差值,求得在第t轮模型正确率的变化情况。假如实际正确率与初始正确率si之差为正,则说明模型在本轮次学习后呈现正向受益;假如实际正确率与初始正确率si之差为负,则说明模型在本轮次学习后出现负向受益。若差值为负且二者的差距非常大,超过了允许的误差值时,则说明模型出现了偏移现象,那么将该客户端ci的权重值设置为0,剔除其参与训练。定义集合的权重值设置为0,剔除其参与训练。定义集合表示之后将参与训练的客户端编号集合,其中n表示客
户端的数量,ε为允许的误差值,该值可根据实际场景进行调配。当客户端的实际正确率与初始正确率之差小于该值时,将被剔除训练。如当ε取-0.3时,若客户端c1的初始正确率s1为90%,实际正确率为50%,则该客户端将被剔除参与训练,不属于集合u内;若客户端c2的初始正确率s2为80%,实际正确率为90%,则该客户端属于正常客户端,在集合u内。
20.由上述分析可知,每个客户端ci的贡献度与两个因子息息相关,分别是客户端ci的正确率初始预期值si,以及在第t轮次训练结束时客户端模型的正确率变化量这两个因子共同决定了客户端ci的贡献度,为了综合考虑客户端的贡献度,将ci的贡献度用如下式子表示:
[0021][0022]
由上式可知,要想求得本轮次每个客户端的贡献度,须求出本轮次这两个因子对客户端贡献度的作用程度α以及β。
[0023]
步骤2.4熵权法求因子作用程度
[0024]
本发明使用熵权法求上述两个因子对客户端贡献度的作用程度,熵权法是采用信息熵来判断某个指标的离散程度。对于某项指标,信息熵值越小,指标的离散程度越大,该指标对综合评价的作用程度就越大,如果某项指标的值全部相等,则该指标在综合评价中无法起到决定作用,其作用程度就越小。
[0025]
步骤2.4.1数据标准化处理
[0026]
假设某一轮次在服务端进行聚合时,客户端的正确率初始预期值为第一个因子指标,客户端的正确率变化量为第二个因子指标,则定义x
ij
表示第i个客户端第j个指标的值,其中i∈u,j∈[1,2]。在求各指标的信息熵前,需要对各指标进行标准化处理,假设进行标准化处理后第i个客户端第j个因子的值为z
ij
,且当原始指标值为正时当原始指标值为负时当原始指标值为负时其中xj表示第j个因子的集合。经标准化处理后,各指标的值均落在[0,1]区间内。
[0027]
步骤2.4.2计算概率矩阵
[0028]
假设经上一步标准化处理后,得出的标准化矩阵为z=(z
ij
),经计算后得到概率矩阵为p=(p
ij
),且该值表示第j项指标下第i个客户端样本所占的比重,可将其看作相对熵计算中用到的概率。
[0029]
步骤2.4.3计算每个因子的作用程度
[0030]
根据信息论中信息熵的定义可知,对于第j个因子指标而言,它的信息熵计算公式为其中n为满足条件参与计算的所有客户端数量。特别地,若p
ij
=0,则定义信息效用值的定义为dj=1-ej,信息效用值越大,其对应的信息就越多。将信息效用值进行归一化就可得到每个指标的熵权其中因子对客户端贡献度的作用程度α=w1,β=w2。
[0031]
步骤2.5按客户端权重聚合更新模型
[0032]
由上述步骤可求出每个客户端两个因子的作用程度,进而求出客户端ci的贡献度di,将客户端的贡献度进行归一化处理后即可得到每个客户端的相对权值。可用如下式子表示第t轮客户端权值的计算方法:
[0033][0034]
由此可得到本发明中联邦学习服务端协调方的聚合公式为:
[0035][0036]
步骤3下载全局模型到本地
[0037]
由步骤上述步骤得到新的全局模型参数后,服务端协调方将新的全局模型参数下发到各个客户端参与方,客户端ci得到新的模型参数后,将其保存到本地,然后利用该模型进行新一轮次的迭代训练,重复步骤1-3。
[0038]
与现有技术比较,本发明具有如下技术效果。
[0039]
1.本发明是应用在分布式工业控制系统下,通过将联邦学习算法应用在入侵检测领域,保证了工业控制系统的安全性。
[0040]
2.本发明针对联邦学习协调方的聚合算法做了优化,通过多因子分析计算每个参与方的贡献度来分配权值,聚合时为性能优异的参与方分配更高的权重,将性能极差的参与方剔除训练,有效的避免了传统的聚合算法中,当某个参与方由于数据毒化导致模型准确率严重下降,在聚合时又影响其他参与方进而导致整体模型均下降的问题。基于公开数据集进行测试,本发明的聚合算法相较于传统的联邦平均算法而言,正确率提升了8.3%,说明本发明的聚合算法是有效的。
附图说明
[0041]
附图1是整体架构图。
[0042]
附图2是整体流程图。
[0043]
附图3是熵权法计算因子作用步骤。
具体实施方式
[0044]
下面结合附图和具体实施方式对本发明做进一步的说明。
[0045]
本发明提供一种基于信息熵的联邦学习参与方权重计算方法,整体架构图如附图1所示。主要包括一个服务端和若干个客户端,附图1中服务器代表实际工控场景中的总控中心,与服务器相连的各计算机代表分布在各地的工业控制厂商。
[0046]
附图2展示了本发明的流程图,下面以附图2详细阐述本发明的具体实施步骤:
[0047]
1-4步为开始进行联邦学习前的准备工作,建立客户端与服务端之间的连接、上传预期模型准确率、配置参数等都在这个阶段进行。
[0048]
步骤1.建立服务端与各客户端之间的连接,以便后续通信,本发明采取创建套接字的方式来建立通信关系。通过调用socket()来创建套接字,后续的通信都通过该套接字进行。
[0049]
步骤2.各客户端在本地使用本地数据进行机器学习训练,生成初始的模型准确率
si。假设共有5个客户端c1,c2,c3,c4,c5参与训练,它们的初始模型准确率分别为s={0.9,0.8,0.9,0.7,0.85},ε初始取值为-0.3。
[0050]
步骤3.各客户端通过1中创建的套接字,向服务端发送初始的模型准确率,该值不是一成不变的,后续若想调控预期准确率,可通过套接字传输给服务端。
[0051]
步骤4.服务端收到各客户端发来的初始预期值后,将该值保存到服务器中,供后续使用。
[0052]
从第5步开始进入到联邦学习训练中,5-9步为联邦学习的一次全局迭代中本地迭代训练的详细步骤。
[0053]
步骤5.开始正式进行联邦学习。
[0054]
步骤6.各客户端在本地进行迭代训练,在本地迭代若干轮后,生成本地训练模型分别为其中t+1表示第t+1轮全局迭代。
[0055]
步骤7.取出当前轮次的全局模型g
t
,计算得出第t轮全局模型和第t+1轮生成的本地训练模型的变化量
[0056]
步骤7.1.由步骤6本地迭代训练后,可得到本轮次该客户端生成的模型实际正确率假设5个客户端分别生成的实际正确率为q={0.7,0.95,0.8,0.9,0.5}
[0057]
步骤8.客户端向服务端上传模型参数与模型实时正确率
[0058]
步骤9-11为服务端通过各客户端上传的参数信息,计算得出各客户端的权值信息,然后根据权值按比例聚合各客户端的模型参数,得到新的全局模型参数。
[0059]
步骤9.下面结合附图3详细说明计算各客户端的因子作用程度步骤。由前述分析可知,每个客户端的贡献度由两个因子决定,分别是初始预期模型正确率与每轮次模型正确率的变化量。
[0060]
步骤9.1确定集合u。计算模型正确率变化量步骤9.1确定集合u。计算模型正确率变化量由于c5的模型实际正确率变化量为-0.35,小于ε,因此认为客户端c5的模型在本轮次出现偏移情况,将其剔除训练。由此可得集合u={1,2,3,4},取前四个客户端的id。
[0061]
步骤9.2确定因子指标矩阵。由前述分析,指标矩阵由参与计算的每个客户端的两个因子组成,第一个因子为模型初始正确率si,第二个因子为模型正确率变化量因此可得指标矩阵
[0062]
步骤9.3对指标矩阵x进行标准化处理,当原始指标值为正时采用公式步骤9.3对指标矩阵x进行标准化处理,当原始指标值为正时采用公式进行标准化;当原始指标值为负时采用公式进行标准化,可得标准化后的指标矩阵
[0063]
步骤9.4.由概率计算公式将标准化后的指标矩阵计算概率矩阵得
[0064]
步骤9.5.由信息熵计算公式可计算各指标因子的信息熵e={0.761,0.637}。
[0065]
步骤9.6.计算各因子的作用程度。首先由dj=1-ej计算出各因子的效用值d={0.239,0.363},该值越大,对应的信息就越多。然后计算出各因子的作用程度
[0066]
步骤10.计算各客户端的权值。在计算客户端的权值前,需要首先计算出各客户端的贡献度d={0.237,0.408,0.297,0.399},经归一化后得各客户端c1,c2,c3,c4的权值为w={0.177,0.304,0.221,0.298},且客户端c5权值为0。
[0067]
步骤11.服务端得到各客户端的权值后,按照公式3的聚合方法进行聚合。即将本轮次各客户端的模型变化量按比例聚合后得到总的全局模型变化量,然后将全局模型的变化量累加到上一轮次的全局模型中,得到新一轮次的全局模型。
[0068]
步骤12-13为服务端下发更新后的全局模型的过程。
[0069]
步骤12.服务端通过上述步骤1产生的通信套接字,将更新后的全局模型下发到各客户端,该全局模型将作为下轮次全局迭代中客户端本地训练的输入模型。
[0070]
步骤13.客户端将下载的全局模型保存到本地,供下一轮次学习使用。然后重复6-12的步骤,进行全局迭代训练。当全局模型正确率达到预期值或者全局迭代次数到达配置文件中配置的次数时,全局训练结束。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1