Giter Site home page Giter Site logo

decomon's Introduction

decomon


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.

decomon's People

Contributors

agalametz2 avatar ducoffem avatar galleon avatar mducoffe avatar nhuet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

decomon's Issues

Tutorial 2 needs pandas library

tutorials/tutorial2_noise_sensor.ipynb need pandas which is not included natively when installing the lib with poetry. However, It is ok to not put all notebook dependencies into the library dependencies

Import error ortools

ortools is not required in the main version of decomon and is not captured as a dependency
action:
either put a conditional import
or add it in the dependency list

Enable choice of slope in convert/clone

The choice of slope used when linearizing the activation functions is not available for high-level functions from wrapper.py or models/convert.py. This would be nice to allow this.
For now the default value V_SLOPE is used.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.