CNN 能否对微小变化导致错误分类的技巧变得鲁棒?

人工智能 卷积神经网络 参考请求 术语 对抗性毫升
2021-10-25 04:57:25

不久前,我读到您可以对图像进行细微的更改,以确保好的 CNN 会严重错误分类图像。我相信这些变化必须利用将用于分类的 CNN 的细节。因此,我们可以欺骗一个好的 CNN 将图像分类为自行车的图片,而任何人都会说它是狗的图像。我们将这种技术称为什么,是否有努力使图像分类器对这种技巧具有鲁棒性?

2个回答

这些示例称为对抗示例。我认为重要的是要理解为什么 CNN 会被这样“欺骗”:

当模型具有类似人类的性能时,我们经常期望类似人类的行为。CNN 也是如此。我们期望他们像我们一样做出决定,即我们寻找物体的形状。

然而,正如对常见 CNN 的各种实验所表明的那样,情况并非如此。CNN 寻找其他特征。它试图最小化损失函数。最快的方法通常不是预期的方法。例如,您认为一头牛有 4 条腿和某种形状的头部。CNN 可能认为如果有 4 条腿和绿色背景的东西就足够了(因为训练数据集中的 10 幅图像中有 9 幅是这样的)。因此,在大多数情况下,CNN 在通过这些特征识别奶牛时都做得很好。

Geirhos 在“Imagenet 训练的 cnns 偏向于纹理;增加形状偏差提高了准确性和鲁棒性”中做了一个实验。他展示了一张可以分类为 A 和 BEg 的 CNN 图像,就像这张图片,取自上面的 Geirhos 论文。在大多数情况下,一个普通的 CNN 都会说这不是一只猫。这是一头大象!

来自 Geirhos “Imagenet 训练的 cnns 偏向于纹理;增加形状偏差可提高准确性和鲁棒性”:CNN 偏向于纹理信息而不是形状信息。

或 Wang 等人的另一个类似实验:“高频分量有助于解释卷积神经网络的泛化”。他们透露,尽管图像中的低频(即包含形状信息的频率)已从图像中移除,但常见的 CNN 可以“正确”地对图像进行分类。

在另一项实验中,Brendel & Bethge 在““使用局部特征袋近似模型在 imagenet 上工作得非常好”中重新设计了 CNN,因此它们不能通过设计使用全局形状信息。他们的 CNN 也表现得像人类。那么为什么其他 CNN 不应该使用这个网络使用的特征呢?

回到问题的第二部分:要使 CNN 更健壮,您需要为 CNN 提供仅包含您希望它学习的特征的图像。图像很难做到这一点。通过应用样式迁移来移除纹理信息是一种选择。想想你希望网络学习什么,不学习什么。然后尝试删除/隐藏/抑制您不希望它学习的内容。其他答案中给出了详细信息。

还有一种称为特征可视化的方法,它试图生成 CNN 识别的特征的可视化。然而,这种幼稚的技术几乎是无用的,因为这些可视化通常被噪音之类的东西所支配。(除了 CNN 的最小部分。)这可能表明 CNN 不关注全局形状信息(因为可视化不是尖锐的形状,而是高频纹理)。

也许这个问题有点帮助: 深度神经网络怎么可能这么容易被愚弄?

这些被称为对抗性攻击,被错误分类的具体例子被称为对抗性例子

在寻找对抗样本和使 CNN 更健壮(即更不容易受到这些攻击)方面有相当多的工作。一个例子是DeepFool算法,它可用于查找会导致标签更改的数据扰动。

文献中有几种用于对抗对抗性攻击的技术。这是一个选择:

  1. 使用各种随机扰动增强训练数据。这旨在使模型对向图像添加随机噪声的典型对抗性攻击更加稳健。[1] 中讨论了这种方法的一个示例。

  2. 在输入 CNN 之前构建某种模型来“去噪”输入。一个例子是 Defense-GAN [2],它使用生成对抗模型来模拟“真实”图像分布并找到更接近真实分布的输入近似值。

参考

[1] Ian J. Goodfellow、Jonathon Shlens 和 Christian Szegedy。解释和利用对抗性示例ICLR (2015)。网址

[2] Pouya Samangouei、Maya Kabkab、Rama Chellappa。Defense-GAN:使用生成模型保护分类器免受对抗性攻击ICLR (2018)。网址