在本文中,作者基于之前的Carlini & Wagner攻击提出了一些新的改进,从而在确保攻击成功率的情况下,增强了攻击的可转移性。
作者仍然沿用之前C&W攻击的目标函数f(x,t):
f(x,t)=max{maxj≠t[Logit(x)]j−[Logit(x)]t,−k}
在此基础上,与之前加入L1或者L2范数正则化项不同的是,作者提出加入弹性网络正则化项,即同时加入L1和L2范数正则化项,从而得出如下优化问题:
minxc⋅f(x,t)+β||x−x0||1+||x−x0||22s.t.x∈[0,1]p
EAD公式旨在找到一个敌对的例子x,它将被归类为目标类别t,同时最小化δ=x−x0在弹性净损失β||δ||1+||δ||22,它是x和x0之间的L1和L2失真度量的线性组合。值得注意的是,当β=0时,C&W的L2攻击的表述成为EAD公式的一个特例,它忽略了δ上的L1惩罚。 然而,L1惩罚是一个直观的调整对抗样本生成1的手段,因为||δ||1=∑pi=1|δ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)。这时,对于任意的L≥L(f),有:
f(x)≤f(y)+⟨x−y,∇f(y)⟩+L2||x−y||2
因此对于如下的优化问题minx F(x)=f(x)+g(x),其中f和g都是凸函数,但是g可能非光滑的情况下,我们可以改问题转化为(给定了点y):
QL(x,y)=f(y)+⟨x−y,∇f(y)⟩+L2||x−y||2+g(x)
因此约减过后可以得到序列的迭代公式:
xk+1=argmaxx{g(x)+L2||x−(xk−1L∇f(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ξ2k−1√2,γk=1−ξk−1ξk,
3. yk=xk−1−tk∇f(xk−1)
4. xk=(1−γk)yk+γkyk−1
带入即可得到常数步型的FISTA:

我们进一步看一下这个pL(yk)如何计算,我们对QL(x,xk)求梯度,可以得到:
∇xQL(x,xk)=∇f(xk)+L(x−xk)+∇g(x)=0
我们记zk=xk−1L∇f(xk),并且根据问题,有g(x)=β||x−x0||1,这是一个非光滑的函数,我们只能求次梯度。我们按每一个维度来求解:
∇xQL(x,xk)i=xi−zk,i+1Lβ(|xi−x0,i|)′
由于|x|在0点的次导数(对于定义域中的任何x0,我们总可以作出一条直线,它通过点(x0,f(x0)),并且要么接触f的图像,要么在它的下方。这条直线的斜率称为函数的次导数)是-1到1范围内的任意值,因此上式可以写成
∇xQL(x,xk)i=xi−zk,i+1L⎧⎩⎨⎪⎪+βwhen xi>x0,idwhen xi=x0,i and −β≤d≤β−βwhen xi<x0,i
所以当我们用新的β来代替βL时,只需要|x0,i−zk,i|≤β时,即有梯度为0。其余情况类似,就可以得到投影算子:
Tα(x)i=(|xi|−α)+sgn(xi)
应用到EAD中,就可以得到:
[Sβ(z)]i=⎧⎩⎨⎪⎪min{zi−β,1}if zi−x0,i>βx0,iif ||zi−x0,i||≤βmax{zi+β,0}if zi−x0,i<−β
他们的实验也表明了该方法的攻击成功率并没有下降,并且L1,L2范数几乎没有变化,但是却有更好的可转移性。于此同时,也可以通过这个方法打破蒸馏防御。
顺带一提,一范数正则化的稀疏性也可以由此看出:f(x)=c|x|的绝对值的次导数为:
f′(x)=⎧⎩⎨⎪⎪cx>0dx=0 and −c<d<c−cx<0
因此当c在一定范围内时,如果足够大,只要x为0,以L1范数为惩罚项的目标函数的梯度就很容易(可能)为0。