[论文解读] How to Improve Deep Learning for Software Analytics (a case study with code smell detection)
本论文表明,通过引入模糊过采样和超参数优化的前馈神经网络在代码异味检测任务中实现了最先进性能,优于复杂的深度学习模型。该方法在'特征依赖'任务上的AUC超过99%,在'误置类'任务的10个数据集中有8个达到最先进水平,表明通过适当预处理的简单模型在软件分析任务中可超越复杂学习器。
To reduce technical debt and make code more maintainable, it is important to be able to warn programmers about code smells. State-of-the-art code small detectors use deep learners, without much exploration of alternatives within that technology. One promising alternative for software analytics and deep learning is GHOST (from TSE'21) that relies on a combination of hyper-parameter optimization of feedforward neural networks and a novel oversampling technique to deal with class imbalance. The prior study from TSE'21 proposing this novel "fuzzy sampling" was somewhat limited in that the method was tested on defect prediction, but nothing else. Like defect prediction, code smell detection datasets have a class imbalance (which motivated "fuzzy sampling"). Hence, in this work we test if fuzzy sampling is useful for code smell detection. The results of this paper show that we can achieve better than state-of-the-art results on code smell detection with fuzzy oversampling. For example, for "feature envy", we were able to achieve 99+\% AUC across all our datasets, and on 8/10 datasets for "misplaced class". While our specific results refer to code smell detection, they do suggest other lessons for other kinds of analytics. For example: (a) try better preprocessing before trying complex learners (b) include simpler learners as a baseline in software analytics (c) try "fuzzy sampling" as one such baseline.
研究动机与目标
- 评估GHOST框架(包含模糊过采样和超参数优化)是否能提升深度学习在代码异味检测中的性能。
- 探究简单前馈网络是否能在软件分析任务中超越复杂深度学习架构。
- 通过倡导使用更简单的基线模型和更优的预处理方法,挑战仅使用复杂深度学习模型的普遍趋势。
- 提供实证证据,证明通过模糊采样实现的类别不平衡缓解方法在缺陷预测之外也有效,可扩展至代码异味检测。
- 通过开源代码和数据集,支持研究的可复现性,以供未来研究使用。
提出的方法
- 本研究采用前馈神经网络作为核心深度学习架构,因其结构简单且在函数逼近方面具有理论上的通用性。
- 应用模糊过采样以解决代码异味数据集中类别不平衡问题,提升训练过程中少数类的表示。
- 采用贝叶斯优化进行超参数优化,以调整网络架构、学习率和批量大小,实现最优性能。
- 使用自编码器进行特征工程和降维,以在分类前获得更优的输入表示。
- 在多个公开的代码异味数据集上评估该方法,性能指标包括AUC、F1和精确率-召回率。
- 消融研究证实模糊过采样和超参数调优的必要性,显示其在性能上显著优于基线深度学习模型和传统过采样方法。
实验结果
研究问题
- RQ1RQ1:与现有深度学习方法相比,模糊过采样能否在代码异味检测中实现最先进结果?
- RQ2RQ2:为何带有模糊过采样的前馈网络在软件分析任务中表现优异?
- RQ3RQ3:性能提升是源于网络架构、过采样技术,还是超参数调优?
- RQ4RQ4:当经过充分调优和预处理后,更简单的模型(如前馈网络)是否能超越复杂的深度学习模型?
- RQ5RQ5:GHOST框架是否可泛化至缺陷预测之外的其他软件分析任务?
主要发现
- 模糊过采样与超参数优化结合,在所有评估数据集上对'特征依赖'代码异味的AUC超过99%。
- 在'误置类'异味检测中,该方法在10个数据集中的8个上达到最先进性能,显著优于先前方法。
- 带有模糊采样的前馈网络在代码异味检测任务中优于更复杂的深度学习模型(如RNN和CNN)。
- 本研究证实,适当的预处理(包括模糊过采样)在软件分析中的影响甚至超过模型架构的复杂性。
- 结果表明,经过仔细调优和数据增强的简单模型可超越复杂模型,挑战了深层网络总是更优的假设。
- GHOST框架不仅适用于缺陷预测,其在代码异味检测中也实现了最先进结果,表明其在软件分析领域具有更广泛的应用潜力。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。