阴影也能变得很危险,对抗样本攻击,论文原文:https://arxiv.org/abs/2203.03818v2

背景介绍

  这篇文章是2022年的CVPR,是哈尔滨工业大学和清华大学联合发表的文章。传统模式对抗样本的生成是基于源模型并且使用梯度上升的方式使得我们生成的扰动能够使得模型给出一个错误的置信度输出,从而实现对抗样本的生成。关于对抗样本的相关知识,可以参考我之前的一篇文章Feature Importance-aware Transferable Adversarial Attacks。但是这篇文章提出一个思路说,阴影是危险的,因为阴影里可能有对抗信息使得模型给出错误的判断。

image-20220318113657783

作者的Contributions

  • 他们提出了一种基于光照的物理世界的对抗攻击并且在黑盒攻击下证明了这种非常自然的现象---阴影能够实现对抗攻击。
  • 他们提供了一种优化策略来生成数字图像领域和真实物理世界领域基于阴影扰动的对抗样本。
  • 他们提供了一种评价机制在模拟图像和真实世界来证明他们模型的有效性。除此之外他们也讨论了模型的不足和如何防御阴影对抗攻击。

作者の思路

问题公式化

  一般来说,深度神经网络进行分类的模型如下图所示,输入图像x,输出图像属于每个类别的概率p,找出最大概率的所属的下标,也就是我们设定的对应的分类。

image-20220318112824857

  那么对于对抗攻击我们可以有这样的思路,假设你要攻击一个模型,这个模型的内部参数我们不知道,那么这就是一个黑盒攻击。但是我们知道该模型输入图像x,输出该图像属于哪些类别的置信度或者说概率。对于对抗攻击来说,我们想要我们生成的对抗样本在黑盒模型输出的置信度是true label的置信度要低,那么可以将上述的描述看做如下的一个优化,如下图所示。那么接下来主要解决这个优化问题即可。

image-20220318113405226

阴影建模

阴影的位置

  作者在文中指出,阴影的形状为三角形的时候是最简单也是最容易实现的。当然如果是其它多边形的话,也有可能提高攻击的成功率,但是这种多边形的阴影在现实世界中不好实现。综合考虑,作者对于阴影形状的选择选择了三角形。那么描述阴影的位置可以用三角形三个顶点的坐标,简化成 V = {(m1,n1),(m2,n2),{m3,n3}}。假设现在有个全1的mask矩阵,那么阴影在原图中的位置就是,maskV求交集。那么我们优化的参数就是阴影的位置,阴影放在哪个位置的时候能够使得模型对true label的置信度输出要更低。

阴影的值

  作者假设阴影只影响光的亮度,其它分量不变,所以作者将数字图像RGB空间转换成LAB空间,L代表亮度,A代表从绿色到红色的分量,B代表从蓝色到黄色的分量。作者在这里也做过实验证明了阴影对光的亮度影响比较大。当然作者也尝试了其它的颜色空间,但最后还是选择了LAB空间,但是LAB空间是最好的选择。那么对于一幅RGB图像转换成LAB空间相关公式如下图所示。并且给一个多边形Pv和一个mask遮罩M,那么生成的对抗样本图像可以被表示为如下,其中k表示的是系数,范围为[0,1]。

image-20220318144509568

image-20220318144413196

image-20220318144428863

  然而在实践中,影子的形态是复杂物理过程的结果。系数k可以因多种因素而变化,包括光源、场景几何、目标物体的材质、相机的成像质量等。但是经过作者的统计LAB三个通道在阴影情况下的值是不在阴影部分的值0.430.990.90倍。并且AB通道的标准差分别为0.050.07,这偏差很小。所以说对于阴影系数k,我们通常取0.43

在数字图像中的阴影攻击

  经过上述问题公式化和阴影建模之后,对于使用阴影来进行对抗攻击则可被描述如下图所示。对于黑盒模型的置信度函数f,我们的目的就是在输入的图像为我们生成的对抗图像的情况下,输出的值在真实类别的置信度要小。接下来我们只需要解决这个优化问题即可。

image-20220318221150773

粒子群算法

  一般来说我们使用梯度下降等方式来解决上述的优化问题,但是现在作者发现使用梯度下降等方式来优化上述问题会出现梯度消失和梯度爆炸的问题,作者推断可能是由于以下原因:

  • 阴影位置的坐标V是离散的。
  • 对于一个坐标,判断其是否位于阴影区域内是一个布尔函数,这使得梯度的求解不可靠。

  此时,作者转变思路,使用粒子群优化算法(Particle Swarm Optimization)来优化上述问题。因为粒子群算法不需要使用梯度信息,所以使得问题可解。而什么是粒子群算法,这篇文章什么是粒子群算法有详细的解释,我就不在此过多解释了。

  在这里作者将阴影部分的位置当做参数去优化,将黑盒模型的置信度函数当做评价函数,黑盒模型预测出来的结果和真实结果不一样,那么攻击成功,也即是优化完成。

在现实世界中的阴影攻击

  为了能够实现现实世界里的阴影攻击,并且使得攻击效果更加的好,这里作者使用了两种方式来使得我们的攻击更加鲁棒,一种是期望变换。期望变换,简单来说就是将生成的对抗样本经过一些变换(旋转、平移、缩放)然后再去优化模型。另外一种方式就是使预测更加稳固,这里作者使用的方法就是,首先优化下面的公式5,当优化完成之后,模型会给出一个错误的输出,然后重新运行粒子群优化算法,使得优化的输出和原来的错误输出是一致的,如下面的公式6所示。这样一来,生成的对抗样本的攻击性就比较强。而在现实世界是如何实现阴影攻击的呢?其实就是在数字图像上基于某个标志牌生成的对抗样本,我们记住阴影部分的位置,然后在现实世界中,利用人造光源也好,实际光源也好,制造出那样的阴影,然后再去攻击模型。

image-20220318225657519

image-20220318230125893

相关实验

  作者在这里进行了相关的实验,一是证明k值的选取。另外一个是物理世界的攻击,再一个就是定时攻击。最后做了一下消融实验,关于阴影的形状,以及n-random-restart-strategy。这里贴一下实验结果,总之作者想说明的是,效果还不错。

image-20220318231334727

image-20220318231411109

image-20220318231430029

  作者在最后也说了下这种方法的不足之处:

  • 需要强大的单一光源来制造阴影
  • 不能进行明确的有针对性的攻击,因为阴影的扰动过于单一

说在最后

  这是2022的一篇CVPR,整体看下来,感觉故事讲得不错,但是思路和创新上并没有给人眼前一亮的感觉,总结了一下缺点,这里列一下。

  • 该方法的限制比较大,条件严苛
  • 该方法没有和其它对抗攻击的方法进行比较,虽然生成的扰动不同,但是我觉得还是可以比较一下的
  • 该方法攻击的模型较少,可以尝试训练主流的分类网络在交通标志牌的识别上,然后攻击那些网络,看看结果如何
  • 该方法里面提到的预定攻击感觉比较牵强,本来阴影只有在特定位置上才有攻击效果,所以你生成的阴影必然在一天内只有一段时间有效,所以这个预定攻击感觉就。。。。(有点扯)

参考资料

[1] 萌萌哒程序猴,2020.粒子群(PSO)算法的理解与应用[DB/OL].[2022-03-18].https://blog.csdn.net/shandianfengfan/article/details/110022928

Q.E.D.


  Java后端开发工程师一名,北漂一族,欢迎大家前来交流