本文包含youtube视频,建议更换ip后浏览

攻击的例子#

对下图中左侧的猫,ResNet-50有64%的把握认为这是猫,而右侧的猫只是左侧的猫加上一个人眼不可辨别的杂讯,却可以使得ResNet-50 100%地认为这是一只海星。

image-20230202170835324

如何实现攻击#

白盒攻击#

白盒攻击(White Box Attack),是指今天我们攻击的模型参数已知的情况,这种攻击是比较容易的,因为我们可以用梯度下降法(模型参数不变,图片作为参数),找到一张图片,使得模型的L(x)=e(y,y^)L(x)=-e(y,\hat{y})(交叉熵乘-1)最小,此时交叉熵会很大,那么代表着模型对这张图片会产生错误的预测结果。

但是刚刚提到的攻击是Non-targeted attack,也就是攻击没有特定的目标,我们不知道产生的这张图片会让模型产生怎样的预测结果。如果我们想要操控模型的预测结果,那么需要Targeted attack,那么此时L(x)=e(y,y^)+e(y,ytarget)L(x)=-e(y,\hat{y})+e(y,y^{target}),后面的一项为模型对xx的预测yy和我们希望操控模型得到的结果ytargety^{target}的交叉熵。

image-20230202225928612

此外,攻击时还应该保证杂讯不会被人眼察觉,这就要求求解得到的图片和原来的图片差值Δx\Delta x符合一定的约束。常用的约束一般有二范数和无穷范数。由于一个像素的值改变很大容易被人眼察觉,所以一般来说使用无穷范数进行约束。

image-20230202170956654

将梯度下降方法和无穷范数的约束结合,最后优化问题的表达式为

x=argmind(x0,x)εL(x) x* = \arg \min _{d(x^0, x)\le\varepsilon}L(x)

优化的过程如下图黄色框内所示,如果更新xx后无穷范数超过限制(下图中蓝色点),就将xx拉回xxx0x^0(下图中黄色点)的连线上恰好满足无穷范数约束条件的点(下图中橙色点)。

image-20230202171038702

黑盒攻击#

但是在大多数情况下,我们是不知道模型的参数的,在这种情况下对模型的攻击称为黑盒攻击(Black Box Attack)。如果我们知道模型使用哪个数据集训练的,我们可以用这个数据集训练一个Proxy Network用来模拟要攻击的模型,然后此时问题转化为白盒攻击。

image-20230202171428258

http://arxiv.org/abs/1611.02770的使用ResNet-152、ResNet101、ResNet-50、VGG-16、GoogLeNet分别作为Proxy Network和Target Network,每一行代表用某种模型作为Proxy Network,每一列代表用某种模型作为Target Network(所以下表中对角线代表白盒攻击,非对角线代表黑盒攻击),表中数据代表正确率,正确率越低说明攻击效果越好。可以发现黑盒攻击也会有一定的效果,但是效果不如白盒攻击。

image-20230202171521981

http://arxiv.org/abs/1611.02770中也探讨了为什么黑盒攻击可以成功,下图中各个子图的水平方向是VGG-16的梯度方向(图像沿着这个方向变化可以攻击成功),垂直方向则是随机正交方向,可以发现5个模型的决策区域(图片处于深蓝色区域中不会被攻击成功)是类似的,所以可能是数据集上的问题使得黑盒攻击可以成功。

image-20230202173334559

One pixel attack#

https://arxiv.org/abs/1806.11146提出的One pixel attack只改变图片中的一个像素,同样能起到攻击模型的作用。

image-20230202172833316

Universal Adversarial Attack#

Universal Adversarial Attack,是指对每个模型,可以找到一个杂讯,使得这个杂讯加在任何图片上都能攻击成功。如果能实现在模型输入前将图片加上这个杂讯,可能就可以比较高效地破坏模型的工作。

image-20230202172721469

视觉领域外的攻击#

语音、文字上的攻击#

语音模型上攻击的方法类似图像模型,都是加入一个杂讯。对于文字模型上的攻击,https://arxiv.org/abs/1908.07125尝试在文章后加上"why how because to kill american people.“,发现模型在问答题上给出的答案都会变成"to kill american people”。

image-20230202235042383

物理世界中的攻击#

有时候对模型的攻击可能直接来自物理世界,比如下面的限速牌中的“3”的中间的横线部分被延长了一些,就能够干扰自动驾驶系统的判断(观察视频中的仪表盘可以发现限速功能失效了)。

image-20230202173955215

Adversarial Reprogramming#

https://arxiv.org/abs/1806.11146中提出的Adversarial reprogramming相当于是通过攻击别人的模型实现自己想要完成的任务,比如在杂讯图片的中间加上方块阵列,不同数目的白色方块数与特定label对应。那么只要观察模型的输出,就可以知道杂讯图片中间的方块阵列有几个方块。

image-20230202174036001

“Backdoor” in Model#

https://arxiv.org/abs/1806.11146提出了通过给数据集“投毒”的方法来在训练阶段攻击模型。被“投毒”的数据集中看起来图片和标签的对应都是没有问题的,但是可能会让模型在面对某个特定测试数据时出现问题。比如给狗的图片“投毒”,在狗的图片上加上不透明度很低的特定的鱼的图片的水印,使得模型在测试时会把特定的鱼的图片辨识为狗。

image-20230202174059023

如何对抗攻击#

被动防御#

被动防御是指在图像输入模型前,让图像通过一个filter,这个filter相当于一个盾牌,可以抵挡对模型的攻击。

image-20230202174147675

常见的被动防御方式有将图像平滑、图像压缩、通过generator重新生成等方法,但是这些方法如果被攻击者知道,攻击者也可以做出针对特定防御方式的攻击。

image-20230202174218277

https://arxiv.org/abs/1711.01991中提出了一种通过对图像进行随机增强的方式来对抗对模型的攻击,这种防御方式会有比较好的效果(毕竟自己都不知道自己要干什么,别人怎么能猜透^_^)。

image-20230202174240541

主动防御#

主动防御是指用训练数据集训练模型后,对每一个训练数据,用梯度下降求出用于攻击模型的数据,然后再用这些新的数据攻击模型,这个过程可以重复多次,相当于是一个不断“查缺补漏”的过程。也可以把这种方法理解成是一种数据增强的方式。

image-20230202174323018

本文采用CC-BY-SA-3.0协议,转载请注明出处
作者: 核子