Deep Learning (DL) applications are being used to solve problems in critical domains (e.g., autonomous driving or medical diagnosis systems). Thus, developers need to debug their systems to ensure that the expected behavior is delivered. However, it is hard and expensive to debug DNNs. When the failure symptoms or unsatisfied accuracies are reported after training, we lose the traceability as to which part of the DNN program is responsible for the failure. Even worse, sometimes, a deep learning program has different types of bugs. To address the challenges of debugging DNN models, we propose a novel data-driven approach that leverages model features to learn problem patterns. Our approach extracts these features, which represent semantic information of faults during DNN training. Our technique uses these features as a training dataset to learn and infer DNN fault patterns. Also, our methodology automatically links bug symptoms to their root causes, without the need for manually crafted mappings, so that developers can take the necessary steps to fix faults. We evaluate our approach using real-world and mutated models. Our results demonstrate that our technique can effectively detect and diagnose different bug types. Finally, our technique achieved better accuracy, precision, and recall than prior work for mutated models. Also, our approach achieved comparable results for real-world models in terms of accuracy and performance to the state-of-the-art.
翻译:深度学习(DL)应用正被用于解决关键领域(如自动驾驶或医疗诊断系统)中的问题。因此,开发人员需要调试其系统以确保预期行为的实现。然而,调试深度神经网络既困难又昂贵。当训练后出现故障症状或未达到预期精度时,我们无法追踪DNN程序中导致故障的具体部分。更糟糕的是,有时深度学习程序包含不同类型的缺陷。为应对DNN模型调试的挑战,我们提出了一种新颖的数据驱动方法,利用模型特征学习问题模式。我们的方法提取这些代表DNN训练期间故障语义信息的特征,并将其作为训练数据集来学习和推断DNN故障模式。此外,我们的技术能够自动将缺陷症状与其根本原因关联起来,无需手动构建映射关系,从而使开发人员能够采取必要步骤修复故障。我们使用真实模型和变异模型对所提方法进行了评估。结果表明,我们的技术能够有效检测和诊断不同类型的缺陷。最后,在变异模型上,我们的方法在准确率、精确率和召回率方面均优于先前工作;在真实模型上,我们的方法在准确性和性能方面与现有最优技术取得了可比的结果。