【神经网络会梦到电子羊吗?】“匹配模式”暴露神经网络致命缺陷

简介: 神经网络的专长之一是图像识别。谷歌、微软、IBM、Facebook等科技巨头都有自己的照片标签算法。但即使是顶尖的图像识别算法,也会犯非常奇怪的错误,它只看到它希望看到的东西。同样,即使是非常聪明的人类,也会被算法“愚弄”。

今天,只要你生活在互联网的世界,你就可能与神经网络交互。神经网络是一种机器学习算法,从语言翻译到金融建模等各种应用,神经网络都可以发挥作用。它的专长之一是图像识别。谷歌、微软、IBM、Facebook等科技巨头都有自己的照片标签算法。但即使是顶尖的图像识别算法,也会犯非常奇怪的错误。

bea085b7d73e39b2e77f2873ceb225b63ce1923e

微软Azure的计算机视觉API添给上面这张图添加了标题和标签:

一群绵羊在郁郁葱葱的山坡上吃草

标签:放牧,绵羊,山,牛,马

但这张图上没有羊。我放到最大,仔细检查了每一个点,没有。

e53c56cb07bafce070c8c8b90ab6429739b8eeb6

一片绿油油的草原的特写

标签:草,原野,羊,站立,彩虹,男人

这张照片也被标记了绵羊。我碰巧知道附近有绵羊,但这张照片没有拍到没有一只绵羊。

66f81828029ecf90c1fcc17ed6874a17e6f7538a

一个石头山坡的特写

标签:山坡,放牧,羊,长颈鹿,牧群

这是另一个例子。实际上,神经网络每次看到这种类型的景观时都会产生幻觉。这是怎么回事?

神经网络只看到它们希望看到的羊

神经网络学习的方式就是看大量的样本。在这种情况下,训练这个网络的人给它提供了很多人工标记的图像——而且这些图像很多都包含了绵羊。神经网络是从没有任何知识开始的,它必须制定关于哪些图像应该被标记为“羊”的规则。看起来它并没有认识到“羊”是指真正的动物,而不仅仅是“在没有树的草地上的东西”。(类似地,它将上面第2张图标记了“彩虹”,可能是因为图上看起来天气潮湿,在下雨,它没有认识到对于“彩虹”来说,“彩色”是必不可少的)。

那么神经网络是否过度警惕,到处寻找羊?事实证明,不是。它们只看到它们希望看到的羊。它们很容易在草原和山坡上找到羊,但只要羊开始出现在奇怪的地方,就会明显看出算法依赖于猜测和概率。 

把羊带到室内,它们就会被贴上猫的标签。你双手抱起一只绵羊(或山羊),它们会被标记为狗。

e8cb747fe9c9a7bdc6b3110c5cb6c6b4a362344e

左图:一个男人双手抱着一只狗

右图:一个女人双手抱着一只狗

把绵羊涂成橙色,它们又变成了“花”。

f4d7ece2a5def29c6f516c02e5d41ae954d6aa5c

图:草原上一簇簇橙色的花

给绵羊戴上项圈,它们就被贴上“狗”的标签。把它们放在车上,它们又变成了狗或猫。如果把羊放到水中,可能最终会被标记成鸟类甚至北极熊。

如果山羊爬树,它们就变成了鸟,或者可能被标记成长颈鹿。(由于原始数据集中长颈鹿的图像过多,导致微软Azure在各种图片上都能看到长颈鹿。)

294d0219d0ecd84fbee02c2a6b60ff717c3519d8

NeuralTalk2:一群鸟在天上飞

Microsoft Azure:一群长颈鹿站在一棵树旁

问题在于,神经网络是“匹配模式”(match pattern)工作的。它们如果看到有类似动物毛皮的东西,有一大片绿色,就得出结论说有“羊”。如果它们看到有毛皮,有厨房的样子,可能就会得出结论说有“猫”。

如果生活按常规运行,这一套图像识别方法的效果很好。但是,一旦人们——或羊们——做出了意想不到的事情,这些算法就会显示出它们的弱点。

想要骗过神经网络可能很简单。也许未来的特工会穿成小鸡的样子,或驾驶伪装成牛的外观的汽车。

作者Janelle Shane在推特上搜集了许多有趣的绵羊图片,你可以用微软Azure的图像识别API亲自测试一下,看看即使是顶尖的算法都依赖于概率和运气。

7db5c736655f44e540e8081f54a5b41a8f41300c

谷歌新研究:人类也会被算法愚弄

“愚弄”神经网络有很多例子,但是即使是自以为聪明的人类,也有可能被算法愚弄。最近谷歌大脑有一项研究,在图像识别中让机器和人类双双上当。

4fd30095727a4b4aac2388b85b576f676f81b956

图:新算法将一只猫变成了AI和人类都可能识别成狗的东西。Image: Google Brain

谷歌大脑的计算机科学家设计了一种技巧,可以在图像识别时欺骗神经网络——这个攻击也对人类起作用。

所谓的“对抗”(adversarial)样本可以用来同时欺骗人类和计算机。谷歌大脑开发的这一算法可以对图片进行调整,使视觉识别系统无法正确识别它们,往往将它们误认为是别的东西。在测试中,一个用于分析和识别视觉图像的深度卷积网络(CNN)被愚弄了,例如,将一只猫的图片识别成一只狗。

d98ce6712c4ed17fc72500c6da9e3217b9422958

左边是未修改的原图。右边是修改后的“对抗”图像看起来像一只狗。 Image: Google Brain

令人着迷的是,人类也同样被欺骗了。这一发现表明计算机科学家正在逐渐接近开发像我们一样看世界的系统。然而,更令人不安的是,这也意味着我们将在欺骗人类方面做得更好了GAN提出者Ian Goodfellow也参与的这项新研究在arXiv上发布了(https://arxiv.org/abs/1802.08195)。

CNN实际上很容易被愚弄。基于机器的计算机视觉方法不能像人类那样分析对象。AI通过仔细分析照片中的每个像素来寻找图案,并仔细地分析小的像素点在整个图像中的位置。然后,它将整个模式与预先标记的、预先学习的对象相匹配,例如大象的照片。相反,人类观察图像是更全面。为了识别大象,我们会注意到大象特定的物理属性,例如有四条腿,皮肤是灰色,有耷拉的大耳朵和大躯干。我们也善于弄清楚模糊两可的东西,并推断出照片边界之外可能存在的东西。在这两方面,AI仍然是非常弱的。

举个例子,一位日本研究人员去年在实验中发现,仅仅一个错误的像素就欺骗了AI,将乌龟识别成一支步枪。几个月前,同样是这组谷歌大脑的研究人员训练的AI将香蕉误认成是烤面包机,只是因为在图像中放了一张贴纸。

正如这些例子所示,混淆AI的方法是在图像中引入所谓的“干扰”,无论干扰是错误的像素,烤面包机贴纸还是白色噪声,尽管人类看不到这些干扰,但它们可以说服机器将熊猫认为是长臂猿。

34ac96fd21b550731b5e50dd403000282ff78dc6

一张未经修改的熊猫的图像(左图)与仔细调整的“干扰”(中间)混在一起,使AI认为这是一只长臂猿(右)。Image:OpenAI / Google Brain

但是这些例子往往只涉及单个图像分类器,每个图像分类器都从一个单独的数据集中学习。在这项新的研究中,谷歌大脑的研究人员试图开发一种算法,可以产生能够欺骗多个系统的对抗性图像。此外,研究人员还想知道,如果一个能欺骗所有图像分类器的对抗性图像是否也能欺骗人类。现在看来,答案是肯定的。

为了做到这一点,研究人员必须使他们的干扰(perturbations)更加“robust”,即是说,要设计出可以欺骗更广泛的系统(包括人类)的操作。这需要增加“对人类有意义的特征”,例如改变物体的边缘,通过调整对比度来增强边缘,使纹理模糊,以及利用照片中的暗色区域来可以放大干扰效果。

0488e920a69bbf1ec6fe2b058efe12105bcc5d06

从左往右:未经修改的狗的图像,使狗看起来像猫的对抗性图像,使干扰发生的控制图像。Image: Google Brain

在测试中,研究人员成功开发了一个能够生成图像的对抗图像生成器(adversarial image generator),用10个基于CNN的机器学习模型测试,10个都被愚弄了。为了测试它对人类的有效性,研究人员进行了实验,参与者分别被展示原始照片,100%欺骗了CNN的对抗照片,以及经过翻转干扰层的照片(对照组)。被试者没有太多时间仔细观察图片,只有60到70毫秒的时间,然后他们被要求识别照片中的物体。在一个例子中,一只狗被处理成看起来像一只猫——对抗的图像,100%的时候被CNN识别为猫。总体而言,人类在观察对抗图像时比观察原始照片更难区分对象,这意味着这些照片黑客可能会很好地从欺骗机器转移到欺骗人类。

诱使人们将狗的图像误认为是猫,可能从字面上看并不是大问题。但这表明科学家正在越来越接近地创造一种视觉识别系统,以类似于人类的方式处理图像。最终,这将导致十分优秀图像识别系统,这是很好的。

然而,修改或伪造的图像、音频和视频的制作已经开始成为一个越来越受到关注的领域。谷歌大脑研究人员担心,对抗性图像最终可能被用来制造假新闻,也可能被巧妙地用来操纵人类。


原文发布时间为:2018-03-3

本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”微信公众号

原文链接:【神经网络会梦到电子羊吗?】“匹配模式”暴露神经网络致命缺陷

相关实践学习
基于函数计算实现AI推理
本场景基于函数计算建立一个TensorFlow Serverless AI推理平台。
相关文章
|
2月前
|
机器学习/深度学习 算法 PyTorch
python手把手搭建图像多分类神经网络-代码教程(手动搭建残差网络、mobileNET)
python手把手搭建图像多分类神经网络-代码教程(手动搭建残差网络、mobileNET)
43 0
|
4月前
|
网络协议 Linux 网络架构
Linux三种网络模式 | 仅主机、桥接、NAT
Linux三种网络模式 | 仅主机、桥接、NAT
164 0
|
2月前
|
NoSQL 网络协议 Redis
Nomad 系列 -Nomad 网络模式
Nomad 系列 -Nomad 网络模式
|
4月前
|
存储 监控 数据安全/隐私保护
Docker网络模式:深度理解与容器网络配置
Docker 的网络模式是容器化应用中一个关键而复杂的方面。本文将深入讨论 Docker 的网络模式,包括基本概念、常用网络模式以及高级网络配置,并通过更为丰富和实际的示例代码,帮助读者全面掌握如何理解和配置容器网络。
|
5天前
|
存储 安全 测试技术
网络奇谭:虚拟机中的共享、桥接与Host-Only模式解析
网络奇谭:虚拟机中的共享、桥接与Host-Only模式解析
14 0
|
5天前
|
机器学习/深度学习 自然语言处理 算法
|
2月前
|
JSON Kubernetes Linux
Docker之网络模式
docker基础 网络模式
48 2
|
2月前
|
机器学习/深度学习 算法 TensorFlow
基于 Python中的深度学习:神经网络与卷积神经网络
基于 Python中的深度学习:神经网络与卷积神经网络
|
3月前
|
Java 调度
【Netty 网络通信】Reactor模式
【1月更文挑战第9天】【Netty 网络通信】Reactor模式
|
3月前
|
网络安全 虚拟化 Windows
RHEL7-NAT模式连接外部网络
RHEL7-NAT模式连接外部网络
22 1