在 Breaking Linear Classifiers on ImageNet在博客文章中,作者提出了一个非常简单的示例,说明如何修改图像来欺骗分类器。给出的技术非常简单:xad = x + 0.5w,其中 x 是一维向量,w 是一维权重。这一切都很好而且很清楚。然而,我试图用 MNIST 数据集来实现这一点,但遇到了困难,不知道如何将这个简单的想法转化为实际结果。我想知道如何使用已知的 w
矩阵来修改给定的 x
矩阵(或简单地展平一维图像向量)。
我的图像矩阵 x
的形状为 (1032, 784)(每个图像都是具有 784 个数字的展平向量),我的权重矩阵 w
的形状为(784、10)。那么问题来了,如何实现上述文章中介绍的想法呢?特别是,如何为所有图像添加一点权重?像这样的事情:
x + 0.5 * w
我的代码can be found on GitHub 。使用 numpy 的解决方案是首选,但使用 TensorFlow 也可以。谢谢!
最佳答案
弄清楚如何:
因此,如果我们尝试创建被错误分类为“6”的对抗性图像,我们只需从权重矩阵中获取“6”的权重:
w_six = w[:, 6]
然后我们可以简单地进行矩阵加法:
images_fool = x + 1.5 * w_six
关于python - 如何在 TensorFlow 中使用图像和权重矩阵创建对抗图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40966589/