![](https://crypto4nerd.com/wp-content/uploads/2023/07/13vqZnQpCsAcqy5rhet3QVA.jpeg)
Deep neural networks (DNNs) have achieved remarkable results across many domains like computer vision and natural language processing. However, like any software system, DNNs can have defects that lead to incorrect or unexpected behaviors. To detect such issues, DNN developers need to test the system on a large and diverse dataset. But manually labeling data is expensive and time-consuming. This paper proposes an approach called Neuron Sensitivity guided test case Selection (NSS) to automatically select the most valuable test cases from a pool of unlabeled data.
- NSS is based on the concept of neuron sensitivity, which measures how much a small change in the input affects a neuron’s activation. Test cases that trigger high sensitivity in neurons likely expose incorrect behaviors.
- It defines a Test case Neuron Sensitivity Score (TNSScore) to quantify a test case’s ability to detect faults. The TNSScore sums the sensitivity values across all neurons. Cases with higher scores are prioritized.
- To avoid the overhead of computing sensitivities for every neuron, it uses a Sensitive Neuron Identifier to detect the most sensitive neurons using a subset of data. The final selection only considers these neurons.
- Experiments on image classification datasets and models like MNIST, CIFAR-10 and LeNet, ResNet show NSS consistently outperforms coverage-guided and other selection techniques.
Manual labeling is a key bottleneck in building reliable DNN systems. NSS provides an automated way to select the most useful test data for labeling. By using neuron sensitivity, it captures subtle interactions missed by other methods that just consider final outputs. The results show it can significantly boost fault detection with minimal overhead.
Overall, this work demonstrates how concepts from software testing like coverage and prioritization can be adapted for deep learning systems. The neuron sensitivity metric offers new insights into model weaknesses. This has broader applications in testing, debugging and interpreting DNNs.
In summary, NSS is a promising approach to address the high cost of quality assurance in deep learning. By prioritizing valuable test cases, it makes the testing and improvement of DNN-driven software more efficient. The code for NSS is available on GitHub.
disclosure: the Author uses AI to generate rough draft summaries.