CW对抗样本生成算法 torch实现_cw对抗攻击

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​−Xn​minimize∣∣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

(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值