AI算法对抗攻击和防御技术综述「AI核心算法」

2023-05-16

关注:决策智能与机器学习,深耕AI脱水干货

作者 |  任奎

报道 |  中国人工智能学会

随着计算机产业发展带来的计算性能与处理能力的大幅提高,人工智能在音视频识别、自然语言处理和博弈论等领域得到了广泛应用。在此背景下,确保人工智能的核心——深度学习算法具有可靠的安全性和鲁棒性至关重要。 

然而,近年来研究者发现,深度学习模型存在着易受对抗样本攻击的安全隐患。攻击者可以通过向良性数据中添加特定的扰动,生成对抗样本。附加轻微扰动的对抗样本不会影响人类的判断,却会使深度学习模型产生错误结果。同时,对抗攻击在自动驾驶等场景中的成功实施更加表明了对抗攻击在现实世界中的可行性。因此 有关对抗攻击和对抗防御技术的研究,引起了机器学习和安全领域研究者越来越多的关注。

本文将围绕深度学习对抗攻击和对抗防御领域中最前沿的研究成果,探讨对抗攻击和防御技术的理论基础、经典算法,以及在工业领域的实际部署等研究与应用前沿。 

深度学习的对抗性攻击技术

根据攻击者可获得的信息不同,可将威胁模型划分成白盒、灰盒和黑盒攻击三类(见图1)。白盒攻击下,攻击者可以获得目标模型的全部信息;灰盒攻击下,攻击者仅可获取模型的结构信息但无法获得模型参数,有模型的查询权限;黑盒攻击下,攻击者仅拥有模型的查询权限。多数攻击算法都是为白盒模型设计的,但是由于对抗样本在模型之间具有一定的传递性,它们同样适用于灰盒模型和黑盒模型。 

图 1  对抗攻击的爆发

上述提到的攻击算法中,攻击者要为每个样本分别生成其对应的对抗扰动,该对抗扰动不会在良性样本之间传递。那么是否存在一种通用的扰动,使附加该扰动的良性样本都可以欺骗某一特定神经网络?通用对抗攻击算法通过使用所有良性样本对全局扰动进行迭代更新,从而生成对大多样本有效的统一扰动。在每次迭代中,对于附加了当前扰动无法欺骗模型的良性样本,将会为其求解一个类似于L-BFGS的优化问题,以找到该样本得以欺骗模型所需的最小附加扰动。这一附加扰动将被添加到当前全局扰动中,对全局扰动进行一次更新。最终,附加该全局扰动的大多数良性样本均可欺骗神经网络。实验表明,这种简单的迭代算法可以有效地攻击深度神经网络,例如CaffeNet、GoogleNet、VGG和ResNet等。出乎意料的是,这种可在不同样本中传递的扰动同时可以应用到其他不同模型中,例如在VGG上 制作的通用扰动在其他模型上也可以达到53%以 上的攻击成功率。 

尽管PGD和C&W等对抗攻击算法在数字领域非常有效,但将其扩展到物理世界仍然需要克服两个关键问题。第一个问题是,环境噪声和自然变化将破坏数字空间中计算出的对抗性扰动。例如模糊、噪声和JPEG编码等会对对抗性攻击的破坏率超过80%。第二个问题是,在现实世界中,攻击者仅能在特定物体上添加扰动,而无法对整个环境中的背景添加扰动。Athalye等提出了EoT算法来解决第一个问题。EoT算法不直接使用理想数字域中计算出的梯度用于生成对抗扰动,而 是在样本上添加了一组随机噪声,然后对加入这些噪声的样本计算梯度,用这些梯度的平均值生成对抗扰动。在基于梯度的攻击算法(如FGSM和PGD)中采用这种平均梯度,可以提高生成的对抗样本的鲁棒性。Eykholt等提出了一种掩模变换来分离背景和目标,从而可以将对抗性扰动限制在目标区域内,解决了第二个问题。该方法成功地在现实世界的交通标志上生成了可打印的对抗性扰动,其总体攻击成功率达到80%以上。

除了图片分类任务,如图1所示图像分割、3D识别、音频识别和强化学习等工业领域也会受到对抗攻击的影响。

在3D识别领域,PointNet、PointNet++和 DGCNN等基于点云的分类分割模型已被证明易收到对抗攻击的影响。Zheng等提出了基于丢弃点云中关键点的攻击方法。该方法通过将点移动到点云的质心,近似计算每个点对分类结果的贡献,然后通过丢弃具有较大贡献的点来欺骗神经网络。随着一定数量的高贡献点被丢弃,PointNet、PointNet++和DGCNN的分类精度显著降低。

在音频识别领域,Carlini和Wagner通过对C&W损耗函数的优化,成功地构建了高质量的音频对抗性样本。对于任何音频信号,只要在DeepSpeech上对音频信号的1%进行对抗性干扰,即可在其对应的文本翻译中最多影响50个单词。

在文本识别领域,Liang等提出了针对文本 分类任务的攻击策略。攻击者首先确定影响分类结果最重要的文本项,然后对这些重要文本项采用插入、删除、交换、字符替换和单词替换等扰动措施。实验表明,这种攻击可以成功地欺骗一 些基于DNN的文本分类器。

深度学习的对抗性防御技术

对抗防御可以分为启发式防御和可证明式防御两类。启发式防御算法由研究者通过实验获得,它们在实践中可以做到对一些特定的对抗攻击算 法具有良好的防御性能,但没有对防御性能给出理论性保障;可证明式防御通过理论证明,可以计算出在特定对抗攻击算法攻击下模型的最低准确度。

对抗训练试图通过将对抗样本纳入训练阶段来提高模型的鲁棒性,是目前为止性能最好的启发式防御算法。Goodfellow等首先提出对抗训练,他们使用良性样本和通过FGSM算法生成的对抗样本一起训练神经网络,用于增强神经网络的鲁棒性;接着,提出了使用由PGD算法生成的对抗样本进行对抗训练的方法。根据实验结果,PGD对抗训练可在MNIST、CIFAR-10和ImageNet等多个数据集上,在各种L∞攻击下获得最高的准确 度。但是,由于生成PGD对抗样本需要大量计算成本,因此PGD对抗训练不是一种有效率的防御措施。FGSM算法可以和随机启动结合,这样能高效地生成更多对抗样本用于对抗训练,从而提高模型鲁棒性。为了解决模型易受到黑盒攻击问题,提出了集成对抗训练方法。该方法首先训练多个具有不同网络结构模型,然后同时针对这些不同的模型生成对抗样本,并将其用于对抗训练。这种方法增加了用于对抗训练的对抗样本的多样 性,从而增强了针对从其他模型转移过来的对抗样本的鲁棒性。Lee等提出使用生成对抗网络进行对抗训练,其中生成器用于生成对抗样本,这些生成器生成的对抗样本将与良性样本一起用于训练鲁棒分类器。虽然没有给出理论证明,但研究表明对抗训练在现阶段是对抗攻击最有效的防御手段之一。 

随机化也是启发式防御的一种,它通过在模型训练或使用阶段加入随机操作,从而减轻对抗性扰动对模型性能的影响。Xie等在图像输入神经网络前先对图像进行随机变换,从而减轻对抗扰动的效果。这种方法在黑盒攻击下获得了卓越性能,但在白盒攻击中可被EoT算法成功攻击。

去噪属于启发式防御,它的主要目的是减轻或去除对抗扰动,从而降低对抗扰动的功能。去噪防御根据降噪目标不同,可以分为输入降噪和特征降噪两类。输入降噪试图从输入中部分或完全消除对抗扰动。Xu等采用减少色彩深度和模糊图像的方法对图像进行压缩,降低图片自由度,从而消除对抗扰动。通过比较模型对于原始图片与压缩后的图片预测结果的差异,来判断原始输 入是否是对抗样本。Shen等使用生成对抗网络对输入数据进行去噪。该方法将训练一个用于去噪的生成器,其输入是良性样本或对抗样本,其输出是经去噪后的样本。Meng等使用自动编码器技术对输入数据进行去噪。

以上所有介绍的防御都是启发式防御,这意味着这些防御的有效性只在实验上得到验证,而没有在理论上得到证明,如果无法计算理论上的错误率,这些启发式防御可能会被未来的新攻击所打破。因此许多研究者致力于探索可证明的防御方法,在一类定义明确的攻击下,这些方法始终能保持一定的准确性。目前有代表性的可证明式算法有基于半正定规划的可证明式防御、基于对偶方法的可证明式防御、分布稳健性证明、稀疏权重DNN、基于KNN的防御,以及基于贝叶斯模型的防御等。然而根据现有的实验结果,可证明式防御措施的实际性能仍然比对抗训练的性能差很多。 

开放性问题与未来发展

在对抗攻击与对抗防御的研究领域中,仍有许多尚未解决的挑战。 

首先,对抗样本背后的因果关系这一问题并未得到回答。早期对这一问题的研究将对抗样本的出现归因于模型结构和学习方法,研究者认为适当的策略和网络结构将显著提高对抗样本的鲁棒性。研究者沿着这种思路尝试过一些探索,特别是与模糊梯度相关的研究,然而实际上这可能是一种不太合理的研究方向。相反,最近的研究发现,对抗样本的出现更可能是数据维度较高和 训练数据不足导致的。

最后,是否存在稳健又高效率的对抗防御算法?我们仍然没有发现一种防御技术能够很好地平衡防御效果和运算效率。在有效性方面,对抗性训练表现出最好的性能,但计算成本很高。在效率方面,许多基于随机和去噪的防御系统的配置只需几秒钟。然而,最近的许多论文表明这些防御方法并没有他们声称的那样有效。可证明防御理论上为实现对抗防御指明了一条道路,但其 准确性和有效性都远远不能满足实际要求。

对于该领域的未来发展,我们认为对抗攻击的研究趋势主要包括两个方向。第一个是设计更有效、更强大的攻击用来评估新兴的防御系统,这个方向的重要性很直观,我们希望在潜在攻击者之前评估所有的风险。第二个是实现物理世界中的对抗攻击。以前对该研究主题的主要疑问是那些对抗性攻击是否会对物理世界形成真正 威胁。一些研究人员怀疑由于某些环境因素的影响,最初在数字空间中设计的对抗性攻击将无效。Athalye等首先向良性样本中添加随机的噪音模拟物理世界的环境因素,并计算这些噪音样本上产 生的梯度期望,进而实现物理世界的对抗攻击。Eykholt等进一步考虑了掩膜和制造误差从而实现了交通标志的对抗性扰动,这些都验证了物理对抗样本的存在。

在防御方面,由于大多数启发式防御都无法防御自适应白盒攻击,因此研究者开始关注可证明的防御,这种防御是指无论攻击者采用哪种攻击方式,可证明防御都可以在一定程度下保证防御性能。但是到目前为止,可扩展性是目前大多数可证明防御所普遍具有的问题。例如区间界分析是最近流行的证明式防御方法,但是它不能扩展到非常深的神经网络和大型数据集。这主要是因为,攻击算法只要针对某一类防御生效即可, 然而一个有效的防御算法则需要去防御所有可能的攻击手段。 

结束语

近两年来,针对深度学习算法的对抗攻击和防御技术迅速发展。然而,对于对抗样本的成因、一般鲁棒边界的存在等理论问题还没有找到答案,需要深入研究。不仅如此,在实际安全应用中,还没有一套有效且通用的对抗防御技术框架与方法,目前的对抗性训练防御技术,在实际部署中计算成本仍然太高。许多启发式防御仍缺乏进一步验证,还不能抵御自适应性白盒攻击者的攻击。简而言之,要达到有效防御目标,不仅需要深度 学习算法安全性理论的突破,还需要将系统框架、安全测试、环境适配等多个方面的安全技术相结合,才能推动深度学习对抗性安全的跨越式发展。(参考文献略)

作者简介:任奎,浙江大学网络空间安全学院和计算机学院副院长、求是讲席教授,IEEE Fellow,ACM杰出科学家。主要研究领域为数据安全与隐私保护、人工智能安全、物联网安全和生物认证技术。

历史精华好文

  • 专辑1:AI产品/工程落地

  • 专辑2:AI核心算法

  • 专辑3:AI课程/资源/数据

交流合作

请加微信号:yan_kylin_phenix注明姓名+单位+从业方向+地点,非诚勿扰。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AI算法对抗攻击和防御技术综述「AI核心算法」 的相关文章

  • pb9 数据窗口的计算列

    数据窗口中 xff0c 可以增加计算列 xff0c 进行合计 平均或者其他计算动作 在窗口的按钮 xff0c 或者其他事件中 xff0c 可以对数据窗口的计算列的表达式进行修改 xff0c 这样可以将数据窗口多用 办法 xff1a dw 1
  • tar打包命令(linux)

    1 打包命令 span class token function tar span cvf 归档路径 被打包文件路径 span class token punctuation span c create archive v verbose
  • Python字符串与数组相互转换

    Python中有join 和os path join 两个函数 xff0c 具体作用如下 xff1a join xff1a 连接字符串数组 将字符串 元组 列表中的元素以指定的字符 分隔符 连接生成一个新的字符串os path join x
  • FastApi 文件上传upload

    需要使用的Python包 xff1a fastapi和uvicorn span class token keyword import span time span class token keyword import span uvicor
  • zip/tar 分割压缩和合并解压

    1 zip 分割压缩和合并解压 span class token comment 准备工作 xff1a 将文件或文件夹打包为zip压缩包 span span class token function zip span r src zip s
  • python 创建excel 并保存(两种方法)

    1 概要 python中的包xlwt和xlsxwriter都是比较方便创建excel文件并写入数据的 2 xlwt 创建excel并保存 xlwt中 xff1a 通过xlwt Workbook 来新建工作簿 xff1b 通过 add she
  • Python 保留两位小数几种方法

    一 xff1a 保留两位小数 且 做四舍五入处理 四舍六入五成双 xff0c 四舍六入五凑偶的意思 xff0c 根据百度词条的解释如下 xff08 1 xff09 当精确位后面一位的数字是1 4的时候 xff0c 舍去 xff08 2 xf
  • XSS 攻击常用代码

    1 XSS 攻击常用代码 span class token number 1 span 39 34 span class token punctuation span span class token punctuation span sp
  • xpath 爬虫案例

    1 案例 爬取糗百中的段子内容和作者名称 span class token keyword from span lxml span class token keyword import span etree url span class t
  • Selenium 鼠标滚动操作

    1 JS处理滚动条问题 span class token number 1 span 滚动条回到顶部 xff1a js span class token operator 61 span span class token string 34
  • selenium 定位元素(并集)

    并集 xff1a answer 61 driver find element By CLASS NAME info content and huida con text 1 id 说明 xff1a 通过元素的id属性来定位元素 xff0c
  • 精细粒度访问控制:DBMS_RLS包实现数据库表行级安全控制

    精细粒度访问控制 xff1a DBMS RLS包实现数据库表行级安全控制 这是行级控制 xff0c 并且用的数据库提供的dbms包做的 xff0c 而不是视图或者触发器 xff0c 据说 xff0c 可以对所有的DML起作用 精细粒度访问控
  • java获取json数组格式中的值

    第一种方法 xff1a String str span class token operator 61 span span class token string 34 39 array 39 39 id 39 5 39 name 39 39
  • 程序员面试经历

    现在找工作 已经没有了毕业以后那时候找工作的那种紧张心情 自从在上家公司离职以后 自己进行了一段时间的工作 世界上本来没有面霸 面试的多了 也就成了面霸 不得不承认 一开始自己面试是有些紧张 但是 面试的多了 也就不觉得紧张 反而有些平淡了
  • 宽度优先爬虫和带偏好的爬虫

    互联网可以看成一个超级大的 图 xff0c 而每个页面可以看成一个 节点 页面中的链接可以看成是图的 有向边 因此 xff0c 能够通过图的遍历得方式对互联网这个超级大 图 进行访问 图的遍历可以分为宽度优先遍历和深度优先遍历 xff0c
  • The connection to the server localhost:8080 was refused

    最近在学习安装Kubernetes集群的时候 xff0c 安装完执行sudo kubectl get nodes命令出现这个报错 xff1a 下面是解决方法 Master节点出现这个报错 首先需要检查Master安装完Kubernetes后
  • 给广大学习单片机的同学心得,如何学好单片机

    单片机 Microcontrollers 是一种集成电路芯片 xff0c 是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU 随机存储器RAM 只读存储器ROM 多种I O口和中断系统 定时器 计数器等功能 可能还包括显示驱动电
  • 企业如何实现云计算价值的最大化

    恒天云商业白皮书 xff1a http www hengtianyun com download show id 12 html 企业如何实现云计算价值的最大化 卷首语 虽然中国云计算产业尚处于导入和准备阶段 xff0c 但云产业生态链的构
  • ISP、IAP、ICP、JTAG、SWD的编程特点!种编程方式区别总结

    转载自 xff1a http www eeskill com article id 38434 http bbs ic37 com bbsview 33838 htm 电子工程师都知道 xff0c 半导体技术发展迅猛 xff0c 带动了各种
  • OpenMP 参考(指令详解)

    OpenMP 参考 xff08 指令详解 xff09 翻译 2011年03月21日 17 53 00 标签 xff1a parallel fortran newline list integer 工作 9866 编辑 删除 共享工作 xff

随机推荐