GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - sisl/NeuralVerification.jl: Methods to soundly verify deep neural networks

BranchesTags
Open more actions menu

Latest commit

 

History

932 Commits
932 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
docs
docs
 
 
src
src
 
 
test
test
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
Project.toml
Project.toml
 
 
README.md
README.md
 
 

Repository files navigation

Testing Coverage Documentation
Build Status codecov

NeuralVerification.jl

This library contains implementations of various methods to soundly verify deep neural networks. In general, we verify whether a neural network satisfies certain input-output constraints. The verification methods are divided into five categories:

  • Reachability methods: ExactReach, MaxSens, Ai2,

  • Primal optimization methods: NSVerify, MIPVerify, ILP

  • Dual optimization methods: Duality, ConvDual, Certify

  • Search and reachability methods: ReluVal, Neurify, DLV, FastLin, FastLip

  • Search and optimization methods: Sherlock, BaB, Planet, Reluplex

Reference: C. Liu, T. Arnon, C. Lazarus, C. Strong, C. Barrett, and M. Kochenderfer, "Algorithms for Verifying Deep Neural Networks," to appear in Foundations and Trend in Optimization. arXiv:1903.06758.

Installation

To download this library, clone it from the julia package manager like so:

(v1.0) pkg> add https://github.com/sisl/NeuralVerification.jl

Please note that the implementations of the algorithms are pedagogical in nature, and so may not perform optimally. Derivation and discussion of these algorithms is presented in the survey paper linked above.

Note: At present, Ai2, ExactReach, and Duality do not work in higher dimensions (e.g. image classification). This is being addressed in #9

The implementations run in Julia 1.0.

Example Usage

Choose a solver

using NeuralVerification

solver = BaB()

Set up the problem

nnet = read_nnet("test/networks/small_nnet.nnet")
input_set  = Hyperrectangle(low = [-1.0], high = [1.0])
output_set = Hyperrectangle(low = [-1.0], high = [70.0])
problem = Problem(nnet, input_set, output_set)

Solve

julia> result = solve(solver, problem)
CounterExampleResult(:violated, [1.0])

julia> result.status
:violated

For a full list of Solvers and their properties, requirements, and Result types, please refer to the documentation.

Example Use Cases

CARS Workshop

Head to https://github.com/sisl/NeuralVerification-CARS-Workshop for the material used at the NeuralVerification workshop held at the Stanford Center for Automotive research. Where NeuralVerification.jl was used to verify image classification networks and air collision avoidance systems among some other examples.

About

Methods to soundly verify deep neural networks

Resources

Readme
MIT license
Activity
Custom properties

Stars

234 stars

Watchers

23 watching

Forks

50 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.