TensorFuzz: Debugging Neural Networks with Coverage-Guided Fuzzing
arXiv:1807.10875
Abstract
Machine learning models are notoriously difficult to interpret and debug. This is particularly true of neural networks. In this work, we introduce automated software testing techniques for neural networks that are well-suited to discovering errors which occur only for rare inputs. Specifically, we develop coverage-guided fuzzing (CGF) methods for neural networks. In CGF, random mutations of inputs to a neural network are guided by a coverage metric toward the goal of satisfying user-specified constraints. We describe how fast approximate nearest neighbor algorithms can provide this coverage metric. We then discuss the application of CGF to the following goals: finding numerical errors in trained neural networks, generating disagreements between neural networks and quantized versions of those networks, and surfacing undesirable behavior in character level language models. Finally, we release an open source library called TensorFuzz that implements the described techniques.
arXiv commentPreprint - work in progress
References in corpus (9)
- End to End Learning for Self-Driving Cars
- Quantized Neural Networks: Training Neural Networks with Low Precision Weights and Activations
- DeepXplore: Automated Whitebox Testing of Deep Learning Systems
- Visualizing and Understanding Recurrent Networks
- An Empirical Evaluation of Deep Learning on Highway Driving
- DeepTest: Automated Testing of Deep-Neural-Network-driven Autonomous Cars
- Realistic Evaluation of Deep Semi-Supervised Learning Algorithms
- Is Generator Conditioning Causally Related to GAN Performance?
- Faster Asynchronous SGD
Cited by in corpus (33)
- Testing Deep Neural Networks
- Assuring the Machine Learning Lifecycle: Desiderata, Methods, and Challenges
- DocTer: Documentation Guided Fuzzing for Testing Deep Learning API Functions
- Software Engineering for AI-Based Systems: A Survey
- A Survey of Safety and Trustworthiness of Deep Neural Networks: Verification, Testing, Adversarial Attack and Defence, and Interpretability
- Inspect, Understand, Overcome: A Survey of Practical Methods for AI Safety
- Understanding Performance Problems in Deep Learning Systems
- Software Testing for Machine Learning
- Operational Calibration: Debugging Confidence Errors for DNNs in the Field
- DeepHunter: Hunting Deep Neural Network Defects via Coverage-Guided Fuzzing
- Operation is the hardest teacher: estimating DNN accuracy looking for mispredictions
- There is Limited Correlation between Coverage and Robustness for Deep Neural Networks
- Metamorphic Testing for Object Detection Systems
- Model Assertions for Monitoring and Improving ML Models
- Coverage Testing of Deep Learning Models using Dataset Characterization
- FedDebug: Systematic Debugging for Federated Learning Applications
- A Marauder's Map of Security and Privacy in Machine Learning
- Security and Machine Learning in the Real World
- Semantic-Based Neural Network Repair
- CAGFuzz: Coverage-Guided Adversarial Generative Fuzzing Testing of Deep Learning Systems
- Data Sanity Check for Deep Learning Systems via Learnt Assertions
- Revisiting Deep Neural Network Test Coverage from the Test Effectiveness Perspective
- Testing Deep Learning Models for Image Analysis Using Object-Relevant Metamorphic Relations
- An Orchestrated Empirical Study on Deep Learning Frameworks and Platforms
- NeuroDiff: Scalable Differential Verification of Neural Networks using Fine-Grained Approximation
- DeepFault: Fault Localization for Deep Neural Networks
- Reliability Validation of Learning Enabled Vehicle Tracking
- DeepSmartFuzzer: Reward Guided Test Generation For Deep Learning
- Grand Challenges in Resilience: Autonomous System Resilience through Design and Runtime Measures
- Black-box Adversarial Sample Generation Based on Differential Evolution
- DeepRepair: Style-Guided Repairing for DNNs in the Real-world Operational Environment
- Detecting Deep Neural Network Defects with Data Flow Analysis
- Boosting the Robustness Verification of DNN by Identifying the Achilles's Heel