Deep neural networks (DNNs) are susceptible to bugs, just like other types of software systems. A significant uptick in using DNN, and its applications in wide-ranging areas, including safety-critical systems, warrant extensive research on software engineering tools for improving the reliability of DNN-based systems. One such tool that has gained significant attention in the recent years is DNN fault localization. This paper revisits mutation-based fault localization in the context of DNN models and proposes a novel technique, named deepmufl, applicable to a wide range of DNN models. We have implemented deepmufl and have evaluated its effectiveness using 109 bugs obtained from StackOverflow. Our results show that deepmufl detects 53/109 of the bugs by ranking the buggy layer in top-1 position, outperforming state-of-the-art static and dynamic DNN fault localization systems that are also designed to target the class of bugs supported by deepmufl. Moreover, we observed that we can halve the fault localization time for a pre-trained model using mutation selection, yet losing only 7.55% of the bugs localized in top-1 position.
翻译:深度神经网络(DNN)与其他类型的软件系统一样,容易受到错误的影响。随着DNN在包括安全关键系统在内的广泛领域中的应用显著增加,亟需对提高基于DNN系统可靠性的软件工程工具进行深入研究。近年来,DNN故障定位便是备受关注的此类工具之一。本文重新审视了DNN模型背景下的基于突变的故障定位,并提出了一种名为deepmufl的新技术,该技术适用于多种DNN模型。我们实现了deepmufl,并使用从StackOverflow获取的109个错误评估了其有效性。结果表明,deepmufl通过将错误层排在前1位,检测到了109个错误中的53个,优于同样针对deepmufl所支持的错误类别设计的最新静态和动态DNN故障定位系统。此外,我们观察到,通过使用突变选择,可以将预训练模型的故障定位时间减半,而仅损失7.55%的被定位在前1位的错误。