System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及一种面向隐私保护的联邦自蒸馏软件缺陷预测方法,属于软件工程中面向隐私保护的软件缺陷预测。
技术介绍
1、随着软件系统在人们生活中的重要性不断提升,其复杂性也随之增加。由于软件系统变得越来越复杂,确保其质量变得愈加困难。因此,近期大量研究聚焦于处理软件质量保证工作,为了提升软件质量,软件缺陷预测领域应运而生。这一领域通过识别有缺陷的软件单元、尝试消除缺陷,并在软件开发和维护过程中更好地利用资源。其实际应用对软件生产过程具有重要意义,例如,通过软件缺陷预测,可以获得更可靠的软件系统;通过关注易出错的模块,提高软件测试的准确性和速度;利用面向对象的方法,使设计更合理,并识别可重构的模块;基于预测结果分配资源,从而提高项目的整体质量。
2、近年来,提出了许多基于深度学习的方法和各种特征表示方法,并将其应用于软件缺陷预测。例如,samoaa等人使用深度学习模型来预测潜在的软件缺陷;giray等人从源代码中提取抽象语法树和各种类型的图技术引入缺陷预测。在最近的研究中指出,多个客户模型共享模型数据可以训练出一个适用于所有客户端且性能优秀的模型,然而,直接共享模型可能会导致隐私泄露。在当前的软件缺陷预测研究中,隐私安全问题非常重要,大多数客户端都不愿意共享他们的数据。为了促进数据共享且保护用户隐私,近些年提出了fedavg,一种泛化能力强的传统联邦学习模型。然而,每个客户端的数据分布是不同的,在这种数据异构的情况下,通过类似于fedavg等传统联邦学习模型协作训练后的本地模型性能可能比没有协作训练的本地模型更差。传统联
3、为了适应异构的学习场景并且保护用户的隐私,在联邦学习框架下,必须研究如何在适应本地数据分布保持个性化的同时,还需要泛化以利用客户端之间的协作,学习到共有知识。
技术实现思路
1、本专利技术所要解决的技术问题是提供一种面向隐私保护的联邦自蒸馏软件缺陷预测方法,借助联邦学习隐私保护框架,实现的客户端之间的知识的共享,以一种隐私保护的方式充分利用多组数据进行训练,并在训练中融合知识自蒸馏技术,有效提升软件缺陷预测模型的准确率。
2、本专利技术为了解决上述技术问题采用以下技术方案:本专利技术设计了一种面向隐私保护的联邦自蒸馏软件缺陷预测方法,初始化迭代次数k=1,并按如下步骤,获得软件缺陷预测模型,用于预测软件中的代码对应是否有缺陷;
3、步骤a.随机选择预设数量n个本地客户端,作为第k次迭代下的各个本地客户端,并由该各个本地客户端分别初始化mlp多层感知机模型中各参数,然后进入步骤b;
4、步骤b.第k次迭代下各个本地客户端分别创建预设数量个包含对应有缺陷标签1、无缺陷标签0的代码串,以及各代码串分别对应预设各目标类型特征的特征值,并由单个代码串对应的标签、以及该代码串对应预设各目标类型特征的特征值,构成单个样本,构成该各个本地客户端分别对应的样本集,然后进入步骤c;
5、步骤c.第k次迭代下各个本地客户端分别基于其对应的样本集、以及mlp多层感知机模型中各参数的初始值,综合二分类交叉熵损失与kl散度损失,以样本中代码串对应预设各目标类型特征的特征值为输入,样本中代码串对应的标签为输出,针对mlp多层感知机模型进行自蒸馏训练,获得软件缺陷预测局部模型及其对应的模型性能参数预测结果,然后进入步骤d;
6、步骤d.第k次迭代下各个本地客户端分别针对其训练所获软件缺陷预测局部模型的参数组,应用本地差分隐私技术进行保护,获得保护参数组,并结合对应的模型性能参数预测结果,上传至服务器,然后进入步骤e;
7、步骤e.服务器接收分别来自第k次迭代下各个本地客户端上传的保护参数组、模型性能参数预测结果,对各保护参数组进行融合,获得融合后保护参数组,同时获得模型性能参数平均预测结果,判断模型性能参数平均预测结果是否收敛,是则所获融合后保护参数组即为目标参数组,联系mlp多层感知机模型,即构成软件缺陷预测模型;否则进入步骤f;
8、步骤f.由服务器随机选择预设数量n个本地客户端,作为第k+1次迭代下的各个本地客户端,并将融合后保护参数组下发至该各个本地客户端,构成该各个本地客户端分别关于mlp多层感知机模型中各参数的初始值,然后以k+1的值针对k进行更新,并返回步骤b。
9、作为本专利技术的一种优选技术方案:所述步骤b中第k次迭代下各个本地客户端分别执行如下步骤b1至步骤b7,获得各个本地客户端分别对应的样本集;
10、步骤b1.创建预设数量个包含对应有缺陷标签1、无缺陷标签0的代码串,以及各代码串分别对应预设各目标类型特征的特征值,并由单个代码串对应的标签、以及该代码串对应预设各目标类型特征的特征值,构成单个样本,其中,表示第k次迭代下第n个本地客户端所对应样本的数量,然后进入步骤b2;
11、步骤b2.判断对应有缺陷标签1的样本的数量占比与对应无缺陷标签0的样本的数量占比中是否存在小于预设占比阈值b的占比,是则将该占比所对应的各样本作为各个少数类样本,并基于少数类样本的数量按获得为实现少数类样本数量占全部样本数量的比值等于预设占比阈值b,少数类样本所对应的样本增量然后进入步骤b3;否则所获各个样本组成本地客户端对应的样本集,并进入步骤c;其中,表示第k次迭代下第n个本地客户端所对应少数类样本的数量,表示第k次迭代下第n个本地客户端所对应少数类样本对应的样本增量;
12、步骤b3.基于各少数类样本分别所对应其预设各目标类型特征的特征值与标签组成的向量,获得两两向量之间的距离,并应用k近邻,获得各少数类样本分别对应的近邻少数类样本,然后进入步骤b4;
13、步骤b4.分别针对各个少数类样本,按获得各少数类样本分别对应的权重,表示第k次迭代下第n个本地客户端所对应第i’个少数类样本对应的权重,k表示k近邻的k值,表示第k次迭代下第n个本地客户端所对应第i’个少数类样本对应近邻少数类样本的数量,然后进入步骤b5;
14、步骤b5.分别针对各个少数类样本,按获得各少数类样本分别对应的样本增量,其中,表示第k次迭代下第n个本地客户端所对应第i’个少数类样本对应的样本增量,然后进入步骤b6;
15、步骤b6.分别针对各个少数类样本,依据少数类样本对应的样本增量,按创建新各目标类型特征所构特征向量,并结合与少数类样本相同的标签,构建新样本,进而获得少数类样本所对应样本增量个新样本,其中,表示基于第k次迭代下第n个本地客户端所对应第i’个少数类样本创建的新各目标类型特征所构特征向量,表示第k次迭代下第n个本地客户端所对应第i’个少数类样本中各目标类型特征所构特征向量,λ1表示来自[0,1]中均匀分布各值的随机值,表示第k次迭代下第本文档来自技高网...
【技术保护点】
1.一种面向隐私保护的联邦自蒸馏软件缺陷预测方法,其特征在于:初始化迭代次数k=1,并按如下步骤,获得软件缺陷预测模型,用于预测软件中的代码对应是否有缺陷;
2.根据权利要求1所述一种面向隐私保护的联邦自蒸馏软件缺陷预测方法,其特征在于:所述步骤B中第k次迭代下各个本地客户端分别执行如下步骤B1至步骤B7,获得各个本地客户端分别对应的样本集;
3.根据权利要求1所述一种面向隐私保护的联邦自蒸馏软件缺陷预测方法,其特征在于:所述步骤C中,第k次迭代下各个本地客户端分别执行如下步骤C1至步骤C4,构建二分类交叉熵损失与KL散度损失,以及综合损失,参与针对MLP多层感知机模型进行自蒸馏训练;
4.根据权利要求1所述一种面向隐私保护的联邦自蒸馏软件缺陷预测方法,其特征在于:所述步骤D中,第k次迭代下各个本地客户端分别针对其训练所获软件缺陷预测局部模型的参数组按如下公式:
5.根据权利要求1所述一种面向隐私保护的联邦自蒸馏软件缺陷预测方法,其特征在于:所述步骤E中,服务器执行如下步骤E1至步骤E5,针对分别来自第k次迭代下各个本地客户端上传的
...【技术特征摘要】
1.一种面向隐私保护的联邦自蒸馏软件缺陷预测方法,其特征在于:初始化迭代次数k=1,并按如下步骤,获得软件缺陷预测模型,用于预测软件中的代码对应是否有缺陷;
2.根据权利要求1所述一种面向隐私保护的联邦自蒸馏软件缺陷预测方法,其特征在于:所述步骤b中第k次迭代下各个本地客户端分别执行如下步骤b1至步骤b7,获得各个本地客户端分别对应的样本集;
3.根据权利要求1所述一种面向隐私保护的联邦自蒸馏软件缺陷预测方法,其特征在于:所述步骤c中,第k次迭代下各个本地客户端分别执行如下步骤c1至步骤c...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。