当前位置:   article > 正文

【深度学习】李宏毅2021/2022春深度学习课程笔记 - Adversarial Attack(恶意攻击)_恶意攻击英语adversarial attack

恶意攻击英语adversarial attack


一、基本概念

1.1 动机

当我们训练的模型正式上线后,面对的数据分布可能和训练时的数据分布不太一样,甚至会有一些攻击者会尝试用一些虚假的数据来骗过我们的模型。例如,在用AI技术过滤垃圾邮件的问题中,AI的目标是将垃圾邮件识别出来并且过滤掉,而垃圾邮件的发送者为了躲避AI的识别,也会采取一些策略去试图欺骗AI。这就是恶意攻击的由来。

在这里插入图片描述

1.2 恶意攻击的例子

如下图所示,假设原始图片输入模型,模型输出是 Tiger Cat,那么恶意攻击者就希望在原始图片上增加一些杂讯,来改变模型的输出。一般,根据恶意攻击者的意图可分为两种恶意攻击:

  • 有目标的恶意攻击:希望增加了杂讯后,模型输出一个预想的类别
  • 无目标的恶意攻击:希望增加了杂讯后,模型输出的类别和原来不一样即可

在这里插入图片描述

恶意攻击真的可行吗?下面是一个具体的例子,我们采用的网络模型是50层的ResNet,这并不是一个很弱的模型。当输入正常图片的时候,模型给出的输出是Tiger Cat,并且具有0.64的置信分数,在加入了一些人类肉眼看不到的杂讯后,模型给出的输出居然就变成了 Star Fish,而且置信分数还高达1.00!这也太不可思议了。

在这里插入图片描述

为了证明左右两个图片是真的不同,我们可以将其做减法,然后放大50倍,如下图所示,可以看出两个图其实真的是有差异的

在这里插入图片描述

还有更离谱的,在加了另外的杂讯后,模型居然认为图片中的是 Keyboard,由此可见,恶意攻击对模型的影响真的是非常大呀!

在这里插入图片描述

1.3 如何攻击?

无目标攻击希望加了杂讯后网络的输出与没加杂讯时网络的输出相差越大越好
有目标攻击希望加了杂讯后的网络的输出与目标输出越接近越好
无论是有目标攻击还是无目标攻击,杂讯都不能太大,不能被人类肉眼观察到

在这里插入图片描述

下面介绍了计算两个图片之间距离的两个方法。但是一般来说,L-infinity可能更加符合实际人类对图像的观察习惯,我们一般只在意差别最大像素块。

在这里插入图片描述

为了实现杂讯不要太大这一个约束,如下图所示,我们可以在梯度下降后,对新的参数进行clip操作,将其限制在与原图相差较小的范围内

在这里插入图片描述

还有一个方法被称为FGSM,它通过一个sign函数,将梯度调整为±1,这样一来,参数的更新就相当于固定步长。

在这里插入图片描述

传统的FGSM是单步结束的,但是我们也可以进行迭代更新,但是迭代的话就要处理超过范围的情况了。如下图所示:

在这里插入图片描述


二、White Box vs Black Box

之前讲的都是白盒攻击,也就是说我们可以获取到要攻击的模型的参数。但是现实中,大部分情况我们都只有模型的API可以调用,我们不知道模型的具体参数,这种情况下对模型进行攻击,就被称为黑盒攻击

在这里插入图片描述

如何进行黑盒攻击呢?假设我们知道要被攻击的模型的训练资料,那么我们可以用一样的训练资料训练出一个和要被攻击的模型很相似的模型,然后用白盒攻击的方法攻击相似的模型,再用对相似模型攻击有效的带有杂讯的数据去攻击真正要攻击的模型,这时候成功率就会比较高。

在这里插入图片描述

黑盒攻击其实还是蛮容易成功的,如下图所示,即使最差的情况,失败率也只有39%,说明攻击的成功率还是挺高的

在这里插入图片描述

下图所示,横轴依然代表真实模型,而纵轴代表除了该模型以外的4个模型。可以看到,最高的失败率也只有6%,所以说当数据可以骗过4个模型的时候,它能骗过真实模型的概率就会很大!

在这里插入图片描述

为什么攻击那么容易成功?有人做了研究,推测原因可能出现在训练资料上,而非模型上。在有限的资料上,模型学到的特征就是这样,没有办法。

在这里插入图片描述


三、One Pixel Attack

One Pixel Attack 要求只能改变图像中的一个像素点,就可以使得模型识别出错

在这里插入图片描述


四、Universal Adversarial Attack

Universal Adversarial Attack 指找到一个通用的杂讯,这个杂讯加到大多数图片上,都能使得模型识别出错

在这里插入图片描述


五、Beyond Image

当然,恶意攻击不止存在于图像领域。如下图所示,恶意攻击还存在于语音识别和问答系统领域。
在语音识别中,我们的任务是识别出哪些语音是机器合成的,恶意攻击的目标就是让模型认为机器合成的语音是人的语音。
在问答系统中,我们的任务是根据所给的文章和问题,正确地回答问题。恶意攻击的目标就是让模型错误的回答问题

在这里插入图片描述


六、Attack in the Physical World

前面说的,都是在图片上加上一些杂讯,然后试图导致模型输出错误的结果。其实,在真实世界中,我们也可以通过化妆、佩戴一些特定的装饰来攻击模型。如下图所示:男人带上特制的眼镜后,机器就认为他是右边的女人了,是不是很离谱?

在这里插入图片描述


七、Adversarial Reprogramming

Adversarial Reprogramming 指的是我们可以像僵尸一样寄生在别人的模型上,让别人的模型为我们服务。例如下图所示,我们想实现一个模型可以识别图中有几个方块,这时候我们可以寄生与一个分类模型上,当它输出tench时代表图中有1个方块,输出goldfish时代表图中有2个方块,以此类推。

在这里插入图片描述


八、Backdoor in Model

之前讲的攻击都是在测试阶段展开的,但是有没有可能,攻击在训练阶段就开始了呢?是有可能的,如下图所示,我们在训练资料中给图片加入一些人类观察不到的杂讯,用这些被加了杂讯的图片训练出来的模型,在看到特定的照片时就会识别错误。有点像特地用带有缺陷的训练集去训练模型,然后再用他缺陷的那部分去攻击他

在这里插入图片描述


九、防御

9.1 被动防御

被动防御指:我们的模型是不用动的,但是在数据输入前加一个过滤层,削弱杂讯的信息

在这里插入图片描述

而这个过滤层往往可以是轻微的模糊化,就可以达到很好的防御效果。如下图所示,模糊化后,机器又可以正确的识别图片了,但是缺点是识别图像的置信分数会下降

在这里插入图片描述

还有其他被动防御的方法如下图所示:

  • 我们可以将输入的图片进行压缩
  • 我们可以用一个生成模型对输入的图片进行重新生成

在这里插入图片描述

为了加强防御能力,我们可以在防御时加上随机性,如下图所示

在这里插入图片描述

9.2 主动防御

主动防御就是在训练阶段就考虑恶意攻击,每次训练完一个阶段,就找找有没有可能存在的恶意攻击数据可以攻破模型,如果有就修复它。有点像数据增强。而且还可以一定程度上缓解过拟合问题。

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/365700
推荐阅读
相关标签
  

闽ICP备14008679号