Adversarial Robustness Toolbox (ART)是一个专门用于呆板学习安全的开源Python库。它由IBM开发并于2020年7月捐赠给Linux Foundation AI & Data基金会。ART的主要目标是为开发职员和研究职员提供工具,以评估、防御和验证呆板学习模型和应用程序面对各种对抗性威胁的鲁棒性。
ART支持全部主流的呆板学习框架,包括TensorFlow、Keras、PyTorch、MXNet、scikit-learn等。它可以处理各种数据类型,如图像、表格、音频和视频等。同时,ART还支持多种呆板学习任务,如分类、目标检测、语音辨认、生成等。
ART的主要功能
ART主要关注四类对抗性威胁:
逃避攻击(Evasion): 通过修改输入数据来使模型产生错误分类。
中毒攻击(Poisoning): 通过污染训练数据来影响模型的举动。
模型提取(Extraction): 试图复制或盗取目标模型。
推理攻击(Inference): 试图重修模型的训练数据。
为了应对这些威胁,ART提供了丰富的攻击和防御模块:
39个攻击模块
29个防御模块
多种鲁棒性评估指标
支持多种呆板学习估计器
ART的工作原理
ART采用"红队-蓝队"的工作方式:
红队: 使用ART的攻击模块来测试模型的缺点
蓝队: 使用ART的防御模块来加强模型的鲁棒性
这种方法可以资助开发职员全面评估和进步呆板学习体系的安全性。
ART的使用场景
ART可以应用于多种场景:
评估模型的鲁棒性: 使用各种攻击方法来测试模型的抗干扰能力。
加强模型安全性: 应用防御技术如对抗训练、输入净化等来进步模型的鲁棒性。
检测对抗样本: 使用ART的检测器来辨认可能的对抗性输入。
研究新的攻防方法: ART为研究职员提供了一个实验平台,可以方便地实现和测试新的攻击或防御算法。
安全审计: 对已部署的呆板学习体系举行全面的安全评估。
使用ART的步骤
安装ART:
pip install adversarial-robustness-toolbox
复制代码
导入所需模块:
from art.attacks.evasion import FastGradientMethod
from art.estimators.classification import KerasClassifier