GreedyFool:感知失真的稀疏对抗攻击

Xiaoyi Dong, Dongdong Chen, Jianmin Bao, Chuan Qin,Lu Yuan, Weiming Zhang, Nenghai Yu, Dong Chen

摘要

现代深度神经网络(DNNs)容易受到对抗样本的攻击。稀疏对抗样本是对抗样本的一个特殊分支,它仅通过扰动少量像素就能欺骗目标模型。稀疏对抗攻击的存在指出 DNNs 比人们认为的更加脆弱,这也是分析 DNNs 的一个新角度。然而,当前的稀疏对抗攻击方法在稀疏性和不可见性方面仍然存在一些不足。在本文中,我们提出了一种新颖的两阶段感知失真的贪婪方法,称为 “GreedyFool”。具体来说,它首先通过同时考虑梯度(用于对抗性)和失真图(用于不可见性)来选择最有效的候选位置进行修改,然后在减少阶段丢弃一些不太重要的点。实验证明,与现有技术相比,在相同的稀疏扰动设置下,我们只需要修改少 3×3\times3× 的像素。对于目标攻击,在相同的像素预算下,我们方法的成功率比现有技术高出 9.96%9.96\%9.96%。代码可在 https://github.com/LightDXY/GreedyFool 找到。

1. 引言

尽管当前的深度神经网络(DNNs)取得了成功,但它们已被证明容易受到对抗样本的攻击 [41, 17, 6, 36, 24, 31, 4, 18, 42, 13, 14, 47]。对抗样本是通过向原始干净图像添加微小扰动而精心制作的图像,目的是欺骗目标网络。一方面,对抗样本的存在增加了 DNNs 的安全威胁,特别是当前日常生活中使用的这些 DNNs [23]。另一方面,对抗样本可以帮助我们揭示 DNNs 的弱点,并进一步理解 DNNs 的机制。

为了全面理解 DNNs 的弱点和机制,有必要实现各种类型的对抗攻击。在大多数情况下,对抗扰动受 lpl_plp 范数距离约束,可以大致分为两种类型:密集攻击和稀疏攻击。对于密集攻击,攻击方法在 l∞l_{\infty}ll2l_{2}l2 约束下扰动图像的所有像素 [10, 6, 41]。对于稀疏攻击,攻击方法仅在 l0l_{0}l0 约束下扰动少量像素 [34, 30, 11]。

自开创性工作 [41] 以来,已经提出了许多密集攻击方法并取得了令人印象深刻的结果 [15, 35, 5, 10, 19, 43, 33, 44, 45, 8, 9]。然而,与 l∞l_{\infty}ll2l_{2}l2 约束不同,在 l0l_{0}l0 约束下生成对抗噪声是一个 NP 难问题。为了解决这个问题,先前已经提出了许多在白盒和黑盒设置下的工作。对于白盒攻击,JSMA [34] 提出基于显著图选择影响模型决策的最有效像素。SparseFool [30] 将该问题转换为一个 l1l_{1}l1 约束问题,PGD0\mathrm{PGD}_{0}PGD0 [11] 提出将通过 PGD [27] 生成的对抗噪声投影到 l0l_{0}l0 -球来实现 l0l_{0}l0 版本的 PGD。对于黑盒攻击,One Pixel Attack [39] 和 Pointwise Attack [37] 提出应用进化算法来实现极其稀疏的扰动。LocSearchAdv [32] 使用局部搜索来实现稀疏攻击。最近,CornerSearch [11] 提出遍历所有像素并选择最有效的像素子集来实现攻击。在本文中,我们专注于白盒攻击。

然而,这些现有方法仍然存在许多问题。JSMA [34] 复杂度高,难以在高分辨率图像上实现对抗攻击。SparseFool [30] 稀疏性不够,无法实现目标攻击。对于 PGD0\mathrm{PGD}_{0}PGD0 [11],扰动像素的数量在攻击前就已定义,并且这些像素必须用于攻击,因此它扰动了许多冗余像素,可能对实际场景不够灵活。

为了解决这些问题,我们提出了一种新颖的基于贪婪的方法,称为 “GreedyFool”。它主要包括两个阶段。在第一阶段,我们基于梯度信息迭代地选择 kkk 个最合适的像素进行修改,直到攻击成功。在第二阶段,我们也应用贪婪策略来尽可能丢弃许多不太重要的像素,以进一步提高稀疏性。

另一方面,我们注意到稀疏攻击通常像先前工作展示的那样清晰可见 [30, 11]。因此,我们引入了一个失真图,这是一种不可见性约束,有助于稀疏攻击实现更好的不可见性。与可能忽略图像中语义和内容信息的手工失真 [11] 不同,我们提出了一个基于生成对抗网络(GANs)[16] 的框架来学习图像的精确失真图。这样的失真图将被添加到 “GreedyFool” 的第一阶段作为位置指导。

在 CIFAR10 [22] 和 ImageNet [12] 数据集上的实验表明,我们方法的稀疏性远优于现有技术。对于 ImageNet 中的图像,当扰动阈值设置为 10 时,我们的方法只需要扰动 222.5 个像素,而 SparseFool 需要扰动 615 个像素,大约比我们的方法多 3×3\times3×。当阈值放宽到 255 时,我们的方法只需要修改 27 个像素即可实现对抗攻击,而 SparseFool 需要 80.50 个像素。同时,我们的方法展示了比现有技术更高的目标攻击成功率。在 ImageNet 上,给定 200 个像素(0.22%0.22\%0.22% 像素)的预算,我们的 GreedyFool 的目标攻击成功率为 15.52%15.52\%15.52%,而 PGD0\mathrm{PGD}_{0}PGD0 仅为 5.56%5.56\%5.56%。当预算增加到 1000 个像素(1.1%1.1\%1.1% 像素)时,我们的 GreedyFool 的成功率增加到 84.86%84.86\%84.86%,而 PGD0\mathrm{PGD}_{0}PGD0 仅为 64.20%64.20\%64.20%

总而言之,本文的主要贡献有三方面:1) 我们提出了一种新颖的两阶段基于贪婪的对抗攻击方法,以进一步提高稀疏性。2) 为了生成具有更好不可见性的对抗样本,我们利用 GAN 生成失真代价图作为指导,以找到合适的像素进行修改。3) 大量实验证明了我们方法的卓越性能。对于非目标攻击和目标攻击,我们的方法都大幅优于先前的方法。

在这里插入图片描述图 1:不同稀疏对抗攻击方法生成的对抗样本及其相应的扰动。我们的方法实现了最佳的稀疏性和不可见性。

2 感知失真的稀疏对抗攻击

问题分析。我们将 x\mathbf{x}x 表示源图像,yyy 表示其对应的真实标签。令 H\mathcal{H}H 为目标模型,H(x)c\mathcal{H}(\mathbf{x})_{c}H(x)c 是类别 ccc 的输出逻辑值。对于一个干净的输入 x\mathbf{x}xargmaxcH(x)c=y\mathrm{argmax}_{c}\mathcal{H}(\mathbf{x})_{c} = yargmaxcH(x)c=y。一个对抗样本 xadv=x+r\mathbf{x}^{adv} = \mathbf{x} + \mathbf{r}xadv=x+r 是通过向原始图像 x\mathbf{x}x 添加噪声 r\mathbf{r}r 生成的,并且满足 argmaxcH(xadv)c≠y\mathrm{argmax}_{c}\mathcal{H}(\mathbf{x}^{adv})_{c}\neq yargmaxcH(xadv)c=y。同时,对抗噪声 r\mathbf{r}r 应足够小,以确保对抗样本与原始样本相似。在大多数情况下,这是通过 lpl_plp -范数来衡量的。在本文中,在 l0l_0l0 约束下,它应该是

minr∣r∣0 subject to argmaxcH(xadv)c≠y(1)min_{\mathbf{r}}|\mathbf{r}|_{0}\mathrm{~subject~to~}\mathrm{argmax}_{c}\mathcal{H}(\mathbf{x}^{adv})_{c}\neq y \quad (1)minrr0 subject to argmaxcH(xadv)c=y(1)

然而,这是一个 NP 难问题。因此,我们采用贪婪算法以快速速度找到局部最优结果。更具体地说,我们在每次迭代中基于梯度信息选择 kkk 个当前最优像素,直到攻击成功。但局部最优并不总是全局最优。为了获得更好的稀疏性,我们再次应用贪婪搜索来查找所选点集中的不必要点。同时,为了更好的不可见性,我们使用失真值来指示像素是否适合修改。我们不是手工定义每个像素的失真,而是提出使用生成对抗网络来学习合适的概率定义。

2.1 GreedyFool 对抗攻击

在第一阶段,我们迭代地增加扰动像素的数量,直到找到对抗样本。为清晰起见,我们使用二值掩码 m\mathbf{m}m 来表示像素是否被选中,并将 m\mathbf{m}m 初始化为全零。在每次迭代中,我们对最新修改的图像 xtadv\mathbf{x}_t^{adv}xtadv 运行一次前向-反向传播,以计算损失函数对 xtadv\mathbf{x}_t^{adv}xtadv 的梯度。梯度值较大的像素被认为对对抗性贡献更大。

gt=∇xtadvL(xtadv,y,H)L(x,y,H)=max(H(x)y−maxi≠y{H(x)i},−κ)(2)\begin{array}{rl} & {\mathbf{g}_t = \nabla_{\mathbf{x}_t^{adv}}\mathcal{L}(\mathbf{x}_t^{adv},y,\mathcal{H})}\\ & {\mathcal{L}(\mathbf{x},y,\mathcal{H}) = max(\mathcal{H}(\mathbf{x})_y - max_{i\neq y}\{\mathcal{H}(\mathbf{x})_i\} , - \kappa)} \end{array} \quad (2)gt=xtadvL(xtadv,y,H)L(x,y,H)=max(H(x)ymaxi=y{H(x)i},κ)(2)

其中 L(xtadv,y,H)\mathcal{L}(\mathbf{x}_t^{adv},y,\mathcal{H})L(xtadv,y,H) 是损失函数,∇xtadvL(xtadv,y,H)\nabla_{\mathbf{x}_t^{adv}}\mathcal{L}(\mathbf{x}_t^{adv},y,\mathcal{H})xtadvL(xtadv,y,H)L(xtadv,y,H)\mathcal{L}(\mathbf{x}_t^{adv},y,\mathcal{H})L(xtadv,y,H) 关于 xtadv\mathbf{x}_t^{adv}xtadv 的梯度。这里我们使用来自 C&W [6] 的损失函数进行非目标攻击。κ\kappaκ 是一个控制攻击强度的置信度因子,默认设置为 κ=0\kappa = 0κ=0,并增大它以获得更好的黑盒可迁移性。

为了实现对抗样本的不可见性,我们引入了图像的失真图,其中像素的失真表示像素修改的可见性,失真越高意味着像素修改越容易被观察到。我们将在下一节介绍如何获取失真图。假设失真图为 ρ\rhoρ,其中 ρ∈(0,1)H×W\rho \in (0,1)^{H\times W}ρ(0,1)H×W。为了实现不可见性和稀疏性之间的平衡,我们从 ρ\rhoρ 计算一个扰动权重图 p\mathbf{p}p,并根据 p\mathbf{p}pgt\mathbf{g}_tgt 选择像素。形式化地,

pi,j={0ρi,j⩾τ1(τ1−ρi,j)/(τ1−τ2)τ2<ρi,j⩽τ11ρi,j⩽τ2(3)p_{i,j} = \left\{ \begin{array}{ll}0 & \rho_{i,j}\geqslant \tau_1\\ (\tau_1 - \rho_{i,j}) / (\tau_1 - \tau_2) & \tau_2< \rho_{i,j}\leqslant \tau_1\\ 1 & \rho_{i,j}\leqslant \tau_2 \end{array} \right. \quad (3)pi,j= 0(τ1ρi,j)/(τ1τ2)1ρi,jτ1τ2<ρi,jτ1ρi,jτ2(3)

gt′=p⋅gt⋅(1−m)(4)\mathbf{g}_t' = \mathbf{p}\cdot \mathbf{g}_t\cdot (1 - \mathbf{m}) \quad (4)gt=pgt(1m)(4)

其中 τ1\tau_1τ1τ2\tau_2τ2 是预定义的阈值,默认设置为 ρ\rhoρ 的 70 和 25 百分位数。然后,我们将包含最大 gt′\mathbf{g}_t'gt 值的前 kkk 个未选像素添加到目标扰动像素集,并将 m\mathbf{m}m 的相应值改为 1。最后,我们基于 gt\mathbf{g}_tgtm\mathbf{m}m,以扰动步长 α\alphaα 更新 xtadv\mathbf{x}_t^{adv}xtadv

xt+1adv=Clipxϵ(xtadv+α⋅gt⋅m∣gt⋅m∣)(5)\mathbf{x}_{t + 1}^{\mathrm{adv}} = Clip_{\mathbf{x}}^{\epsilon}(\mathbf{x}_{t}^{\mathrm{adv}} + \alpha \cdot \frac{\mathbf{g}_{t}\cdot\mathbf{m}}{|\mathbf{g}_{t}\cdot\mathbf{m}|}) \quad (5)xt+1adv=Clipxϵ(xtadv+αgtmgtm)(5)

除了失真图指导外,与现有稀疏对抗攻击方法 [30] 相比,我们的方法还有另外两个关键的实现差异。首先,我们通过使用最新更新的梯度,以"贪婪"的方式为每次迭代搜索稀疏对抗噪声,而不是像 SparseFool [30] 中那样使用其他对抗方法估计的模拟方向。这确保了当前迭代的每次选择都是最优的,并在较早的迭代中实现攻击。其次,SparseFool [30] 认为每个像素的对抗贡献是线性可加的,因此它仅更新每个选定像素一次,而我们将此视为非线性过程,并在每次迭代中更新所有选定像素。这也有助于我们更快地实现攻击。同时,我们注意到稀疏攻击对方向敏感,因此我们保留梯度的幅度和符号,而不是仅在每个像素上使用其符号。这使得扰动更加精确,并帮助我们使用比先前方法更少的像素实现攻击。在接下来的实验中,我们将展示当维度较小时,扰动的对抗性对其方向敏感。
在这里插入图片描述

在第一阶段之后,虽然选定的像素已经可以确保成功的稀疏攻击,但我们发现由于贪婪特性,一些像素可能是冗余的。为了获得更稀疏的扰动,有必要将扰动像素的数量最小化。因此,我们采用第二阶段来获得更好的稀疏性。

形式化地,我们维护一个子集 RRR,其中包含对对抗性必要的噪声分量的坐标,并将其初始化为空集。我们假设具有较小扰动值的像素可能比其他像素贡献更少的对抗性。因此,在每次迭代中,我们从子集 {∣rd∣∣rd∈r,rd≠0,d∉R}\{|r_{d}||r_{d}\in \mathbf{r},r_{d}\neq 0,d\notin R\}{rd∣∣rdr,rd=0,d/R} 中选择具有最小扰动值的像素并将其丢弃,然后测试使用丢弃的噪声和一系列步长 α′\alpha^{\prime}α(从 1 到阈值 ϵ\epsilonϵ)生成的图像的对抗性。如果其中至少有一个仍然是对抗样本,我们选择具有最小 α′\alpha^{\prime}α 的对抗样本作为我们的新对抗样本。如果所有生成的图像都不是对抗样本,我们将选定的像素视为必要的对抗分量,并将其坐标添加到 RRR 中。值得注意的是,不同阈值 α′\alpha^{\prime}α 的前向传播可以组合在一个批次中,因此这个过程非常快。

同时,我们的方法可以被视为基于梯度的方法的 l0l_{0}l0 衍生,因此对于给定的目标标签 tart a rtar,我们可以通过简单地将公式 2 中的损失函数替换为

Ltar(x,tar,H)=max(maxt≠tar{H(x)i}−H(x)tar,−κ)(6)\mathcal{L}_{tar}(\mathbf{x},tar,\mathcal{H}) = max(max_{t\neq tar}\{\mathcal{H}(\mathbf{x})_{i}\} -\mathcal{H}(\mathbf{x})_{tar}, - \kappa) \quad (6)Ltar(x,tar,H)=max(maxt=tar{H(x)i}H(x)tar,κ)(6)

来实现目标攻击。

整个攻击过程如算法 1 所示。

2.2 通过生成对抗网络生成失真图

失真图的目的是评估输入图像每个像素的修改可见性。具有高失真的像素意味着修改它时可见性高。先前的方法 [11] 提出了手工制作的 σ\sigmaσ -映射来表示它。然而,σ\sigmaσ -映射仅考虑了 3×33\times 33×3 的局部块并且与频率高度相关,这可能会忽略图像的内容和语义信息。为了解决这个问题,我们提出了一个新的基于 GAN 的框架用于失真图生成。该框架包含一个生成器 GGG 和一个判别器 DDD,如图 2 所示。生成器 GGG 和判别器 DDD 进行极小极大博弈以获得失真图。

在这里插入图片描述图 2:我们提出的基于 GAN 的失真图生成框架示意图。我们计算部分扰动图像 x′\mathbf{x}^{\prime}x 和全局扰动图像 x′′\mathbf{x}^{\prime \prime}x′′ 用于训练。在训练过程中使用 BCE 损失和一个额外的正则化损失。

对于大小为 H×W×CH\times W\times CH×W×C 的给定输入 x\mathbf{x}x,失真图由生成器 GGG 生成:ρ=G(x)\rho = G(\mathbf{x})ρ=G(x),其中 ρ∈(0,1)H×W\rho \in (0,1)^{H\times W}ρ(0,1)H×W。利用失真图 ρ\rhoρ,我们计算扰动图像 x′\mathbf{x}^{\prime}x

x′=Clip((1−ρ)⋅n+x)(7)\mathbf{x}^{\prime} = \mathrm{Clip}((1 - \rho)\cdot \mathbf{n} + \mathbf{x}) \quad (7)x=Clip((1ρ)n+x)(7)

其中 n\mathbf{n}n 是从均匀分布 (−δ,δ)(- \delta ,\delta)(δ,δ) 中采样的随机噪声,δ\deltaδ 是预定义的阈值,我们在实验中设置 δ=8/255\delta = 8 / 255δ=8/255

对于判别器 DDD,它试图区分真实图像 x\mathbf{x}x 和扰动图像 x′\mathbf{x}^{\prime}x。为了使 GAN 训练更稳定,我们还构建了一个全局扰动图像 x′′=x+n\mathbf{x}^{\prime \prime} = \mathbf{x} + \mathbf{n}x′′=x+n 并将其加入以训练判别器 D。因此,判别器 D 的损失为:

LD(x)=−(2log⁡(D(x))+log⁡(1−D(x′))+log⁡(1−D(x′′)))(8)\mathcal{L}_D(\mathbf{x}) = -(2\log (D(\mathbf{x})) + \log (1 - D(\mathbf{x}')) + \log (1 - D(\mathbf{x}''))) \quad (8)LD(x)=(2log(D(x))+log(1D(x))+log(1D(x′′)))(8)

生成器 GGG 的目标是生成一个合适的失真图 p\mathbf{p}p,使得扰动图像 x′\mathbf{x}^{\prime}x 和原始 x\mathbf{x}xDDD 来说不可区分,因此生成器 GGG 会鼓励 ρ=1H×W\rho = \mathbf{1}^{H\times W}ρ=1H×W。在这种情况下,不会对 x\mathbf{x}x 进行任何修改。因此,我们向失真图添加一个正则化损失,要求失真图尽可能小。这个正则化损失将迫使生成器学习向输入图像添加扰动,并使这个扰动图像对判别器来说不可区分。图像上可以添加扰动的位置应该对判别具有较低的可见性,这表明 ρ\rhoρ 的值较小。生成器的总体损失为:

LG(x)=−log⁡(D(x′))+λ∣ρ∣,(9)\mathcal{L}_G(\mathbf{x}) = -\log (D(\mathbf{x}')) + \lambda |\rho |, \quad (9)LG(x)=log(D(x))+λρ,(9)

其中 λ\lambdaλ 是正则化损失的权重,我们在实验中默认选择 1e−51e - 51e5。模型架构和训练细节请参考补充材料。

3 实验

3.1 稀疏性评估

我们首先评估不同扰动阈值下的稀疏性。在 CIFAR10 [22] 数据集上,我们将我们的方法与近期工作进行比较:JSMA [34]、SparseFool [30] 和 PGD0\mathrm{PGD}_0PGD0 [11](σ−PGD0\sigma - \mathrm{PGD}_0σPGD0 用于设置 ϵ≠255\epsilon \neq 255ϵ=255)。对于 ImageNet [12] 数据集,由于 JSMA 速度太慢,无法对大型图像实现对抗攻击,我们只与 SparseFool 和 PGD0\mathrm{PGD}_0PGD0 进行比较。在以下实验中,我们使用 SparseFool [1] 和 PGD0\mathrm{PGD}_0PGD0 [2] 的官方实现,并遵循其默认设置。对于 JSMA,我们使用 FoolBox2.4 [3] 中的实现。对于我们的 GreedyFool,当 ϵ≥128\epsilon \geq 128ϵ128 时,我们设置选择数量 k=1k = 1k=1。当 ϵ<128\epsilon < 128ϵ<128 时,我们将 kkk 初始化为 1,并在每次迭代后增加 1 以获得更快的速度。正如我们在第 1 节中介绍的,PGD0\mathrm{PGD}_0PGD0 需要预定义的扰动像素数量,并且只能计算在此预定义数量下的欺骗率(我们在下文中称之为静态评估,并将其报告为 mmm 像素欺骗率)。而其他方法使用动态像素数扰动图像,并运行直到成功攻击或达到迭代上限,这些方法的评估指标是修改像素数的平均值和中位数(我们称之为动态评估,并在下文中报告扰动像素数的均值、中位数和总欺骗率)。为了公平比较,我们报告了两种度量标准的结果。在以下实验中,我们通过攻击在 ImageNet [12] 数据集上预训练的 Inception-v3 [40] 模型来生成对抗样本。对于 CIFAR10 数据集,我们使用如在 [11] 中使用的预训练的网络中网络(NIN)[25] 模型。为了进行精确比较,我们从 ImageNet 验证集中随机选择 5000 张图像,从 CIFAR10 测试集中选择 10000 张图像生成对抗样本。
在这里插入图片描述表 1:ImageNet 数据集上的非目标攻击稀疏性比较。$m$ 像素欺骗率意味着仅允许扰动最多 $m$ 个像素时的欺骗率。

在这里插入图片描述表 2:CIFAR10 数据集上的非目标攻击稀疏性比较。mmm 像素欺骗率意味着仅允许扰动最多 mmm 个像素时的欺骗率。

非目标攻击结果。ImageNet [12] 和 CIFAR10 数据集上的非目标攻击结果分别显示在表 1 和表 2 中。对于 ImageNet,当 ϵ=255\epsilon = 255ϵ=255 时,对于动态评估,我们的 GreedyFool 的扰动中位数仅为 2727270.03%0.03\%0.03% 像素)即可实现攻击,而 SparseFool 需要扰动 80.5 个像素,比我们多近 3×3\times3×。随着阈值 ϵ\epsilonϵ 降低,两种方法所需的扰动数量增加,而我们的方法仍然大幅优于 SparseFool。当涉及到静态评估时,我们的 GreedyFool 仍然具有最佳性能。我们还注意到,当 m=100m = 100m=100ϵ=255\epsilon = 255ϵ=255 时,σ\sigmaσ - PGD 0_{0}0 的欺骗率远低于 PGD0\mathrm{PGD_0}PGD0PGD0\mathrm{PGD_0}PGD0 的欺骗率为 78.79%78.79\%78.79%,而 σ\sigmaσ - PGD 0_{0}0 仅为 48.13%48.13\%48.13%。与此同时,我们的 GreedyFool 的欺骗率为 82.87%82.87\%82.87%

对于 CIFAR10 数据集,我们发现我们的方法在大多数设置下仍然优于其他方法。唯一的例外是 m=1m = 1m=1ϵ=255\epsilon = 255ϵ=255 的静态评估,这是由于 PGD0\mathrm{PGD_0}PGD0 的重启策略。但随着 mmm 的增加,PGD0\mathrm{PGD_0}PGD0 的欺骗率增长缓慢,而我们的 GreedyFool 迅速增长,并变得优于 PGD0\mathrm{PGD_0}PGD0

在这里插入图片描述表 3:CIFAR10 和 ImageNet 数据集上的速度比较

在这里插入图片描述表 4:CIFAR10 和 ImageNet 数据集上的目标攻击成功率。mmm 像素欺骗率意味着仅允许扰动最多 mmm 个像素时的欺骗率

目标攻击结果。由于 SparseFool 只能实现非目标攻击,这里我们在表 4 中比较与 PGD0\mathrm{PGD_0}PGD0 在 CIFAR 和 ImageNet 数据集上的目标攻击结果。尽管目标攻击比非目标攻击困难得多,我们的 GreedyFool 大幅优于 PGD0\mathrm{PGD_0}PGD0σ\sigmaσ - PGD 000。此外,我们发现 σ\sigmaσ - PGD 000 很难找到目标攻击对抗样本。例如,即使像素预算 m=4000m = 4000m=4000ϵ=255\epsilon = 255ϵ=255,其欺骗率也只有 25.52%25.52\%25.52%

速度比较。这里我们在表 3 中比较我们的 GreedyFool 与现有技术方法的速度。当输入图像较小时,所有方法都能快速实现攻击,我们的 GreedyFool 平均只需要 0.114 秒。在 ImageNet 数据集上,我们的 GreedyFool 仍然可以与其他方法达到相当的速度,同时保证更好的稀疏性。

黑盒迁移攻击结果。正如我们在第 2.1 节介绍的,κ\kappaκ 控制攻击强度,当 κ=0\kappa = 0κ=0 时,一旦生成的对抗样本具有对抗性,我们就停止攻击。当 κ>0\kappa >0κ>0 时,我们继续添加像素以增加攻击置信度,直到逻辑差 maxi≠j{H(x)i}−H(x)j>κmax_{i\neq j}\{\mathcal{H}(\mathbf{x})_{i}\} - \mathcal{H}(\mathbf{x})_{j} > \kappamaxi=j{H(x)i}H(x)j>κ。显然,κ\kappaκ 与我们 GreedyFool 的减少阶段相矛盾,因此我们只使用 GreedyFool 的增加阶段来评估 κ\kappaκ 的影响。这里我们使用黑盒可迁移性来评估对抗性,更高的欺骗率表明更好的对抗性。在本节中,我们在 ImageNet 数据集上与 SparseFool 进行比较。通过攻击一个 DenseNet161 [21] 模型生成对抗样本,使用 ϵ=255\epsilon = 255ϵ=255,并在 VGG16 [38] 和 Resnet50 [20] 模型上测试欺骗率,所有模型都在 ImageNet 数据集上预训练。

结果报告在表 5 中,我们发现当 κ=0\kappa = 0κ=0 时,SparseFool 的黑盒欺骗率分别为 15.67%15.67\%15.67%26.00%26.00\%26.00%,与我们的 GreedyFool 的结果(17.00%17.00\%17.00%23.33%23.33\%23.33%)相似,而我们 GreedyFool 的扰动像素中位数仅为 32.00,比 SparseFool 小近 3.5×3.5\times3.5×。随着 κ\kappaκ 的增加,扰动像素数和可迁移性都增加。当 κ=6\kappa = 6κ=6 时,我们方法的可迁移性比 SparseFool 好近 2×2\times2×,而扰动像素数仍然比它少。上述结果证明我们的 GreedyFool 是高效且灵活的。更多结果请参考补充材料。

在这里插入图片描述表 5:ImageNet 数据集上的黑盒可迁移性。κ\kappaκ 是我们在损失函数公式 2 中使用的置信度因子。这里 FR 表示欺骗率,* 表示白盒攻击结果。

3.2 不可见性评估

对于对抗样本,不可见性是一个重要属性。它可以从两个方面分析:对人眼的不可见性和对机器的不可见性。由于现有方法生成的对抗扰动已经非常小,实现对人眼的不可见性很容易。但对于机器的不可见性,则更具挑战性。最近有许多工作 [5, 7, 46, 28, 29] 使用强大的分类模型来检测对抗样本。在本文中,我们考虑两种基于统计的方法作为机器不可见性的度量。第一种是最先进的基于隐写分析的对抗检测方法 SRM [26]。另一种是尝试训练一个强大的二元 CNN 分类器来将生成的对抗样本与干净图像分开。潜在的动机是,如果对抗样本足够不可见,分类器将难以收敛并导致随机猜测(50%50\%50% 准确率)。更多细节见补充材料。

在表 6 中,我们不仅将我们的方法与稀疏攻击方法进行比较,还比较了一个强大的 l2l_{2}l2 基线 C&W [6] 和 l∞l_{\infty}l 基线 I-FGSM [23]。对于 C&W,我们使用 4 个搜索步骤和每个步骤 25/100 次迭代,我们分别将其表示为 C&W4×25\mathrm{C\& W4\times 25}C&W4×25C&W4×100\mathrm{C\& W4\times 100}C&W4×100。当 ϵ=255\epsilon = 255ϵ=255 时,我们为 PGD0\mathrm{PGD_0}PGD0 设置 l0=200l_{0} = 200l0=200,为 σ\sigmaσ - PGD0\mathrm{PGD_0}PGD0 设置 l0=1000l_{0} = 1000l0=1000,以确保成功率高于 90%90\%90%。当 ϵ=10\epsilon = 10ϵ=10 时,即使我们设置 l0=80000l_{0} = 80000l0=80000,成功率仍然只有 73.56%73.56\%73.56%,因此我们不在此报告。我们发现 ϵ=4\epsilon = 4ϵ=4 的 I-FGSM 最容易被检测到,因为它使用相对较大的扰动阈值并且几乎扰动了所有像素。与 [26] 中的观察一致,SRM 对小扰动非常敏感。即使对于 I-FGSM(ϵ=1\epsilon = 1ϵ=1),其检测率仍然大于 99%99\%99%。对于 C&W\mathrm{C\& W}C&W,由于某些像素上的扰动小于 1,并且在保存图像时通过舍入操作被移除,它相对稀疏并且检测率略低。当涉及基于 l0l_{0}l0 的方法时,由于 SRM 专门设计用于检测小而密集的扰动,它对大而稀疏的噪声不敏感。例如,对于 ϵ=255\epsilon = 255ϵ=255 的 SparseFool,即使对人眼很明显,其检测率也只有 74.36%74.36\%74.36%。对于 PGD0\mathrm{PGD_0}PGD0σ\sigmaσ - PGD0\mathrm{PGD_0}PGD0,受其冗余扰动像素的影响,其检测率分别为 87.80%87.80\%87.80%79.00%79.00\%79.00%。对于我们的 GreedyFool,在失真图指导下,检测率低得多,为 61.54%61.54\%61.54%

对于基于分类器的度量,它对大多数 l2,l∞l_{2},l_{\infty}l2,l 方法效果很好。对于具有 l0l_{0}l0 约束的稀疏攻击方法,当扰动较大 ϵ=255\epsilon = 255ϵ=255 时,训练一个 CNN 二元分类器对于 SparseFool 可以达到 97.66%97.66\%97.66% 的准确率,对于 GreedyFool 为 94.02%94.02\%94.02%。而 PGD0\mathrm{PGD_0}PGD0σ\sigmaσ - PGD0\mathrm{PGD_0}PGD0 也因同样原因表现不佳。随着 ϵ\epsilonϵ 减小,对抗分类准确率下降,但我们的 GreedyFool 表现更好。例如,当 ϵ=10\epsilon = 10ϵ=10 时,SparseFool 的分类准确率为 86.79%86.79\%86.79%,但我们的 GreedyFool 仅为 67.90%67.90\%67.90%。特别是当 ϵ=2.5\epsilon = 2.5ϵ=2.5 时,准确率下降到 50.00%50.00\%50.00%,随机猜测。

在这里插入图片描述表 6:使用 SRM 检测率和二元 CNN 分类器准确率度量的机器不可见性比较。所有对抗样本都是通过非目标攻击在图像大小为 299×299299\times 299299×299 的预训练 Inception-v3 模型上生成的。

3.3 消融研究

GreedyFool 的组件分析。我们进一步分析我们方法的每个部分对稀疏性和不可见性的贡献。在下文中,我们将增加阶段表示为 ‘Incr’,然后评估减少阶段(‘Reduce’)和引入的失真图(‘Dis’)的效果。这里我们设置 ϵ=10\epsilon = 10ϵ=10,并使用二元 CNN 分类器进行不可见性评估。

在这里插入图片描述
表 7:GreedyFool 中每个部分的贡献,这里 FR 和 Acc 分别表示欺骗率和分类器准确率。

从表 7 显示的结果中,我们观察到仅使用 ‘Incr’ 部分,我们的方法已经达到了最先进的稀疏性,修改数量为 188。同时,分类器准确率相对较低(与表 6 中的 C&W 4×1004\times 1004×100 类似)。我们相信如此低的准确率得益于极低的扰动数量。当我们添加 ‘Reduce’ 阶段时,平均修改数量从 537.10 减少到 426.77。这证明了我们的假设,即 ‘Incr’ 阶段贪婪策略的结果不是最优的。随着修改数量减少,我们发现分类器准确率也略有下降。当我们将 ‘Dis’ 部分作为修改位置指导加入我们的方法时,修改数量增加了很多,这是合理的,因为一些对对抗性影响很大但具有高失真的像素被放弃了。然而,分类器准确率从 75.65%75.65\%75.65% 显著下降到 68.50%68.50\%68.50%。这证明了我们的想法,即合适的修改位置对不可见性至关重要。最后,通过结合 ‘Reduce’ 和 ‘Dis’ 部分,我们的方法在稀疏性和不可见性方面都获得了令人满意的结果。

符号或方向。正如我们在第 2.1 节提到的,我们发现当对抗扰动的维度较小时,其对抗性对其方向敏感。在本节中,我们定量评估方向改变的影响。

形式化地,我们将非零噪声从大到小排序,然后使用其中的第 qqq 百分位数来缩放噪声并将其裁剪到 [0,1][0,1][0,1],通过这样的操作,我们将第 qqq 百分比的噪声设置为其符号,并按比例缩放其他小噪声分量。因此,新噪声的方向与原始梯度方向相同(当 q=0q = 0q=0 时),并退化为符号方向(当 q=100q = 100q=100 时)。这里我们设置 ϵ=10\epsilon = 10ϵ=10,并通过余弦相似度评估方向的变化。

在这里插入图片描述<fontsize=‘1’>图 3:通过将梯度的不同百分位数改变为符号对梯度方向的影响。
图 3 显示了梯度方向变化的影响。我们发现当 q=0q = 0q=0 时,平均修改数量仅为 537.10。随着 qqq 的增加,修改方向偏离原始方向,修改数量增加。当 q=100q = 100q=100 时,我们发现余弦相似度仅为 0.75,修改数量增加到 1149.39,几乎是 q=0q = 0q=0 时最佳情况的 2 倍。

这种现象与先前密集攻击方法的结果不同,例如 I-FGSM,使用符号与否的性能差异可以忽略不计。我们根据 [17] 中提出的无穷小累积思想提出了一个合理的解释。[17] 认为对抗样本的存在是因为 DNNs 在高维上不够非线性,因此由小扰动引起的无穷小线性累积并最终改变了预测。当涉及全局 l∞l_{\infty}l 攻击方法时,即使符号操作改变了方向,全局扰动(对于大小为 299×299299 \times 299299×299 和 3 通道的图像为 268203 维)仍然积累了大量的无穷小来改变预测。但当涉及我们的稀疏攻击时,维度要小得多(对于 537.1 个扰动像素和 3 个通道为 1611.3 维),因此每个维度积累的无穷小更重要,方向变化也更敏感。

4 结论

在本文中,我们提出了一种新颖的两阶段感知失真的基于贪婪的稀疏对抗攻击方法 “GreedyFool”。它可以实现比现有最先进的稀疏对抗攻击方法好得多的稀疏性和不可见性。它基本上首先使用梯度选择最有效的候选位置进行修改,然后利用一个减少阶段来丢弃一些不太重要的点。为了获得更好的不可见性,我们提出了使用基于 GAN 的失真图作为第一阶段的指导。未来,我们将进一步研究如何将所提出的想法纳入基于 l2l_{2}l2l∞l_{\infty}l 的对抗攻击中,以帮助实现更好的不可见性。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐