防御深度学习中的对抗攻击 深度安全防御系统
suiw9 2024-11-13 14:42 18 浏览 0 评论
引用
Li Y, Wang Y. Defense against adversarial attacks in deep learning[J]. Applied Sciences, 2019, 9(1): 76.
摘要
神经网络极易受到对抗性示例的攻击,这些示例性威胁其在安全系统中的应用,例如人脸识别和自动驾驶。针对这一问题,我们提出了一种新的防御策略。在我们的策略中,我们提出了一种新的深度降噪神经网络(称为 UDDN)以消除对抗性样本上的噪声。标准降噪器具有放大效果,其中较小的残余对抗噪声逐渐增大并导致分类错误。提出的降噪器通过使用特殊的损失函数克服了这个问题,该函数定义为由原始图像和去噪图像激活的模型输出之间的差异。同时,我们提出了一种基于知识转移的新模型训练算法,该算法可以抵抗轻微的图像干扰,使模型能够更好地围绕训练样本进行泛化。我们提出的防御策略对白盒或黑盒攻击均具有强大的抵抗力。该策略适用于任何基于深度神经网络的模型。在实验中,我们将防御策略应用于人脸识别模型。实验结果表明,该算法能够有效抵抗对抗攻击,提高了模型的准确性。
研究背景
深度学习在机器学习和人工智能的发展中占据着中心位置。神经网络目前在许多领域中用于解决复杂的问题,例如重建大脑回路,分析 DNA 突变以及分析粒子加速器数据。在计算机视觉领域,它已成为自动驾驶,监视和安全应用等方面的主力军。但是,尽管深层网络在处理复杂问题方面已显示出成功,最近的研究表明,它们对输入的轻微干扰是脆弱的。在分类问题中,这种轻微的干扰会导致分类器输出错误的结果。图片中的干扰通常太小,人类无法察觉,但它们完全欺骗了深度学习模型。对抗性攻击对深度学习在实践中的应用造成了一系列威胁。例如,在面部识别中,攻击者被识别为普通用户,以获取用户的私人数据。在自动驾驶中,路边图标识别错误会导致控制算法做出错误的判断并产生错误的行为。因此,有必要对对抗样本的防御进行研究。
常见的对抗攻击包括有限内存 BFGS(L-BFGS),快速梯度符号方法(FGSM)和基于雅可比矩阵的显著映射法(JSMA)。L-BFGS 通过向图像添加少量不可检测的干扰来误导神经网络。FGSM 通过对抗训练模型获得攻击样本。JSMA 提出了一种防御性方法,可以通过仅更改几个像素的值而不限制整个图像来限制 L0 范数。目前,对抗性攻击防御有三个主要方向:(1)在学习过程中修改训练过程或修改输入样本;(2)修改网络,例如添加更多的层/子网络,更改丢失/激活功能等;(3)使用外部模型作为附加网络对未知样本进行分类。
研究问题和研究目的
考虑到大多数训练图像都是联合图像专家组(JPG)格式,Dziugaite 使用 JPG 图像压缩来减少反干扰对模型性能的影响。但是,此方法仅对部分攻击算法有效,并且压缩图像还会降低正常分类的准确性。Luo 等人建议使用“偏爱”机制来防御 L-BFGS 和 FGSM 产生的对抗性攻击。该方法的假设是图像分布对变换变化具有鲁棒性,并且干扰不具有此属性。但是,这种方法的普遍性尚未得到证明。Xie 等人发现在训练图像中引入随机重缩放可以降低攻击强度。更改图像的其他方法包括随机填充和图像增强。Ross 和 Doshi-V elez 使用输入梯度正则化来提高抵抗攻击的鲁棒性。这种方法与残酷的对抗训练相结合可以很好地执行,但是计算复杂度太高。Nayebi 和 Ganguli 使用了高度非线性的激活函数,类似于生物大脑中的非线性树突来防御对抗性攻击,密集联想记忆模型也基于类似的机制。Cisse 等人使用全局 Lipschitz 常数来保持每一层的 Lipschitz 常数,以消除对抗性样本的干扰。Gao 等人在分类层之前增加了一层要用对抗性样本进行训练的网络。该方法的理论认为,最重要的特征包含在顶层中。Akhtar 等人在原始模型中增加了一个单独训练的网络,无需调整参数即可获得对攻击样本的免疫力。但是这种方法增加了网络的复杂性并减慢了模型的速度。也有基于对抗攻击检测的研究工作。这些方法可以帮助检测输入图像是否是对抗图像,但不能正确获取干净图像并获得正确的分类结果。例如,SafetyNet,检测器子网,利用卷积滤波器统计信息和附加的类扩充。
在本文中,我们提出了一种防御策略可以抵抗对抗性攻击。通过仔细比较图像细节,我们发现敌对样本似乎是通过向原始图像添加噪声产生的。因此,为了防御这种攻击,我们提出了一种基于 U-Net 的深度去噪网络,该网络由精确定位的收缩路径和扩展路径组成以去除噪声。为了训练去噪者,我们使用 Wasserstein 生成对抗网络(W-GAN)来重建噪声并增强原始数据集。为了抵抗去噪后图像与原始图像之间的细微差别,提出了一种基于知识转移的训练方法,提高了模型的鲁棒性。当图像有轻微扰动时,仍能正确识别。结果模型的弹性得到了进一步的提高。我们提出的策略在不影响原有网络结构的情况下保持了网络的速度。
研究方法
**1.**基于 GAN: GNR 的噪声重构算法
通过观察攻击图像的局部,我们发现攻击样本似乎是通过向原始样本添加噪声而生成的。为了防御这种形式的攻击,我们通常需要足够的数据来训练模型以消除噪声。但是,为每个图像生成对抗图像非常复杂且耗时,为了仅用几对图像来扩充数据集,我们需要训练模型以重建噪声。可以通过将对抗图像和干净图像相减来获得噪声。基于构造的真实噪声数据集,我们训练 GAN 对噪声进行建模并了解噪声的分布,经过训练的 GAN 会生成足够的噪声数据,并将其添加到干净的图像中以获得新的对抗图像。
为了防御对抗攻击,我们使用生成对抗网络对噪声进行建模。我们首先将原始图像和攻击图像组合为一对一的样本对。然后基于样本对,我们从原始图像中减去原始图像以获得真实的噪声数据。最后通过用真实的噪声数据集训练 GAN,我们获得了噪声样本的分布。作为生成模型的框架,GAN 具有学习复杂分布的能力。更重要的是,GAN 可以通过在发电机网络中进行正向传播而产生噪声,而无需涉及其他组件。在我们的算法中,GAN 的具体网络结构如图 1 所示。
图 1:生成对抗网络(GAN)结构。整个结构由一个生成器网络和一个鉴别器网络组成。生成器由三个 DeconvUnit 组成,鉴别器具有三个 ConvUnit。发生器的输出是鉴别器的输入。
**2.**基于 U-Net 的深度去噪网络:UDDN
为了去除对抗图像上的噪声,我们使用扩展的对抗样本数据集训练了一个深度去噪网络 UDDN。网络的输入是对抗图像,输出是清除了噪声的干净图像。在本节中,我们对原有的去噪器 DAE 进行了改进,提出了一种新的基于 U-Net 的去噪器。
U-Net 是卷积神经网络的一种变体,是基于完全卷积网络(FCN)的改进算法。U-Net 的整个网络由两部分组成:收缩路径和扩展路径。收缩路径用于通过逐渐减小池化层的空间尺寸来捕获图像中的上下文信息,而扩展路径用于通过扩展空间尺寸并逐渐恢复细节来精确定位分割的图像。为了重建目标的细节,在上采样过程中,U-Net 将从收缩路径中提取的高像素特征与新特征图结合起来。这种特征融合方法可以在下采样过程中保留重要的特征信息。U-Net 的基本模块如图 2 所示。
图 2:U-Net 块。U-Net 由收缩路径和扩展路径组成。水平连接结合了上采样和下采样过程的功能。
去噪自动编码器(DAE)是流行的去噪模型之一。DAE 被用作防御感知攻击的多层感知网络。防御策略的实验通常是在一些相对简单的数据集(例如 MNIST 数据集)上进行的。对于高分辨率图像,该策略效果不佳。DAE 在编码器和解码器之间具有瓶颈结构。网络结构可能会限制重建高分辨率图像所需的精细信息的传播,为了克服这个问题,我们将 U-Net 的思想纳入了 DAE。在我们的方法中,解码器层可以融合编码器层的特征图,从而可以更好地定位和恢复图像的细节。与 U-Net 不同,解码器层在编码器层融合相同比例的特征图像。UDDN 的学习目标是获取噪声而不是重建整个图像,这与 DAE 不同。这种残余学习方法可以帮助更轻松地训练模型并获得更准确的噪声数据。通过从对抗图像中减去噪声,可以获得清晰的图像。UDDN 的具体结构如图 3 所示。
图 3:深度降噪神经网络(UDDN)网络结构。该结构由一个编码器和一个解码器组成。解码器的输出被添加到对抗图像以获得去噪图像。整个模型由 C2,C3 和 F 单元组成,其结构显示在图的右侧。
**4.**基于知识转移的防御机制
将去噪网络作为模型的输入进行对抗性图像处理,可以大大降低对抗性攻击的成功率。但是,去噪后的图像仍然与原始图像不同,这种差异仍然可能导致模型做出错误的判断。为了提高模型对这部分干扰的容忍度,我们提出了一种新的模型训练策略,该策略有助于提高模型对样本攻击的恢复能力,提高模型的准确性。
在我们提出的防御策略中,我们通过使用教师模型训练了学生模型,教师和学生模型具有相同的网络结构。我们使用去噪后的图像和相应的地面实况来训练教师模型,其中地面实况指的是一个热门标签。然后使用图像和教师模型的相应输出来训练学生模型,该模型表示图像与其他类型的图像和更精细的图像信息之间的相关性。输出概率用于训练学生模型,可以提高模型的鲁棒性和准确性。训练后,将学生模型用作外部访问的模型,去噪图像识别结果可以通过用学生模型进行处理来获得,因此,我们的防御策略可以保持模型的速度。该方法防止模型与数据紧密拟合,并有助于概括训练数据。参数 T 控制通过蒸馏作用提取的知识,T 越大,识别类别的输出概率值越大。总体防御策略如图 5 所示。总体防御机制分为三个阶段。在第一阶段,首先从干净的图片和相应的攻击图像中获取噪声图像,噪声样本用于训练 GNR 以实现噪声重构,经过训练的 GAN 用于为干净图像生成相应的对抗图像,获得更多的图像对,并扩展训练后的数据集。在第二阶段,将已经扩展的数据集用于训练深度降噪网络 UDDN,并且可以通过访问训练后的 UDDN 获得降噪后的图像。在分类模型中,可以以较高的概率正确识别相对清晰的图像。为了进一步提高模型的弹性,在第三阶段,提出了一种基于知识转移的训练策略来训练模型,用降噪图像训练教师模型,之后使用去噪图像和教师模型的输出来训练学生模型。最后,学生模型用于外部访问。该训练方法可以增强模型的鲁棒性并提高模型的弹性,我们提出的防御策略适用于任何深度神经网络模型,并且总体策略不会显着增加网络的计算量并不会保持网络的速度。
图 5:防御方法概述。该方法包括三个阶段。第一阶段是使用 GNR 消耗对抗图像。第二阶段是训练 UDDN 去噪攻击图像。第三阶段是基于知识转移训练已发布的模型。
结果分析
表 1:模型在不同防御方法下的准确性
从表 1 可以看出,这些防御算法对对抗样本都取得了一定的效果。在没有防御策略的情况下,在白盒攻击和黑盒攻击下的准确率分别为 22%和 69%。在白盒攻击下,数据压缩和 DCN 使模型的准确率提高了 30%,PGD 和蒸馏使模型的准确率提高了 35%左右,而我们的算法提高了 40%左右。在黑盒攻击下,数据压缩没有明显的防御效果。DCN、PGD 和蒸馏使模型的精度提高了 2%左右。我们的方法提高了约 6%的精度,是其他方法的 3 倍。模型精度的实验结果表明,在我们提出的防御机制的保护下,该模型达到了最高的精度,证明了我们对对抗性攻击的防御能力最强。因此,我们可以看到,无论哪种攻击,在我们提出的算法下,模型的准确性是最高的,达到了最好的防御效果。
表 2:使用不同数据集的模型准确性
从表 2 可以看出,与未采用防御算法的模型相比,我们的防御策略在三个人脸数据集上都取得了很好的防御效果。在白盒攻击中,我们的防御策略在三个数据集上提高了大约 40%的准确性。在黑盒攻击中,我们的模型提高了大约 5%的准确率。因此,我们提出的策略在多个数据集上都是有效的。
表 3:使用我们提出的策略模型的准确性
从表 3 可以看出,我们所提出的策略在这些模型上取得了较好的效果。在白盒攻击中,与无保护模型相比,我们提出的防御策略可以将模型的准确率提高 40%左右。在黑盒攻击中,我们可以将模型的准确率提高 10%。结果表明,我们提出的算法适用于所有基于 DNN 的网络模型,与其他防御策略相比,我们的模型准确率最高。因此,我们所提出的战略是更能抵抗敌人的攻击。
实验结论
在这项工作中,我们提出了一种可以抵抗对抗攻击的防御策略。我们提出的算法利用 GAN 来扩充数据集。我们利用网络顶部的差异作为损失函数来指导图像降噪器的训练。同时,我们提出了一种基于知识转移的训练方法,以提高模型抵抗细微扰动的能力,并提高模型围绕训练数据的泛化能力。与其他现有防御策略相比,我们提出的防御策略具有更好的抵抗效果,并且受保护模型具有更高的准确性。我们的算法对白盒和黑盒攻击都有非常好的鲁棒性,适合大多数基于 DNN 的网络结构。
致谢
本文由南京大学软件学院 2021 级硕士曹智豪翻译转述。
相关推荐
- 看完这一篇数据仓库干货,终于搞懂什么是hive了
-
一、Hive定义Hive最早来源于FaceBook,因为FaceBook网站每天产生海量的结构化日志数据,为了对这些数据进行管理,并且因为机器学习的需求,产生了Hive这们技术,并继续发展成为一个成...
- 真正让你明白Hive参数调优系列1:控制map个数与性能调优参数
-
本系列几章系统地介绍了开发中Hive常见的用户配置属性(有时称为参数,变量或选项),并说明了哪些版本引入了哪些属性,常见有哪些属性的使用,哪些属性可以进行Hive调优,以及如何使用的问题。以及日常Hi...
- HIVE SQL基础语法(hive sql是什么)
-
引言与关系型数据库的SQL略有不同,但支持了绝大多数的语句如DDL、DML以及常见的聚合函数、连接查询、条件查询。HIVE不适合用于联机事务处理,也不提供实时查询功能。它最适合应用在基于大量不可变数据...
- [干货]Hive与Spark sql整合并测试效率
-
在目前的大数据架构中hive是用来做离线数据分析的,而在Spark1.4版本中spark加入了sparksql,我们知道spark的优势是速度快,那么到底sparksql会比hive...
- Hive 常用的函数(hive 数学函数)
-
一、Hive函数概述及分类标准概述Hive内建了不少函数,用于满足用户不同使用需求,提高SQL编写效率:...
- 数仓/数开面试题真题总结(二)(数仓面试时应该讲些什么)
-
二.Hive...
- Tomcat处理HTTP请求流程解析(tomcat 处理请求过程)
-
1、一个简单的HTTP服务器在Web应用中,浏览器请求一个URL,服务器就把生成的HTML网页发送给浏览器,而浏览器和服务器之间的传输协议是HTTP,那么接下来我们看下如何用Java来实现一个简单...
- Python 高级编程之网络编程 Socket(六)
-
一、概述Python网络编程是指使用Python语言编写的网络应用程序。这种编程涉及到网络通信、套接字编程、协议解析等多种方面的知识。...
- [904]ScalersTalk成长会Python小组第20周学习笔记
-
Scalers点评:在2015年,ScalersTalk成长会Python小组完成了《Python核心编程》第1轮的学习。到2016年,我们开始第二轮的学习,并且将重点放在章节的习题上。Python小...
- 「web开发」几款http请求测试工具
-
curl命令CURL(CommandLineUniformResourceLocator),是一个利用URL语法,在命令行终端下使用的网络请求工具,支持HTTP、HTTPS、FTP等协议...
- Mac 基于HTTP方式访问下载共享文件,配置共享服务器
-
方法一:使用Python的SimpleHTTPServer进行局域网文件共享Mac自带Python,所以不需要安装其他软件,一条命令即可...
- 使用curl进行http高并发访问(php curl 大量并发获得结果)
-
本文主要介绍curl异步接口的使用方式,以及获取高性能的一些思路和实践。同时假设读者已经熟悉并且使用过同步接口。1.curl接口基本介绍curl一共有三种接口:EasyInterface...
- Django 中的 HttpResponse理解和用法-基础篇1
-
思路是方向,代码是时间,知识需积累,经验需摸索。希望对大家有用,有错误还望指出。...
你 发表评论:
欢迎- 一周热门
-
-
Linux:Ubuntu22.04上安装python3.11,简单易上手
-
宝马阿布达比分公司推出独特M4升级套件,整套升级约在20万
-
MATLAB中图片保存的五种方法(一)(matlab中保存图片命令)
-
别再傻傻搞不清楚Workstation Player和Workstation Pro的区别了
-
Linux上使用tinyproxy快速搭建HTTP/HTTPS代理器
-
如何提取、修改、强刷A卡bios a卡刷bios工具
-
Element Plus 的 Dialog 组件实现点击遮罩层不关闭对话框
-
日本组合“岚”将于2020年12月31日停止团体活动
-
SpringCloud OpenFeign 使用 okhttp 发送 HTTP 请求与 HTTP/2 探索
-
MacOS + AList + 访达,让各种云盘挂载到本地(建议收藏)
-
- 最近发表
- 标签列表
-
- dialog.js (57)
- importnew (44)
- windows93网页版 (44)
- yii2框架的优缺点 (45)
- tinyeditor (45)
- qt5.5 (60)
- windowsserver2016镜像下载 (52)
- okhttputils (51)
- android-gif-drawable (53)
- 时间轴插件 (56)
- docker systemd (65)
- slider.js (47)
- android webview缓存 (46)
- pagination.js (59)
- loadjs (62)
- openssl1.0.2 (48)
- velocity模板引擎 (48)
- pcre library (47)
- zabbix微信报警脚本 (63)
- jnetpcap (49)
- pdfrenderer (43)
- fastutil (48)
- uinavigationcontroller (53)
- bitbucket.org (44)
- python websocket-client (47)