多源跨项目软件缺陷预测方法、装置及存储介质
摘要文本
本发明公开了一种多源跨项目软件缺陷预测方法、装置及存储介质。本发明方法包括:输入多个源项目数据集和一个目标项目数据集;使用编码器对所有数据集提取样本特征;将样本特征梯度反转后对项目标签训练鉴别器;计算每个源项目和目标项目的特征的最大均值差异,将鉴别器输出的目标样本和源样本的相关性作为注意力得分,对多个最大均值差异加权求和作为编码器的损失;建立缺陷类别的分类器;整体训练编码器、鉴别器和分类器;利用训练好的编码器和分类器对目标项目数据集进行特征提取和缺陷分类。本发明装置包括输入模块、编码器G、鉴别器D、分类器C和梯度反转模块。本发明实现了对多源跨项目软件缺陷的预测,经实验验证,缺陷识别准确率高。
申请人信息
- 申请人:北京邮电大学; 绿盟科技集团股份有限公司
- 申请人地址:100876 北京市海淀区西土城路10号
- 发明人: 北京邮电大学; 绿盟科技集团股份有限公司
专利详细信息
| 项目 | 内容 |
|---|---|
| 专利名称 | 多源跨项目软件缺陷预测方法、装置及存储介质 |
| 专利类型 | 发明申请 |
| 申请号 | CN202311540803.1 |
| 申请日 | 2023/11/17 |
| 公告号 | CN117421244A |
| 公开日 | 2024/1/19 |
| IPC主分类号 | G06F11/36 |
| 权利人 | 北京邮电大学; 绿盟科技集团股份有限公司 |
| 发明人 | 邢颖; 李文瑾; 高东; 袁军; 顾佳伟; 赵梦赐 |
| 地址 | 北京市海淀区西土城路10号; 北京市海淀区北洼路4号益泰大厦5层 |
专利主权项内容
1.一种多源跨项目软件缺陷预测方法,其特征在于,包括如下步骤:步骤1,输入多个源项目数据集和一个目标项目数据集;目标项目或每个源项目的数据集中均包含K类缺陷类别的样本,每个样本具有缺陷类别标签和项目标签;源项目样本的缺陷类别标签已知,目标项目的缺陷类别标签未知;项目标签用于标记样本属于哪个源项目或者目标项目;步骤2,使用编码器G对所有项目数据集中的样本提取特征;每个样本为一个源代码文件,先对源代码进行分词得到对应的token id,再将tokenid输入编码器G,进行特征提取;步骤3,对提取的样本特征进行梯度反转操作,利用梯度反转的样本特征训练鉴别器D;鉴别器D的输入包含梯度反转后的所有源项目和目标项目的样本特征,输出为各样本属于不同项目的概率;在训练过程中,获取目标项目的一个样本特征对应属于不同源项目的概率作为注意力得分,同时计算鉴别器D的对抗训练损失;步骤4,计算每个源项目和目标项目的样本特征的最大均值差异,使用所述注意力得分对各源项目和目标项目的样本特征的最大均值差异进行加权求和,作为编码器G的编码损失;步骤5,建立分类器C,分类器C的输入为步骤2提取的源项目的样本特征,输出样本属于各种缺陷类型的概率;步骤6,综合训练编码器G、鉴别器D和分类器C,更新模型参数;综合训练时的损失Loss为:其中,/>是鉴别器D的对抗训练损失,/>是编码器G的编码损失,/>是分类器C的分类损失;/>作用于编码器G和鉴别器D的更新,/>作用于编码器G的更新,/>作用于编码器G和分类器C的更新;步骤7,获得训练好的编码器G和分类器C,将目标项目的源代码文件进行分词后输入编码器G提取样本特征,然后输入分类器C进行缺陷类别识别。