APP下载

基于聚类分析的横向联邦学习方案

2022-08-12赵俊杰张国兴杨杰

现代信息科技 2022年8期
关键词:投毒数据量分值

赵俊杰,张国兴,杨杰

( 中南民族大学 计算机科学学院,湖北 武汉 430074)

0 引 言

随着科技的发展,人工智能已经深入到人们的日常生活中。在现实生活中,数据通常不是由单一主体管理而是掌握在诸多参与者的手中。而且在欧盟委员会强制实施《通用数据保护条例》之后,数据安全在监管上呈现全面化、密集化、严格化的趋势。 各方参与者不愿意共享数据,形成数据孤岛,阻碍了人工智能的发展。2016年,Mcmahan等首次提出联邦学习的概念,即利用分散在各个移动设备上的数据进行本地训练,然后将训练的梯度发送到服务器,再由服务器进行梯度聚合,最后设备获取到新的梯度。这种将数据保存在本地的训练方式使数据的安全性得到极大程度的提高,解决了数据孤岛问题,推动了人工智能的发展。

联邦学习的目的是为了让参与者在保证隐私安全、数据安全以及遵守相关规定的前提下 协同进行模型训练。然而,随着研究的不断深入,联邦学习依然面临着许多的安全风险。比如在传输的过程中,如果发生梯度泄露,参与者的数据很有可能通过梯度被反推出来,那么参与者的数据安全将会受到严重威胁。如果参与者中有人对数据进行投毒或者提供虚假数据,那么模型将很难得到一个很好的训练效果。比如服务器不可信时,那么用户选择的服务和拥有的数据都会存在巨大的风险。

为了解决横向联邦学习中的投毒攻击问题,本文提出了基于聚类分析的参与者评价算法,实现了以下目标:

(1)提出一种基于聚类分析的参与者评价机制。本算法的目的是针对横向联邦学习中参与者遭受到的数据投毒攻击或者恶意参与者,对他们进行篡改的数据集行为进行防御,从而保护训练模型的训练效果。

(2)通过在真实数据集上的实验和分析,证明算法满足准确性与实效性要求。

1 相关工作

在横向联邦学习的框架中,具有相同数据结构的个参与者和一个云服务器,通过参数传递协同学习一个模型。在当前的研究中,横向联邦学习的框架在实际应用中已经取得了不错的成果,但是对投毒攻击的预防并没有较好的办法。如果在这个训练中,参与者们面临的是恶意服务器或者 好奇服务,那么所有参与者的样本数据将没有任何的隐私性。

数据投毒是指攻击者对训练的数据集样本进行篡改,如添加错误标签、添加错误的数据,达到降低数据质量的效果,从而影响模型的整体训练效果。在标签翻转攻击中,通过篡改数据标签影响模型的整体训练效果。在后门攻击中,通过设计特别的数据,让模型在预测阶段产生与真实值相距甚远的结果。

针对投毒攻击的问题,研究者们也提出了各种解决方案。在文献[7]中,对恶意用户提供虚假参数破坏学习过程、用户提供的参数缺乏验证、用户不愿意参与模型训练等问题,设计一种可靠的信誉评估管理机制,既能提升用户之间的可信任度,又能获得高质量的模型参数。文献[8]中提出了一种分布式学习算法——基于中值和裁剪均值的两种鲁棒分布梯度下降算法,且在实验中证明了该算法可用性。在文献[9]中,可以在服务器上测量良性更新和恶意更新的分布差异,以此发现 恶意用户,通过K-means算法对所有梯度值进行聚类分析,以查找出异常值。

2 背景知识

K-means聚类算法是一种最为常用的动态聚类算法,其特点是思路简洁、收敛迅速。K-means算法的步骤为:

(1)选点 。从样本中随机选取个样本作为初始中心点(值由自己设定)。

(2)归类 。计算其余样本与样本点的欧式距离并进行比较,将样本与距离最近的中心点归为一类 。

(3)计算。重新计算簇的中心点,重复前面的步骤,直到中心点的位置收敛结束。

3 基于聚类分析的参与者评价算法

针对横向联邦学习中的数据投毒攻击,本文提出一种基于聚类分析的参与者评价算法,目的在于发现遭受到数据 投毒攻击的参与者或者是抵御对数据进行投毒或恶意修改的恶意参与者。参与者评价算法构成如图1所示。

图1 参与者评价算法构成

3.1 算法设计

本 算法通过对所有参与者数据集的分布趋势、数据集的离群情况和不符合标签规则的数据量进行分析,实现对联邦学习中有毒数据集的检测。算法中选择对这三类参数进行分析的原因有三点:(1)离群值的数量是判断一个数据集好坏的重要参数,如果一个数据集中存在大量的离群值,那么这个数据集的可用性就会下降,该数据集可能遭受到了攻击;(2)每个数据集都存在自己的数据分布规律,如若两个数据集的任务相同,那么它们的数据分布具有一定的相似性,通过对数据分布趋势的分析找出差异大的数据集,该数据集即为离群数据集;(3)要使训练模型的效果降低,最好的方法就是篡改数据,随意篡改数据值或设计篡改规则,让它产生错误的结果。数据集分布趋势中的参数有:众数、中位数、均值、四分位差、极差、平均差、标准差、峰态系数、偏态系数。数据集离群情况中的参数有:离群值量、离群值占比。不符合标签规则数据量中的参数有:错误数据量、错误数据量占比。

在计算数据集的分布趋势时,选择数据中重要的标签进行计算,对服务进行评价时,以所有标签的同类评价分数的平均值为最后评分。服务器在收集到所有参与者发送的参数之后,对各类参数进行分类和编号。对各个类型的参数进行分析、评分,用于分析的正太分布函数公式为:

其中,为均值,为标准差。计算出各类参数的和,然后根据参数的设定分值进行评分,总分为100分。本算法中各个参数值的分数是依据参数在整个数据集中的重要性来设定。离群值相关参数的总分值设为30分,离群值量和离群值占比的分值设定为10分和20分,离群值是一个很重要的评价指标,分值较高;数据集的集中趋势总分值为15分,众数、中位数、均值分别占5分、5分、5分;数据的离散趋势总分值20分,四分位差、极差、平均差、标准差分别占5分、5分、5分、5分;数据分布形状的总分数为15分,峰态系数、偏态系数分别占7.5分、7.5分;数据相关性找出的错误数据总分值为20分,错误数据量7.5分、错误数据量占比12.5。分数计算分值的公式为:

其中,为分值,为该函数(-,+)、(-2,+2)、(-3,+3)的面积对应范围的面积,每个范围对应的分值范围是70%+30%×Q、50%+20%×Q、50%×QS为某类型参数在正太分布中的面积,Q为面积范围内的占比,P为某一类型参数的具体评分。计算每个参与者的总分值,设定评分的阀值为60,仅对总分高于60的参与者的梯度进行聚合。对于分值低于60的参与者,则认为该参与者的数据集存在投毒攻击。

模型经过训练后,本算法开始计算数据集的离群值、分布趋势和错误数据。模型训练完后,在发送训练参数时,把机制计算得到的参数与训练参数一起发送到服务器。服务器在接收到所有数据后,对机制计算的参数进行分组,如 ,=(,,…,),其中,为训练轮次,为客户端数,,,…,分别对应数据集的离群值、分布趋势和错误数据的参数值。然后服务器计算各类参数的平均值,通过分值计算公式计算各个参数的得分,再计算出各个客户端的数据集评分。最后,判断出合格的数据集。

算法 3.1:参与者评价算法

Input:参与者训练数据量num

Output:聚合平均梯度Δ,参与者训练数据总量num

(1)Begin。

(2)Client executes。

(4)对数据集进行趋势分析,得到趋势参数Q=(,,…,q)。

(6)把所有参数发送到服务器。

(7)Server executes。

(8)用评分算法对所有参与者的数据集参数进行打分,统计总分数。

(9)高于阀值的总分、低于阀值的总分判断为有毒数据集。

(10)END。

3.2 数据趋势

每个数据集都存在一定的规则和数据分布。数据投毒攻击篡改数据,会改变数据集的分布规律和趋势,被篡改的数据集与其他无毒的数据集的分布趋势会存在差异,通过对数据集的数据分布趋势进行分析,相同的数据集存在相同或相似的分布趋势,找出参与者中数据趋势差异大的数据集,将其判定为投毒数据集。

3.3 数据标签的规则与相关性

数据标签间的相关性是指一个数据集中两个或两个以上不同标签数据之间的相关性,如数量、价格和总价之间的相关性、人的血压中高压大于低压、同种物体重量越大体积越大,等等。

数据标签的规则是在改标签的数据应当属于在改标签的设定范围。如在一个人的体检数据集中,假设一个正常成年男子的身高应该在1.5米~2.2米,但是却存在2.5米甚至3米的数据值。

通过数据标签的规则和相关性可以检测数据集中的错误数据和不符合规则的数据。在正常的数据集中,可能存在错误数据,其产生的原因可能是操作出错、机器故障,也可能被视为恶意篡改数据。前者产生的错误数据是有限的(可能有几条),但是恶意行为中数据的条数就不太好判断了。因此我们根据这个特点,设定错误数据量的一个指标,以此来判断数据是否遭受到人为的恶意篡改。

3.4 安全性分析

本算法中所使用参数的价值较低,并不存在暴露本地数据的风险。若攻击者获取到本算法中的参数,其仅凭这些参数无法通过逆向攻击反推出样本数据集。对于所使用的聚类分析算法,只是用到了计算结果以及存在的离群值的数量,离群点的具体值并不会出本地,所以说本算法是安全可靠的。

4 实验分析

4.1 实验环境

本文所搭建的基于聚类分析和同态加密的横向联邦学习方案,实验环境采用的是AMDRyzen 5 3600—Core Processor 3.6 GHz,32 GB内存,系统平台为Windows10操作系统,采用Python语言实现所有方法,在虚拟机中模拟各方参与者与可信任第三方,本机为服务器。

本实验采用的数据集——Cardiotocography来源于UCI机器学习存储库,该数据集一共包含2 126条数据,由产科医生分类的心电图上的胎儿心率和子宫收缩特征的测量值组成,通过这些诊断特征来确定胎儿的状态。

4.2 实验细节

本实验的目的是对文中检测遭受到数据投毒参与者的可行性进行验证,对遭受到数据投毒参与者的数量阈值进行测定,对用户进行投毒的数据量进行测定。实验设置有10位参与者,参与者各自持有的数据集分别从Cardiotocography数据集中抽取出200条数据,作为参与者的个人数据。针对评价算法的实验设置有正常数据集训练的参照组、存在投毒数据的对照组和使用投毒数据验证参与者评价机制的实验组。

4.3 实验结果

实验结果图中的三个条形柱分别是正常数据集训练、存在投毒数据、使用投毒数据验证参与者评价机制的模型准确率:

(1)单个用户遭受到数据投毒攻击的数据量达到多少时能够识别出被投毒数据集,图2是模型准确率对比图。

图2 模型准确率与投毒数据量

由实验结果可知,投毒率达到12%以上时可以找出投毒数据集,投毒率在8%、10%时没有找出投毒数据集。在单个参与者的投毒数据量比较小时,其对模型准确率的影响比较小,大概与正常模型的准确率差了0.1%~0.3%,在实际应用中可以忽略不计。本算法在数据投毒量在12%以上时,算法的有效性得到证明。

(2)多个用户受到数据投毒攻击且投毒的数据量为50%时,投毒数据集从1到4逐渐增多,图3是模型准确率对比图。

图3 模型准确率与投毒参与者数

由实验结果可知,当投毒用户数小于3个时,能够准确地找出投毒的用户。当投毒用户数大于3个时,参与者评价机制已经不能准确地辨别出投毒数据集,模型的准确率也大受影响,中毒模型的准确率减少17%以上。算法在面对数据投毒攻击时,能够识别投毒的用户量在30%以内。

5 结 论

随着时代的发展,数据安全变得越来越重要,人们对于数据的安全性也越来越重视。联邦学习的发展,不能只注重训练效果和准确率的提升,联邦学习的本质即为数据安全,而忽视数据安全则与联邦学习的初衷相背离。联邦学习的数据安全应当得到足够的重视,特别是对数据投毒、不诚实参与者和半诚实参与者的防备。因此,本文提出的基于聚类分析和同态加密的安全横向联邦学习方法在保证训练准确率的同时,对于数据安全性有较高的提升,特别是对数据投毒攻击和不诚实参与者的防御策略十分有效,通过对比实验证明了本文所提出方案的有效性。在今后的工作中,希望针对纵向联邦学习中存在的数据投毒攻击和不诚实用户的问题能够提出更好的解决方案。

猜你喜欢

投毒数据量分值
食物中毒案
第15届世界健美操锦标赛五人操成套难度动作分析
高刷新率不容易显示器需求与接口标准带宽
悄悄告诉你:统计这样考
谁是科创板创值全能冠军
AMAC
因妒成恨“投毒” 女博士悲产畸子
投毒凶手
电力营销数据分析中的数据集成技术研究
固定资产管理系统对物流管理的促进和发展