为什么神经网络容易被愚弄?

机器算法验证 机器学习 神经网络 对抗性例子
2022-01-28 12:54:22

我读过一些关于手动设计图像以“欺骗”神经网络的论文(见下文)。

这是因为网络只对条件概率建模p(y|x)?
如果网络可以对联合概率建模p(y,x),这样的情况还会发生吗?

我的猜测是这种人工生成的图像与训练数据不同,所以它们的概率很低p(x). 因此p(y,x)即使应该很低p(y|x)这样的图像可能会很高。

更新

我尝试了一些生成模型,结果证明没有帮助,所以我想这可能是 MLE 的结果?

我的意思是在使用 KL 散度作为损失函数的情况下,pθ(x)在哪里pdata(x)小不影响损失。所以对于一个不匹配的人为图像pdata, 的价值pθ可以是任意的。

更新

我发现 Andrej Karpathy 的博客显示

这些结果并不特定于图像、ConvNet,它们也不是深度学习中的“缺陷”。

在此处输入图像描述
解释和利用对抗性示例深度神经网络很容易被愚弄:无法识别图像的高置信度预测
在此处输入图像描述

2个回答

您所指的那种模型称为“生成”模型,而不是歧视性模型,并且不能真正扩展到高维数据。NN 在语言任务中的部分成功是从生成模型 (HMM) 转向“更多”的判别模型(例如 MEMM 使用逻辑回归,它允许有效地使用上下文数据https://en.wikipedia.org/ wiki/Hidden_​​Markov_model#Extensions )

我认为他们被愚弄的原因是一个更普遍的问题。这是当前“浅层”ML 驱动的 AI 对更复杂方法的主导地位。[在许多论文中提到其他 ML 模型也很容易被愚弄 - http://www.kdnuggets.com/2015/07/deep-learning-adversarial-examples-misconceptions.html - Ian Goodfellow]

许多任务最有效的“语言模型”是“词袋”。没有人会声称这代表了一种有意义的人类语言模型。不难想象,这类模型也很容易上当。

类似的计算机视觉任务(例如对象识别)被“视觉词袋”彻底改变了,这将计算密集型方法(无法应用于海量数据集)吹走。

CNN 是我认为更好的“视觉词袋” - 正如您在图像中显示的那样,错误是在像素级/低级特征上犯的;尽管夸大其词,但隐藏层中没有高级表示 - (每个人都会犯错,关键是一个人会因为更高级别的特征而犯“错误”,并且会识别出一只猫的卡通片,我不知道”不相信NN会)。

更复杂的计算机视觉模型(其性能比 NN 更差)的一个示例是“可变形部件”模型。

据我所知,大多数神经网络不使用输入图像的先验概率分布。但是,您可以将训练集的选择解释为这样的概率分布。在这种情况下,这些人工生成的图像不太可能被选为测试集中的图像。测量“联合概率”的一种方法是随机生成图像,然后标记它们。问题在于,绝大多数 VAST 没有标签。因此,要获得合理数量的标记示例将花费太多时间。