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第三方库


热门话题
如何为我的jsp/java web项目实现使用twitter登录   java KeyListener是否停止使用动作或鼠标Listener?   java Android:RecyclerView表现为GridLayout   java Appassembler在生成的脚本中构建错误的类路径   Java 11 JLink获取错误:自动模块不能与JLink:com一起使用。微软sqlserver。来自文件的jdbc   java如何检查Android tabview中打开的选项卡   java非固定大小Fenwick树实现   java如何使用java8的completableFuture实现forEach列表循环   java如何在Eclipse中指定测试类路径   java我们可以中断一个已经获得锁的线程吗?   java使用JSONPATH规范化嵌套json   在java中创建异常列表