Floating-Point Neural Network Verification at the Software Level
Edoardo Manino, Bruno Farias, Rafael S\'a Menezes, Fedor Shmarov, Lucas C. Cordeiro

TL;DR
This paper presents a new approach for verifying neural networks at the software level by explicitly considering floating-point implementation details, introducing a comprehensive benchmark, and evaluating existing verification tools.
Contribution
It introduces NeuroCodeBench 2.0, a large benchmark for neural network verification at the software level, and provides the first rigorous evaluation of state-of-the-art verifiers on such code.
Findings
Existing tools correctly solve 11% of benchmarks
Tools produce around 3% incorrect verdicts
Benchmark has positively impacted verification research
Abstract
The behaviour of neural network components must be proven correct before deployment in safety-critical systems. Unfortunately, existing neural network verification techniques cannot certify the absence of faults at the software level. In this paper, we show how to specify and verify that neural networks are safe, by explicitly reasoning about their floating-point implementation. In doing so, we construct NeuroCodeBench 2.0, a benchmark comprising 912 neural network verification examples that cover activation functions, common layers, and full neural networks of up to 170K parameters. Our verification suite is written in plain C and is compatible with the format of the International Competition on Software Verification (SV-COMP). Thanks to it, we can conduct the first rigorous evaluation of eight state-of-the-art software verifiers on neural network code. The results show that existing…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
