IBM对抗性机器学习工具箱
Adversarial-Robustness-Toolbox的Python项目详细描述
对抗性稳健性工具箱(第v0.10.0条)
这是一个专门用于对抗性机器学习的库。它的目的是允许机器学习模型的攻击和防御方法的快速构建和分析。art为攻击和防御分类器的许多最新方法提供了实现。
图书馆仍在开发中。我们非常感谢反馈、错误报告和扩展。在Slack与我们联系(邀请here)!
支持的攻击、防御和指标
库包含以下规避攻击的实现:
- 深傻瓜(Moosavi-Dezfooli et al., 2015)
- 快速梯度法(Goodfellow et al., 2014)
- 基本迭代法(Kurakin et al., 2016)
- 投影梯度下降(Madry et al., 2017)
- 雅可比显著图(Papernot et al., 2016)
- 普遍摄动(Moosavi-Dezfooli et al., 2016)
- 虚拟对抗法(Miyato et al., 2015)
- c&w
L_2
和L_inf
攻击(Carlini and Wagner, 2016) - 新傻瓜(Jang et al., 2017)
- 弹性网攻击(Chen et al., 2017)
- 空间变换攻击(Engstrom et al., 2017)
- 查询高效黑盒攻击(Ilyas et al., 2017)
- 零阶优化攻击(Chen et al., 2017)
- 基于决策的攻击(Brendel et al., 2018)
- 对抗补丁(Brown et al., 2017)
- 跳跳攻击(Chen et al., 2017)
还支持以下defense方法:
- 特征压缩(Xu et al., 2017)
- 空间平滑(Xu et al., 2017)
- 标签平滑(Warde-Farley and Goodfellow, 2016)
- 对抗性训练(Szegedy et al., 2013)
- 虚拟对抗训练(Miyato et al., 2015)
- 高斯数据增强(Zantedeschi et al., 2017)
- 温度计编码(Buckman et al., 2018)
- 总方差最小化(Guo et al., 2018)
- JPEG压缩(Dziugaite et al., 2016)
- 像素防御(Song et al., 2017)
art还实现了检测对抗性样本的方法:
- 基于输入的基本检测器
- 接受过特定层激活训练的探测器
- 基于快速广义子集扫描的检测器(Speakman et al., 2018)
还支持以下中毒攻击检测器:
- 基于激活分析的检测器(Chen et al., 2018)
健壮性度量:
- 聪明(Weng et al., 2018)
- 经验稳健性(Moosavi-Dezfooli et al., 2015)
- 损耗灵敏度(Arpit et al., 2017)
设置
使用pip
安装
工具箱的设计和测试是使用Python3运行的。
可以使用pip
:
pip install adversarial-robustness-toolbox
手动安装
对于库的最新版本,请下载源代码或在您选择的目录中克隆存储库:
git clone https://github.com/IBM/adversarial-robustness-toolbox
要安装art,请在项目文件夹中执行以下操作:
pip install .
这个库附带了一组基本的单元测试。要检查安装,可以通过调用安装文件夹中的测试脚本来运行所有单元测试:
bash run_tests.sh
跑步艺术
在examples
文件夹中可以找到一些在编写自己的代码时如何使用art的示例。请参阅examples/README.md
以获取有关每个示例的详细信息。要运行示例,请使用以下命令:
python examples/<example_name>.py
notebooks
文件夹包含jupyter笔记本,其中包含一些使用场景的详细演练。
贡献
添加新的特性、改进文档、修复错误或编写教程都是有用的贡献的例子。此外,如果您要发布一个新的攻击或防御,我们强烈建议您将其添加到对抗性健壮性工具箱中,以便其他人可以在自己的工作中公平地评估它。可以通过github pull请求启动错误修复。在为对抗性健壮性工具箱做出代码贡献时,我们要求您遵循PEP 8
cod为新特性提供单元测试。
这个项目使用DCO。确保使用-s
标志或在提交消息中添加Signed-off-By: Name<Email>
来注销提交。
示例
git commit -s -m 'Add new feature'
引用艺术
如果您使用艺术进行研究,请考虑引用以下参考文件:
@article{art2018,
title = {Adversarial Robustness Toolbox v0.10.0},
author = {Nicolae, Maria-Irina and Sinn, Mathieu and Tran, Minh~Ngoc and Buesser, Beat and Rawat, Ambrish and Wistuba, Martin and Zantedeschi, Valentina and Baracaldo, Nathalie and Chen, Bryant and Ludwig, Heiko and Molloy, Ian and Edwards, Ben},
journal = {CoRR},
volume = {1807.01069}
year = {2018},
url = {https://arxiv.org/pdf/1807.01069}
}