在本文中,作者基于之前的Carlini & Wagner攻击提出了一些新的改进,从而在确保攻击成功率的情况下,增强了攻击的可转移性。
  作者仍然沿用之前C&W攻击的目标函数f(x,t)

f(x,t)=max{maxjt[Logit(x)]j[Logit(x)]t,k}

在此基础上,与之前加入L1或者L2范数正则化项不同的是,作者提出加入弹性网络正则化项,即同时加入L1和L2范数正则化项,从而得出如下优化问题:
minxcf(x,t)+β||xx0||1+||xx0||22s.t.x[0,1]p

EAD公式旨在找到一个敌对的例子x,它将被归类为目标类别t,同时最小化δ=xx0在弹性净损失β||δ||1+||δ||22,它是xx0之间的L1和L2失真度量的线性组合。值得注意的是,当β=0时,C&W的L2攻击的表述成为EAD公式的一个特例,它忽略了δ上的L1惩罚。 然而,L1惩罚是一个直观的调整对抗样本生成1的手段,因为||δ||1=i=1p|δi| 代表扰动的总变化量,也是促进扰动稀疏性的广泛使用的替代函数。 正如作者后面评估部分所表明的那样,包括扰动的L1惩罚确实产生了一组独特的对抗性例子,并且它导致了攻击转移能力的提高,并补充了对抗性学习。
  在C&W攻击中,他们使用了一种变量替代的方法 (change of variable, COV) 来消去约束条件,即:
x=12(tanh(x0)+1)
|
β>0时,我们发现相同的COV方法在求解EAD问题中不是有效的,因为相应的对抗样本对β的变化不敏感。 由于L1惩罚是一个不可微的分段线性函数,因此COV方法的失败可以用它在基于梯度的优化问题中的低效性来解释。
因此作者提出使用ISTA(Iterative Shrinkage-Thresholding Algorithm)和FISTA(Fast Iterative Shrinkage-Thresholding Algorithm)求解该问题。
简单介绍一下ISTA和FISTA算法:
若函数f(x)的梯度满足Lipschitz连续条件,即2f(x)的的绝对值有上界,其最小上界称为Lipschitz常数L(f)。这时,对于任意的LL(f),有:
f(x)f(y)+xy,f(y)+L2||xy||2

因此对于如下的优化问题minx F(x)=f(x)+g(x),其中fg都是凸函数,但是g可能非光滑的情况下,我们可以改问题转化为(给定了点y):
QL(x,y)=f(y)+xy,f(y)+L2||xy||2+g(x)

因此约减过后可以得到序列的迭代公式:
xk+1=argmaxx{g(x)+L2||x(xk1Lf(xk))||2}=pL(xk)

其中L起到了步长的作用,我们只需要选择一个比Lipschitz常数L(f)大的常数即可。实际上我们可以选择更好的L来加快收敛速度(即回溯步型),详见这篇论文A Fast Iterative Shrinkage-Thresholding Algorithm for Linear Inverse Problems,但是EAD这里并没有。但是和这篇论文一样,EAD也采用了一种加速的方式来加快收敛,实际上就是ISTA应用Nestrerov加速,Nestrerov加速的梯度下降法可以写为:
  1. ξ0=0
  2. ξk=1+1+4ξk122,γk=1ξk1ξk,
  3. yk=xk1tkf(xk1)
  4. xk=(1γk)yk+γkyk1
带入即可得到常数步型的FISTA:
关于EAD: Elastic-Net Attacks to Deep Neural Networks via Adversarial Examples的理解
我们进一步看一下这个pL(yk)如何计算,我们对QL(x,xk)求梯度,可以得到:
xQL(x,xk)=f(xk)+L(xxk)+g(x)=0

我们记zk=xk1Lf(xk),并且根据问题,有g(x)=β||xx0||1,这是一个非光滑的函数,我们只能求次梯度。我们按每一个维度来求解:
xQL(x,xk)i=xizk,i+1Lβ(|xix0,i|)

由于|x|在0点的次导数(对于定义域中的任何x0,我们总可以作出一条直线,它通过点(x0,f(x0)),并且要么接触f的图像,要么在它的下方。这条直线的斜率称为函数的次导数)是-1到1范围内的任意值,因此上式可以写成
xQL(x,xk)i=xizk,i+1L{+βwhen xi>x0,idwhen xi=x0,i and βdββwhen xi<x0,i

所以当我们用新的β来代替βL时,只需要|x0,izk,i|β时,即有梯度为0。其余情况类似,就可以得到投影算子:
Tα(x)i=(|xi|α)+sgn(xi)

应用到EAD中,就可以得到:
[Sβ(z)]i={min{ziβ,1}if zix0,i>βx0,iif ||zix0,i||βmax{zi+β,0}if zix0,i<β

他们的实验也表明了该方法的攻击成功率并没有下降,并且L1,L2范数几乎没有变化,但是却有更好的可转移性。于此同时,也可以通过这个方法打破蒸馏防御。
顺带一提,一范数正则化的稀疏性也可以由此看出:f(x)=c|x|的绝对值的次导数为:
f(x)={cx>0dx=0 and c<d<ccx<0

因此当c在一定范围内时,如果足够大,只要x为0,以L1范数为惩罚项的目标函数的梯度就很容易(可能)为0

相关文章: