Skip to main content
QUICK REVIEW

[论文解读] advertorch v0.1: An Adversarial Robustness Toolbox based on PyTorch

Gavin Weiguang Ding, Luyu Wang|arXiv (Cornell University)|Feb 20, 2019
Adversarial Robustness in Machine Learning参考文献 22被引用 143
一句话总结

advertorch v0.1 是一个基于 PyTorch 的工具箱,提供对抗性攻击、防御和鲁棒训练方法的实现,具备 BPDA 封装和清晰的设计,便于攻击-环路研究。

ABSTRACT

advertorch is a toolbox for adversarial robustness research. It contains various implementations for attacks, defenses and robust training methods. advertorch is built on PyTorch (Paszke et al., 2017), and leverages the advantages of the dynamic computational graph to provide concise and efficient reference implementations. The code is licensed under the LGPL license and is open sourced at https://github.com/BorealisAI/advertorch .

研究动机与目标

  • 提供简洁、一致的攻击与防御 API,以简化对抗性鲁棒性研究。
  • 提供简洁的参考实现,利用 PyTorch 动态计算图实现快速执行。
  • 支持攻击环路工作流(如对抗性训练),并具备 GPU 加速。
  • 结合基于预处理的防御和鲁棒训练方法,采用模块化设计。
  • 建立版本控制与报告实践,以实现可重复的基准结果。

提出的方法

  • 实现基于梯度的攻击,具有模块化的核心组件:predict 函数、loss_fn 和 perturb 方法。
  • 包括超出梯度法的其他攻击(如 SinglePixelAttack、LocalSearchAttack、JacobianSaliencyMapAttack)。
  • 提供 BPDAWrapper,用于在不可微分或梯度混淆防御中替代反向传播。
  • 将基于预处理的防御作为 PyTorch 模块实现(如 JPEGFilter、BitSqueezing、平滑滤波)。
  • 提供鲁棒训练参考,包括 Madry 风格的对抗性训练,以及在 advertorch_examples 中作为示例的可证明鲁棒训练。
  • 遵循语义版本控制 2.0.0,并记录基准测试超参数以便可重复性。

实验结果

研究问题

  • RQ1advertorch v0.1 实现了哪些攻击,它们如何被结构化以实现灵活性?
  • RQ2BPDAWrapper 如何使攻击针对具有非微分组件的防御模型?
  • RQ3提供了哪些基于预处理的防御,如何组合它们?
  • RQ4展示了哪些鲁棒训练方法,它们如何组织成参考实现?
  • RQ5如何报告基准结果以确保跨版本可重复性?

主要发现

  • 该工具箱提供范围广泛的基于梯度的攻击和其他攻击类型,核心设计解耦(predict、loss_fn、perturb)。
  • BPDAWrapper 通过替代反向传播来使对防御模型的基于梯度的攻击可行,包括直通估计器。
  • 基于预处理的防御实现为可按需组合的模块化 PyTorch 组件。
  • 已包含鲁棒训练参考,在 advertorch_examples 中有 Madry 风格对抗性训练的示例实现。
  • 项目遵循语义版本控制,并强调对基准测试超参数的详细报告。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。