深度学习(十三) Adversarial Attack 理论部分

深度学习(十三) Adversarial Attack 理论部分

Adversarial Attack 理论部分

前言一、Adversarial Attack的用途是什么?二、Adversarial Attack的分类三、如何实现Adversarial Attack?1.对于non-target attack而言2.对于targeted attack而言3.训练模型4.Black Box Attack5.“Backdoor” in Model

四、Defense1.Passive Defense2.Proactive Defense

前言

本文主要介绍的是现在比较新型的对抗攻击部分,这个部分资料甚少,作为科普使用

一、Adversarial Attack的用途是什么?

在深度学习网络里面,很多网络都是容易被攻击的,所以不能大量投入使用,所以我们要对对抗攻击有了比较深入的理解之后,才能对对抗防御有比较深入的理解对抗样本攻击也在自编码器和生成模型,在循环神经网络,深度强化学习,在语义切割和物体检测等方面也有应用。

二、Adversarial Attack的分类

白盒攻击,称为White-box attack,也称为open-box 对模型和训练集完全了解,这种情况比较简单,但是和实际情况不符合。黑盒攻击,称为Black-box attack,对模型不了解,对训练集不了解或了解很少。这种攻击和实际情况比较符合,主要也是主要研究方向。定向攻击,称为targeted attack,对于一个多分类网络,把输入分类误判到一个指定的类上,即指定判断错误的类别非定向攻击,称为non-target attack,只需要生成对抗样本来欺骗神经网络,可以看作是上面的一种特例。

三、如何实现Adversarial Attack?

1.对于non-target attack而言

这种情况比较简单,因为只需要让判别器判别错误即可,并不需要进行定向地改变,所以我们只要设定一个误差函数

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^​) 我们重点来看看定向地攻击模型。

2.对于targeted attack而言

相对于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的方法会有更好的表现效果。

3.训练模型

由于加入了我们刚才的那一个限制,我们本可以用拉普拉斯算子去进行优化,但是我们采取了一种更加简单的方法进行梯度下降。 一开始我们会比较正常地进行梯度下降,但是当我们的这个差距大于

ϵ

\epsilon

ϵ时,我们强制拉回以我们更新点

x

0

x_0

x0​为中心的正方形范围内的随机一个边框点,完成我们的更新。 为了更简单进行我们的梯度下降,大大减少运算量,我们可以对x进行符号化,也就是规定x的取值只有四个点,并且人为设定更新的次数。

4.Black Box Attack

我们前面说过,白盒攻击比较简单,如果一直不发放模型,就无法知道参数,就无法进行白盒攻击,但是这样是否就绝对安全呢?答案是否定的,因为我们可以进行黑盒攻击,黑盒攻击可以在不知道训练集的情况下进行,具体操作如下:

可以把一堆图片丢到NN中,得到输出的图片,把输入和输出图片丢到network proxy来训练出一个模型我们可以通过同一组训练集来训练一个network proxy,来模拟network black从而通过攻击network proxy观察,就可以来攻击network black

5.“Backdoor” in Model

除此之外,我们除了对测试集进行攻击,我们还可以对训练模型进行攻击,当训练模型出问题的时候,测试集是什么已经不重要了。 我们可以看到在训练阶段我们引入了"dog"这个种类,然后让其判断成"fish",这就提高了攻击的成功率了。

四、Defense

刚刚我们介绍了许多攻击的方式,那有了这些攻击的经验我们应该如何防御呢?下面将会介绍几种防御的方法。

1.Passive Defense

被动防御是一种比较简单的防御方式,主要的方式有:

被动防御就是指在模型之前加上一个过滤器,去减小Attack signal的强度,使Network辨识正确。 主要的方法有对图片进行模糊化,对图片进行压缩处理;将图片使用Generator重新产生一张相同的图片。 还有一种方法,就是进行随机防御,这种防御对于进攻者来说非常难进攻,因为防守者没有固定的防守手段。

被动防御的缺点是:没有被攻击的图片进行模糊化后,会导致分数下降

2.Proactive Defense

这种防御手段跟被动防御完全不一样,它一开始就训练出一个不容易被攻破的模型,具体过程就是在训练阶段就对模型进行攻击,然后把训练后得到的资料重新去训练模型,反复进行这个过程,就会得到一个不容易被攻破的模型。 但是这种方法未必能抵挡住新的攻击,而且Adversarial Training需要大量的训练资源。

📚 相关推荐

江思先生
365手机app

江思先生

📅 06-29 👁️ 6930
借呗怎么样?:利弊、使用技巧与真实体验分享
《永恒纪元》新区开服时间一览
亚洲365bet体育

《永恒纪元》新区开服时间一览

📅 07-09 👁️ 2281
如何轻松打印微信二维码
亚洲365bet体育

如何轻松打印微信二维码

📅 06-30 👁️ 9690
里程数怎么算
365手机app

里程数怎么算

📅 06-27 👁️ 8546
王者荣耀实名认证怎么修改 实名认证修改方法介绍
亚洲365bet体育

王者荣耀实名认证怎么修改 实名认证修改方法介绍

📅 06-27 👁️ 9988
神奇动物在哪里 (电影)
365手机app

神奇动物在哪里 (电影)

📅 07-02 👁️ 6058
个人如何申请百家号?百家号怎么养号?
任丘36524便利店电话

个人如何申请百家号?百家号怎么养号?

📅 07-07 👁️ 9348
【计算机基础】【概念释义】【口令与密码的区别】
任丘36524便利店电话

【计算机基础】【概念释义】【口令与密码的区别】

📅 07-09 👁️ 5525