首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

attacking maching learning with adversarial examples

翻译一篇对抗样本的科普文章,原文这里 。

对抗样本

对抗样本是攻击者故意设计出来引发机器学习模型误判的输入样本,就像是机器的幻视。本文将展示对抗样本如何通过不同的媒介起作用,并讨论为什么安全系统防御对抗样本是非常困难的。

在OpenAI(就是造火箭的马斯克退出的那个AI公司)我们认为对抗样本是很值得研究的安全领域,鉴于其提供了可短期内解决的具体AI安全问题,并且修正难度足够需要认真的研究。(我们需要探索许多机器学习的安全领域来实现我们的目标:goal of building safe, widely distributed AI)

为了解对抗样本是什么,看下这里的解释Explaining and Harnessing Adversarial Examples。一张大熊猫的图,攻击者只需要稍加扰动就可以使得该图被高置信度地识别为长臂猿。

一条对抗样本输入,覆盖扰动图像诱使分类器将错分类熊猫为长臂猿

上述方法非常robust,最近研究表明即便将对抗样本打印到标准纸张上,然后再用智能手机拍照得到的图片,仍然能够欺骗系统。

对抗样本答应到普通纸张上,用标准像素的智能机拍照,仍能误导分类器将洗衣机判为保险柜

对抗样本是隐藏的危险,比如,攻击者可以靶向自动驾驶车辆,通过使用贴纸或者油漆来生成一条“stop”的对抗样本,使得车载系统解释信号为”yiled”或者其他信号。这样的例子在这篇文章:Practical Black-Box Attacks against Deep Learning Systems using Adversarial Examples里被讨论过。

强化学习可被对抗样本控制,下面这些机构的研究作证该观点,UC Berkeley, OpenAI, Pennsylvania State University: Adversarial Attacks on Neural Network Policies,University of Nevada at Reno: Vulnerability of Deep Reinforcement Learning to Policy Induction Attacks。这些研究表明,广泛使用的RL算法,DQN, TRPO, A3C,都非常容易受到对抗样本的攻击。即便是肉眼不可见的细微波动都可以使得性能变差,引发agent在应该up时反而down,或者干扰识别序列中的敌人的能力。

如果想要试验模型的可靠性,可以使用cleverhans,一个开源库由Ian Goodfellow和Nicolas Papernot开发的来测试你的AI在直面对抗样本攻击时是否很脆弱。

对抗样本为AI安全提供了牵引力

当我们思考AI安全研究的时候,通常会考虑领域内最困难的难题:如何才能保证刻意设计的强化学习agent能够比某方面人类行为要更聪明?

对抗样本表明,即便是简单的算法(无论有监督还是强化学习),都能以我们意想不到且的方式行动。

针对对抗样本的防御尝试

传统的使模型更robust的方法(权重衰减、dropout),并不能提供对抗样本的实际防御效果。到目前为止,仅有两类方法能够提供有效的防御。

对抗训练:这是个很暴力的解决方法,生成很多对抗样本然后明确地训练模型不要被这些样本迷惑。cleverhans提供了一个开源的对抗训练应用,详见这里

Defensive distillation:这种方法如下,用输出不同类的概率做训练,而不是用硬判别标签。概率来自早期用硬标签模型训练同样的任务得到。这样可以使得模型在对抗样本方向探索的方向上更平滑,从而找到对抗输入扭矩的难度增加。Distillation首次提出在Distilling the Knowledge in a Neural Network,主要用来做模型压缩,使用小模型来逼近大模型节约计算消耗。

即便上述方法,攻击者仍然能够通过更强的计算力来轻松突破。

失败的防御: gradient masking

为说明一个简单的防御是如何失效的,让我们参考下面的例子:为什么名为“gradient masking”的技术不生效。

Gradient masking在Practical Black-Box Attacks中提及,用以描述一类针防止攻击者接触到有用梯度,这个方法是失败的防御。

大部分对抗样本生成技术使用模型的梯度来构建攻击样本,换句话说,他们查看“飞机”的图片,测试出图像空间里哪个方向使得“猫”分类的概率增大,然后增加一点这个方向的扰动。于是,新得到的修改过的图像被误判为一只“猫”。

如果没有梯度会怎样呢?如果极其微小的改动对模型输出无影响会怎样呢?这看起来提供了防御思路,因为攻击者不知道添加哪个方向的扰动。

我们可以很容易地想到许多不用梯度的方法,例如,大部分分类模型可以在两种模式下运行,一种是输出最可能的类别,一种是输出类别概率。如果是后者情况下,假设模型输出”99.9%”为”飞机”,“0.1%”为”猫”,则很小的输入变化会得到很小的输出变化,这个变化告诉我们哪个方向的变化可以增加”猫”分类的概率。如果是前者情况下,则变动输入无法提供梯度的有效信息。

我们设计一个思维试验,来看下在最可能类别模式下,模型防御对抗样本的程度。攻击者无法知道输入往哪个方向调整会被判别为“猫”,看起来好像防御有效。不幸的是,如果攻击者猜到哪些方向是对抗样本,之前可被误导判为”猫”的仍可以被误判为“猫”。这种防御是不完备的不健壮的,哪怕我们已经尽可能地给了攻击者最少的线索来找到模型防御上的漏洞。

更不幸的是,已知攻击者有更好地方法来测出防御的漏洞。攻击者训练自己的平滑且带有梯度的模型,利用这个模型来生成对抗样本,然后用其对抗我们的非平滑的模型。我们的模型经常会误判这些类型的样本。最终,这个思维试验表明隐藏梯度并不解决问题。

“Gradient masking”的防御方法使得攻击者在寻找梯度时更困难,然而,攻击者可以自行训练一个拷贝替代模型,通过观察输入样本的真实判别label来模拟防御模型。

在论文Block-Box attacks里面已经介绍过执行这一模型模拟攻击的流程。攻击者可以借助替代模型的梯度来找到使得模型误判的对抗样本。上图来自“gradient masking”的讨论Towarks the Science of Security and Privacy in Machine Learning,这里仅用一维展示攻击策略。

我们发现不管是对抗训练还是defensive distillation都是某种程度的梯度遮挡(隐式的),梯度遮挡可以明显地防御那些很容易发现的相关信息,比如对抗训练的样本和对抗梯度方向。即便对某一模型的直接攻击无效时,如果我们将另一个模型的对抗样本迁移到该模型上(不管是做了对抗训练还是defensive distillation),攻击都会经常成功。这告诉我们这两种技术更侧重模型的扁平化和消除梯度,而非保证分类更准确。

为什么防御对抗样本是困难的

对抗样本难以防御的主要原因是,对抗样本生成的过程是难以框架到一套理论模型下的。对抗样本是许多机器学习模型的非线性和非凸解,当然也包括神经网络。正因为没有很好的理论工具刻画这类复杂优化问题的解,所以做任何形式的防御理论讨论来排除某类对抗样本都是困难的。

对抗样本另外一个难以防御的原因是,他们需要模型对每个可能地输入都要产出准确的输出。大多数时间,模型仅在所有可能集下的很小集合上表现很好。

目前为止,我们所尝试的每种策略都失败于非适应性,堵住了一种攻击,但是另外一种潜在漏洞又被利用了。设计一种防御体制能够防御powerful且高度适应性的攻击者是个非常重要的研究领域。

总结

对抗样本表明许多机器学习算法可以被令人意想不到的方式突破,这些缺陷说明即使简单模型也能超出设计者打算行动。我们鼓励机器学习研究者们参与并设计阻止对抗样本的方法,来弥补设计意图与算法行为之间的分歧。如果你有意向于研究对抗样本,考虑加入OpenAI

更多

了解更多机器学习安全的内容,可以跟进Goodfollow 和 Nicolas的机器学习博文cleverhans.io

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180303G163UL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券