The security of machine learning algorithms has not yet received enough attention from the public, an attacker might intentionally manipulate the input data of machine learning algorithms to compromise the system security. An example of this is shown in the following picture, after adding some intentionally designed random noise into the original image, the machine learning model has 99% confidence in predicting the image as a "gibbon", even though the change in the image is neglectable to human eyes.
Since machine learning has become critical parts of many systems in different fields, such as autonomous driving, we created AdvEx to prevent threat like this. AdvEx is a web service for assessing the robustness of machine learning models with adversarial machine learning. It is designed to fulfill the following quality attributes:
- Scalability: achieved by auto-scaling and load-balancing using elastic beanstalk
- Availability: achieved by having different servers in different availability zones
- Performance: achieved by using GPU in evaluation workers, and having users upload their models directly to S3 buckets without going through servers first
- Security: achieved by using AWS security group
- Usability: achieved by creating helpful instructions and tutorials for users who are not machine learning experts
- Configurability: achieved by using Elastic Beanstalk, Docker and config files
Links:
Project video demo | Front-end static demo | Front-end repo | Back-end repo | Evaluation worker repo
- Uses a data processing pipeline to generate adversarial images using different attack methods (based on CleverHans)
- Evaluates deep learning models in computer vision tasks, assesses models' robustness with two evaluation metrics: robustness score and confidence, visualize results with graphs
- Handles auto-scaling and load-balancing with Elastic Beanstalk and Docker, reduces deployment time of a new version to 5 min
- boto3 == 1.7.32
- numpy == 1.14.2
- tensorflow == 1.8.0
- keras == 2.2.0
- flask == 1.0.2
- flask-sqlalchemy == 2.3.2
Docker available at docker hub. For pulling docker:
docker pull awp135/advex:evaluation