治疗白癜风好的医院 http://wapyyk.39.net/bj/zhuanke/89ac7.html作者:AdrianRosebrock翻译:吴振东校对:张达敏本文约字,建议阅读10+分钟本文将会告诉你如何用基于图像的对抗攻击来破坏深度学习模型,利用Keras和TensorFlow深度学习库来实现你自己的对抗攻击。[摘要]在这篇教程中,你将会学到如何用基于图像的对抗攻击来破坏深度学习模型。我们将会利用Keras和TensorFlow深度学习库来实现自己的对抗攻击。试想下从现在起的二十年后。现在路上所有的车辆都是利用人工智能、深度学习和计算机视觉来驱动的无人驾驶交通工具。每一次转弯、车道转换、加速和刹车都是由深度神经网络来提供技术支持。现在,想象自己在高速路上,你正坐在“驾驶室(当车自主行驶时,驾驶室还能被称为‘驾驶室’吗?)”里,你的妻子坐在副驾上,你的孩子们坐在后座。朝前看,你看到一张巨大的贴纸正在车辆所行驶的车道上,这看上去对车的前进毫无影响。看上去这像是一张受欢迎的大幅涂鸦艺术版画,可能是几个高中生开玩笑把它放在这里,或者他们只是为了完成某个大冒险游戏。图一:执行一次对抗攻击需要一张输入图像(左),故意用一个噪声向量来扰乱它(中),迫使神经网络对输入图像进行错误分类,最后得到一个错误的分类结果,很可能会出现一次严重的后果(右)。一瞬间,你的汽车突然急刹车,然后立即变道,因为放在路上的那张贴画可能印的是行人、动物或者另一辆汽车。你在车里被猛推了一下,感到颈部似乎受了伤。你的妻子尖叫着,孩子们的零食在后座上蹦了起来,弹在挡风玻璃上后洒在中控台上。你和你的家人都很安全,但所经历的这一切看上去不能再糟糕了。发生了什么?为什么你的自动驾驶车辆会做出这样的反应?是不是车内的某段代码或者某个软件存在奇怪的“bug”?答案就是,为车辆视觉组件提供技术支持的深度神经网络看到了一张对抗图像。对抗图像是指:含有蓄意或故意干扰像素来混淆或欺骗模型的图像。但与此同时,这张图像对于人类来说看上去是无害且无恶意的。这些图像导致深度神经网络故意做出错误的预测。对抗图像在某种方式上去干扰模型,导致它们无法做出正确的分类。事实上,人类通过视觉可能无法区分正常图片和对抗攻击的图片——本质上,这两张图片对于肉眼来说是相同的。这或许不是一个准确(或者说正确)的类比,但我喜欢在图像密码学的背景下来解释对抗进攻。利用密码学算法,我们可以把数据(例如纯文本信息)嵌入到图像中,且不改变图像本身的表象。这幅图像可以纯粹地传送到接收者那里,然后接收者再去提取图像中所隐藏的信息。同样的,对抗攻击在输入图像中嵌入一条信息,但是这条信息并非是人们可以理解的纯文本信息,因为对抗攻击所嵌入到输入图像的是一个噪声向量。这个噪声向量是用于戏弄或混淆深度学习模型而故意构建的。对抗攻击是如何起作用的?我们应该如何去进行防御呢?在这篇教程中,以及这个系列的其他推文中,我们将会准确地去回答这些问题。想要了解如何用Keras/TensorFlow在对抗攻击和图像中来破坏深度学习模型,请继续往下读。利用Keras和TensorFlow来实现对抗图像和攻击在这篇教程中的第一部分,会讨论下对抗攻击是什么以及它们是如何影响深度学习模型的。在那之后,我们会实现三段独立的Python脚本:第一段Python脚本是加载ImageNet数据集并解析类别标签的使用助手。第二段Python脚本是利用在ImageNet数据集上预训练好的ResNet模型来实现基本的图像分类(由此来演示“标准”的图像分类)。最后一段Python脚本用于执行一次对抗攻击,并且组成一张故意混淆我们的ResNet模型的对抗图像,而这两张图像对于肉眼来说看上去是一样的。让我们开始吧!什么是对抗对象和对抗攻击呢?它们是如何影响深度学习模型的呢?图二:当执行对抗攻击时,给予神经网络一张图像(左),然后利用梯度下降来构建一个噪声向量(中)。这个噪声向量被加入到输入图像中,生成一个误分类(右)。在年,古德费洛等人发表了一篇名为《ExplainingandHarnessingAdversarialExamples(解释并驯服对抗样本)》的论文,展示了深度神经网络吸引人的属性——有可能故意扰乱一张输入图像,导致神经网络对其进行错误的分类。这种扰乱就被称为对抗攻击。经典的对抗攻击示例就像上面图二所展示的一样。在左边,我们的输入图像在神经网络中被分在“熊猫”类别,置信度为57.7%。在中间有一个噪音向量,在人类眼中看上去是随机的,但事实上绝非如此。恰恰相反,这一噪声向量中的像素“等于输入图像的损失函数的梯度元素符号”(Goodfellowetal.)。把这个噪声向量嵌入到输入图像中,产出了图二中的输出(右)。对于我们来说,这副新图像看起来与输入图像完全一样,但我们的神经网络却会将这站图像分到“长臂猿”类别,置信度高达99.7%。很奇怪吧?一段对抗攻击和对抗图像的简短历史图三:一个关于对抗机器学习和深度神经网络安全性出版物的时间轴(图片来源:CanMachineLearningBeSecure?图8)对抗机器学习并不是一个新兴领域,这些攻击也不是针对深度神经网络。在年,巴雷诺等人发表了一篇名为《CanMachineLearningBeSecure?》的论文。论文讨论了对抗攻击,包括提出了一些对抗攻击的防御方式。回到年,最先进的机器学习模型包括支持向量机(SVMs)和随机森林(RFs),这两种类型的模型均易受对抗攻击的影响。随着年深度神经网络的普及度开始升高,曾寄希望于这些非线性的模型不会轻易受到这种攻击的影响,然而古德费洛等人打破了这一幻想。他们发现深度神经网络和“前辈们”一样,都很容易受到对抗攻击的影响。想要了解更多关于对抗攻击的历史,我建议你们去看下比格奥(Biggio)和罗利(Roli)在年发表的论文《WildPatterns:TenYearsAftertheRiseofAdversarialMachineLearning.》为什么对抗攻击和对抗图像会成为一个麻烦呢?图四:为什么对抗攻击会是一种麻烦?为什么我们应该