0

假设我使用 Cleverhans 加载 MNIST 数据集并使用 FGM 攻击图像。我通过 Cleverhans MNIST 数据集加载的任何图像都已经将其像素值限制为 [0, 1],在我攻击图像后也是如此(假设我将图像剪辑为 [0, 1])。如果我想在这种情况下查看攻击,我只需将所有像素值乘以 255 并创建对抗图像。

在这种情况下,像素值在 [0, 255] 中的原始 MNIST 图像已改为通过将所有值除以 255 使其像素值在 [0, 1] 中。为了取回原始“图像属性”,我只需再次乘以 255。

当这个预处理步骤(在 MNIST 的情况下,除以 255)更复杂时,有没有办法(在 Cleverhans 中或一般而言)提取原始图像属性?例如,我正在考虑 VGG16,其中调整 ImageNet 图像的大小,同时保留其纵横比,将图像恢复到其原始大小的过程很复杂,并且对于每张图像都是独一无二的。

是否可以将此预处理步骤作为模型中的一个步骤添加,以直接获取原始图像上的噪声?我想这可能不是这种情况,因为并非所有预处理步骤都是可区分的?

这是否意味着如果预处理步骤太复杂,我无法查看应用于原始图像的噪声?

4

1 回答 1

2

这是正确的,如果您的管道使用的预处理阶段是:

  • 难以反转:基于(a)原始图像和(b)预处理空间中的扰动,将难以获得与原始domani中的扰动图像对应的图像。

  • 不可微:对于需要梯度来计算原始域中的扰动图像的攻击是不可能的。

但是,您可以使用不直接计算梯度的攻击,例如 SPSA 直接在原始域中操作,即使预处理阶段是不可微的:https ://github.com/tensorflow/cleverhans/blob/master /cleverhans/attacks/spsa.py

于 2019-07-23T16:35:55.707 回答