写点什么

为什么深度学习 AI 这么容易被欺骗?

  • 2019-11-14
  • 本文字数:8360 字

    阅读完需:约 27 分钟

为什么深度学习AI这么容易被欺骗?

一辆自动驾驶汽车行驶前方是一个停车标志,但它并没有减速,而是加速冲入了繁忙的十字路口。后来的一份事故报告显示,停车标牌的表面被人贴上了四个小方块。这些小方块欺骗了汽车的车载人工智能(AI),将“停止”一词误读为“限速 45”。


这类事故在现实中还没有出现,但是 AI 被蓄意破坏的潜在风险是非常现实的。研究人员已经展示了如何在停车标志上精心放置贴纸(注 1)来使 AI 系统误读标志。他们还在眼镜或帽子上贴上印刷图案,成功欺骗了人脸识别系统。此外他们还在音频中插入一些白噪音模式来欺骗语音识别系统,使其以为自己听到了某些短语


这些只是一些例子,证明 AI 中最流行的模式识别技术——称为深度神经网络(DNN)——有多容易被攻破。事实证明,这类技术可以正确分类各种输入(包括图像、语音和有关消费者偏好的数据),表现非常出色。它们是人们日常生活的一部分,从自动电话应答系统到流媒体服务 Netflix 上的用户推荐系统,到处都能见到它们的踪影。然而,只需以人类通常难以察觉的微小变化的形式来更改输入,就可能让我们身边最优秀的神经网络陷入混乱。


加州大学伯克利分校计算机科学博士生 Dan Hendrycks 说,这些问题并不只是技术尚未成熟时才会有的那类奇特缺陷那么简单。像许多科学家一样,他开始认为这些缺陷是 DNN 在根本上就脆弱不堪的最有力证据:DNN 在自己熟悉的环境中出色地完成了工作,而一旦涉及陌生领域,它们就以无法预测的方式崩溃。



上图:几个方块就能让人工智能系统把停止标志认成是"限速 45";下图:科学家做出了一些抽象模式图片——DNN 会识别为自己熟悉的物体


这可能会导致非常严重的问题。深度学习系统正在越来越多地走出实验室,走进现实世界,实践案例包括驱动无人驾驶汽车搜索罪犯诊断疾病等。但今年的一项研究报告称,恶意添加到医学扫描结果中的像素可能会使 DNN 误检测出癌症(注 2)。另一份报告则指出黑客可以利用这些弱点劫持一个基于在线 AI 的系统,使其运行入侵者自己的算法(注 3)。


在努力找出问题所在的过程中,研究人员发现了许多 DNN 之所以失败的原因。“深度神经网络的根本脆弱性没有解决方案,”加州山景城谷歌公司的 AI 工程师 François Chollet 这样认为。他和其他一些人都说,要克服这些缺陷,研究人员需要使用额外的能力来增强模式匹配 DNN:例如,使 AI 能够自己探索世界,编写自己的代码并保留记忆。一些专家认为,这类系统将是 AI 研究领域未来十年的探索重点

实际检验

2011 年,谷歌推出了一种可以识别 YouTube 视频中的猫的系统,之后不久就出现了一系列基于DNN的分类系统。“所有人都在说,‘哇,这太神奇了,计算机终于可以理解世界了,’”位于拉勒米的怀俄明大学的 Jeff Clune 这样总结;他也是加州旧金山优步 AI 实验室的高级研究经理。


但是 AI 研究人员知道 DNN 实际上并不了解世界。它们是对大脑结构的粗略模拟,是由大量数字神经元组成的软件结构,这些数字神经元分布在许多层中。每个神经元都与其上和其下的层中的其他神经元相互连接在一起。


基本理念是,进入底层的原始输入的元素(例如图像中的像素)会触发其中一些神经元,然后这些神经元根据简单的数学规则将信号传递到上一层的神经元。训练 DNN 网络时,需要将其暴露于大量示例中,每次都调整神经元的连接方式,最终使顶层可以提供所需的答案——例如始终将一幅狮子的图片解释为狮子,即使 DNN 之前从未看到过这幅图片。


2013 年,谷歌研究员 Christian Szegedy 和他的同事发布了一篇名为“神经网络吸引人的特性”的预刊(注 4),第一次进行了严肃的实际检验。该团队证明,对于一张 DNN 可以识别的图像(例如狮子),可以通过更改少量像素使机器相信自己正在观看另一张图片(例如图书馆)。这个团队将篡改过的图像称为“对抗性示例”。



上图:在图像中加入一些精心调制的噪声后,人类还是能认出图像上的物体,但 DNN 会认成完全不一样的事物;下图:这样一来,任何原始图像都可以被处理,使 DNN 认成研究者选择的目标图像。


一年后,Clune 和他当时的博士生 Anh Nguyen 与纽约伊萨卡市康奈尔大学的 Jason Yosinski 一起证明,有可能使 DNN 看到实际上不存在的东西,例如把一种波浪线模式认成是一只企鹅(注 5)。“接触过机器学习的人们都知道这些系统偶尔会犯一些愚蠢的错误,”深度学习的先驱,加拿大蒙特利尔大学的 Yoshua Bengio 这样说到。“令人惊讶的是错误的类型,”他说,“这真的很出乎人们的意料。我们无法想象会发生这样的错误。”


新的错误类型层出不穷。去年,现在就职于阿拉巴马州奥本大学的 Nguyen 证明,只是旋转图像中的对象就足以欺骗一些市面上最出色的图像分类器(注 6)。Hendrycks 和他的同事今年报告说,即使是未经处理的自然图像也仍然可以诱骗最先进的分类器制造出无法预测的失误,例如将蘑菇识别为椒盐脆饼或将蜻蜓识别为井盖(注 7)。



上图:只是旋转图像中的物体就能让 DNN 混淆,可能是因为它们和网络训练的数据差异太大;下图:就算是自然图像也能愚弄 DNN,因为网络更关注图像的颜色、纹理或背景,而非找出人类会关注的明显特征。


问题不仅出在对象识别上:任何使用 DNN 来分类输入(例如语音)的 AI 都可以被愚弄。玩游戏的 AI 可能会被攻破:2017 年,加州大学伯克利分校的计算机科学博士生 Sandy Huang 和她的同事在研究一类 DNN,这些 DNN 经过培训可以通过称为强化学习的过程在 Atari 视频游戏中取胜(注 8)。在这种方法中,AI 被指定一个目标,并响应一系列输入,通过反复试验来学习达成该目标的方法。这是AlphaZero扑克牌机器人Pluribus等超人游戏 AI 背后的技术。即便如此,Huang 的团队也只需在屏幕上添加一个或两个随机像素就能让 AI 输掉游戏。


今年早些时候,加州大学伯克利分校的 AI 博士生 Adam Gleave 和他的同事们证明,有可能将代理引入 AI 环境中,以执行旨在干扰 AI 反应的“对抗性政策”(注 9)。例如,一名 AI 足球运动员在模拟环境中训练将球踢过 AI 守门员的防守,而当守门员开始以意想不到的方式行事(例如在地上摔倒)时,射门的 AI 球员就没法得分了。



在模拟的点球赛中受训的 AI 足球员会因为 AI 守门员的"对抗性政策"行为而迷惑:后者摔倒在了地上(右图)。


如果黑客知道 DNN 的弱点在哪里,甚至可以接管一个强大的 AI。去年就有一个例子:当时谷歌的一个团队证明,使用对抗性示例不仅可以迫使 DNN 犯特定的错误,而且还可以对其完全重新编程,从而成功地让针对某项任务训练的 AI 去做另一件事情(注 3)。


原则上来说,许多神经网络(例如那些学习理解语言的神经网络)可以被写入其他任何计算机程序。“从理论上讲,你可以将聊天机器人变成你需要的任何程序,” Clune 说。“这就是令人头疼的地方。”他设想在不久的将来,黑客可能会劫持云中的神经网络来运行自己的垃圾邮件机器人算法。


对于加州大学伯克利分校的计算机科学家 Dawn Song 而言,DNN 就像等着挨打的靶子一样。“攻击系统的方式有很多,”她说:“而且防守起来非常非常困难。”

强大的力量带来极大的脆弱性

DNN 如此强大,是因为它们的多层结构意味着它们在尝试对输入分类时可以从输入的许多不同特征中找出模式。经过训练以识别飞机的 AI 可能会发现,诸如色块、纹理或背景之类的特征与我们眼中很明显的事物(如机翼)一样具有很强的预测能力。但这也意味着输入中的很小变化就可以将其转变为 AI 眼中明显不一样的状态。


一种解决方案就是给 AI 喂下更多数据;特别是要让 AI 反复遇到问题场景并纠正其错误。在这种“对抗性训练”形式下,一个网络学会识别物体,第二个网络试图改变第一个网络的输入,设法使其出错。这样,对抗性示例便成为 DNN 训练数据的一部分。


Hendrycks 和他的同事建议测试 DNN 在大量对抗性示例中的表现,从而量化 DNN 面对错误的稳健性。但他们说,培训网络抵御一种攻击可能会削弱它对抗其他攻击的能力。伦敦谷歌 DeepMind 的 Pushmeet Kohli 领导的研究团队正在尝试给DNN接种错误疫苗。许多对抗性攻击的机制是不断对输入的组成部分做细微调整(例如巧妙地更改图像中像素的颜色),直到调整结果使 DNN 陷入错误分类为止。Kohli 的团队建议,健壮的 DNN 不应因其输入的微小变化而改变其输出,并且这种属性可能会在数学上进入网络,还会限制其学习方式。


然而,目前还没有人能从根本上解决脆弱 AI 的问题。Bengio 说,问题的根源在于 DNN 并没有很好的模型来识别真正重要的内容。当 AI 看到狮子篡改成图书馆的图像时,人们看到的还是狮子的图像,因为他们关于动物的心智模型是基于一系列高级特征——耳朵、尾巴和鬃毛等——这些特征让人们摆脱了底层的任意或偶然的细节影响。“我们从先前的经验中知道哪些特征是显著的,”Bengio 说:“那是来自对世界结构的深刻理解。”


解决此问题的一种尝试是将 DNN 与符号 AI 结合起来,这是机器学习流行之前 AI 研究中的主要范式。借助符号 AI,机器就可以使用关于世界运作方式的硬编码规则进行推理,这类规则可以包含离散的对象,这些对象以各种方式相互关联。一些研究人员,例如纽约大学的心理学家 Gary Marcus 说,混合 AI 模型是前进的方向。“深度学习在短期的用途如此突出,以至于人们对其长期发展视而不见,”Marcus 说到,他长期以来都对当前的深度学习方法持批评态度。今年 5 月,他在加州帕洛阿尔托与他人共同创立了一家名为 Robust AI 的初创公司,旨在将深度学习与基于规则的 AI 技术相结合,以开发可以与人一起安全操作的机器人。这家公司正在研究的内容细节仍处于保密状态。


即使人们可以将规则嵌入到 DNN 中,这些规则也顶多起到 DNN 所学习的数据的作用。Bengio 说,AI 代理需要在它们可以探索的更丰富的环境中学习。例如,大多数计算机视觉系统无法识别出一罐啤酒是圆柱形的,因为它们是在 2D 图像的数据集上训练的。这就是为什么 Nguyen 及其同事发现,从不同角度呈现熟悉的对象可以轻松愚弄 DNN 的原因所在。在真实或模拟的 3D 环境中学习会改善这个问题。


但 AI 的学习方式也需要改变。Bengio 说:“代理必须在它们可以实验和探索的世界中学习理解因果关系。” 另一位深度学习的先驱,瑞士曼诺市 Dalle Molle 人工智能研究所的 Jürgen Schmidhuber 也有类似的思路。他说,模式识别非常强大——足以使阿里巴巴、腾讯、亚马逊、Facebook 和谷歌等公司成为世界上最有价值的企业。“但是我们将迎来更大的浪潮,”他说:“机器将在真实世界中运作,并通过自己的行动创建自己的数据。”


从某种意义上说,使用强化学习赢得计算机游戏的 AI 已经在人工环境中做到了这一点:通过反复试验,它们以规则允许的方式操纵屏幕上的像素,直到达成目标为止。但是真实环境比当今大多数 DNN 训练所依据的模拟或精选数据集要丰富得多。

即兴机器人

在加州大学伯克利分校的一个实验室里,一条机械臂在混乱中上下翻腾:它拿起一个红色的碗,并用它在右边几厘米处轻推一个蓝色的烤箱手套;它扔下碗,拿起一个空的塑料喷雾瓶;然后它研究了一本平装书的重量和形状。经过几天的不间断筛选,机器人开始对这些外来物体以及它们可以做什么产生了理解。


这条机械臂正在使用深度学习来自学如何使用工具。给它一堆物体,它会轮流捡起并查看每个物体,看看自己将它们四处移动并将一个物体撞上另一个时会发生什么。



机器人利用深度学习来探索如何使用 3D 工具。


当研究人员给机器人一个目标(例如给它展示一张没放什么东西的托盘图像,并要求机器人将物体布置成与图片匹配的状态)时,它会即兴表演,并且可以处理以前从未见过的物体,例如使用一块海绵清理掉桌子上的物品。它还能意识到,使用塑料水瓶清理物体比直接捡起这些物体要快得多。“与其他机器学习技术相比,它在工作中的广泛适应能力不断给我留下深刻的印象,”曾在伯克利实验室工作的 Chelsea Finn 说,他现在正在加州斯坦福大学继续这项研究


Finn 说,这种学习使 AI 对对象和整个世界有了更丰富的理解。如果你只在照片中看到水瓶或海绵,那么你也许可以在其他图像中识别它们。但是你不会真正理解它们的内涵或用途。“如果你没法与世界实际互动,那么你对世界的理解就要狭窄许多。”


但这种学习是一个缓慢的过程。在模拟环境中,AI 可以以闪电般的速度研究示例。2017 年,DeepMind 的自学型游戏软件的最新版本 AlphaZero,经过培训在短短一天之内就成为了 Go 的超人玩家,然后是国际象棋,然后是将棋(日本象棋的一种)。那时,它在每场比赛前都进行了超过 2000 万次的训练。


AI 机器人没法学的这么快。加州伯克利的 AI 和机器人技术公司 Ambidextrous 的联合创始人 Jeff Mahler 说,深度学习的几乎所有重大成果都很大程度上依赖于大量数据。“在单个机器人上收集数千万个数据点需要连续工作数年时间。”而且数据可能不够可靠,因为传感器的精度会随着时间变化,并且硬件可能会退化。


因此,大多数涉及深度学习的机器人工作仍使用模拟环境来加快培训速度。“你能学到什么取决于仿真器的性能,”亚特兰大乔治亚理工学院机器人学博士生 David Kent 说。模拟器一直都在进步,研究人员将虚拟世界中获得的经验教训转化为现实的工作也越来越熟练。但这种模拟仍然无法匹敌现实世界的复杂性。


Finn 认为,与使用人工数据学习相比,使用机器人学习在大规模扩展时要容易得多。她的使用工具的机器人花了几天时间来学习一个相对简单的任务,但这个过程不需要频繁监控。她说:“一旦你启动机器人后,就可以偶尔再做一次检查。” 她想象有一天,世界上会有很多机器人用它们自己的设备全天候学习。这应该是可行的——毕竟这就是人类理解世界的途径。Schmidhuber 说:“婴儿不会通过从 Facebook 下载数据来学习事物。”

从较少的数据中学习

婴儿也可以从少量几个数据点中识别出新的示例:即使他们以前从未见过长颈鹿,但在看过一次或两次之后,他们仍然可以学会认出一头长颈鹿。之所以速度如此之快,部分原因在于婴儿看过许多其他生物,即使那些生物不是长颈鹿,他也已经熟悉了它们的显著特征。


将这类能力赋予 AI 的一个统称术语是迁移学习:也就是将先前几轮培训中获得的知识转移到另一项任务的理念。一种方法是在训练新任务时复用全部或部分预训练的网络作为起点。例如,在学习识别长颈鹿的过程中,复用已经训练过识别某种动物的 D​​NN 的一部分(例如识别基本身体形状的那些层),可以为新网络提供很大的帮助。


迁移学习的一种极端形式是只用少数几个示例,有时只是一个示例来训练新网络。这被称为单次或数次学习,这在很大程度上依赖于预训练的 DNN。假设你要构建一个面部识别系统以识别犯罪数据库中的人员。一种快速方法是使用已经看到数以百万计面孔(不一定是数据库中的面孔)的 DNN,以便它对突出特征(如鼻子和下巴的形状)有一个很好的了解;现在当网络仅查看一张新面孔的实例时,它可以从该图像中提取有用的特征集;然后它可以比较该特征集与犯罪数据库中单个图像的特征集的相似程度,并找到最接近的匹配项。


拥有这种预先训练的记忆可以帮助 AI 无需查看很多模式就能识别新示例,从而加快机器人的学习速度。但是,当此类 DNN 面对与其经验相距太远的事物时仍然可能会无所适从。尚不清楚这些网络能有多大的通用性。


即使是最成功的 AI 系统,例如 DeepMind 的 AlphaZero,其专业领域也非常狭窄。可以训练 AlphaZero 的算法玩围棋和国际象棋,但同时玩两种棋是不行的。要重新训练模型的联系和响应来在国际象棋中取胜的话,它在围棋中积累的经验就都烟消云散了。Finn 说:“从人类的角度考虑这个问题,这实在有些荒谬。”人们不会这么容易忘记自己学到的东西。

学会如何学习

AlphaZero 在棋类运动中的成功不仅归功于有效的强化学习,还要感谢帮助其学习的算法(使用一种称为“蒙特卡洛树”搜索技术的变体)在可行的下一步选择中缩小范围(注 10)。换句话说,AI 被指导如何从其环境中最好地学习。Chollet 认为,AI 的下一步重点将是使 DNN 能够为自己编写此类算法,而不是使用人类提供的代码。


他认为,用推理能力对基本的模式匹配做补充,将使 AI 更好地处理超出其舒适范围的输入。多年来,计算机科学家一直在研究程序综合技术,使计算机可以自动生成代码。Chollet 认为,将该领域与深度学习相结合可能会使 DNN 系统更接近人类使用的抽象心智模型。


例如,在机器人技术方面,位于加州门洛帕克的 Facebook AI 研究所的计算机科学家 Kristen Grauman 和得克萨斯州奥斯汀的德州大学正在教机器人如何以最佳方式自己探索新环境。这可能涉及在面对新场景时应朝哪个方向看,以及选择哪种方式操纵对象以最好地理解其形状或目的。其背后理念是让 AI 预测哪个新视点或角度将为其提供最有用的新数据。


该领域的研究人员表示,他们在解决深度学习的缺陷方面正在取得进展,但也承认他们仍在寻求新技术以减少这个过程的脆弱性。Song 说,深度学习背后没有太多理论。“如果某件事出了问题,很难找出原因,”她说:“整个领域仍然非常依赖经验。你需要的只是不断做试验。”


目前,尽管科学家认识到了 DNN 的脆弱性及其对大量数据的依赖,但大多数人都认为这种技术前景光明。近十年来,人们意识到凭借大量的计算资源,可以训练神经网络很好地识别模式——但对其机制的认识依旧停留在懵懂状态。“没有人知道到底该如何改善它,” Clune 说。


注释


  1. Eykholt, K. et al. IEEE/CVF Conf. Comp. Vision Pattern Recog. 2018, 1625–1634 (2018).(https://doi.org/10.1109%2FCVPR.2018.00175

  2. Finlayson, S. G. et al. Science 363, 1287–1289 (2019).(https://doi.org/10.1126%2Fscience.aaw4399

  3. Elsayed, G. F., Goodfellow, I. & Sohl-Dickstein, J. Preprint at https://arxiv.org/abs/1806.11146 (2018).

  4. Szegedy, C. et al. Preprint at https://arxiv.org/abs/1312.6199v1 (2013).

  5. Nguyen, A., Yosinski, J. & Clune, J. IEEE Conf. Comp. Vision Pattern Recog. 2015, 427–436 (2015).(https://doi.org/10.1109%2FCVPR.2015.7298640

  6. Alcorn, M. A. et al. IEEE Conf. Comp. Vision Pattern Recog. 2019, 4845–4854 (2019).

  7. Hendrycks, D., Zhao, K., Basart, S., Steinhardt, J. & Song, D. Preprint at https://arxiv.org/abs/1907.07174 (2019).

  8. Huang, S., Papernot, N., Goodfellow, I., Duan, Y. & Abbeel, P. Preprint at https://arxiv.org/abs/1702.02284 (2017).

  9. Gleave, A. et al. Preprint at https://arxiv.org/abs/1905.10615 (2019).

  10. Silver, D. et al. Science 362, 1140–1144 (2018).(https://doi.org/10.1126%2Fscience.aar6404


原文链接


https://www.nature.com/articles/d41586-019-03013-5


2019-11-14 14:082300
用户头像
陈思 InfoQ编辑

发布了 576 篇内容, 共 279.8 次阅读, 收获喜欢 1301 次。

关注

评论

发布
暂无评论
发现更多内容

挑战倒计时!“互联网+”大赛华为命题加速高阶能力提升

华为云开发者联盟

华为云 鲲鹏 大赛 “互联网+” 昇腾AI

快速生成好看实用的接口文档

与风逐梦

后端 接口文档

Github上标星250k的阿里Java面试复盘手册,看完竟如此的无敌?

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

八家知名大厂联合手写的Java面试手册刚上线!竟就到达巅峰?

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

索引下推,这个点你肯定不知道!

艾小仙

MySQL MySQL 高可用

kubernetes增加Node详细步骤

消失的子弹

Kubernetes 云原生 k8s kubeadm

接口测试参数化(环境变量使用)----apipost

Proud lion

大前端 后端 Postman 开发工具 接口文档

Vue进阶(八十五):vue-router Hash模式跳转及懒加载

No Silver Bullet

Vue 路由 8月日更

Github惊现神作,这份算法宝典让你横扫各大厂算法面试题

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

书单 | 8月新书榜单TOP10,快来看看都有谁吧~~

博文视点Broadview

带你掌握JS防抖与节流

华为云开发者联盟

面试 定时器 节流 JS防抖 触发

反向压力

程序员鱼皮

架构 系统设计 大前端 后端 实时计算

GitHub惊现!全网首份开源的深入理解JVMG1GC的算法与实现手册

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

云小课|ModelArts Pro 视觉套件 零代码构建视觉AI应用

华为云开发者联盟

AI ModelArts Pro EI智能体 视觉套件

2021预备秋招:Java面试必看的1000道面试解析,助你通过大厂面试

Java 程序员 架构 面试 后端

阿里内部流传的JDK源码剖析手册!GitHub已获上千万的访问量

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

阿里被转载上100W次的Java面试题教程!已助我拿下9家大厂offer

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

封笔之作!阿里P8手写的Java高手是怎样练成的原理方法与实践笔记

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

遇到联邦计算数据碰撞难题怎么办?不妨试一试PSI

华为云开发者联盟

隐私保护 隐私计算 PSI 联邦计算 数据碰撞

阿里P8整理出SQL笔记:收获不止SOL优化抓住SQL的本质

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

Regan Yue带你一起学习微软AZ-900认证的有关知识「 第V章」

Regan Yue

微软 8月日更 AZ-900

微信自研生产级paxos类库PhxPaxos实现原理介绍

OpenIM

IM

CC通用成绩查询小程序(云开发无服务器解决方案)

CC同学

五分钟搞定Docker安装ElasticSearch

咔咔

Docker 死磕Elasticsearch

AI应用说-生产制造专场开课啦!

百度大脑

人工智能

拆分电商系统为微服务

面向对象的猫

Python实现批量压缩文件/文件夹——zipfile

Python研究者

8月日更

别再找我给你重启程序啦!让你supervisor帮你搞定

Java 程序员 架构 后端

创业增长黑客 – 如何低成本获取种子用户|冷启动实战案例 – 挖掘用户需求背后的真实动机

蒋川

用户增长 需求落地 产品经历 业务增长 数据思维

千金难求!火遍GitHub的这份阿里Java面试汇总已上热搜

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

在GitHub发布秒获百万访问!就凭这份Java程序性能优化实战笔记?

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

为什么深度学习AI这么容易被欺骗?_AI&大模型_Douglas Heaven_InfoQ精选文章