https://arxiv.org/abs/2103.03376
Deep neural networks (DNNs) are a class of machine learning algorithms that have gained popularity due to their success in tasks that traditional algorithms struggle with .
DNNs are organized in layers, with nodes called neurons that have adjustable weights .
The training process involves passing inputs through the network, comparing the output to the expected output, and adjusting the weights using backpropagation
DNNs are used in various software systems, making software engineering for DNNs essential
Previous work has shown that DNNs can have bugs, and existing debugging techniques are not effective for localizing these bugs
The paper proposes an approach and tool called DeepLocalize that automatically detects and localizes faults in DNN models .
The approach utilizes dynamic analysis and captures historic trends in values propagated between layers to identify faults and localize errors
The evaluation of DeepLocalize using a benchmark of 40 buggy models shows that it outperforms the existing debugging approach used in the Keras library in terms of fault detection and localization
The proposed approach and tool, DeepLocalize, successfully identify and localize faults in deep neural network (DNN) models. It outperforms the existing debugging approach used in the Keras library, detecting a higher number of faults and localizing bugs that were previously undetected.
The evaluation of the approach using a benchmark of 40 buggy models and patches shows that DeepLocalize is able to identify bugs for 23 out of 29 buggy programs and successfully localize bugs for 34 out of 40 buggy programs. In comparison, the Keras methods, such as TerminateOnNaN(), EarlyStopping('loss'), EarlyStopping('accuracy'), and the three Keras methods together, were only able to identify 2, 24, 28, and 32 out of 40 bugs, respectively.
DeepLocalize's effectiveness is attributed to its use of a wider spectrum of important runtime values for analysis compared to the other methods, which only use one metric such as loss or accuracy. It also captures numerical errors and monitors the model during training to provide insights into the relevance of each layer and parameter on the DNN outcome.
The paper presents an automated approach and tool for detecting and localizing faults in deep neural network (DNN) models, which outperforms the existing debugging approach used in the Keras library.
The approach utilizes dynamic analysis of DNN applications by converting them into an imperative representation and using a callback mechanism, enabling the insertion of probes for analyzing traces produced during training.
The researchers have developed an algorithm that captures numerical errors and monitors the model during training to identify the root causes of DNN errors.
An evaluation using a benchmark of 40 buggy models and patches shows that the proposed approach is more effective in detecting faults and localizing bugs compared to the state-of-the-practice Keras library.
Future work includes exploring techniques to repair DNN bugs, investigating cases where the approach was unable to detect faults and localize errors, and exploring the use of DNN structure analysis for better localization.