深究机器学习的软肋:难以防范的对抗攻击,让机器产生了幻觉

简介:
本文来自AI新媒体量子位(QbitAI)

对抗范例(adversarial examples),是攻击者为了让机器学习模型产生错误而设计的输入数据,就像“机器产生了幻觉”。在这篇文章中,我们将展示对抗范例了如何通过不同媒介进行攻击,并讨论保护系统免受这种攻击难在何处。

在OpenAI,我们认为对抗范例是安全领域一个值得研究的方面,因为它们代表人工智能安全领域短期内能够处理的一个具体问题,而解决它是困难的,需要严肃的研究工作。

想知道什么是对抗范例,可以看看我曾经在论文《Explaining and Harnessing Adversarial Examples》中展示的:攻击者添加了一个经过计算的扰动,可以让程序将熊猫认作长臂猿。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

 把对抗性输入加在普通照片智商,能让分类器将熊猫认作长臂猿

这种干扰方法还很健壮,最近有研究表明对抗范例被打印出来,再用普通的智能手机拍下,还是能迷惑机器学习系统。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

 例如在这张图中,经过打印、再用普通的智能手机拍照,对抗性例子仍然能使分类器将洗衣机认作保险箱

对抗范例具有危险的潜力,比如用来攻击自动驾驶汽车:攻击者可以用贴纸或涂料来为停车标志创建对抗范例,让机器将其误认为“让路”等其他标志。就像我们在论文《Practical Black-Box Attacks against Deep Learning Systems using Adversarial Examples》所讨论的那样。

两项研究显示,增强学习(RL)也会被对抗范例所操纵。这两项研究指的是加州大学伯克利分校,OpenAI和宾夕法尼亚州立大学的共同研究《Adversarial Attacks on Neural Network Policies》和内华达大学雷诺大学的研究《Vulnerability of Deep Reinforcement Learning to Policy Induction Attacks》。研究表明,广泛使用的RL算法,如DQN、TRPO和A3C,都容易受到对抗输入的攻击。这种攻击可能导致程序在遇到人类不易察觉的微小干扰时性能降低,导致程序出现上下不分等问题。

如果你想攻击自己的模型做实验,可以尝试Ian Goodfellow和Nicolas Papernot共同开发的开源库cleverhans,这个库是用来测试AI易受对抗范例攻击的缺陷的。

对抗范例成为AI安全研究的动力

当我们考虑人工智能安全研究时,通常会想到这个领域中最难的一些问题,例如我们如何确保比人类更聪明的复杂增强学习代理服从人类意志?

对抗范例给了我们一个新的视角,即使简单的监督学习、强化学习等等现代算法,也已经能够做出违背设计者意愿的事。

防御对抗范例的尝试

权值衰减、dropout等增强模型健壮性的传统技术,通常不适用于防御对抗范例。目前,只有两种方法可以提供重要的防御。

对抗训练

这是一个蛮力解决方案,我们生成很多对抗范例,然后明确地为了以模型不被它们愚弄为目的来进行训练。Cleverhans库中提供了对抗训练的开源实现,还附有教程。

防御蒸馏

这个策略是训练模型输出不同类别的概率,而不是直接输出分类,这个概率来自于对相同任务进行硬分类训练的早期模型。这创建了一个模型,其表面在对抗范例攻击通常试图利用的方向上平滑,使得它们难以发现导致不正确分类的对抗输入。 (“蒸馏”这种说法最初来源于Hinton的论文《Distilling the Knowledge in a Neural Network》,是一种模型压缩技术,可以训练小模型来模仿大模型,以便获得计算节约)。

然而,攻击者提高计算能力,即使这些专门的算法也能轻易打破。

一种失败的防御方法:梯度遮蔽

为了给出一个简单的防御如何失败的例子,让我们考虑为什么一个叫“梯度遮蔽(gradient masking)”的技术不能起效。

“梯度遮蔽”是在论文《Practical Black-Box Attacks against Deep Learning Systems using Adversarial Examples》中引入的术语。用以描述一整类失败的防御方法:尝试通过梯度来拒绝攻击者的访问。

大多数对抗范例构建技术,都是利用模型的梯度来发起攻击。换句话说,当它们看到飞机的图片后,就开始测试在图片中哪个方向可以让“猫”类的概率增加,然后就开始干扰输入,直到这张图片最终被误识别为猫。

但是如果没有梯度,如果对图像的无穷小的修改导致模型的输出没有变化呢?这样是不是就能构成一种防御?因为攻击者不知道如何更好的进行干扰。

有一些非常简单的方法来摆脱梯度。例如,大多数图像分类模型以两种模式运行:一种输出最可能的类,一种输出概率。如果模型的输出是:“99.9%飞机,0.1%猫”,那么对输入的一点微小改变,会给输出带来一点微小的变化。梯度告诉我们哪些变化会增加“猫”类的概率。

如果输出只是“飞机”,那么对输入的一点微小改变,并不会改变输出。这样,梯度就不会透露任何信息了。

那么,攻击者在只输出“最可能的类”模式里,是不是就无从下手了呢?不幸的是,以前被分类为猫的图片,现在仍被归类为猫。如果攻击者猜出哪些点是对抗范例,仍然可以导致错误的分类。我们没有让模型更可靠,只是让攻击者能获取的线索减少了而已。

更不幸的是,事实证明,攻击者有一个非常好的策略来猜测防御中的漏洞在哪里。攻击者可以训练他们自己的模型,一个具有梯度的平滑模型,为他们的模型提供对抗范例。然后把这些对抗范例,用来攻击我们非平滑的模型。很多时候,我们的模型也会对这些对抗范例进行错误分类。最后的结论是,隐藏梯度没有带来更大的价值。

执行梯度遮蔽的防御策略,通常导致在特定方向和训练点的邻域中,产生非常平滑的模型,这使得对手更难以找到指示良好候选方向的梯度,以对模型以破坏性方式干扰输入 。 然而,对手可以训练一个替代模型:通过观察防御模型给对抗输入打上何种标签。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

在上面提到的“黑盒攻击”论文中,提到了一种执行模型提取攻击的方法。对手也可以使用替代模型的梯度来找到被误分类的对抗范例。上图展示了《Towards the Science of Security and Privacy in Machine Learning》里关于梯度遮蔽的讨论,我们用一维机器学习问题来说明这种攻击策略。梯度遮蔽现象在较高维度问题上将加剧,但是更难以描述。

我们发现,对抗训练和防御蒸馏方法都会偶尔执行一种梯度遮蔽。这两种算法都没有明确地设计来执行梯度遮蔽,但是当我们训练机器来保护自己,并且没有明确指示具体怎样做时,梯度遮蔽明显是机器学习相对容易发明出的方法。

如果我们将对抗性的例子从一个模型转移到使用对抗性训练或防御性蒸馏训练的第二个模型,攻击通常会成功,即使对第二个模型的直接攻击失败。 这表明,这两种训练技术更多的是展平模型和删除梯度,而不是确保它正确分类更多的点。

防御对抗范例难在何处

对抗范例难以防御,是因为很难为对抗范例的加工过程建立一个理论模型。对抗范例是针对神经网络等很多ML模型的非线性和非凸的优化问题的解。 因为我们没有很好的理论工具来描述这些复杂的优化问题的解决方案,所以很难做出理论论证来说明一种防御方式能排除一类对抗范例。

对抗范例难以防御的另一个原因是,它们要求机器学习模型能为每一个可能的输入都生成一个好的输出。大多数时候,机器学习模型工作得很好,但只对少量而非全部输入有效。

目前,我们测试的每种策略都失败了,因为它们的适应性不足:一种策略可能适用于一类攻击,但为知道这种防御策略的攻击者留下了另一处漏洞。设计一种面向强力的、适应性强的攻击者的防御策略,是一个重要的研究领域。

结论

对抗范例让我们看到,很多现代机器学习算法会以令人惊奇的方式被攻破,这些机器学习的失败显示,即使简单的算法也会出现与设计者意图相悖的表现。我们鼓励机器学习研究者参与进来,设计防御对抗范例的方法,消除设计者意愿和算法行为之间的偏差。

原文发布时间:2017-02-17
相关文章
|
2月前
|
机器学习/深度学习 数据采集
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】音乐大模型的深入探讨——当机器有了创意,是机遇还是灾难?
【机器学习】音乐大模型的深入探讨——当机器有了创意,是机遇还是灾难?
|
3月前
|
机器学习/深度学习 数据采集 算法
【机器学习】CART决策树算法的核心思想及其大数据时代银行贷款参考案例——机器认知外界的重要算法
【机器学习】CART决策树算法的核心思想及其大数据时代银行贷款参考案例——机器认知外界的重要算法
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】机器的登神长阶——AIGC
【机器学习】机器的登神长阶——AIGC
|
5月前
|
机器学习/深度学习 数据采集 人工智能
关于防御机器学习模型攻击的安全措施
保护AI系统安全的关键是防御机器学习模型攻击。措施包括:数据预处理(规范化、去除异常值、平滑化)、输入验证过滤(边界检查、类型检查)、集成防御(多策略组合)、数据增强、监测记录模型行为和安全增强训练(对抗训练、鲁棒优化)。通过组合应用这些方法,如使用 Foolbox 检测过滤对抗样本、模型集成和对抗训练提升鲁棒性,可增强模型安全性。然而,安全措施需根据应用场景动态调整并配合专业团队实施。
|
5月前
|
机器学习/深度学习 数据采集 安全
一些关于防御机器学习模型攻击的安全措施
保护机器学习模型免受攻击的常见措施包括对抗样本检测过滤、模型集成验证、模型退化重训练、输入数据预处理、监测记录模型行为以及安全增强训练。例如,使用Foolbox库检测过滤对抗样本,通过模型集成平均多个模型的预测结果,定期退化模型模糊攻击者了解,使用对抗训练提升模型鲁棒性。同时,对输入数据预处理、监测模型输出和记录行为也是重要步骤。这些方法能增强模型安全性,但并非万无一失,需结合具体场景和专业安全团队实施。
|
机器学习/深度学习 算法 JavaScript
AIGC背后的技术分析 | 机器学习?机器如何学习?
通过Julia的语法、函数、编译器使机器学习技术变得更加简单。
180 1
AIGC背后的技术分析 |  机器学习?机器如何学习?
|
机器学习/深度学习 算法 搜索推荐
【吴恩达机器学习笔记】十五、大规模机器学习
【吴恩达机器学习笔记】十五、大规模机器学习
81 0
|
机器学习/深度学习 算法
【吴恩达机器学习笔记】九、机器学习系统的设计
【吴恩达机器学习笔记】九、机器学习系统的设计
84 0
|
机器学习/深度学习 算法
【吴恩达机器学习笔记】八、应用机器学习的建议
【吴恩达机器学习笔记】八、应用机器学习的建议
101 0
下一篇
无影云桌面