• Stars
    star
    128
  • Rank 279,473 (Top 6 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

VizSec17: Web-based visualization tool for adversarial machine learning / LiveDemo

Adversarial DNN Playground

Citation:

@inproceedings{norton2017adversarial,
  title={Adversarial-Playground: A visualization suite showing how adversarial examples fool deep learning},
  author={Norton, Andrew P and Qi, Yanjun},
  booktitle={Visualization for Cyber Security (VizSec), 2017 IEEE Symposium on},
  pages={1--4},
  year={2017},
  organization={IEEE}
}

Reference Papers:

[1] "Adversarial-Playground: A Visualization Suite Showing How Adversarial Examples Fool Deep Learning", Andrew P. Norton, Yanjun Qi, arxiv (this is a revised version of [1]) Published in: 2017 IEEE Symposium on Visualization for Cyber Security (VizSec), URL

[2] "Adversarial Playground: A Visualization Suite for Adversarial Sample Generation", Norton, Andrew and Qi, Yanjun, url

This is Andrew Norton's capstone research work. The goal is to perform a similar function to Google's TensorFlow Playground, but for evasion attacks in adversiaral machine learning. It is a web service that enables the user to visualize the creation of adversarial samples to neural networks.

Screenshots and Demo

Information regarding the various settings for each attack model may be found the project slide set (see especially the System Demonstration section).

Installation

There are git submodules in this repository; to clone all the needed files, please use:

git clone --recursive https://github.com/QData/AdversarialDNN-Playground.git

The primary requirements for this package are Python 3 with Tensorflow version 1.0.1 or greater. The requirements.txt file contains a listing of the required Python packages; to install all requirements, run the following:

pip3 -r install requirements.txt

If the above command does not work, use the following:

pip3 install -r requirements.txt

Or use the following instead if need to sudo:

sudo -H pip  install -r requirements.txt

Use:

To Deploy the webserver:

Once you've downloaded the repo, run python3 run.py :

$ cd AdversarialDNN-Playground-localDir
$ python3 run.py &       

Or run the following command to run the webapp in the background even when logged out from the server:

$ cd AdversarialDNN-Playground-localDir
$ nohup python3 run.py &        # run in background even when logged out

Now use your favorite explorer to navigate to localhost:9000 or 'your_server_url:9000'

Modifying Seed Images

By default, we give the user the option of 11 seed images (one from each class 0 through 9, and one misclassified instance from the "9" class). However, you may desire to select different images for your own instance of this tool. It is quite easy to do so via the json_gen.py script in the utils directory. Edit the images_to_generate.csv file to specify the indices into the MNIST dataset which interest you in the first column, and provide a human readable description in the second column.

After editing the images_to_generate.csv file, run:

$ python images_to_generate.csv

This will take a short amount of time, as it processes and classifies (using the pre-trained model) each seed image, and saves a png file of the image. There are two items created as output, and they must be moved into proper locations in the webapp directories:

  • seeds.json : This contains each image and the classifier output as a JSON object; it goes in /webapp/models.
  • imgs/ : This directory should be copied into the webapp/static/ directory.

Run (or restart) the webserver, and the new options should be visible to the user.

Framework

  • Python Flask-based server
    • Python backend provides access to TensorFlow
    • Integration with cleverhans is also possible
  • Front-end using JQuery and Bootstrap
    • Bootstrap for static visuals
    • Ploty.JS utilized for visualization

More Repositories

1

TextAttack

TextAttack 🐙 is a Python framework for adversarial attacks, data augmentation, and model training in NLP https://textattack.readthedocs.io/en/master/
Python
2,871
star
2

spacetimeformer

Multivariate Time Series Forecasting with efficient Transformers. Code for the paper "Long-Range Transformers for Dynamic Spatiotemporal Forecasting."
Jupyter Notebook
683
star
3

C-Tran

General Multi-label Image Classification with Transformers
Python
240
star
4

LaMP

ECML 2019: Graph Neural Networks for Multi-Label Classification
Python
89
star
5

deepWordBug

CodeBase for Paper: "Black-box Generation of Adversarial Text Sequences to Evade Deep Learning Classifiers", / Interactive Demo @
Python
65
star
6

DeepChrome

Bioinformatics16: DeepChrome: Deep-learning for predicting gene expression from histone modifications
Lua
62
star
7

deep2Read

https://qdata.github.io/deep2Read/ This website includes a (growing) list of papers and lectures we read on deep learning and related.
Ruby
50
star
8

DeepMotif

Deep Motif (ICLR16)/ Deep Motif Dashboard (PSB17): Visualizing Genomic Sequence Classifications
Lua
44
star
9

ChromeGCN

Bioinformatics 2020: Graph Neural Networks for DNA Sequence Classification
Python
32
star
10

AttentiveChrome

NeurIPS17: [AttentiveChrome] Attend and Predict: Using Deep Attention Model to Understand Gene Regulation by Selective Attention on Chromatin
Lua
27
star
11

TextAttack-Search-Benchmark

EMNLP BlackBox NLP 2020: Searching for a Search Method: Benchmarking Search Algorithms for Generating NLP Adversarial Examples
Jupyter Notebook
25
star
12

TextAttack-A2T

A2T: Towards Improving Adversarial Training of NLP Models (EMNLP 2021 Findings)
Python
23
star
13

FastSK

Bioinformatics 2020: FastSK: Fast and Accurate Sequence Classification by making gkm-svm faster and scalable. https://fastsk.readthedocs.io/en/master/
Python
21
star
14

DeepDiffChrome

"DeepDiff: Deep-learning for predicting Differential gene expression from histone modifications", Bioinformatics, Volume 34, Issue 17,
Python
20
star
15

GaKCo-SVM

ECML16: GaKCo: a Fast Gapped k-mer string Kernel using Counting
C++
14
star
16

dmc_remastered

A version of the DeepMind Control Suite with randomly generated graphics, for measuring visual generalization in continuous control.
Python
14
star
17

FeatureSqueezing

NDSS18: Detecting Adversarial Examples in Deep Neural Networks
Python
11
star
18

DeepVHPPI

Motif Transformers for Predicting Protein-Protein Interactions Between a Novel Virus and Humans
Python
8
star
19

Reevaluating-NLP-Adversarial-Examples

EMNLP Findings 2020: Reevaluating Adversarial Examples in Natural Language
Jupyter Notebook
7
star
20

DeepCloak

ICLR16: DeepCloak: Masking Deep Neural Network Models for Robustness Against Adversarial Samples
Lua
6
star
21

TextAttack-WebDemo

TextAttack Web Demo
Jupyter Notebook
5
star
22

Awesome-Robustness-Testing-for-NLP

A curated list of papers on testing NLP.
5
star
23

deep_control

Deep Reinforcement Learning for Continuous Control in Pytorch
Python
4
star
24

PGrad

Python
4
star
25

SIMULE

Machine Learning 2017 / "A constrained L1 minimization approach for estimating multiple Sparse Gaussian or Nonparanormal Graphical Models", / https://cran.r-project.org/web/packages/simule/
R
4
star
26

TextAttack-Fragile-Interpretations

Python
3
star
27

MNCOVER

Python
3
star
28

JointNets

JointNets: an end-to-end R package for sparse high-dimensional Gaussian graphical model estimation, visualization, simulation and evaluation.
R
3
star
29

WIGRAPH

Code for paper "Improving Interpretability via Explicit Word Interaction Graph Layer"
Python
2
star
30

deep-learning-undergrad-reading-group

deep learning reading group for undergrads at UVA
SCSS
2
star
31

FASJEM

AISTAT 2017 Paper: A Fast and Scalable Joint Estimator for Learning Multiple Related Sparse Gaussian Graphical Models
R
2
star
32

KDiffNet

R
1
star
33

DeepLearning4-ProteinSequenceProcessing

(AAAI 2016) MUST-CNN: A Multilayer Shift-and-Stitch Deep Convolutional Architecture for Sequence-Based Protein Structure Prediction"
Lua
1
star
34

TransferStringKernel

Transfer String Kernel for Cross-Context String Classification
MATLAB
1
star
35

JEEK

ICML18: JEEK - Fast and Scalable Joint Estimator for Integrating Additional Knowledge in Learning Multiple Related Sparse Gaussian Graphical Models
R
1
star