深度神经网络怎么可能这么容易被愚弄?

人工智能 卷积神经网络 计算机视觉 图像识别 深度神经网络 对抗性毫升
2021-10-20 19:14:20

以下页面/研究表明,深度神经网络很容易通过对无法识别的图像进行高置信度预测而被愚弄,例如

人类无法识别的进化图像,但在 ImageNet 上训练的最先进的 DNN 相信 >= 99.6% 的确定性是熟悉的对象。 这一结果突出了 DNN 和人类识别物体的方式之间的差异。 直接和间接编码的图像

不断发展的图像以匹配 DNN 类会产生极其多样化的图像。 对于所列类别,这些图像的平均 DNN 置信度得分为 99.12%,这意味着 DNN 几乎可以肯定地相信图像就是那种类型的东西。 显示的是从 5 次独立进化运行中选择来展示多样性的图像。 这些图像揭示了 DNN 网络在对图像进行分类时关心什么以及不关心什么。 例如,一辆校车是黄线和黑线交替,但不需要有挡风玻璃或轮子

这怎么可能?您能用简单的英语进行理想的解释吗?

4个回答

首先,这些图像(即使是前几张)尽管对人类来说是垃圾,但并不完全是垃圾。它们实际上使用各种先进技术进行了微调,包括另一个神经网络。

深度神经网络是Caffe提供的以 AlexNet 为模型的预训练网络为了进化图像,包括直接编码和间接编码的图像,我们使用Sferes进化框架。可以在此处下载进行进化实验的整个代码库 [原文如此] 。梯度上升产生的图像的代码可在此处获得。

实际上是随机垃圾的图像被正确识别为没有意义:

为了响应无法识别的图像,网络可能会为 1000 个类别中的每一个类别输出低置信度,而不是为其中一个类别输出极高的置信度值。事实上,他们只是对随机生成的图像(例如进化运行的第 0 代图像)执行此操作

研究人员最初的目标是使用神经网络自动生成看起来像真实事物的图像(通过获取识别器的反馈并尝试更改图像以获得更自信的结果),但他们最终创造了上述艺术. 请注意,即使在类似静态的图像中,也有小斑点——通常靠近中心——可以说是触发了识别。

我们并没有试图制作对抗性的、无法识别的图像。相反,我们试图制作可识别的图像,但这些无法识别的图像出现了。

显然,这些图像具有与人工智能在图片中寻找的内容相匹配的独特特征。“桨”图像确实具有桨状形状,“百吉饼”是圆形且颜色正确,“投影仪”图像是类似相机镜头的东西,“计算机键盘”是一堆矩形(如各个键),并且“链环围栏”对我来说合法地看起来像一个链环围栏。

图 8. 不断演变的图像以匹配 DNN 类会产生极其多样化的图像。显示的是为展示来自 5 次进化运行的多样性而选择的图像。多样性表明图像是非随机的,而是进化产生了每个目标类别的 [原文如此] 判别特征。

延伸阅读:原论文(大PDF)

您提供的图像可能无法被我们识别。它们实际上是我们识别但使用Sferes进化框架进化的图像。

虽然人类几乎不可能用抽象艺术来标记这些图像,但深度神经网络将以 99.99% 的置信度将它们标记为熟悉的对象。

这一结果突出了 DNN 和人类识别物体的方式之间的差异。图像直接(或间接)编码

根据这个视频

更改最初以人类无法察觉的方式正确分类的图像可能会导致原因 DNN 将其分类为其他内容。

在下图中,底部的数字是图像应该看起来像数字但网络认为顶部的图像(像白噪声)是真实数字,有 99.99% 的确定性。

在此处输入图像描述

The main reason why these are easily fooled is that Deep Neural Network does not see the world in the same way as human vision. We use the whole image to identify things while DNN depends on the features. As long as DNN detects certain features, it will classify the image as a familiar object it has been trained on. The researchers proposed one way to prevent such fooling by adding the fooling images to the dataset in a new class and training DNN on the enlarged dataset. In the experiment, the confidence score decreases significantly for ImageNet AlexNet. It is not easy to fool the retrained DNN this time. But when the researchers applied such method to MNIST LeNet, evolution still produces many unrecognizable images with confidence scores of 99.99%.

More details here and here.

All answers here are great, but, for some reason, nothing has been said so far on why this effect should not surprise you. I'll fill the blank.

Let me start with one requirement that is absolutely essential for this to work: the attacker must know neural network architecture (number of layers, size of each layer, etc). Moreover, in all cases that I examined myself, the attacker knows the snapshot of the model that is used in production, i.e. all weights. In other words, the "source code" of the network isn't a secret.

You can't fool a neural network if you treat it like a black box. And you can't reuse the same fooling image for different networks. In fact, you have to "train" the target network yourself, and here by training I mean to run forward and backprop passes, but specially crafted for another purpose.

Why is it working at all?

Now, here's the intuition. Images are very high dimensional: even the space of small 32x32 color images has 3 * 32 * 32 = 3072 dimensions. But the training data set is relatively small and contains real pictures, all of which have some structure and nice statistical properties (e.g. smoothness of color). So the training data set is located on a tiny manifold of this huge space of images.

The convolutional networks work extremely well on this manifold, but basically, know nothing about the rest of the space. The classification of the points outside of the manifold is just a linear extrapolation based on the points inside the manifold. No wonder that some particular points are extrapolated incorrectly. The attacker only needs a way to navigate to the closest of these points.

Example

让我给你一个具体的例子,如何欺骗神经网络。为了使其紧凑,我将使用一个非常简单的具有一个非线性(sigmoid)的逻辑回归网络。它需要一个 10 维输入x,计算单个数字p=sigmoid(W.dot(x)),这是第 1 类(相对于第 0 类)的概率。

逻辑回归

假设您知道W=(-1, -1, 1, -1, 1, -1, 1, 1, -1, 1)并从 input 开始x=(2, -1, 3, -2, 2, 2, 1, -4, 5, 1)前向传递给出sigmoid(W.dot(x))=0.0474或 95% 的概率x是 0 类示例。

x 和 W

我们想找到另一个例子,y它非常接近x但被网络分类为 1。注意它x是 10 维的,所以我们可以自由微调 10 个值,这很多。

既然W[0]=-1是负数,那么y[0]总贡献小最好是y[0]*W[0]小。因此,让我们制作y[0]=x[0]-0.5=1.5. 同样,W[2]=1是正数, 所以最好增加y[2]做大y[2]*W[2]: y[2]=x[2]+0.5=3.5. 等等。

x、W 和 y

结果是y=(1.5, -1.5, 3.5, -2.5, 2.5, 1.5, 1.5, -3.5, 4.5, 1.5)sigmoid(W.dot(y))=0.88通过这一更改,我们将 1 类概率从 5% 提高到 88%!

概括

如果您仔细查看前面的示例,您会注意到我确切地知道如何调整x以将其移动到目标类,因为我知道网络梯度。我所做的实际上是反向传播,但与数据有关,而不是权重。

一般来说,攻击者从目标分布开始(0, 0, ..., 1, 0, ..., 0)(除了它想要实现的类,到处都是零),反向传播到数据并朝那个方向做出微小的移动。网络状态未更新。

现在应该清楚的是,它是处理小数据流形的前馈网络的一个共同特征,无论它有多深或数据的性质(图像、音频、视频或文本)。

保护

防止系统被愚弄的最简单方法是使用神经网络集合,即在每个请求上聚合多个网络的投票的系统。同时对多个网络进行反向传播要困难得多。攻击者可能会尝试按顺序执行此操作,一次一个网络,但一个网络的更新可能很容易与另一个网络获得的结果相混淆。使用的网络越多,攻击就越复杂。

另一种可能性是在将输入传递到网络之前对其进行平滑处理。

积极使用相同的想法

您不应该认为对图像的反向传播只有负面应用。一种非常相似的技术,称为反卷积,用于可视化和更好地理解神经元所学的内容。

这种技术允许合成一张导致特定神经元触发的图像,基本上可以直观地看到“神经元正在寻找什么”,这通常使卷积神经网络更易于解释。

在神经网络研究中还没有一个令人满意的答案的重要问题是 DNN 如何得出它们提供的预测。DNN 通过将图像中的补丁匹配到补丁的“字典”来有效地工作(尽管不完全),补丁存储在每个神经元中(参见youtube cat 论文)。因此,它可能没有图像的高级视图,因为它只查看补丁,并且图像通常被缩小到低得多的分辨率以获得当前生成系统中的结果。查看图像组件如何交互的方法可能能够避免这些问题。

对这项工作提出的一些问题是:当他们做出这些预测时,网络的信心如何?这样的对抗性图像在所有图像的空间中占据了多少体积?

在这方面我知道的一些工作来自弗吉尼亚理工大学的 Dhruv Batra 和 Devi Parikh 实验室,他们研究了问答系统:Analyzing the Behavior of Visual Question Answering ModelsInterpreting Visual Question Answering models

需要更多这样的工作,正如人类视觉系统也会被这种“视错觉”所愚弄,如果我们使用 DNN,这些问题可能是不可避免的,尽管 AFAIK 在理论上或经验上都一无所知。