更多干货内容请关注微信公众号“AI 前线”,(ID:ai-front)
近日 IBM 宣布推出面向 AI 开发人员的对抗健壮性工具箱(Adversarial Robustness Toolbox)。该工具箱以开源代码库的形式发布,其中包括攻击代理、防御应用程序和基准测试工具,这些工具使开发人员能够将固有弹性(baked-in resilience)集成到应对对抗性攻击的能力中。AI 开发人员对深度神经网络进行对抗性攻击,以确保它们能够经受住现实世界考验所需要的所有内容,都能在该开源工具箱中找到。
IBM 表示这是业内推出的第一款防御对抗性攻击的工具,根据 IBM 安全系统首席技术官 Sridhar Muppidi 的说法:
目前已有的一些抵御对抗性攻击的 AI 模型是平台强相关的。为此,IBM 团队设计了这款对抗健壮性工具箱,并且这个工具在不同平台上是通用的。无论开发人员是通过 Keras 还是 TensorFlow 进行编码、开发,都可以应用相同的库来构建防御系统。
这个工具就像 AI 的综合武术教练,会对 DNN 的恢复能力进行评估,教它定制防御技术,并提供一种内部抗攻击层(anti-virus layer)。
近年来人工智能(AI)的发展取得了巨大的进步,现代人工智能系统在认知任务上已经达到了接近人类的水准,例如物体识别、视频标注、语音文本转换以及机器翻译等。这些突破性的成果大部分是以深度神经网络(DNNs)为基础的。深度神经网络是一种复杂的机器学习模型,其结构与大脑中相连的神经元有一定的相似性,它能够处理高维输入(例如有几百万像素的高分辨率图像),表示不同抽象程度的输入模式,并且将这些特征表示与高层语义概念相关联。
深度神经网络有一个有趣的特性:尽管它们通常是非常准确的,但是它们很容易受到所谓“对抗样本”的攻击。对抗样本是被刻意修改过的输入信号(例如图片),攻击者希望它能让深度神经网络产生预期的响应。图 1 给出了一个例子:攻击者在大熊猫的图片上加入了少量的对抗噪声,使深度神经网络将其误分类为僧帽猴。通常,对抗样本的目标就是让神经网络产生错误分类,或者某个特定的不正确预测结果。
图 1 对抗样本(右)通过在原始输入(左)上加入对抗噪声(中)来获得。尽管对抗样本中加入的噪声对人类来说几乎感觉不到,却可以让深度神经网络将图片误分为“僧帽猴”而不是“大熊猫”。
对抗攻击对 AI 系统在安全关键应用中的部署已经构成了真正的威胁。对图像、视频、语音和其他数据只需进行几乎检测不到的改变,就可以用来混淆 AI 系统。即使攻击者不了解深度神经网络的结构或如何访问其参数,也可以制作这种对抗样本。更令人担忧的是,对抗性攻击可以在物理世界展开:除了单纯操控数字图像的像素,攻击者可以通过佩戴特别设计的眼镜来躲避人脸识别系统,或者通过遮挡交通标志来攻击自动驾驶车辆中的视觉识别系统。
2016 年,卡耐基梅隆大学的一帮学生设计了一个眼镜,并成功蒙骗了人脸识别算法,使之将戴眼镜的人识别成另一个完全不同的人。
全球知名科技媒体 TNW(The Next Web)在今年早些时候对上图所示的语音系统漏洞进行过报道,黑客能够通过特定的方式欺骗语音转文本系统,比如在你最喜爱的歌曲中偷偷加入一些语音指令,让智能语音助手清空你的银行账户。黑客并不一定须要由你从收藏的播放列表中选择特定歌曲,他们可以在公共交通工具上或者在办公室里坐在你对面,假装自己在听音乐,然后偷偷嵌入攻击信号。
对抗性攻击带来的威胁还包括欺骗 GPS 误导船只、攻击舰载系统、伪装船只 ID 来欺骗 AI 驱动的人造卫星等等。AI 系统容易受到攻击的领域还包括无人驾驶汽车和军用无人机,如果它们的安全受到威胁,这两者都可能成为黑客的武器。
实际上,所有的 DNN 都需要具备抵御攻击的能力,否则它们就如同没有病毒防护的计算机一样,容易陷于危险之中。
IBM 爱尔兰研究中心推出的对抗健壮性工具箱(Adversarial Robustness Toolbox)是一个开源软件库,能帮助研究人员和开发人员抵御对深度神经网络的对抗攻击,从而使 AI 系统更安全。这个工具将由 Sridhar Muppidi 博士(IBM Fellow,副总裁兼 IBM 安全首席技术官)和 Koos Lodewijkx(副总裁兼安全操作与响应(SOAR)CTO)在 RSA 大会上正式对外发布。你也可以提前在 GitHub 上查看并使用该项目:https://github.com/ibm/adversarial-robustness-toolbox。
对抗健壮性工具箱的设计目的是支持研究人员和开发人员创造新的防御技术,以及部署现实世界人工智能系统的实际防御。研究人员可以使用对抗健壮性工具箱将自己新设计的防御系统与目前最先进的系统进行对比。对于开发人员,该工具箱提供了接口,支持使用个人方法作为构建块来组成综合防御系统。
这个开源库基于 Python 编写,可以开发、测试和部署深度神经网络,其中包括最先进的创建对抗实例的算法以及加强深度神经网络抵御对抗攻击的方法。
开发者利用该开源工具箱保护深度神经网络的方法有三步:
测量模型的健壮性。 首先,对一个给定深度神经网络的健壮性进行评估。有一种直接的评估方法,就是记录输入对抗样本后的准确度损失。还有其他方法会衡量当输入有微小变化时,网络的内部表示和输出的变化程度。
模型硬化。 其次,“硬化”给定的深度神经网络,使其对对抗性输入更健壮。常见的方法是对深度神经网络的输入进行预处理,用对抗样本增强训练数据,或改变深度神经网络的架构来防止对抗信号沿内部表示层传播。
实时检测。 最后,实时检测方法可以应用于标记攻击者可能已经篡改的输入。这些方法一般会尝试利用那些由于对抗输入引起的深度神经网络内部表示层上的异常激活。
访问开源项目地址
https://github.com/ibm/adversarial-robustness-toolbox
现在就可以开始使用对抗健壮性工具箱!当前发布版本已经拥有全面的文档和教程,可以帮助研究人员和开发人员快速入门。研究团队目前正在准备更加详尽的白皮书,以概述开源库中实现方法的细节。
对抗健壮性工具箱的首个版本支持基于 Tensorflow 和 Keras 实现的深度神经网络,接下拉的版本将支持其他流行框架,如 PyTorch 或 MXNet。目前,这个开源工具主要改善了视觉识别系统的对抗健壮性,未来的版本将适用于其他数据模式,例如语音、文本或时间序列。
IBM 研究团队希望,对抗健壮性工具箱项目能够促进深度神经网络对抗健壮性领域的研究和开发,并使人工智能在现实世界应用中的部署更加安全。如果你有任何使用对抗健壮性工具箱的经验,或者对这个工具有任何改进建议,都欢迎与我们分享!
开源项目地址:https://github.com/ibm/adversarial-robustness-toolbox
论文原文链接:https://arxiv.org/abs/1707.06728
介绍视频链接:https://www.youtube.com/watch?v=sh6OS6Lssv4&list=PL7_XhIpUqISkrgblwpsL31HDf2eywH33w&index=8
参考资料:
https://www.ibm.com/blogs/research/2018/04/ai-adversarial-robustness-toolbox/
https://thenextweb.com/artificial-intelligence/2018/04/17/ibm-launches-open-source-adversarial-robustness-toolbox-for-ai-developers/