A mini neural network verifier for educational purposes.
The mininnverifier includes a simple machine learning framework à la Jax.
For neural network verification, it implements a basic variant of alpha-beta-CROWN.
To get started, clone this repository, run
pip install -e .[demos]
and have fun with the code!
For the mini machine learning framework, this repo is inspired by the awesome micrograd repository that implements a jet smaller PyTorch-style deep learning framework. Autodidax from the Jax docs taught me about the core ideas behind Jax. This repo is essentially Autodidax but in the micrograd format instead of a tutorial. I simplified some parts some more and tried to use less jargon.
While the neural network verifier implementation is mostly home-grown, the theory behind the verifier is almost exclusively due to the alpha-beta-CROWN team, who have had an exceptional impact on the field of neural network verification.