Official code repository for our publication Hardening Deep Neural Networks via Adversarial Model Cascades, accepted at IJCNN'19. A short blog summarizing the paper can be found here.
- Adversary gets hold of unlabelled data (not overlapping with target)
- Make queries to black-box model, use results to create dataset.
- Using this collected data, train a proxy network.
- Generate adversarial examples for the trained proxy network.
- Calculate error rate on the target network, for images generated by the proxy adversarial network.
- FGSM
- VAP
- PGM
- EAP
bash prepare.sh
to download required data and modelspython Code/test_accuracy.py --model_path <target_model> --dataset <dataset>
to get test accuracy ,from Code/ folderbash test*.sh <dataset> <target_model> <proxy_model>
, where * denotes anoy of the 7 attacks given in the repo ,from the Scripts/ folder- For the basic bagging setup, run
bash genericBagging.sh <dataset> <path_to_seed_model> <new_folder_for_bag> <path_to_file_containing_order_of_attacks> <transfer_parameters_per_bag?>
,from the Scripts/ folder
For example, bash genericBagging.sh mnist PlainModel MYBAG/ ORDER no
- For the adaptive bagging setup, run
bash adaptiveBagging.sh <dataset> <path_to_seed_model> <new_folder_for_bag> <path_to_file_containing_order_of_attacks> <transfer_parameters_per_bag?> <path_to_proxy_model>
For example, bash adaptiveBagging.sh mnist PlainModel MYBAG/ ORDER no ProxyNormal
- For testing bagging on your own attack data, run
python ../Code/bagging.py --mode test --dataset <dataset> --model_dir <model_bag_directory> --data_x <data_X> --data_y <data_Y> --predict_mode <voting/weighted>
You are encouraged to cite the following paper if you use AMC for academic research.
@INPROCEEDINGS{8851970,
author={D. {Vijaykeerthy} and A. {Suri} and S. {Mehta} and P. {Kumaraguru}},
booktitle={2019 International Joint Conference on Neural Networks (IJCNN)},
title={Hardening Deep Neural Networks via Adversarial Model Cascades},
year={2019},
pages={1-8},
doi={10.1109/IJCNN.2019.8851970},
ISSN={},
month={July}
}