这里写目录标题
1.引言
在论文的背景下,提高针对样本的可移动性非常重要,因为这使得对抗性示例在不同模型之间更有效。高度可移动的对抗性示例意味着针对一个模型制作的示例很可能也会成功地攻击另一个模型,即使这些模型有不同的架构或使用不同的数据集进行训练。这在现实世界的应用中尤为关键,因为攻击者通常无法访问目标模型。因此,提高对抗性示例的可移动性对于评估人工智能系统在多变和不可预测的实际环境中的鲁棒性至关重要。
为什么要提高对抗样本的迁移性?
- 模型多样性:在现实世界中,被攻击的模型可能具有不同的架构或训练数据。具有高可迁移性的对抗性示例能够在这些不同的模型上都有效,这对于评估和增强模型的安全性至关重要。
- 实际应用中的挑战:在现实应用中,攻击者通常无法获得目标模型的详细信息,包括其训练数据、架构和参数。因此,能够在不同模型间迁移的对抗性示例对于理解和防御潜在的安全威胁更为有效。
- 安全性评估:提高对抗性示例的可迁移性有助于更全面地评估机器学习模型的安全性。这种评估可以揭示模型在面对各种攻击时的脆弱性,从而促进更强大和鲁棒的模型设计。
对抗样本迁移性过往的研究及不足
-
梯度方法:
- 研究通常使用基于梯度的方法(如FGSM)来生成对抗性示例。
- 局限性:这些方法生成的对抗样本往往对特定模型高度专化,迁移性较差,尤其是当目标模型和训练模型架构差异较大时。
-
输入多样化:
- 输入多样化方法通过增加训练过程中的输入变化来提高对抗样本的迁移性。
- 局限性:虽然能够提高一定的迁移性,但这种方法在实际应用中可能仍然无法充分应对多种不同的目标模型。
-
模型集成:
- 有研究表明,针对多个模型同时生成对抗样本可以提高其迁移性。
- 局限性:这种方法需要访问多个模型,增加了计算成本和实际操作的复杂性。
-
生成对抗网络(GAN):
- GAN被用于生成对抗样本,利用其生成器和判别器之间的竞争来提升样本的质量。
- 局限性:GAN方法通常需要较长的训练时间,且参数调优较为复杂。
-
黑盒攻击:
- 黑盒攻击方法不需要访问目标模型的内部结构或参数。
- 局限性:这些方法可能需要大量的查询来有效生成对抗样本,且成功率不一定高。
总结来说,尽管以往的研究在提高对抗样本的迁移性方面取得了一定进展,但仍存在对特定模型过度优化、实际应用的复杂性和效率问题等局限性。因此,研究如何在不牺牲攻击效果的情况下进一步提高对抗样本的通用性和迁移性仍然是一个重要的研究方向。
2. ODI(基于对象的多样输入)方法
ODI(基于对象的多样输入)方法的详细工作原理包括以下几个主要步骤:
-
准备对抗性3D网格:
- ODI方法使用3D对象作为画布来绘制对抗性示例。这意味着即使在迭代过程中对象发生变化,也不会影响方法的有效性。
- 首先从源对象池中随机选择一个对象。所选对象具有三角网格、纹理图和一个边界框,边界框指示纹理图中将绘制对抗性示例的画布区域。
- 接下来,使用随机的纯色填充纹理图,然后将对抗性示例调整大小并插入到纹理图的边界框区域中。
下面是一个pytorch的代码示例:
import torch import trimesh import numpy as np # 创建一个简单的3D立方体网格 mesh = trimesh.creation.box(extents=(1, 1, 1)) # 获取网格的顶点和面 vertices = mesh.vertices faces = mesh.faces # 将顶点和面转换为PyTorch张量 vertices_tensor = torch.tensor(vertices, dtype=torch.float32) faces_tensor = torch.tensor(faces, dtype=torch.int64) # 创建纹理图 texture_size = 256 # 纹理的尺寸 texture_map = np.random.rand(texture_size, texture_size, 3) # 随机纹理图 # 将纹理图转换为PyTorch张量 texture_map_tensor = torch.tensor(texture_map, dtype=torch.float32).permute(2, 0, 1) # 从HWC到CHW # 创建边界框 bounding_box = mesh.bounding_box_oriented # 对抗性示例(假设它是一个纹理图上的区域) adv_example_region = texture_map_tensor[:, :128, :128] # 选择纹理图的一部分作为对抗性示例 print('Vertices Tensor Shape:', vertices_tensor.shape) print('Faces Tensor Shape:', faces_tensor.shape) print('Texture Map Tensor Shape:', texture_map_tensor.shape) print('Adversarial Example Region Shape:', adv_example_region.shape)
-
设置渲染环境:
- 渲染环境包括照明和摄像机,这些是渲染3D对象所必需的。
- 对于摄像机,固定内在参数并调整外在参数。改变三个摄像机角度:高度角(elevation)、方位角(azimuth)和倾斜角(tilt)。
- 在ODI方法中,3D网格最初被缩放,使得投影图像在默认视图中占据渲染图像的约85%。三个摄像机角度和摄像机距离在预设范围内随机采样。
通过这些步骤,ODI方法能够在不同的渲染环境中(包括不同的照明和视角)有效地提高目标对抗性示例的迁移性。这种现实的输入多样化可以推广攻击能力,并提高对抗性示例的迁移性。这是首次在优化2D对抗性示例期间使用3D对象作为画布。
完整论文的算法
算法解释:
图中展示的算法是ODI-MI-TI-FGSM(Object-based Diverse Input Momentum Iterative Targeted Fast Gradient Sign Method),这是一种结合了多种技术以提高对抗性示例迁移性的攻击方法。下面详细解释算法的每一步:
输入:
- 一个干净的样本 x x x;
- 一个目标标签 y t y_t yt;
- 一个分类器 f f f;
- 对手的损失函数 L \mathcal{L} L;
- ℓ ∞ \ell_{\infty} ℓ∞ 扰动约束 ε \varepsilon ε;
- 步长 α \alpha α;
- 最大迭代次数 T T T;
- 衰减因子 μ \mu μ;
- 高斯核 W W W。
输出:
- 一个对抗性示例 x a d v x_{adv} xadv。
算法步骤:
-
初始化梯度 g 0 g_0 g0为0,对抗性示例 x a d v 0 x_{adv}^0 xadv0 为 x x x。
-
对 t = 0 t = 0 t=0 到 T − 1 T - 1 T−1 执行以下步骤:
a. 应用ODI:计算梯度 g ^ t + 1 \hat{g}_{t+1} g^t+1,这一步涉及到对经ODI方法处理后的 x a d v t x_{adv}^t xadvt 的梯度进行评估。
b. 应用MI(Momentum):使用动量方法来累积之前梯度的信息,以增强对抗性攻击,并保持迭代过程中的方向稳定。动量是通过 g ^ t + 1 \hat{g}_{t+1} g^t+1 与 μ ⋅ g t \mu \cdot g_t μ⋅gt 的和来更新。
c. 应用TI(Translation-Invariant):通过与高斯核 W W W的卷积来使梯度具有平移不变性。
d. 应用FGSM(Fast Gradient Sign Method):对更新后的梯度 g ^ t + 1 \hat{g}_{t+1} g^t+1 应用符号函数并乘以步长 α \alpha α 来更新 x a d v x_{adv} xadv。
e. 对 x a d v x_{adv} xadv 应用 ℓ ∞ \ell_{\infty} ℓ∞ 约束来确保其扰动在允许的范围内。
-
循环结束后,将 x a d v T x_{adv}^T xadvT 作为最终的对抗性示例。
-
返回 x a d v x_{adv} xadv。
整个过程结合了ODI技术和其他几种提高攻击效果的技术,如动量(MI)和平移不变性(TI),通过迭代地细化梯度来生成目标分类器 f f f难以抵御的对抗性示例。