적대적 견고성 연구를위한 파이썬 도구 상자입니다. 주요 기능은 Pytorch에서 구현됩니다. 구체적으로, Advertorch에는 대적 섭동을 생성하고 적대적 예제에 대한 방어를위한 모듈, 대적 훈련을위한 스크립트도 포함되어 있습니다.
우리는 Python 3.6과 Pytorch 1.0.0 & 0.4.1에 따라 Advertorch를 개발했습니다. Advertorch를 설치하려면 간단히 실행하십시오
pip install advertorch
또는 repo를 복제하고 실행하십시오
python setup.py install
"편집 가능한"모드로 패키지를 설치하려면 :
pip install -e .
일부 공격은 Foolbox 또는 Cleverhans의 구현에 대해 테스트하여 정확성을 보장합니다. 현재 다음 버전의 관련 라이브러리에서 테스트됩니다.
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 ) 실행 가능한 예는 advertorch_examples/tutorial_attack_defense_bpda_mnist.ipynb 공격하고 방어하는 방법에 대해서는 참조하십시오. MNIST에서 강력한 모델을 우선적으로 훈련시키는 방법은 advertorch_examples/tutorial_train_mnist.py 참조하십시오.
문서 웹 페이지는 readthedocs https://advertorch.readthedocs.io에 있습니다.
Advertorch는 여전히 적극적으로 개발 중입니다. 우리는 다음과 같은 기능/항목을 추가 할 것입니다.
FastFeatureAttack 및 JacobianSaliencyMapAttack 사용 된 Cleverhans 버전에 대한 테스트를 통과하지 못합니다. (이전 버전의 Cleverhans에서 테스트를 통과하는 데 사용합니다.)이 문제는 조사 중입니다. test_attacks_on_cleverhans.py 파일에서 pytest 테스트에서 "건너 뛰기"로 표시됩니다.
이 프로젝트는 LGPL에 따라 라이센스가 부여됩니다. 이용 약관은 라이센스 및 라이센스 .gpl 파일에서 찾을 수 있습니다.
연구에서 Advertorch를 사용하는 경우 다음 기술 보고서를 인용하도록 친절하게 요청합니다.
@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}
}