es una caja de herramientas de Python para la investigación de robustez adversa. Las funcionalidades principales se implementan en Pytorch. Específicamente, Advertorch contiene módulos para generar perturbaciones adversas y defender contra ejemplos adversos, también scripts para capacitación adversa.
Desarrollamos Advertorch bajo Python 3.6 y Pytorch 1.0.0 y 0.4.1. Para instalar Advertorch, simplemente ejecute
pip install advertorch
o clonar el repositorio y correr
python setup.py install
Para instalar el paquete en modo "Editable":
pip install -e .
Algunos ataques se prueban contra implementaciones en Foolbox o Cleverhans para garantizar la corrección. Actualmente, se prueban en las siguientes versiones de bibliotecas relacionadas.
conda install -c anaconda tensorflow-gpu==1.11.0
pip install git+https://github.com/tensorflow/cleverhans.git@336b9f4ed95dccc7f0d12d338c2038c53786ab70
pip install Keras==2.2.2
pip install foolbox==1.3.2
# prepare your pytorch model as "model"
# prepare a batch of data and label as "cln_data" and "true_label"
# ...
from advertorch . attacks import LinfPGDAttack
adversary = LinfPGDAttack (
model , loss_fn = nn . CrossEntropyLoss ( reduction = "sum" ), eps = 0.3 ,
nb_iter = 40 , eps_iter = 0.01 , rand_init = True , clip_min = 0.0 , clip_max = 1.0 ,
targeted = False )
adv_untargeted = adversary . perturb ( cln_data , true_label )
target = torch . ones_like ( true_label ) * 3
adversary . targeted = True
adv_targeted = adversary . perturb ( cln_data , target ) Para ejemplos ejecutables, consulte advertorch_examples/tutorial_attack_defense_bpda_mnist.ipynb sobre cómo atacar y defender; Consulte advertorch_examples/tutorial_train_mnist.py sobre cómo entrenar adversarmente un modelo robusto en MNIST.
La página web de documentación se encuentra en Readthedocs https://advertorch.readthedocs.io.
El anuncio todavía está bajo desarrollo activo. Agregaremos las siguientes características/artículos en el futuro:
FastFeatureAttack y JacobianSaliencyMapAttack no pasan las pruebas contra la versión de Cleverhans utilizados. (Solían pasar pruebas en una versión anterior de Cleverhans). Este problema está siendo investigado. En el archivo test_attacks_on_cleverhans.py , están marcados como "omitidos" en las pruebas pytest .
Este proyecto tiene licencia bajo el LGPL. Los términos y condiciones se pueden encontrar en la licencia y la licencia. Archivos GPL.
Si usa Advertorch en su investigación, le pedimos que cite el siguiente informe técnico:
@article{ding2019advertorch,
title={{AdverTorch} v0.1: An Adversarial Robustness Toolbox based on PyTorch},
author={Ding, Gavin Weiguang and Wang, Luyu and Jin, Xiaomeng},
journal={arXiv preprint arXiv:1902.07623},
year={2019}
}