从 cleverhans 攻击模型生成对抗数据

Generating adversarial data from cleverhans attack models

我想要一个代码示例来说明如何从聪明的汉斯的对抗性攻击中生成训练数据。

adv_x = fgsm.generate_np(X_test, **fgsm_params)

这会生成对抗性的 x 数据,但我怎样才能得到 y?

adv_pred = model.predict_classes(adv_x)

这会给出 "fooled" 结果对吗?

我想要的是正确显示生成的 x、y、被愚弄的 y(我的意思是模型预测的结果可能因攻击而错误)。我正在使用 Mnist 顺便说一下,如果它有帮助的话。

根据您分享的代码片段,我提出两个建议:

  • 在测试数据上训练模型通常不是一个好主意(如果你之后要使用该测试数据来评估其性能)所以我将 X_test 替换为X_train 在你的第一行。

  • 要获取对抗样本的标签,您可以使用训练数据的原始标签或模型对原始训练数据的预测 model.predict_classes(X_train)(假设对抗样本的干扰不足以改变输入的标签)。