赞
踩
本文主要介绍的是现在比较新型的对抗攻击部分,这个部分资料甚少,作为科普使用
这种情况比较简单,因为只需要让判别器判别错误即可,并不需要进行定向地改变,所以我们只要设定一个误差函数
e
(
y
,
y
^
)
e(y,\hat y)
e(y,y^),让这个值越大就说明两值的差距越大,即:
x
∗
=
arg
min
−
e
(
y
,
y
^
)
x^*=\arg\min -e(y,\hat y)
x∗=argmin−e(y,y^)
我们重点来看看定向地攻击模型。
相对于non-target attack,targeted attack需要最后的判断结果与自己设定的定向结果很接近,也就是我们要引入一个目标输出,其函数变为:
x
∗
=
arg
min
−
e
(
y
,
y
^
)
+
e
(
y
,
y
t
a
r
g
e
t
)
x^*=\arg\min -e(y,\hat y) +e(y,y^{target})
x∗=argmin−e(y,y^)+e(y,ytarget)
然后如果两张照片的差值过于大的时候,将会面目全非,不符合我们一开始肉眼看不到的假设,所以我们需要给两张照片的像素值之间设有一定的限制,一般我们有L2-norm和L-infinity两种方法。
对于我们人眼而言,一般只会感知最大变化的那一个部分,如果像L2-norm这样把所有误差求和,这样的误差值过大了,所以一般L-infinity的方法会有更好的表现效果。
由于加入了我们刚才的那一个限制,我们本可以用拉普拉斯算子去进行优化,但是我们采取了一种更加简单的方法进行梯度下降。
一开始我们会比较正常地进行梯度下降,但是当我们的这个差距大于
ϵ
\epsilon
ϵ时,我们强制拉回以我们更新点
x
0
x_0
x0为中心的正方形范围内的随机一个边框点,完成我们的更新。
为了更简单进行我们的梯度下降,大大减少运算量,我们可以对x进行符号化,也就是规定x的取值只有四个点,并且人为设定更新的次数。
我们前面说过,白盒攻击比较简单,如果一直不发放模型,就无法知道参数,就无法进行白盒攻击,但是这样是否就绝对安全呢?答案是否定的,因为我们可以进行黑盒攻击,黑盒攻击可以在不知道训练集的情况下进行,具体操作如下:
除此之外,我们除了对测试集进行攻击,我们还可以对训练模型进行攻击,当训练模型出问题的时候,测试集是什么已经不重要了。
我们可以看到在训练阶段我们引入了"dog"这个种类,然后让其判断成"fish",这就提高了攻击的成功率了。
刚刚我们介绍了许多攻击的方式,那有了这些攻击的经验我们应该如何防御呢?下面将会介绍几种防御的方法。
被动防御是一种比较简单的防御方式,主要的方式有:
被动防御的缺点是:没有被攻击的图片进行模糊化后,会导致分数下降
这种防御手段跟被动防御完全不一样,它一开始就训练出一个不容易被攻破的模型,具体过程就是在训练阶段就对模型进行攻击,然后把训练后得到的资料重新去训练模型,反复进行这个过程,就会得到一个不容易被攻破的模型。
但是这种方法未必能抵挡住新的攻击,而且Adversarial Training需要大量的训练资源。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。