神经软件缺陷预测模型在耦合数据质量问题下的训练动态

arXiv cs.LG 论文

摘要

本文研究了软件缺陷预测中神经网络的训练动态如何受到类不平衡和类重叠等耦合数据质量问题的影响,并提出了一种交互感知的实证协议。

arXiv:2606.24968v1 Announce Type: new 摘要:背景:软件缺陷预测支持测试优先级排序、发布风险评估和质量监控等维护决策。然而,基于度量的软件缺陷预测(SDP)数据集通常包含耦合的数据质量问题,尤其是类不平衡和类重叠。先前的研究主要通过端点性能来衡量其影响,而最近的证据表明,这些问题也可能出现在神经网络的训练动态(梯度、权重、偏置、误差轨迹)中。然而,这些研究孤立地考察问题,尚未揭示当数据质量问题耦合时,神经网络内部训练模式如何表现。 目标:我们研究在基于深度学习的SDP中,如何在与交互感知相关的条件下表征由类不平衡、类重叠及其耦合产生的训练动态模式。 方法:我们在类别级别的UBD数据集上进行受控干预研究,在仅不平衡、仅重叠以及联合条件下,使用固定种子训练一个固定的多层感知器(MLP)。每个epoch记录训练动态;通过耦合比率监控保真度。使用效应量、轨迹、敏感性分析和基于规则的分类来表征模式。 预期贡献:本研究将产出一个交互感知的实证协议,以及针对基于度量的SDP中耦合数据质量问题的训练动态模式的候选分类法。
查看原文
查看缓存全文

缓存时间: 2026/06/25 05:08

# 神经软件缺陷预测器在耦合数据质量问题下的训练动态
来源:https://arxiv.org/html/2606.24968
######  摘要

**背景**:软件缺陷预测支持测试优先级排序、发布风险评估和质量监控等维护决策。然而,基于度量的SDP数据集常存在耦合的数据质量问题,尤其是类别不平衡和类别重叠。以往研究主要通过端点指标衡量其影响,而近期证据表明这些问题也可能出现在神经训练动态(梯度、权重、偏置、误差轨迹)中。然而,这些研究孤立地考察问题,未考虑数据质量问题耦合时神经网络内部训练模式的表现。

**目标**:我们旨在探究在基于深度学习的SDP中,类别不平衡、类别重叠及其耦合在交互感知条件下的训练动态模式特征。

**方法**:我们在类别级UBD数据集[9]上开展一项受控干预研究,使用固定MLP在仅不平衡、仅重叠和联合条件下训练,重复5个随机种子。每轮记录训练动态;通过耦合比率监控保真度。采用效应量、轨迹、敏感度分析和基于规则的分类来刻画模式。

**预期贡献**:本研究将产出交互感知的经验协议,以及针对基于度量的SDP中耦合数据质量问题的训练动态模式候选分类。

## I 引言

软件缺陷预测(SDP)用于估计哪些软件制品可能包含缺陷[14],并支持测试优先级排序、发布风险评估、检查分配和缺陷管理。当维护团队利用缺陷预测输出来分配有限的质量保证资源时,关键问题不仅在于模型是否达到高预测性能,更在于其行为是否能在软件仓库常见的数据条件下被信任。

一个持续存在的威胁是训练数据质量。基于度量的SDP数据集常出现类别不平衡(缺陷实例更稀有)[15,8]和类别重叠(缺陷与非缺陷实例在特征空间区域相似)[11,24]。这些问题可能降低性能,尤其是对少数类,但其实际后果远超性能退化。如果缺陷预测模型表现不佳,开发者和研究人员需要知道问题可能由倾斜的类别分布、模糊的类别边界还是它们的交互作用引起。缺乏这些信息,数据清洗、模型调试和维护决策支持将主要依赖试错法。

大多数SDP研究通过端点指标如AUC、F1分数、召回率、精确率或平衡准确率[13,20,15,1,7]来评估数据质量问题。这些指标显示性能是否下降,但未揭示模型如何学习或哪些数据问题塑造了学习过程。例如,两个数据集可能产生相似的F1分数下降,但一个模型因缺陷实例代表性不足而挣扎,另一个则因缺陷与非缺陷实例难以区分。此时,仅靠端点性能几乎无法指导从业人员是应该重新平衡数据、减少边界模糊性、修正标签,还是将模型视为对既定维护决策不可靠。

近期工作表明数据质量问题可能反映在训练动态(梯度、权重、偏置、误差)[3,18]中,提供了更早的诊断信号。对于SDP,这开辟了一个方向:训练行为可能揭示对特定数据条件的敏感性。然而,这一研究方向存在困难,因为类别不平衡和类别重叠在实践中并非独立。通过采样改变类别比例也可能改变邻域结构和表观边界模糊性;反之,移动或移除边界附近的实例以修改重叠也可能影响类别比例。因此,在旨在操控不平衡或重叠的干预措施下观察到的训练动态模式可能并非仅反映预期的问题,还可能反映非目标问题的无意变化或两者间的交互作用。这在现有利用训练动态作为神经SDP模型数据质量诊断证据的研究中造成了方法学局限。

本研究通过提出一项交互感知的干预研究来应对该局限,针对基于度量的SDP中的类别不平衡、类别重叠及其耦合。我们将使用统一缺陷数据集[9]中的类别级SDP数据集,应用受控的仅不平衡、仅重叠、联合不平衡-重叠以及渐进减少条件,并在重复随机种子下训练固定多层感知机。每次干预后,我们将重新计算实现后的类别不平衡和重叠度量值,以评估预期数据质量问题是否改变以及非目标问题是否漂移。随后,我们将分析预定义的训练动态度量族,包括误差动态、梯度幅度和传播、梯度分布形状以及权重和偏置摘要。

本研究旨在编目与不平衡、重叠及其耦合相关的候选训练动态模式,将其分类为问题关联、共享或联合条件模式,并提供可复现的SDP训练动态协议。这是实现神经缺陷预测流水线实用数据质量调试的必要步骤。

## II 相关工作

### II-A 软件缺陷预测与数据质量

公开SDP数据集如PROMISE和UBD使得比较性缺陷预测研究成为可能[2,9]。先前工作表明模型结论对数据集属性、学习器选择、评估指标和预处理敏感[12,19,20],使得不平衡和重叠等数据质量问题对性能和解释都至关重要。

### II-B 类别不平衡、类别重叠及其耦合

类别不平衡在SDP中研究广泛,因为缺陷实例通常稀少,推动了SMOTE和欠采样等方法[4,23]。类别重叠也受到关注,因为缺陷与非缺陷模块可能共享相似的度量值[11,6]。近期的研究表明不平衡和重叠不应总是被视为独立的数据质量问题,因为重新平衡可能改变邻域结构,重叠处理可能影响类别比例,而联合处理可能同时改变性能和解释[22,24]。这些研究激励了我们聚焦于耦合。然而,大多数现有工作仍主要通过端点性能指标[17,20,6]或特征重要性稳定性来评估不平衡和重叠。相比之下,我们的研究将考察当不平衡和重叠被分别操控、联合操控以及在监控非目标漂移下,训练动态模式是否变化。

### II-C 从端点指标到训练动态

端点指标对于评估缺陷预测器是必要的[20,1],但它们不能显示神经模型在有问题数据条件下如何学习。近期软件工程中的数据错误工作利用训练日志、梯度、权重、偏置和轨迹来研究深度学习中的数据质量效应[18]。这一研究方向提供了将训练动态视为数据条件敏感性可能证据的重要动机。然而,我们尚未发现先前SDP工作结合了单问题、联合和漂移监控的干预协议来进行候选训练动态分类。本研究通过测量每次干预后实现的不平衡和重叠严重程度、监控非目标漂移,并应用渐进减少和基于规则的分类来解释候选模式,从而填补这一空白。

## III 研究问题

我们的研究由三个开放性研究问题指导:

**RQ1.** 在受控且保真度监控的干预下,当类别不平衡和类别重叠被分别操控时,候选训练动态模式如何变化?

*理由*:该问题将刻画在仅不平衡和仅重叠干预路径下的严重性-响应模式。我们不假设任何一个问题能完全孤立;相反,我们将在每次干预后测量实现的不平衡和重叠严重程度,并结合任何非目标漂移来解释模式。

**RQ2.** 当不平衡和重叠被联合引入时,候选训练动态模式如何变化?

*理由*:该问题考察单问题模式是同时出现、减弱、主导还是会随联合干预而改变。尽管C2和N1都取值于[0,1],但它们测量的是不同构念。因此,我们将使用低、中、高三个水平来构建联合干预,但将根据干预后实现的不平衡和重叠测量值来解释结果,而非假设这两个度量直接等价。

**RQ3.** 在渐进问题减少条件下,候选模式如何变化?

*理由*:仅单向干预可能产生对干预机制敏感的模式。该问题使用渐进减少作为三角验证:如果模式在注入时出现且在减少时减弱,则更可信。我们不将其解释为因果反转,而是作为模式鲁棒性的证据。

## IV 数据集与预处理

### IV-A 数据集来源与分析单元

我们将使用统一缺陷数据集(UBD),这是一个公开的Java缺陷预测基准数据集,整合了来自五个公开来源的基于度量的数据集,并重新计算了一套通用的源代码度量[9]。UBD提供类别级和文件级两种版本。为避免混合粒度并减少同一系统的重复表示,主要分析将仅使用*类别级*UBD数据集。每个数据集将被视为独立的二分类SDP任务,其中预测单元为Java类,目标变量指示该类是否包含缺陷。文件级UBD数据集不会混入主要分析;如果使用,将作为鲁棒性扩展单独报告,而非主数据集池的一部分。

我们将从候选类别级UBD CSV文件的全集出发。如果同一项目、版本和粒度存在重复表示,我们将保留一个规范的UBD表示并移除完全重复项。同一项目的不同发布版本将保留为独立的数据集,因为它们代表不同的预测上下文。

### IV-B 纳入与排除标准

纳入与排除标准将在模型训练之前以及检查任何训练动态结果之前应用。一个数据集只有在满足以下条件时才被纳入主要分析:是类别级UBD CSV数据集,具有二分类目标变量、数值型或布尔型预测变量,分割前至少200个实例,并且每个类至少50个原始实例。标识符列和非特征元数据将被移除。标签必须可编码为0和1,且分层训练/验证/测试分割必须在所有分区中保留两个类别。

每个干预条件必须在注入或渐进减少后每个类至少保留20个训练实例,并且必须只包含有限的特征值。完全缺失、常数或非有限的特征列将被移除;如果这导致数据集或条件无效,受影响的数据集或条件将被排除,并明确记录原因。如果数据集对某些干预族有效但对其他无效,则仅保留用于所需干预条件有效的相关RQ分析。根据当前UBD候选池和脚本假设,我们预计约有40-50个数据集符合资格,但最终数量仅在应用这些注册的筛选规则后才能确定。

200个实例和每类50个的干预前最低要求使得干预后每类20个的最低要求在严重欠采样或编辑后仍可实现;后者是我们认为可用于小批量训练和最近邻重叠度量的最小值。敏感度分析将把此最低要求调整为15和25。

### IV-C 分割与预处理

每个数据集将使用固定分层分割(种子42)独立处理:20%测试集,然后从剩余数据中取20%作为验证集,得到约64/16/20的训练/验证/测试分区。相同的验证集和测试集将在所有干预和种子中复用。中位数插补和`StandardScaler`将仅在原始训练分区上拟合,并应用于所有分区;布尔特征在缩放前编码为0/1。干预仅修改转换后的训练数据,从不修改验证或测试数据。这一设计确保干预条件之间的差异反映训练数据的变化,而非评估数据的变化或验证/测试分区的数据泄露。

## V 执行计划

### V-A 数据质量度量

对于每个数据集和干预条件,我们将在预处理后的训练数据上计算两个数据质量度量。类别不平衡将使用C2度量,即不平衡比率的复杂度度量[16]。对于具有\(n_c\)个类别、每类\(n_i\)个实例、总实例数\(n\)的数据集,计算方式为:

\[
IR = \frac{n_c - 1}{n_c} \sum_{i=1}^{n_c} \frac{n_i}{n - n_i}, \quad C2 = 1 - \frac{1}{IR}.
\]

类别重叠将使用N1度量,即边界点占比[16]。我们将使用标准化训练特征上的欧几里得距离计算N1。令\(G=(V,E)\)为训练实例上的最小生成树,其中每个

相似文章

迭代指令微调中从合成数据学习避免模型崩溃

arXiv cs.CL

本文研究了迭代指令微调中使用合成数据时的模型崩溃问题,揭示了崩溃表现为能力极化:强项被强化,弱项则进一步退化。提出了KITE,一个两阶段框架,结合失败引导的数据生成和边界感知的不确定性筛选,确保在多次迭代中稳定提升。

理解对抗鲁棒剪枝模型的容错性

arXiv cs.LG

本文实证研究了剪枝、对抗训练和硬件引起的权重故障如何共同影响卷积神经网络的可靠性,发现对抗训练会增加对固定为零故障的敏感性,而剪枝对故障敏感性几乎没有影响。

证书失效时:嵌入式神经接口模型的统一安全框架

arXiv cs.LG

本文表明,嵌入式神经接口模型的正式鲁棒性证书可能在任务准确率因对抗攻击而崩溃时仍能通过,并提出一个统一的实证审计框架,以解决训练目标与操作用户福利之间的对齐失败问题。