constrained-attacks is a framework to generate adversarial examples under domain specific constraints.
Project description
Constrained attacks
Description
Constrained attacks is a framework for constraints adversarial examples unified across multiple constraints' domain. It currently supports a large diversity of constraints (linear and non-linear). We instantiated our framework with two attacks:
- MoEvA2: a multi-objective genetic based approach
- C-PGD: a gradient based approach extended from PGD (cite) to support domain constraints.
To learn more, check out our paper A Unified Framework for Adversarial Attack and Defense in Constrained Feature Space.
Installation
Using pip
pip install constrained-attacks
Dependencies
constrained-attacks requires:
- python = "~3.8"
- numpy = "^1.22.3"
- joblib = "^1.1.0"
- pymoo = "^0.5.0"
- tqdm = "^4.63.1"
- pandas = "^1.4.1"
Additional optional requirements for C-PGD are:
- tensorflow = "2.8"
- adversarial-robustness-toolbox[tensorflow] = "1.10"
Examples
You can find a usage example
- for MoEvA2: tests/attacks/moeva/test_moeva_run.py
- for C-PGD: tests/attacks/cpgd/test_pgd_run.py
- for the constraints definition: tests/attacks/moeva/url_constraints.py.
Citation
If you have used our framework for research purposes, you can cite our publication by:
BibTex:
@article{simonetto2021unified,
title={A unified framework for adversarial attack and defense in constrained feature space},
author={Simonetto, Thibault and Dyrmishi, Salijona and Ghamizi, Salah and Cordy, Maxime and Traon, Yves Le},
journal={arXiv preprint arXiv:2112.01156},
year={2021}
}
Project details
Release history Release notifications | RSS feed
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
Hashes for constrained-attacks-0.1.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13f8a362f35d7d22afe1eb01a324ed6d121cfc0808dcd798bd2eeb265938132a |
|
MD5 | e73691cd365c702538f78628932f62f0 |
|
BLAKE2b-256 | 6187dee7ea48f0342357e172105f1f038cbbea15277d831e3019be2ac77e9a9e |
Hashes for constrained_attacks-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d090c1b925b4b18171f8d9281fdb88351de35afcb3202b3cd0c16c09c73d8a5a |
|
MD5 | 9fd0065c7f4cf32d4e684bdb370180e2 |
|
BLAKE2b-256 | 01171a945e42d7bcb7da9cb3a73c337877cab8825e6e44d6c2ae0fb488aa21b9 |