在本文中,作者基于之前的Carlini & Wagner攻击提出了一些新的改进,从而在确保攻击成功率的情况下,增强了攻击的可转移性。
作者仍然沿用之前C&W攻击的目标函数
f(x,t)
f
(
x
,
t
)
:
f(x,t)=max{maxj≠t[Logit(x)]j−[Logit(x)]t,−k}
f
(
x
,
t
)
=
max
{
max
j
≠
t
[
L
o
g
i
t
(
x
)
]
j
−
[
L
o
g
i
t
(
x
)
]
t
,
−
k
}
在此基础上,与之前加入L1或者L2范数正则化项不同的是,作者提出加入弹性网络正则化项,即同时加入L1和L2范数正则化项,从而得出如下优化问题:
minxc⋅f(x,t)+β||x−x0||1+||x−x0||22s.t.x∈[0,1]p
min
x
c
⋅
f
(
x
,
t
)
+
β
|
|
x
−
x
0
|
|
1
+
|
|
x
−
x
0
|
|
2
2
s.t.
x
∈
[
0
,
1
]
p
EAD公式旨在找到一个敌对的例子 x x ,它将被归类为目标类别 t t ,同时最小化在弹性净损失 β||δ||1+||δ||22 β | | δ | | 1 + | | δ | | 2 2 ,它是 x x 和 x0 x 0 之间的L1和L2失真度量的线性组合。值得注意的是,当 β=0 β = 0 时,C&W的L2攻击的表述成为EAD公式的一个特例,它忽略了 δ δ 上的L1惩罚。 然而,L1惩罚是一个直观的调整对抗样本生成1的手段,因为 ||δ||1=∑pi=1|δi| | | δ | | 1 = ∑ i = 1 p | δ i | 代表扰动的总变化量,也是促进扰动稀疏性的广泛使用的替代函数。 正如作者后面评估部分所表明的那样,包括扰动的L1惩罚确实产生了一组独特的对抗性例子,并且它导致了攻击转移能力的提高,并补充了对抗性学习。
在C&W攻击中,他们使用了一种变量替代的方法 (change of variable, COV) 来消去约束条件,即:
x=12(tanh(x0)+1)
x
=
1
2
(
t
a
n
h
(
x
0
)
+
1
)
|
当 β>0 β > 0 时,我们发现相同的COV方法在求解EAD问题中不是有效的,因为相应的对抗样本对 β β 的变化不敏感。 由于L1惩罚是一个不可微的分段线性函数,因此COV方法的失败可以用它在基于梯度的优化问题中的低效性来解释。
因此作者提出使用ISTA(Iterative Shrinkage-Thresholding Algorithm)和FISTA(Fast Iterative Shrinkage-Thresholding Algorithm)求解该问题。
简单介绍一下ISTA和FISTA算法:
若函数 f(x) f ( x ) 的梯度满足Lipschitz连续条件,即 ∇2f(x) ∇ 2 f ( x ) 的的绝对值有上界,其最小上界称为Lipschitz常数 L(f) L ( f ) 。这时,对于任意的 L≥L(f) L ≥ L ( f ) ,有:
f(x)≤f(y)+⟨x−y,∇f(y)⟩+L2||x−y||2
f
(
x
)
≤
f
(
y
)
+
⟨
x
−
y
,
∇
f
(
y
)
⟩
+
L
2
|
|
x
−
y
|
|
2
因此对于如下的优化问题 minx F(x)=f(x)+g(x) min x F ( x ) = f ( x ) + g ( x ) ,其中 f和g f 和 g 都是凸函数,但是 g g 可能非光滑的情况下,我们可以改问题转化为(给定了点):
QL(x,y)=f(y)+⟨x−y,∇f(y)⟩+L2||x−y||2+g(x)
Q
L
(
x
,
y
)
=
f
(
y
)
+
⟨
x
−
y
,
∇
f
(
y
)
⟩
+
L
2
|
|
x
−
y
|
|
2
+
g
(
x
)
因此约减过后可以得到序列的迭代公式:
xk+1=argmaxx{g(x)+L2||x−(xk−1L∇f(xk))||2}=pL(xk)
x
k
+
1
=
arg
max
x
{
g
(
x
)
+
L
2
|
|
x
−
(
x
k
−
1
L
∇
f
(
x
k
)
)
|
|
2
}
=
p
L
(
x
k
)
其中 L L 起到了步长的作用,我们只需要选择一个比Lipschitz常数大的常数即可。实际上我们可以选择更好的 L L 来加快收敛速度(即回溯步型),详见这篇论文A Fast Iterative Shrinkage-Thresholding Algorithm for Linear Inverse Problems,但是EAD这里并没有。但是和这篇论文一样,EAD也采用了一种加速的方式来加快收敛,实际上就是ISTA应用Nestrerov加速,Nestrerov加速的梯度下降法可以写为:
1.
2. ξk=1+1+4ξ2k−1√2,γk=1−ξk−1ξk ξ k = 1 + 1 + 4 ξ k − 1 2 2 , γ k = 1 − ξ k − 1 ξ k ,
3. yk=xk−1−tk∇f(xk−1) y k = x k − 1 − t k ∇ f ( x k − 1 )
4. xk=(1−γk)yk+γkyk−1 x k = ( 1 − γ k ) y k + γ k y k − 1
带入即可得到常数步型的FISTA:
我们进一步看一下这个 pL(yk) p L ( y k ) 如何计算,我们对 QL(x,xk) Q L ( x , x k ) 求梯度,可以得到:
∇xQL(x,xk)=∇f(xk)+L(x−xk)+∇g(x)=0
∇
x
Q
L
(
x
,
x
k
)
=
∇
f
(
x
k
)
+
L
(
x
−
x
k
)
+
∇
g
(
x
)
=
0
我们记 zk=xk−1L∇f(xk) z k = x k − 1 L ∇ f ( x k ) ,并且根据问题,有 g(x)=β||x−x0||1 g ( x ) = β | | x − x 0 | | 1 ,这是一个非光滑的函数,我们只能求次梯度。我们按每一个维度来求解:
∇xQL(x,xk)i=xi−zk,i+1Lβ(|xi−x0,i|)′
∇
x
Q
L
(
x
,
x
k
)
i
=
x
i
−
z
k
,
i
+
1
L
β
(
|
x
i
−
x
0
,
i
|
)
′
由于 |x| | x | 在0点的次导数(对于定义域中的任何 x0 x 0 ,我们总可以作出一条直线,它通过点 (x0,f(x0)) ( x 0 , f ( x 0 ) ) ,并且要么接触f的图像,要么在它的下方。这条直线的斜率称为函数的次导数)是-1到1范围内的任意值,因此上式可以写成
∇xQL(x,xk)i=xi−zk,i+1L⎧⎩⎨⎪⎪+βwhen xi>x0,idwhen xi=x0,i and −β≤d≤β−βwhen xi<x0,i
∇
x
Q
L
(
x
,
x
k
)
i
=
x
i
−
z
k
,
i
+
1
L
{
+
β
w
h
e
n
x
i
>
x
0
,
i
d
w
h
e
n
x
i
=
x
0
,
i
a
n
d
−
β
≤
d
≤
β
−
β
w
h
e
n
x
i
<
x
0
,
i
所以当我们用新的 β β 来代替 βL β L 时,只需要 |x0,i−zk,i|≤β | x 0 , i − z k , i | ≤ β 时,即有梯度为0。其余情况类似,就可以得到投影算子:
Tα(x)i=(|xi|−α)+sgn(xi)
T
α
(
x
)
i
=
(
|
x
i
|
−
α
)
+
s
g
n
(
x
i
)
应用到EAD中,就可以得到:
[Sβ(z)]i=⎧⎩⎨⎪⎪min{zi−β,1}if zi−x0,i>βx0,iif ||zi−x0,i||≤βmax{zi+β,0}if zi−x0,i<−β
[
S
β
(
z
)
]
i
=
{
min
{
z
i
−
β
,
1
}
i
f
z
i
−
x
0
,
i
>
β
x
0
,
i
i
f
|
|
z
i
−
x
0
,
i
|
|
≤
β
max
{
z
i
+
β
,
0
}
i
f
z
i
−
x
0
,
i
<
−
β
他们的实验也表明了该方法的攻击成功率并没有下降,并且L1,L2范数几乎没有变化,但是却有更好的可转移性。于此同时,也可以通过这个方法打破蒸馏防御。
顺带一提,一范数正则化的稀疏性也可以由此看出: f(x)=c|x| f ( x ) = c | x | 的绝对值的次导数为:
f′(x)=⎧⎩⎨⎪⎪cx>0dx=0 and −c<d<c−cx<0
f
′
(
x
)
=
{
c
x
>
0
d
x
=
0
a
n
d
−
c
<
d
<
c
−
c
x
<
0
因此当 c c 在一定范围内时,如果足够大,只要为0,以L1范数为惩罚项的目标函数的梯度就很容易(可能)为 0 0 <script type="math/tex" id="MathJax-Element-26816">0</script>。