Skip to content

Latest commit

 

History

History
41 lines (34 loc) · 2.28 KB

README.md

File metadata and controls

41 lines (34 loc) · 2.28 KB

MaRVeL:
In this repository, we provide an implementation for the paper "Maximal Robust Neural Network Specifications via Oracle-guided Numerical Optimization" MaRVeL paper. The repository owner is [email protected].

Clone MaRVeL:

  git clone https://github.com/ananmkabaha/MaRVeL.git
  mkdir MaRVeL_system
  mv MaRVeL MaRVeL_system
  cd MaRVeL_system

Install ERAN's dependencies:
(1) Follow the instructions in https://github.com/eth-sri/eran
(2) Move ELINA's folder into the folder of MaRVeL_system.

MaRVeL parameters:
--netname: the network name, the extension can be only .onnx
--dataset: the dataset, can be either mnist, fmnist, cifar10, contagio, or syn
--timeout: the maximal certification time
--max_iterations: the maximal number of optimization steps
--milp_num_of_neurons: the number of milp neurons per layer
--milp_time_limit: the time limit to solve a single milp problem
--lr: the learning rate
--lambda: the tradeoff parameter
--lambda_alpha: the decay rate of the tradeoff parameter
--lambda_min: the minimal value of the tradeoff parameter
--parallelization: the flag to run milp problems in parallel mode
--output_file: the output file
--samples_num: the number of samples to analyze
--t_size: the minimal difference between two optimization steps

Examples:
python3 run.py --netname ./models/SYN1.onnx --dataset syn --lr 0.01 --samples_num 50 --lambda 0.99 --milp_time_limit 100 --milp_num_of_neurons 200
python3 run.py --netname ./models/MNIST1.onnx --dataset mnist --lr 0.1--samples_num 50 --lambda 0.99 --milp_time_limit 100 --milp_num_of_neurons 200

We note that the best values for the lr paramter are between [0.01-0.2].
For mnist, fmnist, and contagio we recommend the values between [0.1-0.2], and for syn and cifar10 we recommend the values between [0.01-0.05].