[datawhale202210]李宏毅机器学习2021:adversarial attack来自人类的恶意攻击

27 篇文章 1 订阅

小结

本节了解了人类的恶意攻击的动机,定义,和在ResNet上具体应用的效果。为了实现attack,我们需要找到一个合适的噪声,噪声可以通过对无目标和有目标的任务定义不同的损失函数来确定。

attack的计算中,需要明确损失函数的定义。可以使用优化求解算法+constraint的方式来理解这个问题的求解,需要注意的是,此时每一步求解,更改的是输入,而非参数。FGSM可以作为一个简单的例子帮助理解attack的计算。

1 恶意攻击

让神经网络能够抵抗来自人类的攻击,才能在实际应用场景中。

以一个垃圾邮件识别任务为例,垃圾邮件的发送者,也会想尽办法绕过垃圾邮件检测。那么神经网络,能否抵御这种人为攻击呢。

1.1 attack的抽象例子

给一个图片(benign image),加入一个很小的噪音向量,(这种加入的变化肉眼不可辨),后成为attacked image,再输入到network中。

我们期待attacked image使network的输出与benign image对应的输出不同。

这种不同又进一步分为两类:

  1. 无目标的:比方说我们现在benign image对应的network输出是猫,而attacked image对应的输出是什么都可以
  2. 有特定目标的:benign image对应的network输出是猫,而attacked image对应的输出是海星。

在这里插入图片描述

1.2 attack在ResNet中的具体例子

具体到ResNet中,这样的攻击是会实现的。

如下面的例子,benign image对应输出是tiger cat,attacked image对应的输出是100% Star fish。

在这里插入图片描述

benign image和attacked image在肉眼上看非常相似,当我们把benign image和attacked image相减(再乘以50),可以看出两者确实不同。而这两个的差距可以让ResNet的输出天差地别。

在这里插入图片描述

这一attack并非特例。我们还可以让猫变成键盘。

在这里插入图片描述

而若加入一些肉眼可见的噪声,其实对原有模型的判断结果影响没有那么大,依然可以辨认出是猫科动物。

在这里插入图片描述

1.3 如何进行attack

1.3.1 基本框架

具体来说,就是我们应当如何找出加入的噪声,使得attack成功。

考虑一个参数固定的network。

对一个无目标的attack任务来说,我们想要的是加入噪声后,使得network输出的distribution和原来的相比,差距越大越好。而这种差距我们(很熟练的)可以用cross-entropy来衡量。

在这里插入图片描述

而如果对于有特定目标的attack,network输出的distribution是有目标值的,那我们希望的是加入噪声后,使得network输出的distribution和目标值越接近越好,同时也需与原来的输出越远越好。则此时的目标函数是两部分的cross entropy的叠加。

在这里插入图片描述

但是其实我们还希望,我们加入的噪声越小越好,所以我们还会再加入一个限制。噪声的差距小于一个阈值,阈值一般定义为大于它人眼可以感知。

在这里插入图片描述

距离的计算

图片的距离方法有几种计算方法,L2 norm和L infinity,如图。

  1. L2 norm取得是 δ x \delta x δx的第二范数(即所有向量元素的平方和)
  2. L infinity取得是 δ x \delta x δx的无穷范数(即所有向量元素绝对值中的最大值)

在这里插入图片描述

L2 norm和L infinity的区别可以从下图例子比较明显得看出。

把图片做两种不同的变化:

  1. 对图片所有的pixel都做微小的变化;
  2. 只对图片上的其中一个pixel做大的变化。

此时考虑L2 norm和L infinity。

上述两种变化L2 norm的计算结果是一致的,而L infinity由于取的是变化的max,所以两种变化差距很大。对第一种变化,L infinity相对较小,而对第二种变化,L infinity则较大。

容易理解,我们选择距离应该考虑人类的感知。对人眼来说,上述两种变化,人眼更易感知第二种变化,则L infinity更接近人眼感知。

在这里插入图片描述

阈值的确定

我们前面提到,会对加入的噪声进行限制,要求其小于一个阈值,阈值一般定义为大于它人眼可以感知。而实际上,这个阈值的确定需要根据具体的使用场景来确定,需要一些domain knowledage。

1.3.2 attack训练过程

我们可以先不管噪声小于阈值的的这个约束条件,此时整个训练过程比较接近一个常规的训练过程。

此时目标是
在这里插入图片描述
和常规的模型训练目标不同的是,我们每次训练更新的是input,而不是parameters。

我们可以采用梯度下降法来求解。
在这里插入图片描述

如果我们考虑噪声小于阈值的约束条件,即

在这里插入图片描述

此时我们需要在gradient descent的基础上,对 x t x^t xt每一步更新后再做一步判断,如果此时超过了阈值,就再对 x t x^t xt进行一个修正。

在这里插入图片描述

举一个简单的例子,如果我们采用L infinity作为距离计算方式,则由于L infinity是取最大值,所以会有一个限值边框。则相当于我们是要在一个限定的范围内,寻找最优解。而保证我们在限定范围内找到最优解的方法就是,一旦搜索范围超出了限定范围,我们就将它拉回来。

在这里插入图片描述

上述过程涵盖了一个常规attack求解的过程。事实上在很多论文中有不同的变体,比如可能采用不同的优化求解方法,或者采用不同的约束条件。

在这里插入图片描述

1.3.3 一个简单的例子

Fast Gradient Sign Method(FGSM)只用一次update,一次就找出一个attack。相比之下有以下的一些特别的设计。

  • 在梯度这里做了一个特别的设计,取了一个sign,则g里面要么是+1要么是-1。
    在这里插入图片描述
  • learning rate直接设置为约束条件的 ϵ \epsilon ϵ,这样的好处是,最后找出来的 x x x一定落在限定范围的四个边角。
    在这里插入图片描述

那么既然这个FGSM是一击必杀,那么它多跑几个iteration会不会更好呢。答案是会,Iterative FGSM就是应对这种情形,但有可能一不小心就出界,还是一样的,拉回来就结束。

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SheltonXiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值