0

我使用https://github.com/tensorflow/cleverhans生成对抗图像,但没有提供攻击算法的类别。

这里列出了所有的攻击算法代码:https ://github.com/tensorflow/cleverhans/tree/master/cleverhans/attacks

我不知道这些攻击算法中哪个是灰盒攻击,哪个是白色或黑色攻击算法?

因为我需要算法的范畴来研究攻防算法。github页面没有提供任何关于此的信息。我应该怎么知道?

4

1 回答 1

0

将从第 2 页最后一段中引用Carlini的论文Towards Evaluating the Robustness of Neural Networks开始:对手可以完全访问神经网络,包括架构和所有参数,并且可以以白盒方式使用它。这是一个保守且现实的假设:先前的工作表明,在对目标模型进行黑盒访问的情况下,可以训练替代模型,然后通过攻击替代模型,我们可以将这些攻击转移到目标模型。

使以下 2 个定义为真:

白盒:攻击者完全了解机器学习算法、机器学习模型(即参数和超参数)、架构等。下图确实显示了白盒攻击如何工作的示例:

GAN 白盒模型架构

黑盒:攻击者几乎对 ML 系统一无所知(也许知道特征数量、ML 算法)。下图以步骤为例:

GAN 黑盒模型架构

Kurakin 于 2017 年发表的论文ADVERSARIAL Examples in THE PHYSICAL WORLD中的第 3.4 节演示物理世界中的黑盒对抗性攻击陈述如下: 第 9 页第 1 段描述了白盒含义: 上述实验在假设以下条件下研究物理对抗性示例:对手可以完全访问模型(即对手知道架构、模型权重等......)。

接着解释黑盒的含义: 但是,攻击者无权访问模型的黑盒场景是许多安全威胁的更现实的模型。

结论:为了将算法定义/标记/分类为白盒/黑盒,您只需更改模型的设置。

注意:我没有对每个算法进行分类,因为有些算法只能支持cleverhans库中的白盒设置或黑盒设置,但这对你来说是一个好的开始(如果你做研究,你需要检查每篇论文文档中列出的以了解 GAN,以便您可以根据自己的对抗性示例生成。

使用的资源和有趣的论文:

  1. 基本迭代方法:基本迭代方法
  2. 卡里尼瓦格纳L2: 卡里尼瓦格纳L2
  3. 快速梯度法:https : //arxiv.org/pdf/1412.6572.pdf https://arxiv.org/pdf/1611.01236.pdf https://arxiv.org/pdf/1611.01236.pdf
  4. 显着性映射方法:显着性映射方法
  5. 虚拟对抗方法:虚拟对抗方法
  6. Fgsm 快速梯度符号法:Fgsm 快速梯度符号法
  7. 基于 Jsma Jacobian 的显着图方法:白盒设置中的 JSMA
  8. Vatm 虚拟对抗训练:Vatm 虚拟对抗训练
  9. 对抗性机器学习——介绍幻灯片来自:Binghui Wang
  10. mnist_blackbox
  11. mnist_tutorial_cw
于 2019-01-31T05:57:19.727 回答