minimize
D
(
x
,
x
ε
)
s.t.
f
(
x
ϵ
)
≤
0
x
ε
∈
[
0
,
1
]
n
\begin{aligned} & \text{minimize} \quad D(x, x + \varepsilon) \ & \text{s.t.} \quad f(x + \epsilon) \le 0\ & \quad x + \varepsilon \in [0, 1]^n \end{aligned}
minimizeD(x,x+ε)s.t.f(x+ϵ)≤0x+ε∈[0,1]n
这个地方应该还是
x
ϵ
∈
[
0
,
1
]
n
x + \epsilon \in [0, 1]^n
x+ϵ∈[0,1]n好一点,原书的公式不带上标n,不清楚为什么。
将上述的约束条件转换为目标函数,令距离度量函数
D
D
D为
L
p
L_p
Lp范数,得到以下约束:
m
i
n
∣
∣
δ
∣
∣
p
c
f
(
x
ε
)
s
.
t
.
x
ε
∈
[
0
,
1
]
n
min\quad||\delta||_p+cf(x+\varepsilon)\ s.t. \quad x+\varepsilon \in [0,1]^n
min∣∣δ∣∣p+cf(x+ε)s.t.x+ε∈[0,1]n
其中的
∣
∣
δ
∣
∣
p
||\delta||_p
∣∣δ∣∣p项即上面式子中的
D
(
x
,
x
ε
)
D(x, x + \varepsilon)
D(x,x+ε),这一项代表着对抗样本和原始样本的
L
2
L_2
L2范数距离,也就是扰动,回顾对抗样本生成的目标:“生成样本与原始干净样本尽量的相似”,使这一项最小化,就保证了生成的对抗样本与原始样本尽可能地相似;
c
f
(
x
ε
)
cf(x+\varepsilon)
cf(x+ε)表示分类结果越符合目标结果越好,上面给出的
f
(
x
)
f(x)
f(x)中,如果
F
(
x
′
)
t
F(x’)_t
F(x′)t越大(即分类为目标类的概率越大),那么
c
f
(
x
ε
)
cf(x+\varepsilon)
cf(x+ε)的值越小,也就为了满足生成对抗样本的第二个要求:生成样本确实能成功攻击模型。
由于对抗样本增加、减去剃度之后很容易超出
[
0
,
1
]
[0,1]
[0,1]的范围,为了生成有效的图片,需要对其进行约束,使得
0
≤
x
i
δ
i
≤
1
0\le x_i+\delta_i \le 1
0≤xi+δi≤1。对生成样本进行clip截断就可以将其约束在[0,1]的范围内,我们可以现在只需不断的进行迭代,找到最小值就可以生成对抗样本了。
然而,使用截断的思想,但会使攻击性能下降,CW算法提出的思想,将其映射到tanh空间,为此,CW算法作者引入了新的变量
w
w
w。
x
δ
=
1
2
(
t
a
n
h
(
w
)
1
)
δ
=
1
2
(
t
a
n
h
(
w
)
1
)
−
x
x+\delta = \frac{1}{2}(tanh(w)+1)\ \delta = \frac{1}{2}(tanh(w)+1)-x
x+δ=21(tanh(w)+1)δ=21(tanh(w)+1)−x
因为tanh函数的值域为
[
−
1
,
1
]
[-1,1]
[−1,1],所以
x
δ
x+\delta
x+δ的取值范围是
[
0
,
1
]
[0,1]
[0,1],这样就满足了约束条件。
下面给出已CW算法的
L
2
L_2
L2范数攻击定义式
m
i
n
i
m
i
z
e
∣
∣
1
2
(
t
a
n
h
(
w
)
1
)
−
x
∣
∣
2
2
c
f
(
1
2
(
t
a
n
h
(
w
)
1
)
)
f
(
x
′
)
=
m
a
x
(
m
a
x
{
Z
(
x
′
)
i
:
i
≠
t
}
−
Z
(
x
′
)
t
,
−
K
)
minimize \quad ||\frac{1}{2}(tanh(w)+1)-x||_2^2+cf(\frac{1}{2}(tanh(w)+1))\ f(x’)=max(max{ Z(x’)_i:i\ne t }-Z(x’)_t, -K)
minimize∣∣21(tanh(w)+1)−x∣∣22+cf(21(tanh(w)+1))f(x′)=max(max{Z(x′)i:i=t}−Z(x′)t,−K)
f
f
f在式中添加了参数
K
K
K,改参数能够控制误分类发生的置信度。保证找到的对抗样本
x
′
x’
x′能够以较好的置信度被误分为类别
t
t
t。最初我自己看的时候不好理解,下面给出两个式子大家理解一下。
2.1 对于K的理解
先看第一种:
假设现在有
K
=
0.2
K=0.2
K=0.2,且假设此时
m
a
x
{
Z
(
x
′
)
i
:
i
≠
t
}
−
Z
(
x
′
)
t
≤
−
K
max{ Z(x’)_i:i\ne t }-Z(x’)_t \le -K
max{Z(x′)i:i=t}−Z(x′)t≤−K,即
f
(
x
′
)
=
m
a
x
(
m
a
x
{
Z
(
x
′
)
i
:
i
≠
t
}
−
Z
(
x
′
)
t
,
−
K
)
=
−
K
f(x’)=max(max{ Z(x’)_i:i\ne t }-Z(x’)_t, -K)=-K
f(x′)=max(max{Z(x′)i:i=t}−Z(x′)t,−K)=−K,那么式可以变成
m
i
n
i
m
i
z
e
∣
∣
1
2
(
t
a
n
h
(
w
)
1
)
−
x
∣
∣
2
2
c
∗
(
−
0.2
)
f
(
x
′
)
=
−
K
=
−
0.2
minimize \quad ||\frac{1}{2}(tanh(w)+1)-x||_2^2+c*(-0.2)\ f(x’)=-K=-0.2
minimize∣∣21(tanh(w)+1)−x∣∣22+c∗(−0.2)f(x′)=−K=−0.2
再看第二种:
假设现在有
K
=
0.8
K=0.8
K=0.8,且假设此时
m
a
x
{
Z
(
x
′
)
i
:
i
≠
t
}
−
Z
(
x
′
)
t
≤
−
K
max{ Z(x’)_i:i\ne t }-Z(x’)_t \le -K
max{Z(x′)i:i=t}−Z(x′)t≤−K,即
f
(
x
′
)
=
m
a
x
(
m
a
x
{
Z
(
x
′
)
i
:
i
≠
t
}
−
Z
(
x
′
)
t
,
−
K
)
=
−
K
f(x’)=max(max{ Z(x’)_i:i\ne t }-Z(x’)_t, -K)=-K
f(x′)=max(max{Z(x′)i:i=t}−Z(x′)t,−K)=−K,那么式可以变成
m
i
n
i
m
i
z
e
∣
∣
1
2
(
t
a
n
h
(
w
)
1
)
−
x
∣
∣
2
2
c
∗
(
−
0.8
)
f
(
x
′
)
=
−
K
=
−
0.8
minimize \quad ||\frac{1}{2}(tanh(w)+1)-x||_2^2+c*(-0.8)\ f(x’)=-K=-0.8
minimize∣∣21(tanh(w)+1)−x∣∣22+c∗(−0.8)f(x′)=−K=−0.8
差别就在于,第一种情况的
f
(
x
′
)
f(x’)
f(x′)值更小,因此优化过程更倾向于最小化数据项的平方误差
∣
∣
1
2
(
t
a
n
h
(
w
)
1
)
−
x
∣
∣
2
2
||\frac{1}{2}(tanh(w)+1)-x||_2^2
∣∣21(tanh(w)+1)−x∣∣22。因此,它可能会导致更小的
∣
∣
1
2
(
t
a
n
h
(
w
)
1
)
−
x
∣
∣
2
2
||\frac{1}{2}(tanh(w)+1)-x||_2^2
∣∣21(tanh(w)+1)−x∣∣22 值,即更接近数据
x
x
x 的拟合结果。可以理解为K越大,置信度越大。
说白了,我们控制想要达到的置信度,然后在此置信度限定下,寻找最小距离和最大置信度的最优解,设置K值就是选择我们希望项更优,K越小,那么就会偏向于使距离更小,K越大置信度越高,不能保证说距离就一定比较大,但是从主观上来说我们更加关注置信度的好坏,而不太关心距离(感觉可以看做权重)。
2.2 手稿模拟
现在我们的思路已经很清楚了,CW算法本身是一个基于优化的对抗样本算法,我们要在迭代中不断地优化扰动的距离和置信度。但尽情上面的公式要写出代码好像不太容易,我们理解了基本思路之后,再看一遍形式化的定义,帮助我们更好理解算法,以便写出代码。这部分内容主要参考:https://blog.youkuaiyun.com/weixin_41466575/article/details/117738731
A
n
=
1
2
(
t
a
n
h
(
W
n
)
1
)
r
n
=
A
n
−
X
n
m
i
n
i
m
i
z
e
∣
∣
r
n
∣
∣
2
2
c
∗
f
(
A
n
)
f
(
A
n
)
=
m
a
x
(
m
a
x
{
Z
(
A
n
)
i
:
i
≠
t
}
−
Z
(
A
n
)
t
,
−
K
)
A_n = \frac{1}{2}(tanh(W_n)+1)\ r_n = A_n - X_n\ minimize \quad ||r_n||_2^2+c*f(A_n)\ f(A_n)=max(max{ Z(A_n)_i:i\ne t }-Z(A_n)_t, -K)
An=21(tanh(Wn)+1)rn=An−Xnminimize∣∣rn∣∣22+c∗f(An)f(An)=max(max{Z(An)i:i=t}−Z(An)t,−K)
W
n
W_n
Wn表示优化参数,
A
n
A_n
An表示对抗样本,
X
n
X_n
Xn表示干净样本,
r
n
r_n
rn代表对抗样本与干净样本的L2距离;c为超参数,用来权衡两个loss之间的关系;
Z
(