Skip to content

Uses the simplex to propose a tighter boundary for the l1 perturbation of the convex activation function network, improving the effect of the CROWN algorithm.

t1u4n/simplex-CROWN

Repository files navigation

simplex-CROWN for L1-norm based perturbation

This project is to integrate the work of Overcoming the Convex Barrier for Simplex Inputs to CROWN algorithm. It cleverly uses the simplex to propose a tighter boundary for the l1 perturbation of the convex activation function network, improving the effect of the CROWN algorithm.

Quick Start

Use compute_bounds interface in SimplexSolver class under simplexcrown/simplex_solver.py to compute bounds. We also provided an example in simple_eval.py

Reproduce the results on MNIST dataset

We trained multiple MLP models with different layer using MNIST dataset by mlp_train.py script, the pre-trained models are under /models directory. You can use mnist.py script to perform experiments on mnist.

References

This work is based on following papers:

@article{behl2021overcoming,
  title={Overcoming the convex barrier for simplex inputs},
  author={Behl, Harkirat Singh and Kumar, M Pawan and Torr, Philip and Dvijotham, Krishnamurthy},
  journal={Advances in Neural Information Processing Systems},
  volume={34},
  pages={4871--4882},
  year={2021}
}

@article{zhang2018efficient,
  title={Efficient Neural Network Robustness Certification with General Activation Functions},
  author={Zhang, Huan and Weng, Tsui-Wei and Chen, Pin-Yu and Hsieh, Cho-Jui and Daniel, Luca},
  journal={Advances in Neural Information Processing Systems},
  volume={31},
  pages={4939--4948},
  year={2018},
  url={https://arxiv.org/pdf/1811.00866.pdf}
}

@article{xu2020automatic,
  title={Automatic perturbation analysis for scalable certified robustness and beyond},
  author={Xu, Kaidi and Shi, Zhouxing and Zhang, Huan and Wang, Yihan and Chang, Kai-Wei and Huang, Minlie and Kailkhura, Bhavya and Lin, Xue and Hsieh, Cho-Jui},
  journal={Advances in Neural Information Processing Systems},
  volume={33},
  year={2020}
}

Please notice that simplexcrown/lirpa directory is the code for original method provided in Overcoming the Convex Barrier for Simplex Inputs. Also simplexcrown/crown.py, simplexcrown/linear.py, simplexcrown/relu.py are based on the code git@github.com:huanzhang12/ECE584-SP24-assignment2.git from @huanzhang12 and @schawla7.

About

Uses the simplex to propose a tighter boundary for the l1 perturbation of the convex activation function network, improving the effect of the CROWN algorithm.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages