Anti-Bandit Neural Architecture Search for Model Defense

news2024/11/14 1:32:05

模型防御的Anti-Bandit网络架构搜索

在这里插入图片描述

论文链接:https://arxiv.org/abs/2008.00698(ECCV2020)

项目链接:https://github.com/bczhangbczhang/ABanditNAS

    • 模型防御的Anti-Bandit网络架构搜索
    • Abstract
    • 1 Introduction
    • 2 Related Work
    • 3 Anti-Bandit网络架构搜索
      • 3.1 搜索空间
      • 3.2 ABanditNAS的对抗优化
      • 3.3 Anti-Bandit
      • 3.4 ABanditNAS的Anti-Bandit策略
    • 4 Experiments
      • 4.1 实验方案
      • 4.2 不同数据集上的结果
      • 4.3 消融研究
    • 5 Conclusion

Abstract

深度卷积神经网络(DCNNs)在机器学习中表现最好,但也可能受到对抗性攻击的挑战。在本文中,我们使用基于去噪块、无权重操作、Gabor滤波器和卷积的综合搜索的神经结构搜索(NAS)来防御对抗性攻击。由此产生的Anti-BanditNAS (ABanditNAS)包含了一种新的基于上下置信限(LCB和UCB)的作战评价度量和搜索过程。与仅使用UCB进行评估的传统强盗算法不同,我们使用UCB来abandon arms以提高搜索效率,使用LCB来实现武器之间的公平竞争。大量实验表明,ABanditNAS比其他NAS方法更快,同时在PGD-7下实现了比现有技术在CIFAR-10上的8.73%的改进。

1 Introduction

深度学习模型[4]的成功已经在各种计算机视觉任务中得到了证明,如图像分类[19]、实例分割[26]和目标检测[37]。然而,现有的深度模型对对抗性攻击很敏感[6,17,38],在输入图像中添加难以察觉的扰动会导致模型执行不正确。Szegedy等人[38]还观察到,这些对抗性示例可以在多个模型之间转移,因此为一个模型生成的对抗性示例也可能误导其他模型。因此,在现实世界场景中部署的模型容易受到对抗性攻击[25]。虽然已经提出了许多方法来防御这些攻击[38,8],但改进网络训练过程被证明是最受欢迎的方法之一。这些方法将对抗性示例注入训练数据中,以重新训练网络[17,22,1]。同样,预处理防御方法通过在将对抗图像输入到分类器之前将其转换为干净图像,将对抗输入修改为类似于干净输入[36,23]。

然而,总体而言,使用神经架构搜索(NAS)寻找对抗鲁棒架构显示出更有希望的结果[8,12,28,30]。NAS在各种深度学习任务中表现优异,备受关注。在[8]中,研究人员通过NAS研究了对抗性鲁棒性对网络架构的依赖性。[30]提出了一种用于对抗性医学图像分割的神经结构搜索框架。[28]利用one-shot NAS[3]来了解网络架构对对抗性攻击的影响。尽管现有的基于NAS的方法取得了很好的性能,但这一方向在很大程度上仍未被探索。

本文将NAS作为多武装盗匪问题来考虑模型防御,并将一种新的Anti-Bandit算法引入到对抗鲁棒网络结构搜索中。为了提高对对抗性攻击的鲁棒性,设计了一个综合的搜索空间,包括各种操作,如去噪块、无权重操作、Gabor滤波器和卷积。然而,由于复杂的搜索空间和对抗性训练导致的学习效率低下,搜索一个鲁棒的网络架构比传统的NAS更具挑战性。我们开发了一种基于上置信度界(UCB)和下置信度界(LCB)的Anti-Bandit算法来处理巨大而复杂的搜索空间,其中定义空间的操作次数可以达到960!我们的Anti-Bandit算法使用UCB来减少搜索空间,使用LCB来保证每条arm在被丢弃之前都经过公平的测试。

利用LCB,早期性能较差的操作,如参数化操作,将获得更多的机会,但一旦确认是不好的,就会被丢弃。同时,无权重操作只有在训练有素的情况下才会与参数化操作进行比较。基于观察到早期的最优操作不一定是最终的最优操作,并且早期最差的操作通常在最终的性能更差[46],我们利用UCB在通过LCB进行公平的性能评估后,提前修剪最差的操作。这意味着我们最终保留的操作肯定是接近最优的解决方案。另一方面,随着操作剪枝过程的进行,搜索空间越来越小,使得搜索过程更加高效。我们的框架如图1所示,突出了Anti-bandits NAS (ABanditNAS),用于从非常复杂的搜索空间中找到鲁棒的架构。本文的贡献如下:

  • ABanditNAS是为了在一个统一的框架中解决对抗鲁棒优化和架构搜索而开发的。提出了一种基于特定操作搜索策略的Anti-Bandit算法,该算法具有上下边界,可以学习基于综合操作空间的鲁棒架构。
  • 我们的Anti-Bandit修剪方法大大减少了搜索空间,它放弃了潜力较小的操作,并显著降低了搜索复杂度,从指数到多项式,即 O ( K ∣ E M ∣ × v ) \mathcal{O}(K^{|\mathcal{E}_{\mathcal{M}}|\times v}) O(KEM×v) O ( K 2 × T ) \mathcal{O}(K^{2}\times T) O(K2×T)(详见章节3.4)。
  • 大量的实验表明,该算法在常用的MNIST和CIFAR-10上取得了比其他对抗鲁棒模型更好的性能。

在这里插入图片描述

2 Related Work

网络架构搜索(NAS)。NAS成为深度学习范式中最有前途的技术之一。基于强化学习(RL)的方法[49,48]训练和评估了20多种;在4天内,在500个GPU上建立了20000个神经网络。最近的可微分架构搜索(DARTS)通过以可微分的方式表述任务来减少搜索时间[24]。然而,对于复杂的搜索空间,DARTS及其变体[24,42]可能效率较低。为了加快搜索过程,引入了一种one-shot策略,在几个GPU天内完成NAS[24,32]。在这种one-shot的架构搜索中,搜索空间中的每个架构都被视为从超图中采样的子图,通过参数共享可以加速搜索过程[32]。虽然[8]使用NAS和强化学习来寻找获得良好结果的对抗鲁棒架构,但与搜索时间相比,它是微不足道的。这些方法在搜索策略中也很少考虑与模型防御密切相关的操作的高度多样性。

对抗攻击。最近的研究表明,神经网络在对抗性例子面前表现出明显的脆弱性。在[38]发现对抗性示例后,[17]提出了快速梯度符号法(FGSM),通过单个梯度步长生成对抗性示例。后来,在[22]中,研究人员提出了基本迭代法(BIM),该方法采用多个较小的FGSM步骤来改进FGSM,但使对抗性训练非常缓慢。这种迭代的对抗性攻击通过添加多个随机重启而得到进一步加强,并且也被纳入对抗性训练过程中。此外,投影梯度下降(PGD)[27]对手攻击是BIM的一种变体,以均匀随机噪声作为初始化,被认为是最强大的一阶攻击之一[1]。其他流行的攻击包括Carlini和Wagner攻击[6]和动量迭代攻击[11]。其中,[6]通过提出多个对抗损失函数,设计了各种像素空间 l p l_p lp范数球约束下的最先进攻击。

模型防御。为了抵御攻击,已经提出了各种方法。一类防御方法改进了网络训练机制,以对抗对抗性攻击。最常见的方法是对抗性训练[22,29],在训练数据中加入对抗性示例。在[27]中,引入了一种称为Min-Max优化的防御方法,用一阶攻击样本增强训练数据。[39]研究了对抗鲁棒模型在训练过程中对图像和标签进行扰动的快速训练。还有一些模型防御方法的目标是通过在将输入图像馈送到网络之前对其进行变换来消除对抗性扰动[23,1,18]。在[13,9]中,研究了JPEG压缩对去除对抗性噪声的影响。在[31]中,作者应用了一组滤波器,如中值滤波器和平均滤波器来去除扰动。在[43]中,引入了一种ME-Net方法来破坏对抗噪声并增强原始图像的全局结构。随着NAS的发展,利用NAS寻找对抗鲁棒性架构是另一个有前景的方向[8],值得深入探索。最近,[30]在搜索空间中设计了三种类型的原语操作集,自动寻找语义图像分割的双单元架构,特别是医学图像分割,形成了NAS-Unet骨干网。

本文将一种Anti-Bandit算法引入到NAS中,并开发了一种新的优化框架来生成对抗鲁棒网络。与[20]使用bandits生成黑盒对抗样本不同,我们提出了一种Anti-Bandit算法来获得鲁棒的网络架构。此外,现有的基于NAS的模型防御方法要么针对与我们不同的应用,要么在目标分类方面效率较低[8,12,28,30]。

3 Anti-Bandit网络架构搜索

3.1 搜索空间

在这里插入图片描述

在[49,24,46,47,7]之后,我们搜索计算单元作为最终架构的构建块。与这些方法不同的是,我们搜索v (v > 2)种单元,而不仅仅是正常单元和还原单元。虽然它增加了搜索空间,但我们在ABanditNAS中减少了搜索空间可以使搜索足够高效。单元是M个节点的全连通有向无环图(DAG),即 { B 1 , B 2 , . . . , B M } \{B_{1},B_{2},...,B_{M}\} {B1,B2,...,BM},见图2(a)。每个节点Bi以其依赖的节点作为输入,并通过选择操作 B j = o ( i , j ) ( B i ) B_j = o(i,j) (B_i) Bj=o(i,j)(Bi)产生输出:这里每个节点是一个特定的张量(例如卷积神经网络中的特征映射)和每个有向边 ( i , j (i,j (i,j)在 B i B_i Bi B j B_j Bj之间表示操作 o ( i , j ) ( . ) o (i,j)(.) o(i,j)(.),从 Ω ( i , j ) = { o 1 ( i , j ) , . . . , o K ( i , j ) } \Omega^{(i,j)}=\{o_{1}^{(i,j)},...,o_{K}^{(i,j)}\} Ω(i,j)={o1(i,j),...,oK(i,j)}中采样。注意,约束 i < j i < j i<j确保单元中没有循环。每个单元都将前一个单元的输出作为输入,为了便于描述,我们将属于前一个单元的这个节点定义为当前单元的输入节点 B 0 B_0 B0。操作集 Ω Ω Ω由K = 9个操作组成。在[24]之后,有七种正常的操作,分别是3×3最大池化、3×3平均池化、跳跃连接(identity)、 rate为2的3×3卷积、 rate为2的5 × 5卷积、3×3深度可分卷积和5 × 5深度可分卷积。另外两个是3×3 Gabor滤波器和去噪块。因此,整个搜索空间的大小为 K ∣ E M ∣ × v K^{|\mathcal{E}_{\mathcal{M}}|\times v} KEM×v,其中 E M \mathcal{E}_{\mathcal{M}} EM为全连接DAG中具有M个中间节点的可能边的集合。单元的搜索空间由所有边的操作构成,记为 Ω ( i , j ) \Omega^{(i,j)} Ω(i,j)。在M = 4, v = 6的情况下,加上输入节点,搜索空间中单元结构的总数为9(1+2+3+4)×6 = 910×6

Gabor滤波器。Gabor小波[16,15]是由Dennis Gabor发明的,使用复函数作为信息理论应用中傅里叶变换的基础。图2(b)中的Gabor小波(核或滤波器)定义为: exp ⁡ ( − x ′ 2 + γ 2 y ′ 2 2 σ 2 ) cos ⁡ ( 2 π x ′ λ + ψ ) \exp(-\frac{x^{\prime2}+\gamma^{2}y^{\prime2}}{2\sigma^{2}})\cos(2\pi\frac{x^{\prime}}{\lambda}+\psi) exp(2σ2x′2+γ2y′2)cos(2πλx+ψ),其中 x ′ = x cos ⁡ θ + y sin ⁡ θ x^{\prime}=x\cos\theta+y\sin\theta x=xcosθ+ysinθ y ′ = − x sin ⁡ θ + y cos ⁡ θ y^{\prime}=-x\sin\theta+y\cos\theta y=xsinθ+ycosθ。我们设置σ, γ, λ和θ为可学习参数。请注意,这里使用的符号仅适用于Gabor滤波器,与本文其余部分使用的符号不同。小波的一个重要特性是,其标准偏差的乘积在时域和频域都是最小的。此外,鲁棒性是我们在这里使用的另一个重要性质[33]。

去噪模块。在[41]中,研究人员认为图像上的对抗性扰动会导致特征中的噪声。因此,使用图2©的去噪块通过特征去噪来提高对抗鲁棒性。同样,我们在搜索空间中加入非局部均值去噪块[5]来对特征进行去噪。它通过在所有空间位置L上取特征的加权平均值,计算输入特征映射 x x x的去噪特征映射 z z z z p = 1 C ( x ) ∑ ∀ q ∈ L f ( x p , x q ) ⋅ x q z_{p}=\frac{1}{C(x)}\sum_{\forall q\in\mathcal{L}}f(x_{p},x_{q})\cdot x_{q} zp=C(x)1qLf(xp,xq)xq,其中 f ( x p , x q ) f(x_p,x_q) f(xp,xq)是一个特征相关的权重函数, C ( x ) C(x) C(x)是一个归一化函数。此外,由于特征之间的矩阵乘法,去噪块需要大量的计算量。

众所周知,对抗训练比自然训练更具挑战性[34],这给NAS增加了额外的负担。例如,使用F步PGD攻击的对抗性训练需要大约F+1倍的计算量。此外,在搜索空间中添加更多操作是另一个负担。为了解决这些问题,我们将基于UCB bandit算法的运算空间缩减引入到NAS中,显著降低了GPU小时的成本,从而实现了高效的ABanditNAS。

3.2 ABanditNAS的对抗优化

对抗性训练[27]是一种学习网络的方法,使其对对抗性攻击具有鲁棒性。给定一个由θ参数化的网络fθ,一个数据集 ( x e , y e ) , \left(x_{e},y_{e}\right), (xe,ye),,一个损失函数 l l l和一个威胁模型 Δ \Delta Δ,学习问题通常表现为以下优化问题: min ⁡ θ ∑ e max ⁡ δ ∈ Δ l ( f θ ( x e + δ ) , y e ) \operatorname*{min}_{\theta}\sum_{e}\operatorname*{max}_{\delta\in\Delta}l\big(f_{\theta}(x_{e}+\delta),y_{e}\big) minθemaxδΔl(fθ(xe+δ),ye),其中 δ δ δ是对抗性扰动。对于某个 ϵ > 0 \epsilon>0 ϵ>0的威胁模型,一个典型的选择是取 Δ = { δ : ∥ δ ∥ ∞ ≤ ϵ } \Delta=\{\delta:\|\delta\|_{\infty}\leq\epsilon\} Δ={δ:δϵ},其中 ∥ ⋅ ∥ ∞ \|\cdot\|_{\infty} 是某个 l ∞ l_{\infty} l范数距离度量,是对抗性操作预算。这是[27]使用的 l ∞ l_{\infty} l威胁模型,也是我们在本文中考虑的。对抗性训练的过程是使用攻击来近似∆的内部最大值,然后对模型参数θ进行梯度下降的一些变化。例如,最早的对抗性训练之一使用快速梯度符号方法(FGSM)[17]来近似内部最大化。这可以看作是 l ∞ l_{\infty} l扰动的内部最大值的相对不准确的近似,并且具有封闭形式解: θ = ϵ ⋅ s i g n ( ∇ x l ( f ( x ) , y ) ) \theta=\epsilon\cdot\mathrm{sign}\Big(\nabla_{x}l\big(f(x),y\big)\Big) θ=ϵsign(xl(f(x),y))

内部最大化的一个更好的近似是采取多个较小的大小为 α α α的FGSM步长。然而,在单个历元中,由多个步骤引起的梯度计算次数与 O ( E F ) \mathcal{O}(EF) O(EF)成正比,其中E是数据集的大小,F是PGD对手采取的步数。这比标准训练(每个epoch有 O ( E ) \mathcal{O}(E) O(E)个梯度计算)大F倍,因此对抗训练通常要慢F倍。为了加速对抗性训练,我们将FGSM与随机初始化相结合[40]。

3.3 Anti-Bandit

在机器学习中,multi-armed bandit问题[2,35]是一个典型的强化学习(RL)问题,它体现了探索-利用的权衡困境:我们是应该坚持到目前为止给予高回报的arm利用),还是应该进一步探索其他arm(探索)?上置信度界(UCB)被广泛用于处理multi-armed bandit问题中的exploration-exploitation困境。例如,bandit思想被用来改进许多经典的强化学习方法,如蒙特卡罗[21]和Q-学习[14]。最著名的是AlphaGo[35],它使用蒙特卡罗树搜索(MCTS)算法来玩棋盘游戏围棋,但基于一个非常强大的计算平台,这是普通研究人员无法获得的。简而言之,UCB算法在试验中选择最大的arm k:
r ^ k + 2 log ⁡ N n k , (1) \hat{r}_k+\sqrt{\frac{2\log N}{n_k}}, \tag{1} r^k+nk2logN ,(1)
其中 r ^ k \hat{r}_k r^k平均从arm k获得奖励和 n k n_k nk是第k arm到试验N的次数。公式1中的第一项是有利于历史上看起来不错的行动的价值项,第二项是探索项,它使行动获得以log n增长的探索奖励。总价值可以解释为置信区间的上界,因此每个arm k具有高概率的真实平均奖励低于该UCB。

bandit中的UCB并不适用于NAS,因为从巨大的搜索空间(大量的arm,例如960)中选择一个arm太费时,特别是在计算资源有限的情况下。为了解决这一问题,我们引入了一种Anti-Bandit算法,通过将上置信度界(UCB)和下置信度界(LCB)结合到传统的盗匪算法中来减少大arm问题的arm。我们首先将LCB定义为:
r ^ k − 2 log ⁡ N n k . (2) \hat{r}_k-\sqrt{\frac{2\log N}{n_k}}. \tag{2} r^knk2logN .(2)
LCB被设计为从大量的arm中采样一个arm进行一次试验(稍后在公式3中)。较小的LCB意味着较少的arm(较小的 n k n_k nk)有更大的机会被采样进行一次试验。与传统的强盗基于最大UCB (公式 1)来选择arm不同,我们的UCB (公式6)是用来放弃最小值的arm操作,这就是为什么我们的算法被称为Anti-Bandit。

我们的Anti-Bandit算法是专门针对大arm bandit问题设计的,在UCB的基础上减少了arm的数量。与LCB一起,它可以保证每个arm在被废弃之前都经过公平的测试。

3.4 ABanditNAS的Anti-Bandit策略

如[44,46]所述,不同网络体系结构的验证精度排序并不是最终体系结构质量的可靠指标。然而,实验结果实际上表明了一个很好的特性,即如果一个架构在训练开始时表现不佳,那么它几乎没有希望成为最终最优模型的一部分[46]。随着训练的进行,这个观察结果越来越确定。在此基础上,推导出一种简单而有效的弃算方法。在训练过程中,随着时代的增加,我们逐渐放弃每条边表现最差的操作。与[46]仅使用性能作为评估指标来决定应该修剪哪些操作不同,我们使用下面描述的Anti-bandit算法来决定应该修剪哪些操作。

在这里插入图片描述

根据bandit算法中的UCB,我们得到了每条边上每个操作的初始性能。具体来说,我们对每条边从 Ω ( i , j ) Ω(i,j) (i,j)中的K个操作中采样一个,然后通过对采样网络进行一个epoch的对抗训练,最后将该精度分配给所有采样操作,从而获得验证精度 a a a,即初始性能 m k , 0 ( i , j ) m_{k,0}^{(i,j)} mk,0(i,j)

通过考虑每条边的第k次操作与UCB的置信度,计算LCB为
s L ( o k ( i , j ) ) = m k , t ( i , j ) − 2 log ⁡ N n k , t ( i , j ) , (3) s_L(o_k^{(i,j)})=m_{k,t}^{(i,j)}-\sqrt{\frac{2\log N}{n_{k,t}^{(i,j)}}}, \tag{3} sL(ok(i,j))=mk,t(i,j)nk,t(i,j)2logN ,(3)
式中,N为样本总数, N k , t ( i , j ) N^{(i,j)}_{k,t} Nk,t(i,j)为第k次边(i,j)操作被选择的次数, t为epoch索引。公式3中的第一项是有利于历史上看起来不错的操作的值项,第二项是探索项,它允许操作获得以log n增长的探索奖励。每个操作的选择概率定义为:
p ( o k ( i , j ) ) = exp ⁡ { − s L ( o k ( i , j ) ) } ∑ m exp ⁡ { − s L ( o m ( i , j ) ) } . (4) p(o_k^{(i,j)})=\frac{\exp\{-s_L(o_k^{(i,j)})\}}{\sum_m\exp\{-s_L(o_m^{(i,j)})\}}. \tag{4} p(ok(i,j))=mexp{sL(om(i,j))}exp{sL(ok(i,j))}.(4)
公式4中的负号意味着我们更喜欢用较小的置信度对操作进行抽样。基于 p ( o k ( i , j ) ) p(o_k^{(i,j)}) p(ok(i,j))对每条边进行一次操作采样后,通过对采样网络进行一个epoch的反训练得到验证精度 a a a,然后更新性能 m k , t ( i , j ) m_{k,t}^{(i,j)} mk,t(i,j),历史上表示所有采样操作 o k ( i , j ) o_{k}^{(i,j)} ok(i,j)的验证精度为:
m k , t ( i , j ) = ( 1 − λ ) m k , t − 1 ( i , j ) + λ ∗ a , (5) m_{k,t}^{(i,j)}=(1-\lambda)m_{k,t-1}^{(i,j)}+\lambda*a, \tag{5} mk,t(i,j)=(1λ)mk,t1(i,j)+λa,(5)
其中λ是超参数。

最后,在K * T个样本(其中T是一个超参数)之后,我们根据公式1计算UCB的置信度为:
s U ( o k ( i , j ) ) = m k , t ( i , j ) + 2 log ⁡ N n k , t ( i , j ) . (6) s_U(o_k^{(i,j)})=m_{k,t}^{(i,j)}+\sqrt{\frac{2\log N}{n_{k,t}^{(i,j)}}}. \tag{6} sU(ok(i,j))=mk,t(i,j)+nk,t(i,j)2logN .(6)
放弃对每个边使用最小UCB的操作。这意味着那些被给予更多机会但性能较差的操作将被删除。通过这种修剪策略,搜索空间从 ∣ Ω ( i , j ) ∣ 10 × 6 |\Omega^{(i,j)}|^{10\times6} Ω(i,j)10×6显著缩减到$ (|\Omega{(i,j)}|-1){10\times6}$,缩减后的空间变为
Ω ( i , j ) ← Ω ( i , j ) − { arg ⁡ min ⁡ o k ( i , j ) s U ( o k ( i , j ) ) } , ∀ ( i , j ) . (7) \Omega^{(i,j)}\leftarrow\Omega^{(i,j)}-\{\arg\min_{o_{k}^{(i,j)}}s_{U}(o_{k}^{(i,j)})\},\forall(i,j). \tag{7} Ω(i,j)Ω(i,j){argok(i,j)minsU(ok(i,j))},(i,j).(7)
重复进行约简过程,直到得到每条边只剩下一次操作的最优结构。我们的Anti-Bandit搜索算法在算法1中进行了总结。

复杂度分析。在具有v种不同单元的搜索空间中寻找最优架构的过程中,有 O ( K ∣ E M ∣ × v ) \mathcal{O}(K^{|\mathcal{E}_{\mathcal{M}}|\times v}) O(KEM×v)个组合。相比之下,ABanditNAS减少了每个K∗T历元的搜索空间。
因此,所提出方法的复杂度为:
O ( T × ∑ k = 2 K k ) = O ( T K 2 ) . (8) \mathcal{O}(T\times\sum_{k=2}^{K}k)=\mathcal{O}(TK^{2}). \tag{8} O(T×k=2Kk)=O(TK2).(8)

4 Experiments

我们在图像分类任务的两个基准数据集(MNIST和CIFAR-10)上展示了我们的ABanditNAS的鲁棒性,并将ABanditNAS与最先进的鲁棒模型进行了比较。

4.1 实验方案

搜索和训练设置。在搜索过程中,过度参数化网络由6个单元组成,其中第2和第4单元分别用于将特征图的通道增加一倍,将特征图的高度和宽度减半。每个单元中有M = 4个中间节点。表示采样次数的超参数T设为3,因此总epoch数为 ∑ k = 2 K k ∗ T \sum_{k=2}^{K}k*T k=2KkT。超参数λ设为0.7。超参数的求值在补充文件中提供。批量大小为512。我们对CIFAR-10使用了一个额外的正则化cutout[10]。初始通道数为16。我们采用FGSM对抗训练结合随机初始化,MNIST为 ϵ \epsilon ϵ= 0.3, CIFAR-10为 ϵ \epsilon ϵ= 0.031。我们使用带动量的SGD来优化网络权重,MNIST的初始学习率为0.025,CIFAR-10的初始学习率为0.1(在余弦调度后退火为零),MNIST/CIFAR-10的动量为0.9,权重衰减为3 × 10−4

搜索完成后,将6个单元进行堆叠,得到最终的网络。为了对抗性训练它们,我们在MNIST上使用FGSM结合随机初始化和 ϵ \epsilon ϵ= 0.3,在CIFAR-10上使用 ϵ \epsilon ϵ= 0.031和步长为0.0078的PGD-7。接下来,我们在训练过程中使用ABanditNAS-V用V单元表示ABanditNAS。数字V可以与数字v不同。MNIST的初始通道数为16,CIFAR-10的初始通道数为48。对于CIFAR-10,我们使用96个批大小和一个额外的正则化cutout[10]。我们使用SGD优化器,MNIST的初始学习率为0.025,CIFAR-10的初始学习率为0.1(在没有重新启动的情况下,在余弦调度后退火到零),动量为0.9,权重衰减为3×10−4,梯度裁剪为5。我们为MNIST和CIAFR-10训练了200个epoch。

白盒攻击与黑盒攻击设置。在对抗环境中,存在两种主要的威胁模式:白盒攻击,对手完全了解目标模型,包括其参数、架构和训练方法;黑盒攻击,攻击者在测试时提供受干扰的图像,这些图像是在不了解目标模型的情况下生成的,并观察输出。我们评估了我们提出的防御对这两种设置的鲁棒性。对于白盒攻击和黑盒攻击,摄动大小和步长与对抗性训练中的相同。MI-FGSM和BIM的迭代次数都设置为10,步长和标准扰动大小与白盒攻击相同。我们评估了ABanditNAS对抗基于传输的攻击,其中受害者网络的副本使用相同的训练设置进行训练。我们将类似于白盒攻击的攻击应用于复制的网络来生成黑盒对抗示例。我们还使用ResNet-18模型生成对抗性样本,并将它们输入到模型中获得ABanditNAS。

4.2 不同数据集上的结果

MNIST。由于anti-bandit减少了搜索空间,整个搜索过程在单个NVIDIA Titan V GPU上只需要1.93小时。对于MNIST,直接使用ABanditNAS搜索到的结构进行训练。我们通过40和100个攻击步骤对训练好的网络进行评估,并将我们的方法与表1中的LeNet[27]和MeNet[43]进行比较。从这些结果可以看出,无论采用哪种攻击方式,使用FGSM随机初始化对抗训练的ABanditNAS都比使用PGD-40对抗训练的LeNet具有更强的鲁棒性。尽管MeNet使用矩阵估计(ME)作为预处理来破坏噪声的对抗结构,但我们的方法仍然表现更好。此外,我们的方法在干净图像上表现最佳(99.52%),具有较强的鲁棒性。

在这里插入图片描述

对于黑盒攻击,从表2可以看出,与其他模型(无论是手工设计的还是NAS搜索的)相比,黑箱攻击对ABanditNAS搜索的结构几乎没有影响。

在这里插入图片描述

如图3(a)所示,随着扰动大小的增加,我们的网络性能并没有明显下降,表明了我们方法的鲁棒性。

在这里插入图片描述

在此基础上,我们将传统的基于UCB采样操作的bandit 算法应用于网络搜索,得到了UCBNAS。UCBNAS与ABanditNAS的主要区别在于UCBNAS仅将UCB作为选择操作的评价指标,不涉及操作修剪。与UCBNAS相比,在对抗性攻击下,ABanditNAS的性能更好,搜索时间更短,如表1所示。此外,为了进一步证明我们的ABanditNAS的有效性,我们使用带修剪的UCBNAS来搜索一个鲁棒模型,该模型不仅使用UCB来选择操作,而且还使用较少潜力的修剪操作。尽管UCBNAS(修剪)与ABanditNAS一样快,但由于在修剪前操作之间存在不公平竞争,其性能不如ABanditNAS。

CIFAR-10。表3总结了CIFAR-10上不同架构的结果。我们使用一个Titan V GPU进行搜索,批处理大小为512。整个搜索过程耗时约1.94小时。我们考虑V = 6和V = 10的单元进行训练。此外,我们还训练了一个更大的网络变体,在V = 6时具有100个初始通道。与Wide-ResNet相比,ABanditNAS-10不仅在PGD-7中实现了更好的性能(50.0% vs. 58.74%),而且参数更少(45.9M vs. 5.188M)。虽然VGG-16在PGD-10攻击下的结果是一样的,但ABanditNAS-10在更严重的攻击PGD-20攻击下表现更好(46.04% vs. 50.51%)。与在干净图像上具有更好性能的NASNet5相比,我们的方法在对抗性示例上获得了更好的性能,搜索速度快得多(~ 7 × 2000 vs. 0.08)。请注意,表3中的结果是我们得到的最好结果,它是不稳定的,需要更多的试验才能得到结果。从表2可以看出,黑匣子攻击对ABanditNAS获取的网络几乎没有影响,远远小于其他方法。此外,从图3(b)可以看出,当扰动增加时,ABanditNAS仍然具有鲁棒性。

在这里插入图片描述

对于ABanditNAS在CIFAR-10上搜索的结构,我们发现鲁棒结构更倾向于池化操作、Gabor滤波器和去噪块(图4)。原因是池化可以增强非线性建模能力,Gabor滤波器可以提取鲁棒特征,去噪块和均值池可以作为去噪的平滑滤波器。ABanditNAS通常在单元前面设置Gabor滤波器和去噪块,对前一单元编码的特征进行去噪。设置与[41]一致,说明了ABanditNAS的合理性。

在这里插入图片描述

4.3 消融研究

利用不同λ值的ABanditNAS搜索结构的性能来寻找最佳λ。我们在相同的环境下训练结构。

超参数λ的影响:超参数λ用于平衡过去和当前的性能。不同的λ值导致相似的搜索代价。从图5可以看出,当λ = 0.7时,ABanditNAS的鲁棒性最强。

在这里插入图片描述

5 Conclusion

我们提出了一种ABanditNAS方法来设计鲁棒的结构来防御对抗性攻击。为了解决复杂的巨大搜索空间和对抗性训练过程带来的搜索难题,我们引入了一种Anti-Bandit算法来提高搜索效率。我们已经根据上界和下界研究了我们的策略和潜在操作之间的关系。大量的实验表明,所提出的ABanditNAS比其他最先进的NAS方法要快得多,并且在准确性方面具有更好的性能。在对抗性攻击下,ABanditNAS取得了比其他方法更好的性能。

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

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

相关文章

前端项目重新打包部署后如何通知用户更新

前端项目重新打包部署后如何通知用户更新 前端项目重新打包部署后如何通知用户更新常用的webSocket解决方案纯前端方案路由拦截多线程main.ts中 创建多线程多线程逻辑处理 前端项目重新打包部署后如何通知用户更新 前端项目重新打包部署后&#xff0c;由于用户没及时更新页面&…

Vue 自定义文字提示框

目录 前言代码演示相关代码文字提示框组件定义组件调用前言 今天开发遇上了一个新的问题,要求写一个带着滑动动画的文字提示框。但是我经常使用的Element-UI组件库只有淡入淡出效果,并且想要修改样式只能全局修改,非常不利于后期的开发。因此,我最终选择直接自定义一个符合…

VAuditDemo文件漏洞

目录 VAuditDemo文件漏洞 一、首页文件包含漏洞 包含图片马 利用伪协议phar:// 构造shell.inc被压缩为shell.zip&#xff0c;然后更改shell.zip 为 shell.jpg上传 二、任意文件读取漏洞 avatar.php updateAvatar.php logCheck.php 任意文件读取漏洞利用 VAuditDemo文件…

Python中使用SQLite数据库的方法4-3

对于数据库的操作&#xff0c;主要包括“增”、“删”、“改”、“查”四种。在Python中使用SQLite数据库的方法4-1_python的sqlite怎么打开-CSDN博客和Python中使用SQLite数据库的方法4-2_python2 sqlite2-CSDN博客中实现增”、“删”和“查”三种操作。 1 带过滤条件的“查”…

C语言基础(七)

1、二维数组&#xff1a; C语言中的数组是一种基本的数据结构&#xff0c;用于在计算机内存中连续存储相同类型的数据。 数组中的每个元素可以通过索引&#xff08;或下标&#xff09;来访问&#xff0c;索引通常是从0开始的。数组的大小在声明时确定&#xff0c;并且之后不能…

在Linux下搭建go环境

下载go go官网&#xff1a;All releases - The Go Programming Language 我们可以吧压缩包下载到Windows上再传到Linux上&#xff0c;也可以直接web下载&#xff1a; wget https://golang.google.cn/dl/go1.23.0.linux-amd64.tar.gz 解压 使用命令解压&#xff1a; tar -x…

Leetcode JAVA刷刷站(57)插入区间

一、题目概述 二、思路方向 为了解决这个问题&#xff0c;我们可以遍历给定的区间列表 intervals&#xff0c;并同时构建一个新的列表来存储最终的合并结果。遍历过程中&#xff0c;我们检查当前区间是否与 newInterval 重叠或相邻&#xff0c;并根据需要进行合并。如果不重叠…

虚拟化平台kvm架构 部署kvm虚拟化平台

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

在HarmonyOS中使用RelativeContainer实现相对布局

在应用开发中&#xff0c;布局设计至关重要&#xff0c;尤其是当我们需要处理复杂的界面时&#xff0c;合理的布局设计不仅能够提升界面的美观性&#xff0c;还能够提高应用的性能。在HarmonyOS中&#xff0c;RelativeContainer是一个强大的布局容器&#xff0c;它允许开发者通…

【Qt】 对象树 与 乱码问题

文章目录 1. 对象树在堆上开辟空间 并管理栈上开辟 与 堆上开辟 的区别 2. 乱码问题的解释编码方式的区分出现乱码的原因查看当前文件的编码方式如何处理 文件与 终端 编码方式 不统一 1. 对象树 在堆上开辟空间 并管理 该代码只进行new(在堆上开辟空间) 而没有delete 正常来说…

ES系列二之CentOS7安装ES head插件

CentOS7安装ES head插件 附&#xff1a;Centos7中安装Node出现Cannot find module ‘…/lib/utils/unsupported.js‘问题 删除原本的的npm连接&#xff0c;重新建一个即可。 1、先cd到该node版本中的bin文件夹下,这里装的是12.16.2版本&#xff1a; cd /usr/local/soft/nod…

C语言 之 字符串函数strncpy、ctrncat、strncmp函数的使用

文章目录 strncpy函数的使用strncat函数的使用strncmp函数的使用 strncpy函数的使用 函数原型&#xff1a; char * strncpy ( char * destination, const char * source, size_t num); strncpy与strcpy的区别是&#xff0c;strncpy可以控制需要拷贝的字符数量 1.能够拷贝num个…

为什么使用HTTPS?

HTTPS现在是所有Web活动的首选协议&#xff0c;因为它是用户保护敏感信息的最安全方式。 HTTPS不仅对请求用户信息的网站至关重要。除了用户直接发送的信息外&#xff0c;攻击者还可以从不安全的连接中跟踪行为和身份数据。 HTTP为网站所有者带来的好处除了数据安全之外&…

【Linux网络编程入门】Day5_socket编程基础

socket 编程基础 Linux 下的网络编程&#xff1a;socket 编程&#xff1b; socket是内核向应用层提供的一套网络编程接口&#xff0c;用户基于 socket 接口可开发自己的网络相关应用程序。 ⚫ socket 简介 ⚫ socket 编程 API 介绍 ⚫ socket 编程实战 socket 简介 ​ 套…

微信小程序引入全局环境变量

有时候一套代码要在多个小程序appId下使用,其中又有一些数据(文字)需要做区分.可以使用下面的方法 把要配置的数据以export default 形式导出 在app.js中,引入project.config.0.js文件,将导出的数据放在globalData中 在页面目录中,即可利用getApp()方法使用全局变量 也可以放数…

LM4863 带立体声耳机功能的双 2.2W音频功率放大器芯片IC

一般概述 LM4863是双桥接的音频功率放大器。当电源电压为5V时&#xff0c;在保证总谐波失真、噪声失真之和小于1.0%的情况下&#xff0c;4Ω负载提供2.2W的输出功率或者可向3Ω负载提供2.5W的输出功率。另外&#xff0c;当驱动立体声耳机时&#xff0c;耳机输入端允许放…

微服务:分布式事务

&#x1f4a5; 该系列属于【SpringBoot基础】专栏&#xff0c;如您需查看其他SpringBoot相关文章&#xff0c;请您点击左边的连接 目录 一、引言 二、Seata 三、部署TC服务 1. 准备数据库表 2. 准备配置文件 3. Docker部署 四、微服务集成Seata 1. 引入依赖 2. 改造配…

json 库的下载与使用

Json 简介Json下载Json::Value 数据对象类Json 序列化/反序列化的介绍Json 的序列化类低版本高版本 Json 的反序列化类低版本高版本 Json序列化操作Json反序列化操作 简介 json 是一种数据交换格式&#xff0c;采用独立于编程语言的文本格式来存储和表示的数据。 Json下载 使…

波导阵列天线单元 学习笔记3 基于空气填充双模馈网的双圆极化膜片天线阵列

摘要&#xff1a; 此通信提出了一种使用空气填充双模馈网的基于膜片极化器的双圆极化天线阵列。一种1分4的圆腔单层覆盖在膜片极化器上来抑制栅瓣。全公司馈网被一个双模传输线所实现&#xff0c;以此在一组馈网内联合了TEM模式&#xff08;由HW悬架线激励&#xff09;和TE10模…

Stable Diffusion赋能“黑神话”——助力悟空走进AI奇幻世界

《黑神话&#xff1a;悟空》是由游戏科学公司制作的以中国神话为背景的动作角色扮演游戏&#xff0c;将于2024年8月20日发售。玩家将扮演一位“天命人”&#xff0c;为了探寻昔日传说的真相&#xff0c;踏上一条充满危险与惊奇的西游之路。 同时&#xff0c;我们还可以借助AI绘…