RobustArchitectureSearch
RobustArchitectureSearch copied to clipboard
This github repository contains the official code for the paper, "Evolving Robust Neural Architectures to Defend from Adversarial Attacks"
Robust Architecture Search
This github repository contains the official code for the papers,
Towards Evolving Robust Neural Architectures to Defend from Adversarial Attacks
Shashank Kotyan and Danilo Vasconcellos Vargas
GECCO (2020).Evolving Robust Neural Architectures to Defend from Adversarial Attacks
Shashank Kotyan and Danilo Vasconcellos Vargas,
AISafety Workshop (2020).Is Neural Architecture Search A Way Forward to Develop Robust Neural Networks?
Shashank Kotyan and Danilo Vasconcellos Vargas
JSAI (2020).
IMPORTANT
In the current version of the code, the robustness evalution is not implemented in the code. We are currently testing for the compatibility and reproducibility of the adversarial examples and results before adding it in the repository to ensure the quality of the code remains intact.
In the meantime, one can generate their own adversarial samples using the repository of Dual Quality Assessment and make necessary changes in fitness evaluation of the evolved models in run_model function in worker.py file. Fitness of the evolved models is calculated in the line 113
Citation
If this work helps your research and/or project in anyway, please cite:
@inproceedings{kotyan2020towards,
title={Towards evolving robust neural architectures to defend from adversarial attacks},
author={Kotyan, Shashank and Vargas, Danilo Vasconcellos},
booktitle={Proceedings of the 2020 Genetic and Evolutionary Computation Conference Companion},
pages={135--136},
year={2020}
}
@inproceedings{kotyan2020evolving,
title={Towards evolving robust neural architectures to defend from adversarial attacks},
author={Kotyan, Shashank and Vargas, Danilo Vasconcellos},
maintitle = {International Joint Conference on Artificial Intelligence - Pacific Rim International Conference on Artificial Intelligence (IJCAI-PRICAI)},
booktitle = {Workshop on the AISafety},
year={2020}
}
@inproceedings{kotyan2020neural,
title={Is Neural Architecture Search A Way Forward to Develop Robust Neural Networks?},
author={Kotyan, Shashank and Vargas, Danilo Vasconcellos},
booktitle={人工知能学会全国大会論文集 第 34 回 (2020)},
pages={2K1ES203--2K1ES203},
year={2020},
organization={一般社団法人 人工知能学会}
}
Testing Environment
The code is tested on Ubuntu 18.04.3 with Python 3.7.4.
Getting Started
Requirements
To run the code in the tutorial locally, it is recommended,
- a dedicated GPU suitable for running, and
- install Anaconda.
The following python packages are required to run the code.
GPUtil==1.4.0matplotlib==3.1.1networkx==2.3numpy==1.17.2scipy==1.4.1tensorflow==2.1.0
Steps
- Clone the repository.
git clone https://github.com/shashankkotyan/RobustArchitectureSearch.git
cd ./RobustArchitectureSearch
- Create a virtual environment
conda create --name ras python=3.7.4
conda activate ras
- Install the python packages in
requirements.txtif you don't have them already.
pip install -r ./requirements.txt
- Run the Robust Architecture Search Code with the following command.
python -u run_evolution.py [ARGS] > run.txt
- Calculate the statstics for the evolution.
python -u run_stats.py > run_stats.txt
Arguments to run run_evolution.py
TBD
Notes
- It is recommended to run the code on a multi-gpu system to ensure faster evolution. However, changing the number of workers in
num_workers.txtto 1 will ensure the evolution on a single GPU system. - Setting
num_workers.txtto number of GPUs your system has will run the code optimally utilising maximum performance by the GPUs.
Milestones
- [ ] Include Robustness Evaluation
- [ ] Toy Example for Evolutionary Strategy
- [ ] Addition of Comments in the Code
- [ ] Cross Platform Compatibility
- [ ] Description of Method in Readme File
License
Robust Architecture Search is licensed under the MIT license. Contributors agree to license their contributions under the MIT license.
Contributors and Acknowledgements
TBD
Reaching out
You can reach me at [email protected] or @shashankkotyan.
If you tweet about Robust Architecture Search, please use the tag #RAS and/or mention me (@shashankkotyan) in the tweet.
For bug reports, questions, and suggestions, use Github issues.