IBM对抗性机器学习工具箱

Adversarial-Robustness-Toolbox的Python项目详细描述


对抗性稳健性工具箱(第v0.10.0条)


Build StatusDocumentation StatusGitHub versionLanguage grade: PythonTotal alerts

这是一个专门用于对抗性机器学习的库。它的目的是允许机器学习模型的攻击和防御方法的快速构建和分析。art为攻击和防御分类器的许多最新方法提供了实现。

图书馆仍在开发中。我们非常感谢反馈、错误报告和扩展。在Slack与我们联系(邀请here)!

支持的攻击、防御和指标

库包含以下规避攻击的实现

还支持以下defense方法:

art还实现了检测对抗性样本的方法:

  • 基于输入的基本检测器
  • 接受过特定层激活训练的探测器
  • 基于快速广义子集扫描的检测器(Speakman et al., 2018

还支持以下中毒攻击检测器

健壮性度量

设置

使用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 8cod为新特性提供单元测试。

这个项目使用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}
}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从ImageIO中排除特定的TIFF读取器?   JavaJMockit和passbyreference。我们中一定有一个人错了(可能是我!)   java Android camera2放弃了牛轧糖的表面,但在棉花糖上工作   java按字符串中出现的顺序对字符数组进行排序   如何获取Groovy生成的java源代码   java无法使用AutoIT和Selenium Webdriver在所需位置/文件夹保存图像   java为什么我的冒泡排序代码会打印出这些奇怪的东西?   java JAXB:typesafeEnumMemberName=“generateName”是否可自定义?   Java编程输入:今天是星期天输出:星期天是今天   java不理解首个OOAD书的吉他示例   java如何从JformattedTextfield检索货币格式值   java可以从相同的源代码生成功能不同的可执行文件吗?