对抗攻击方法详解:梯度攻击、转移攻击与模型集成攻击

news2024/11/18 3:35:51

对抗攻击方法详解:梯度攻击、转移攻击与模型集成攻击

近年来,随着深度学习模型在各个领域取得惊人突破,对抗攻击(Adversarial Attack) 逐渐成为研究热点。对抗攻击旨在通过在输入数据上施加精心设计的微小扰动,使得模型的预测结果出现显著错误。本文将详细介绍三种主要的对抗攻击策略:基于梯度的攻击基于转移的攻击模型集成攻击,并探讨它们的核心思想、实现方法及背后的数学原理。


1. 基于梯度的对抗攻击(Gradient-based Adversarial Attack)

核心思想

基于梯度的对抗攻击方法依赖于模型的梯度信息。对于一个给定的输入样本 x x x和标签 y y y,攻击的目标是找到一个小的扰动 δ \delta δ,使得输入 x + δ x + \delta x+δ导致模型的预测输出产生显著偏差。具体来说,基于梯度的方法通过在输入样本 x x x上施加扰动 δ \delta δ来最大化模型的损失函数 L ( x , y ) L(x, y) L(x,y),进而生成对抗样本 x a d v = x + δ x_{adv} = x + \delta xadv=x+δ

这种方法依赖于神经网络的局部线性化假设,即在输入空间中,网络的行为可以通过对输入进行一阶泰勒展开式近似描述。

梯度的概念

在神经网络中,梯度是模型输出相对于输入的变化率。通常,梯度用于梯度下降法来优化神经网络的损失函数。然而,在对抗攻击中,梯度用于生成扰动,目标是反向操作:即找到扰动 δ \delta δ使得损失函数上升(即损失增大),而非下降。

损失函数 L ( x , y ) L(x, y) L(x,y)是输入 x x x和标签 y y y的函数,我们需要计算损失函数关于输入 x x x的梯度,即 ∇ x L ( x , y ) \nabla_x L(x, y) xL(x,y)。这个梯度告诉我们如何改变输入 x x x,使得损失函数增加(即,预测变得不准确)。为了生成对抗样本,我们使用梯度上升的策略,使得输入在梯度方向上被扰动。

具体实现方法

快速梯度符号法(FGSM)

FGSM 是一种基本的基于梯度的对抗攻击方法,其目标是通过在输入 x x x上施加最小扰动 δ \delta δ,以极大化损失函数。其扰动的计算公式为:

x a d v = x + ϵ ⋅ sign ( ∇ x L ( x , y ) ) x_{adv} = x + \epsilon \cdot \text{sign}(\nabla_x L(x, y)) xadv=x+ϵsign(xL(x,y))

其中:

  • ϵ \epsilon ϵ是控制扰动大小的超参数,通常是一个较小的值,如 0.01 0.01 0.01
  • sign ( ∇ x L ( x , y ) ) \text{sign}(\nabla_x L(x, y)) sign(xL(x,y))表示梯度的符号函数,确保在梯度的正负方向上分别施加相应的扰动。

通过此公式,我们在梯度的符号方向上施加扰动。由于符号函数仅保留梯度的方向而忽略大小,这使得FGSM计算效率高,但会丢失精确的扰动信息。

Ian Goodfellow, Jonathon Shlens, and Christian Szegedy. Explaining and harnessing adversarial examples. In Proc. Int’l Conf. Learn. Repres., 2015.

迭代快速梯度符号法(I-FGSM)

I-FGSM 是 FGSM 的扩展版本,它通过多次迭代的方式来逐步施加扰动,每次的步长为 α \alpha α。具体更新规则为:

x a d v ( t + 1 ) = x a d v ( t ) + α ⋅ sign ( ∇ x L ( x a d v ( t ) , y ) ) x_{adv}^{(t+1)} = x_{adv}^{(t)} + \alpha \cdot \text{sign}(\nabla_x L(x_{adv}^{(t)}, y)) xadv(t+1)=xadv(t)+αsign(xL(xadv(t),y))

其中:

  • t t t表示当前的迭代次数。
  • α \alpha α是每次迭代的步长,通常 α ≪ ϵ \alpha \ll \epsilon αϵ

I-FGSM 相比 FGSM 可以生成更强的对抗样本,因为它通过多次迭代能够捕获更多的损失函数变化趋势。

Jiakai Wang. Adversarial examples in physical world. In Proc. Int’l Joint Conf. Artif. Intell., pages 4925–4926, 8 2021.

投影梯度下降(PGD)

PGD 是 I-FGSM 的一种改进版本,它在每次迭代生成扰动之后,将对抗样本投影回允许的扰动范围内,例如 L ∞ L_\infty L球内,确保生成的扰动不会超过规定的幅度范围。其更新规则为:

x a d v ( t + 1 ) = Proj x + ϵ ( x a d v ( t ) + α ⋅ sign ( ∇ x L ( x a d v ( t ) , y ) ) ) x_{adv}^{(t+1)} = \text{Proj}_{x+\epsilon} \left( x_{adv}^{(t)} + \alpha \cdot \text{sign}(\nabla_x L(x_{adv}^{(t)}, y)) \right) xadv(t+1)=Projx+ϵ(xadv(t)+αsign(xL(xadv(t),y)))

这里的 Proj x + ϵ \text{Proj}_{x+\epsilon} Projx+ϵ表示将生成的对抗样本投影回以 x x x为中心,半径为 ϵ \epsilon ϵ L ∞ L_\infty L球内。PGD 是公认的最强的白盒攻击方法之一,因为它通过多次迭代确保扰动的范围被严格控制,同时提升了攻击的强度。

Aleksander Madry, Aleksandar Makelov, Ludwig Schmidt, Dimitris Tsipras, and Adrian Vladu. Towards deep learning models resistant to adversarial attacks. In Proc. Int’l Conf. Learn. Repres., 2018.

数学原理

基于梯度的对抗攻击依赖于目标模型的梯度信息。通过扰动输入数据,使得目标模型的损失函数最大化。这种方法可以通过泰勒展开式进行解释。

假设模型的损失函数 L ( x , y ) L(x, y) L(x,y)在输入 x x x附近是可微的,则可以对 L ( x , y ) L(x, y) L(x,y)进行一阶泰勒展开:

L ( x + δ , y ) ≈ L ( x , y ) + δ T ∇ x L ( x , y ) L(x + \delta, y) \approx L(x, y) + \delta^T \nabla_x L(x, y) L(x+δ,y)L(x,y)+δTxL(x,y)

这里的 ∇ x L ( x , y ) \nabla_x L(x, y) xL(x,y)表示损失函数关于输入 x x x的梯度。

通过对 δ \delta δ进行优化,可以使得 δ T ∇ x L ( x , y ) \delta^T \nabla_x L(x, y) δTxL(x,y)最大化,从而增加损失函数的值。这是基于梯度的对抗攻击的数学基础。

常见问题

  1. 黑盒攻击难度较大:基于梯度的攻击需要访问模型的梯度信息,因此在黑盒场景下(即无法直接访问梯度信息的场景)表现较差。
  2. 易受模型防御策略影响:对抗训练等防御方法可以通过在训练过程中引入对抗样本来缓解此类攻击的效果。

2. 基于转移的对抗攻击(Transfer-based Adversarial Attack)

在这里插入图片描述
(a) Transfer-based attack(基于迁移的攻击)

  • 图中展示了通过从一个模型(代理模型)生成对抗样本,然后将这些样本转移到另一个目标模型中进行攻击的传统方法。这种方法的思想是希望对抗样本能够跨模型具有通用性(即能够迁移到其他模型上产生相同的效果)。
  • 图中的绿色圆圈代表干净的图像,蓝色三角形代表对抗样本,蓝线表示代理模型的决策边界,红线表示目标模型的决策边界。攻击方向(蓝色箭头)旨在移动输入以跨越代理模型的决策边界,但 由于目标模型的决策边界与代理模型不同,导致对抗样本在目标模型上的迁移成功率较低
  • 下方柱状图表明这种攻击方式在CNNs上有17.66%的攻击成功率,但在ViTs上仅有2.02%的成功率,表明迁移性较弱。

核心思想

基于转移的对抗攻击的目标是生成可以在 多个模型 上有效的对抗样本,尤其是黑盒场景下。这类攻击基于一个重要的观察:某些对抗样本不仅能够欺骗生成它的模型,还可以在不同结构、不同权重的模型上同样有效。这被称为对抗样本的迁移性(Transferability)

实现方式

神经元重要性

一种增强对抗样本迁移性的方法是 利用神经网络中的神经元重要性 。Wang等人提出通过最大化关键神经元的失真,生成能够在多个模型上具有高攻击成功率的对抗样本。关键神经元是指对模型 决策影响较大 的神经元,扰动这些神经元的激活值能够更显著地影响模型输出,从而提升对抗样本的迁移性。

Z. Wang, H. Guo, Z. Zhang, W. Liu, Z. Qin, and K. Ren. Feature importance-aware transferable adversarial attacks. In Proc. IEEE Int’l Conf. Comput. Vis., pages 7619–7628, 2021.

输入多样性和平移不变策略

为了增加对抗样本的普适性,Xie等人和Dong等人提出了通过对输入数据进行多样化变换(如缩放、翻转等)来提高对抗扰动的迁移能力。通过在每次迭代中对输入进行随机变换,攻击可以避免仅针对某个特定模型过拟合,从而提高对不同模型的适应性。

  1. Cihang Xie, Zhishuai Zhang, Yuyin Zhou, Song Bai, Jianyu Wang, Zhou Ren, and Alan L. Yuille. Improving transferability of adversarial examples with input diversity. In Proc. Conf. Comput. Vis. Pattern Recognit., June 2019.
  2. Yinpeng Dong, Tianyu Pang, Hang Su, and Jun Zhu. Evading defenses to transferable adversarial examples by translation-invariant attacks. In Proc. Conf. Comput. Vis. Pattern Recognit., June 2019.
PI-FGSM

Gao等人提出的 基于块的扰动方法(PI-FGSM)通过生成基于图像块的扰动而非逐像素的扰动,提高了黑盒攻击的成功率。这种方法通过减少扰动的局部性,提高了对抗样本的迁移性。

Lianli Gao, Qilong Zhang, Jingkuan Song, Xianglong Liu, and Heng Tao Shen. Patch-wise attack for fooling deep neural network. In Proc. Euro. Conf. Comput. Vis., pages 307322, 2020.

数学原理

基于转移的对抗攻击的原理依赖于对输入空间中共享的决策边界的探索。不同模型在相似的数据上训练时,通常会学到相似的特征,因此对一个模型有效的扰动有时能够在其他模型上同样有效。

假设我们有两个模型 f 1 f_1 f1 f 2 f_2 f2,它们的损失函数分别为 L 1 ( x , y ) L_1(x, y) L1(x,y) L 2 ( x , y ) L_2(x, y) L2(x,y)。对抗样本的目标是找到一个扰动 δ \delta δ,使得:

δ = arg ⁡ max ⁡ δ ( L 1 ( x + δ , y ) + L 2 ( x + δ , y ) ) \delta = \arg\max_{\delta} \left( L_1(x + \delta, y) + L_2(x + \delta, y) \right) δ=argδmax(L1(x+δ,y)+L2(x+δ,y))

通过优化 δ \delta δ,我们希望生成一个对两个模型都有效的扰动。

常见问题

  1. 难以转移到新的网络结构:尽管这些方法在传统的卷积神经网络(CNN)上表现良好,但对新兴的深度学习架构(如视觉Transformer,ViT)效果较差。
  2. 依赖特定特征:许多基于转移的攻击依赖于神经网络的特定特征(如局部性),这使得它们难以在一些依赖全局特征的模型上迁移。

3. 模型集成攻击(Ensemble-based Adversarial Attack)

在这里插入图片描述
(b) Ensemble attack(模型集成攻击)

  • 此方法通过结合多个代理模型的输出(如logits或loss)生成对抗样本,希望提高对抗样本的迁移性。直观上,这种方法应该能够捕捉到多个模型之间共同的特征,理论上可以更好地欺骗目标模型。
  • 图中显示的是两个不同的代理模型决策边界(蓝色和红色),攻击方向基于多个模型的组合决策。虚线表示多个代理模型的攻击方向,表明尝试同时欺骗多个模型,但结果显示由于没有充分利用每个模型的个体优势,攻击效果有限。
  • 从柱状图可以看出,集成攻击相较于单一的迁移攻击略有改进,在CNNs上达到了18.54%的成功率,在ViTs上也略微提升至8.74%。

核心思想

模型集成攻击的核心思想是通过同时攻击多个白盒模型,生成能够在所有模型上都有效的对抗样本。通过多个模型的联合优化,可以捕捉到更通用的对抗扰动,从而提升对抗样本在黑盒场景下的迁移性。

实现方式

简单加权平均

Liu等人提出了一种简单的集成方法,通过对多个白盒模型的梯度信息进行加权平均,生成对抗样本。具体而言,假设我们有 n n n个模型,它们的损失函数分别为 L 1 ( x , y ) , L 2 ( x , y ) , … , L n ( x , y ) L_1(x, y), L_2(x, y), \dots, L_n(x, y) L1(x,y),L2(x,y),,Ln(x,y),那么集成攻击的损失函数为:

L ensemble ( x , y ) = 1 n ∑ i = 1 n L i ( x , y ) L_{\text{ensemble}}(x, y) = \frac{1}{n} \sum_{i=1}^{n} L_i(x, y) Lensemble(x,y)=n1i=1nLi(x,y)

通过对 L ensemble ( x , y ) L_{\text{ensemble}}(x, y) Lensemble(x,y)进行优化,可以生成对所有模型都有效的对抗样本。

Yanpei Liu, Xinyun Chen, Chang Liu, and Dawn Song. Delving into transferable adversarial examples and blackbox attacks. In Proc. Int’l Conf. Learn. Repres., 2017.

Logit和损失融合

为了进一步提升集成对抗样本的强度,Dong等人提出融合多个模型的logit(即模型输出的 未归一化预测值 )和损失函数,以提高对抗扰动的迁移性。

Yinpeng Dong, Tianyu Pang, Hang Su, and Jun Zhu. Evading defenses to transferable adversarial examples by translation-invariant attacks. In Proc. Conf. Comput. Vis. Pattern Recognit., June 2019.

随机方差减少集成(SVRE)

Xiong等人提出的SVRE方法通过减少集成模型之间的梯度方差,提升了对抗样本的泛化能力。这种方法通过在不同模型之间引入随机化,减小了模型间的差异性,从而生成更通用的对抗扰动。

Yifeng Xiong, Jiadong Lin, Min Zhang, John E. Hopcroft, and Kun He. Stochastic variance reduced ensemble adversarial attack for boosting the adversarial transferability. In Proc. Conf. Comput. Vis. Pattern Recognit., pages 1498314992, June 2022.

数学原理

模型集成攻击的基本思想是利用集成学习的思想,通过对多个模型的损失函数进行加权组合来生成对抗样本。假设我们有 n n n个模型,每个模型的损失函数为 L i ( x , y ) L_i(x, y) Li(x,y),集成攻击的损失函数可以表示为:

L ensemble ( x , y ) = 1 n ∑ i = 1 n L i ( x , y ) L_{\text{ensemble}}(x, y) = \frac{1}{n} \sum_{i=1}^{n} L_i(x, y) Lensemble(x,y)=n1i=1nLi(x,y)

通过对这个集成损失进行优化,我们可以找到一种扰动 δ \delta δ,使得这个扰动对所有模型都有效。

常见问题

  1. 未充分利用个体模型的优势:尽管集成攻击方法能够在多个模型上生成有效的对抗样本,但它们通常忽略了个体模型的独特性,无法充分利用每个模型的特定优势。
  2. 计算开销较大:集成多个模型的攻击需要更多的计算资源,尤其是在对抗大型深度学习模型时,可能带来较高的时间和空间成本。

总结:

  1. 基于梯度的攻击是白盒场景下的强大攻击方法,但其对黑盒场景的适应性较差,且容易被对抗训练等防御策略抵消。
  2. 基于转移的攻击通过生成具有迁移性的对抗样本提升了黑盒攻击的成功率,但在新型深度学习架构上效果有限。
  3. 模型集成攻击通过结合多个模型的信息提升了对抗扰动的泛化能力,但需要更多的计算资源,且在利用个体模型的独特性上仍有改进空间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2173020.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Doris安装部署指南

Doris安装部署指南 一、环境准备二、下载并解压安装包三、配置FE和BEFE配置BE配置四、验证集群状态五、集群扩容与缩容六、总结Apache Doris(原百度Palo)是一款基于MPP架构的高性能、实时的分析型数据库。它支持标准SQL,高度兼容MySQL协议,能够运行在绝大多数主流的商用服务…

第50篇 汇编语言实现中断<六>

Q:怎样设计汇编语言程序使用定时器中断实现实时时钟? A:此前我们曾使用轮询定时器I/O的方式实现实时时钟,而在本实验中将采用定时器中断的方式。新增的interval_timer.s间隔定时器的中断服务程序中增加了TIME变量,还更…

<<迷雾>> 第 1 章 了解计算机, 要从电开始 示例电路

简单灯泡电路 info::操作说明 灯的亮起有一定的延时, 需要过一会才逐渐亮起来 另: 可通过 “菜单–选项–显示电流” 控制是否显示电流 primary::在线交互操作链接 https://cc.xiaogd.net/?startCircuitLinkhttps://book.xiaogd.net/cyjsjdmw-examples/assets/circuit/cyjsjdm…

Unity XR 环境检测

需求&#xff1a; 检测环境是XR还是手机 代码&#xff1a; using UnityEngine.XR;public class EnvmentUtility {/// <summary>/// 是否是XR环境/// </summary>/// <returns>如果是XR&#xff0c;返回true&#xff0c;否则false</returns>public sta…

Gin框架简易搭建(3)--Grom与数据库

写在前面 项目地址 个人认为GORM 指南这个网站是相比较之下最为清晰的框架介绍 但是它在环境搭建阶段对于初学者而言不是很友好&#xff0c;尤其是使用mysql指令稍有不同&#xff0c;以及更新的方法和依赖问题都是很让人头疼的&#xff0c;而且这些报错并非逻辑上的&#xf…

linux 下的静态库与动态库

目录 一、介绍 1、静态库 2、动态库 二、操作 1、静态库 2、动态库 3、使用库文件 &#xff08;1&#xff09;方法一 &#xff08;2&#xff09;方法二 &#xff08;3&#xff09;方法三 一、介绍 1、静态库 静态链接库实现链接操作的方式很简单&#xff0c;即程序文…

vue启动报错

vue执行npm run dev报错如下 Error: error:0308010C:digital envelope routines::unsupportedat new Hash (node:internal/crypto/hash:69:19)at Object.createHash (node:crypto:133:10)at module.exports (F:\ray\taisheng-erp-frontend-master\node_modules\webpack\lib\ut…

深信服2025届全球校招研发笔试-C卷(AK)

前面14个填空题 T1 已知 子数组 定义为原数组中的一个连续子序列。现给定一个正整数数组 arr&#xff0c;请计算该数组内所有可能的奇数长度子数组的数值之和。 输入描述 输入一个正整数数组arr 输出描述 所有可能的奇数长度子数组的和 示例 1 输入 1,4,2,5,3 输出 58 说明 …

[论文精读]Polarized Graph Neural Networks

论文网址&#xff1a;Polarized Graph Neural Networks | Proceedings of the ACM Web Conference 2022 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于…

Junit 5 - 理解Mockito,提高UT 覆盖率

前言 当我是1个3年初级程序员时&#xff0c; 我被面试者问到1个问题&#xff1a; 如何保证你的开发任务交付质量 当我是1个7年开发组长时&#xff0c; 我被面试者问到另1个问题&#xff1a;如何保证你的团队的代码质量&#xff0c; 减少rework。 又若干年后&#xff0c; 我才…

代码随想录Day 58|拓扑排序、dijkstra算法精讲,题目:软件构建、参加科学大会

提示&#xff1a;DDU&#xff0c;供自己复习使用。欢迎大家前来讨论~ 文章目录 图论part08**拓扑排序精讲**题目&#xff1a;117. 软件构建拓扑排序的背景解题思路&#xff1a;模拟过程 **dijkstra&#xff08;朴素版&#xff09;精讲**题目&#xff1a;47. 参加科学大会解题思…

leetcode每日一题day14(24.9.24)——字符串最多的子序列

思路:对于应该首要和贡献联系起来&#xff0c;对于什么是贡献呢&#xff0c;即在某种情况下&#xff0c;会贡献出多少种&#xff0c;符合要求的结果&#xff0c;此题属于较为基础的&#xff0c;对于text中的一个字符如果是非pattern中的元素&#xff0c;则对结果无任何影响&…

舒舒活动图片 小暑至,暑气湿气缠身怎么办?中医教你消暑宁心,健脾祛湿

小暑标志着酷夏的到来&#xff0c;闷热潮湿的气候令人不适&#xff0c;仿佛暑湿交织笼罩全身。众多友人诉苦不已&#xff0c;此般环境致使心绪不宁、身躯疲惫&#xff0c;失措寻对策。实则无需忧虑&#xff0c;持之以恒地进行消暑养心、健脾除湿&#xff0c;便能安然度夏。 暑气…

Vue 技术入门 day1 模版语法、数据绑定、事件处理、计算属性与监视、class和style绑定、条件渲染v-if/v-show、列表渲染v-for

目录 1.Vue 核心 1.1. Vue 简介 1.1.1 介绍与描述 1.1.2 Vue 的特点 1.2 模板语法 1.2.1 模板的分类 1.2.2 插值语法 1.2.3 指令语法 1.2.4 实例 1.3 数据绑定 1.3.1 单向数据绑定 1.3.2 双向数据绑定 1.3.3 MVVM 模型 1.3.4 data与el的2种写法 1.3.5 实例 1.3.…

【C++前缀和】2731. 移动机器人|1922

本文涉及的基础知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 LeetCode2731. 移动机器人 有一些机器人分布在一条无限长的数轴上&#xff0c;他们初始坐标用一个下标从 0 开始的整数数组 nums 表示。当你给机器人下达命令时&…

manim中实现文字换行和设置字体格式

实现换行 from manim import * class Textline(Scene): def construct(self): self.camera.background_color "#2F4F14" # 创建中心文本 horizontal_line Line(startLEFT * 8, endRIGHT * 8, colorWHITE).shift(3 * UP) stext Text("线性代数", …

0. Pixel3 在Ubuntu22下Android12源码拉取 + 编译

0. Pixel3 在Ubuntu22下Android12源码拉取 编译 原文地址: http://www.androidcrack.com/index.php/archives/3/ 1. 前言 这是一个非常悲伤的故事, 因为一个意外, 不小心把之前镜像的源码搞坏了. 也没做版本管理,恢复不了了. 那么只能说是重新做一次. 再者以前的镜像太老旧…

828华为云征文|部署去中心化网络的 AI 照片管理应用 PhotoPrism

828华为云征文&#xff5c;部署去中心化网络的 AI 照片管理应用 PhotoPrism 一、Flexus云服务器X实例介绍二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置2.4 Docker 环境搭建 三、Flexus云服务器X实例部署 PhotoPrism3.1 PhotoPrism 介绍3.2 PhotoPrism…

OpenHarmony标准系统上实现对rk系列芯片NPU的支持(驱动移植)

1.将RKNPU驱动移植到Openharmony内核 本文以rk3568为例&#xff0c;将RKNPU驱动移植到Openharmony使用的kernel 5.10中 开发环境 DAYU200 rk3568开发板OpenHarmony 4.1 Release 64位系统 文档约定&#xff1a;4.1r_3568为OpenHarmony标准系统源码根目录 1.0 环境准备 1.搭建O…

Windows11 + Ubuntu 24.10

我在win11安装Ubuntu主板:华硕主板Z790 DARK HERO,进入安装,所以文章中bios系统设置为华硕的bios系统。 一、确认系统信息-BIOS为UEFL 备注:UEFL优于MBR,具体可以查询问ai。如果BIOS模式中不是UEFL,建议为UEFL 1、 win+R 输入 msinfo32,打开系统信息,可以看到…