更多深度文章,请关注:https://yq.aliyun.com/cloud
作者介绍:
Adrian Colyer:morning paper编辑、Accel Partners投资合伙人、SpringSource首席技术官、VMware技术总监。
Twitter:https://twitter.com/adriancolyer
对抗样本是故意构造的输入,能够导致网络产生错误输出。本文介绍的论文主要有以下几篇:
Deep neural networks are easily fooled, Nguyen et al, 2015
Practical black-box attacks against deep learning systems using adversarial examples, Papernot et al, 2016
Adversarial examples in the physical world, Goodfellow et al, 2017
Explaining and harnessing adversarial examples, Goodfellow et al, 2015
Distillation as a defense to adversarial perturbations against deep neural networks, Papernot et al., 2016
Vulnerability of deep reinforcement learning to policy induction attacks, Behzadan & Munir, 2017
Adversarial attacks on neural network policies, Huang et al. 2017
首先从“前100名深度学习论文列表” 中的“深层神经网络容易被愚弄”开始,
深层神经网络容易被愚弄
上图是一个犰狳!下面图像更容易看清,是0到9之间某个数字的五幅不同图像,
(明显是数字4)
你所看到的是对抗图像,而不再像从人的角度来看到的目标类别。显然,DNN并没有与我们以相同的方式学习解释图像。
对抗图像是使用进化算法(EA)创建的,标准EA使用单一的适应度函数,但是作者使用MAP-Elites的新算法,并测试了两种不同的突变策略。
以MNIST为例(数字0-9),使用直接编码突变创建这些图像:
下面使用间接编码突变创建的:
使用CPNN编码和故意进化的图像来匹配目标DNN类别可以产生各种各样的图像:
通过从生成的图像中移除一些重复的元素,DNN的置信度得分下降。“这些结果表明,DNN倾向于学习低级和中级特征,而不是物体的全局结构”。
作者尝试通过将培训机制扩展到包含这些负面例子,使DNN对这些对抗图像更加强大,但总是可能产生新的对抗样本,仍会愚弄所产生的网络。
使用对抗样本对深度学习系统实施黑盒攻击
这是熊猫(59.7%的置信度):
但是,这显然是一种长臂猿(99.3%置信度):
攻击者的目标是找到一个小的、不可察觉扰动的现有图像,以强制分类器去错误分类,而同个图像仍能被人类正确分类。用于产生对抗图像的先前技术依赖于对完整训练集的访问和网络中的隐藏权重。这篇文章表明, 所有你需要的就是将输入传递给分类器,学习后预测类别。攻击通过使用目标DNN作为oracle来训练替代模型。目标输入是合成生成,传递给oracle(受攻击的系统),输出标签成为替代模型的训练标签。可以使用一般的白盒技术创建成功的对抗图像。
事实上,攻击不仅适用于DNN目标,而且还涉及到附加的机器学习模型(线性回归、SVM、决策树和最近邻域)。
作者通过使用MetaMind,Google和Amazon分别提供的三种云ML服务,显示了攻击网络盲人的能力。在每种情况下,训练数据被上传到服务,该服务学习分类器。然后使用替代网络技术来找到愚弄分类器的样本。对MNIST的测试精度达到92.17%的亚马逊分类器可能被96.19%的对抗样本所欺骗;在MNIST上获得了92%的测试准确性的Google分类器,可能被88.94%的对抗样本所欺骗。基于梯度掩蔽的防御对抗替换攻击而言不是有效。
物理世界中的对抗样本
到目前为止,所有以前的工作中对手可以将数据直接提供给机器学习的分类器。对于在物理世界中运行的系统来说,并不总是这样。本文表明,即使在物理世界场景中,机器学习系统也容易受到对抗样本的影响。
作者打印清晰图片和对抗图像,并拍摄打印的图像,将这些照片裁剪后送入分类器。该过程通过手动摄影进行,并且不需要仔细控制照明等引入多余变量,具有根据微妙变化破坏对抗扰动的潜力。
总体来说,结果表明对抗样本的一小部分仍然被错误分类:照相变换证明了物理对抗的可能性。因此,通过产生足够的对抗图像,对手可能会产生比自然输入更多的错误分类。
解释和利用对抗样本
为什么这些对抗样本有效?Goodfellow等人解释,这是为了在高维空间中攻击是线性行为。文章结果表明基于现代机器学习技术的分类器,即使在测试集上获得出色性能的分类器也没有真正学习确定正确输出标签的特征。考虑在高维线性分类器中,每个单独的输入特征被归一化。对于任何一个输入,小的改变将不会改变分类器的总体预测。但对输入进行许多次无穷小的改变,会导致输出有大的变化。
可以通过调整相应权重的符号变化来最大限度地发挥许多小变化对其的影响。这也是一种产生对抗图像的快速方式。
对抗样本一个有趣的方面是一个模型生成的示例通常会被其他模型错误分类。
解释表明,由于其线性设计出易于训练的模型和使用非线性效应来抵抗对抗扰动的模型之间造成了根本的紧张。从长远来看,可以通过设计更强大的优化方法来成功地训练更多的非线性模型以逃避这种折中。
蒸馏作为深层神经网络抵御对抗扰动的防御
Papernot等人表明蒸馏技术(使用概率分布作为目标训练)也可以用于大大降低网络对抗扰动的脆弱性。对于MNIST数据集训练的DNN,防御性蒸馏将对抗样本的成功率从95.89%降低到0.45%!针对CIFAR数据集而言,成功率由87.89%降至5.11%。事实上,防御性蒸馏可以降低DNN对输入扰动的灵敏度。
以下是MNIST和CIFAR的一些示例,显示正当样本和对抗样本:
下面介绍防御性蒸馏如何工作以及其原理。考虑一般的对抗框架,首先搞清楚工作方向是围绕给定的输入样本,然后使用这些信息选择输入维度之间的扰动。
如果梯度方向陡峭,就会对小扰动产生很大的影响。为了防止这种扰动,必须通过网络更好地泛化训练数据集以外的样本来平滑训练过程中学到的模型。DNN对对抗样本的“鲁棒性”与给定样本邻域相一致地分类输入相关。
为了实现这种平滑,蒸馏防御首先按照正常的方式训练分类网络,然后用从第一个模型学到的概率向量训练另外一个完全相同架构的新模型。
以这种方式训练网络,有助于更好的泛化。
下图展示蒸馏温度如何影响模型对抗样本的防御能力。直观上,温度越高防御越好。
蒸馏对分级精度影响不大,甚至有可能会提升。
防御性蒸馏仅适用于基于能量概率分布的DNN模型,因此建立通用对抗样本强大的机器学习模型的重要一步。不幸的是,文章表明,甚至连防御性蒸馏也不足以减轻对抗,并证明了防御性蒸馏是无效的。
深层强化学习对政策诱导攻击的脆弱性
这篇文章和下一篇文章告诉我们,深度强化学习网络(比如DQNs)也容易受到对抗攻击。
强化学习与环境相互作用的依赖性导致固有的脆弱性,这使得学习过程易受环境扰动影响,利用此漏洞可以让对手想到干扰或改变控制策略的方法。
幸运的是,攻击者的目标是欺骗一个DQN使其采取攻击者选择的动作,但我们已经知道许多制作攻击所需的构建块。假设威胁模型类似于“黑盒”模型,攻击者可以根据DQN的输入以及观察到DQN采取的行动估计出报酬函数。
第一步是“黑盒攻击”技术来训练与目标选择的策略相匹配的替代DQN。
下一步是找到一种将这种学习对抗政策转移到目标网络的方法。这是在开发周期中完成的:
需要回答的第一个问题是“是否可能产生DQN的对抗样本?” 从下可知答案是肯定的:
必须回答的第二个问题是,这些对抗样本是否可以转移。答案是肯定的:
由于所有已知的对策表明是不充分的,因此目前抵抗对抗样本的最新水平不能提供具体的防范来防备这样的开发。
神经网络策略上的对抗攻击
Huang等人发表的这项工作也表明强化学习网络容易受到对抗性攻击。
首先通过使用白盒攻击展示了这点,还表明在一系列深度强化学习算法(DQN、TRPO和A3C)中对抗也会成功。然后作者使用黑盒攻击演示了转移能力,结合在之前“物理世界中的对抗样本”中学到的经验。作者指出,即使在黑盒子情况下,计算效率高的对抗样本很容易迷惑这样的政策,可以将这些对抗扰动应用于现实世界中的对象,例如在道路表面的增加特制漆以迷惑自动驾驶汽车的车道追踪策略。
文章原标题《When DNNs go wrong – adversarial examples and what we can learn from them》,作者:Adrian Colyer,译者:海棠,审阅:tiamo_zn
附件为原文的pdf
文章为简译,更为详细的内容,请查看原文