Linear Relaxation for Certified Robustness Bound for Tensorflow Neural Networks
Project description
Decomon: Automatic Certified Perturbation Analysis of Neural Networks
Introduction
What is decomon? decomon
is a library that allows the derivation of upper and lower bounds
for the predictions of a Tensorflow/Keras neural network with perturbed inputs.
In the current release, these bounds are represented as affine functions with respect to some variable under perturbation.
Previous works that tackled certified robustness with backward propagation relied on forward upper and lower bounds. In decomon
,
we explored various ways to tighten forward upper and lower bounds, while remaining backpropagation-compatible
thanks to symbolic optimization.
Our algorithm improves existing forward linear relaxation algorithms for general Keras-based neural networks without manual derivation. Our implementation is also automatically differentiable. So far we support interval bound propagation, forward mode perturbation, backward mode perturbation as well as hybrid approaches.
decomon
is compatible with a wider range of perturbation: boxes, $L_{\inf, 1, 2}$ norms or general
convex sets described by their vertices.
We believe that decomon is a complementary tool to existing libraries for the certification of neural networks.
Since we rely on Tensorflow and not Pytorch, we are opening up the possibility for a new community to formally assess the robustness of their networks, without worrying about the technicality of the implementation. In this way, we hope to promote the formal certification of neural networks into safety critical systems.
Installation
Quick version:
pip install decomon
For more details, see the online documentation.
Quick start
You can see how to get certified lower and upper bounds for a basic Keras neural network in the Getting started section of the online documentation.
Documentation
The latest documentation is available online.
Examples
Some educational notebooks are available in tutorials/
folder.
Links to launch them online with colab or binder are provided in the
Tutorials section of the online documentation.
Contributing
We welcome any contribution. See more about how to contribute in the online documentation.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file decomon-0.2.1.tar.gz
.
File metadata
- Download URL: decomon-0.2.1.tar.gz
- Upload date:
- Size: 3.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f34ef77f53b9dec415021b84b587f6fba43b359908b52cbc203526ebfd13c1e |
|
MD5 | 1dc47385e4766adff88382be87c98590 |
|
BLAKE2b-256 | 4e7cb53243a83be5244591887ff568c4bf8d17ea19a5e691af1a7c825298099a |
File details
Details for the file decomon-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: decomon-0.2.1-py3-none-any.whl
- Upload date:
- Size: 90.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d20acd9cddca1903d496bb0065bfc3dbe8c5d4da974c50eda1d12334b4985a67 |
|
MD5 | 03ea7a43cdf6ce25d59c1f90e736d4d9 |
|
BLAKE2b-256 | d10488c52f539287533c59f85ef02230fc8c5998f07cc217fac34a87af512f9e |