基于孪生结构的对抗样本攻击动态防御方法

2022-09-06 11:09夙,凌
计算机工程与应用 2022年17期
关键词:扰动滤波器像素

熊 夙,凌 捷

广东工业大学 计算机学院,广州 510006

神经网络已被广泛地应用于人们生活中的各个领域,如在图像识别[1-2]、语音识别、自动驾驶[3-4]和金融交易[5]等方面,都能取得较高的预测准确率。但是神经网络模型也存在漏洞,模型本身容易受到对抗攻击(adversarial attack),导致模型输出错误的预测结果。对抗样本攻击是指故意对神经网络的输入样本中添加人们难以察觉的微小扰动,使得分类器给出错误的分类。Szegedy 等人[6]第一次在图像分类领域中发现深度神经网络具有容易受到对抗攻击的弱点,如在图片分类任务中,通过在原始图片中添加精心设计的微小扰动,这些扰动通常很小以至无法被人所察觉[7],能够欺骗人眼使人误认为只是一张普通的图片。但它能欺骗分类模型,并让模型以较高的置信度将图片分类成一个错误的分类。这些人为添加微小扰动后的图片称为对抗样本(adversarial example)[8]。虽然大多数对抗样本都是针对计算机视觉提出的,但是除了图片分类模型之外,在文本识别和其他方面也容易受到对抗样本的攻击[9]。

随着神经网络模型的日益普及,针对其结构的对抗样本攻击,已经给神经网络各应用领域的安全性都带来了巨大的危害。尤其是在自动驾驶和人脸识别等安全性敏感的应用方面,造成了很大的威胁[10]。因此,如何提高神经网络对于对抗样本的抵御能力成为了深度学习安全领域的研究热点,目前不断有许多学者提出了针对神经网络结构的新的对抗攻击方法,和新的防御方法,这些对抗攻击和防御方法种类较多[11]。其中针对对抗攻击的防御策略主要分为两种,分别是防御方法和检测方法。第一类防御方法是提高深度学习分类模型的鲁棒性,即在模型遇到对抗样本攻击的时候仍然能够输出正确的分类结果,如对抗训练[12]。第二类防御方法是针对对抗样本的检测和拦截,即通过检测输入样本是否为对抗样本,并在将对抗样本输入分类模型之前,提前对其进行拦截,从而防御对抗样本的攻击,如使用额外的神经网络检测对抗样本。但这些方法都有自身的局限性,如对抗训练需要重新训练现有模型,因此需要很大的额外工作量。此外,这类方法需要获取大量的对抗样本去训练模型,且总会有新生成的对抗样本可以成功欺骗模型,因此这种防御方法对不同种类的对抗样本攻击不具有通用的防御能力。使用额外的分类器去检测对抗样本,则容易因为保证安全性而降低分类准确率,且这个额外的防御模型本身也容易受到对抗样本的二次攻击。

因此,本文提出一种增强神经网络对于对抗样本防御能力的方法,通过对目标神经网络构建一个权值共享的镜像模型,将二者组合成孪生神经网络结构,并在输入和输出处分别构建了动态滤波器和防御选择模块,增强了对于对抗样本的防御能力。相比于其他对抗样本防御方法和检测方法,本文方法对防御不同类型的对抗样本攻击更有通用性,且防御能力更强。此外,动态滤波器还能防止针对防御模块的二次攻击。另外,本文方法还同时具有防御和检测能力,无需修改重训练目标模型,部署更简单,只需要在原有神经网络结构上增加一个镜像,就能大幅提高对恶意对抗样本的防御能力。实验结果说明,与其他方法相比,本文方法具有如下优点:

(1)本文方法可以在无需特定对抗样本训练的条件下,防御多种对抗样本攻击,对不同种类对抗样本具有通用的防御能力。现有的防御方法需要大量且特定种类的对抗样本去训练模型,如对抗训练。这不仅需要收集大量的对抗样本,而且只能防御已知的特定种类攻击。本文只从孪生神经网络两端输出的差异着手筛选对抗样本,检测滤波器处理前后的对抗攻击效果变化,可以解决这个问题。

(2)本文方法对于对抗样本有更好的防御效果,在动态滤波器和孪生神经网络选择模块的共同作用下,能够更好地防御各种对抗样本的攻击。且由于镜像防御网络中的动态滤波器参数是动态变化的,能够增加针对网络的二次攻击的难度,提高防御方法的安全性。

(3)本文方法同时具有防御和检测能力,可在提高分类器对对抗样本鲁棒性的同时,检测输入是否为对抗样本。现有的防御方法往往只注重提高模型鲁棒性,或者只注重检测对抗样本,而不能同时取得两种防御效果,本文方法可在提高模型对对抗样本分类能力的同时,判断样本是否为可疑的对抗样本。

(4)本文方法无需额外的训练,方便部署。且防御模块不会影响原分类器的准确率。现有的对抗样本检测方法,往往需要在原分类器上添加并训练一个额外的检测模型去分辨对抗样本。额外训练模型需要很大工作量,不利于部署,且这些防御模块的干预会降低神经网络分类模型的准确率。本文方法只需要对分类器构建一个权值共享的镜像网络并组合成孪生结构,无需额外的训练,方便部署。且只会在检测出可疑对抗样本的情况下辅助神经网络分类,不会影响分类模型本身。

1 相关工作

本章简单介绍了对抗攻击及其原理,以及常见的对抗样本防御方法、检测方法。

1.1 对抗样本攻击

对抗攻击是指在样本中添加人为设置的微小扰动,如在图片中添加微小的扰动像素。这些微小扰动通常很难被人眼所察觉,但是却能有效干扰神经网络,使其输出错误的分类,甚至能够诱导神经网络以很高的置信度输出为某个指定分类结果。这些人为添加扰动像素的图片样本即是对抗样本图片。

对抗样本普遍存在于深度学习算法之中,生成对抗样本的方法有多种,根据攻击环境的不同可以将其分为白盒攻击和黑盒攻击两类。其中黑盒攻击是指攻击者对所攻击模型的内部结构和参数一无所知。而白盒攻击是指攻击者已经了解所攻击模型的内部结构和参数,目前大多数攻击算法都属于白盒攻击,如利用损失函数梯度进行攻击的FGSM(fast gradient sign method)算法,以及DeepFool算法、JSMA算法等[13]。以通过梯度来生成扰动像素的FGSM攻击算法为例,其算法表达如下:

其中,x′和x分别是生成的对抗样本图像和原始样本图像,ε表示扰动程度的大小,其他部分表示梯度。ε一般设置成一个较小值,使得生成的扰动难以被人眼所察觉。该方法可通过计算损失函数的梯度来生成扰动,改变图片像素,并最终生成能够欺骗分类模型的对抗样本图片。

1.2 对抗样本的防御方法

对抗攻击的防御,主要指提高深度学习分类模型对于对抗样本的鲁棒性,其目标是让深度学习分类模型在遇到对抗样本攻击时,仍然能够得出正确的分类结果。这类防御方法主要包括网络蒸馏,以及对抗性训练等。

1.2.1 对抗训练

对抗训练是一种提高神经网络鲁棒性的常用方法。它的主要思想是在模型训练过程中,除了用原始的样本训练模型以外,还另外将对抗样本加入训练集去训练模型。这样模型训练时除了正确率会不断提高以外,模型对于对抗样本的鲁棒性也会随着训练过程而不断的提高。Goodfellow等人的研究表明,对抗训练能够提高深度学习分类模型对对抗样本的鲁棒性,提高模型对对抗性实例的分类精度。虽然对抗训练是一种防御对抗样本的有效方法,但是它也有局限性。首先,对抗训练需要大量有效的对抗样本去训练模型,才能提高模型的鲁棒性。其次,对抗训练需要不断输入新类型的对抗样本进行训练,对于未经训练的新类型对抗样本的防御能力仍然较差。因此,无论如何训练,总会有新的对抗样本可以成功欺骗模型。

1.2.2 对抗样本去噪

除了利用对抗样本进行对抗训练以外,对输入图像去噪也是一种简单的对抗样本防御方法。由于对抗样本是在原始图像上加上特定的微小扰动,因此降噪的方法也可以消除部分的扰动,使得对抗样本失去欺骗深度学习分类模型的能力。在文献[14]中,作者构建了一个图像压缩模型去除对抗扰动,用于抵抗对抗样本的攻击。基于图片变换去噪的方法比较简单有效,常用的去噪方法还包括减少像素颜色深度、中值平滑、jpeg压缩等[15]。

和对抗训练相比,去噪的方法无需大量的对抗样本重新训练模型,应用于不同种类的对抗样本和不同结构的模型时也更具通用性。但是降噪的方法也有自身的缺陷,降噪方法难以去除全部噪点,且降噪后残留的对抗扰动仍会通过误差放大效应,被网络不断放大,最后导致模型得出错误的分类[16],因此仅采用图像去噪的处理方法对于对抗样本的抵抗能力仍然较弱。

1.3 对抗样本的检测方法

除了提高深度学习分类模型对于对抗样本的鲁棒性之外,也有许多研究尝试直接检测对抗样本,并在其输入分类模型之前进行拦截。目前提出的检测方法很多,包括如下几类检测方法等。

首先是使用额外的分类器去检测对抗样本,在文献[17]中,作者通过构建一个额外的神经网络,去辨别输入的样本是否是一个对抗样本。虽然这种方法可以将对抗样本检测问题转换为一个简单的二分类问题,但是这种方法本身也存在很多缺陷,额外的检测模型需要大量的对抗样本供其进行训练,且由于检测模型本身也是神经网络结构,所以也容易被对抗样本所攻击。

其次是基于分布统计的对抗样本检测方法,如Hendrycks 等人发现[18],对抗样本和正常的图像样本在统计特征上是有差异的,对抗样本在最大主成分上的权重往往比正常样本的要更高。在文献[19]中,作者用高斯混合模型对神经网络隐藏层的最后一层输出进行建模,并根据正常样本和对抗样本的不同分布去区分对抗样本。虽然统计特征可用于识别对抗样本,但是基于统计特征的检测方法也有很多自身的缺陷,如这类方法都需要收集足够数量的对抗样本,才能进行统计检测。

2 本文方法

现有的对抗样本图像防御方法往往只侧重于提高对对抗样本的鲁棒性,或者侧重于构建额外的模型检测对抗样本,而无法兼顾两者。本文提出一种基于孪生神经网络结构的对抗样本防御方法,解决了上述方法无法兼顾两者的问题。且在所构建的动态滤波器和孪生结构防御选择模块的共同作用下,可在无需特定种类的对抗样本训练的条件下,获得对不同种类对抗样本攻击的通用防御效果。且能够有效防御二次攻击,对对抗样本的攻击具有更好的防御效果。

2.1 孪生神经网络结构

孪生神经网络是一种由两个相似的神经网络构成的复合网络,这一网络结构由Chopra等人提出[20]。在狭义的孪生神经网络结构中,孪生神经网络的两个子网络的结构是完全相同且权值共享的。而在后来广义的伪孪生神经网络结构中,两个子网络可以由具有不同结构的神经网络组成。孪生神经网络的模型结构如图1 所示。由于该网络的特殊结构,使其可以同时接受两个输入,因此该网络的主要用途是可用于小样本学习,以及用于衡量两个输入样本之间的相似程度等。

图1 孪生神经网络结构Fig.1 Structure of siamese network

2.2 基于孪生结构的动态防御方法

由于孪生神经网络结构具有能够接受两个不同输入的特点,且可用于衡量两个输入样本的相似程度。本文利用这特点对孪生神经网络模型进行改进,并提出了一种基于孪生结构的对抗样本攻击动态防御方法,该方法可以增强神经网络分类模型对于对抗样本攻击的防御能力。这一基于孪生神经网络结构的对抗样本攻击动态防御方法,整体流程如图2所示。以一个易受攻击的普通深度学习分类模型Network1 为例,为了提高模型对于对抗样本的防御性能,本文首先对其构建一个内部结构形似、且权值共享的镜像网络Network2,用于防御对抗样本的攻击,并将二者共同构建成孪生神经网络结构。得益于孪生神经网络之间可以权值共享的特点,这一补充构建的防御模块并不需要额外的工作量去训练,大大减少了构建防御模块的工作量。此外,在镜像网络中的输入层构建了动态防御机制,其中其隐藏层内第一个卷积层的滤波器参数是动态变化的,可以更好地抵消对抗攻击的扰动像素,并防止发生针对防御网络的二次攻击。另外,在孪生神经网络的输出部分也构建了本文设计的对抗样本选择检测模块,通过检测图片在动态滤波前后的攻击效果是否有明显变化,从孪生神经网络两侧的差异着手,筛选出带有动态扰动的对抗样本,进一步提高模型对于对抗样本的防御效果。

图2 基于孪生结构的对抗样本攻击动态防御方法Fig.2 Dynamic defense method against adversarial example attacks based on siamese network structure

2.2.1 输入层的动态防御机制

镜像网络的内部结构和初始的神经网络结构相似,但是也有差异,其中在隐藏层添加了一层基于高斯滤波器设计的图像平滑层。这一卷积层的图像平滑原理是依次将每一个像素值取为周围像素的平均值,由于图片的像素间具有连续性,这一数值上的平滑处理,能够让中间像素失去细节,从而使得图片产生一种模糊的效果。

由于一个图像的不同像素之间的连续性是不同的,越是相互接近的像素间的连续性会越强,因此当滤波器在图片中移动并平滑图片时,不能够简单地取滤波器内矩阵的平均值,这种均值滤波会大大破坏模糊后的图像的细节。为了在平滑过程中,根据距离中心点的远近不同,给不同像素赋予不同的权重,使用加权平均的方法去平滑图像。本文在赋予滤波器矩阵内的像素不同权重时,采用了高斯函数去计算合适的权重。高斯分布也称正态分布,是自然界和工程技术中最常见的分布之一,可以作为大多数分布的近似分布。高斯分布可以表示为:

这一分布图像如图3 所示,呈现为中间高,两边逐渐降低的对称钟形曲线。决定分布形状的参数是期望值μ和标准差σ,其中期望值μ决定了分布的位置,而标准差σ则决定了分布的宽度,随着标准差的增大分布曲线会趋于平缓。特别的,当期望值和标准差分别取0和1时,分布符合标准正态分布。

图3 一维高斯分布图像Fig.3 One-dimensional Gaussian distribution

当将高斯函数应用于二维的图片滤波器时,由于令中心点为原点,则可以令μ的值取为0,此时可推导出二维高斯函数为:

二维高斯分布的图像如图4所示,二维高斯分布的每一个维度上都是符合高斯分布的钟形曲线。具体表现为位于中心原点的取值最大,四周的取值随着与中心距离的增大而递减。这一分布特点跟图像像素间,像素连续性随着距离增加而递减的规律相吻合,因此很适合用来分配图像滤波器内的权重参数。当滤波器对一个图片的像素进行平滑处理时,滤波器窗口范围越大,图片丢失的细节就会越多,对图像平滑效果也越强,会使得图像变得更模糊,这里以选取滤波器的窗口大小为3×3 为例。当滤波器窗口对图片中的某个像素进行平滑处理时,会将该像素点定位为中心,此时这点的坐标为(0,0),这个像素点周围最近的8 个像素坐标分别从(-1,1)依次递增至(1,-1),如图5(a)所示,根据二维高斯函数的分布规律,此时中心点的值为最大值,假设滤波器中的σ取值为1.5,则此时中心像素坐标(0,0)根据高斯分布计算的权重值为0.070 7。同理,此时这8个周围的最近像素点也可根据各自的坐标计算出对应的高斯权重值,如坐标为(-1,1)的像素点可根据二维高斯函数计算出权重为0.045 4。这样就可以计算出在σ设置为1.5,且窗口半径为1的整个滤波器内的权重矩阵为图5(b)所示。由于该权重矩阵计算的是滤波器窗口内各个像素的加权平均值,因此还必须让整个权重矩阵的总和为1,此时让权重矩阵的每个值除以总和0.478 7,得到最终用于平滑图像的滤波器内的权重矩阵为图5(c)所示。

图4 二维高斯分布图像Fig.4 Two-dimensional Gaussian distribution

图5 计算滤波器内的权重矩阵Fig.5 Calculating weight matrix within filter

由于对抗样本对原始图片添加的扰动总是尽可能得少,使得不容易被人眼察觉。因此这些少量的对抗扰动像素在周围像素点中往往不具有连续性,使用高斯滤波的方法对图像进行模糊处理,能够用周围连续的像素点对这些小部分不连续的对抗扰动像素进行平滑。这种改变图片输入的图像模糊算法能够在很大程度上改变这些对抗攻击的扰动,使其失效,或者对其攻击效果造成一定的干扰。以一个MNIST 手写数字图像为例,用高斯函数设计的滤波器对FGSM 生成的对抗样本图像进行平滑的过程如图6 所示。其中图6(a)是对抗样本图像,图6(b)是将对抗扰动像素平滑后的图像。

图6 滤波器对对抗样本图像的平滑效果Fig.6 Smoothing effect of filter on adversarial sample

首先,由于二维高斯分布函数符合上述像素间连续性递减的特性,因此可以用其构建出合理的图像平滑滤波器,将需要平滑的像素放置于滤波器中心位置,并让滤波器内的周围像素根据其坐标计算出在二维高斯分布曲线上的取值,即可根据距离的大小计算滤波器内的权重矩阵,根据像素间的关联性强弱获得一系列合理的加权平均值,这一取值方法符合了像素间的关联性随着距离递减的特点。其次,由于高斯分布函数中的参数σ可以改变高斯分布的形状,分布曲线的形状会随着标准差σ的增大而趋于平坦。因此只要改变这一参数,就可以对滤波器内像素的权重进行合理的调整,让滤波器对图像产生不同的平滑处理效果。本文根据这两点设计了一个动态的图片平滑滤波器,将其放置在镜像网络隐藏层的第一个卷积层中,让滤波器内高斯函数的标准差σ不取固定值,而是让其在一个合适的取值区间内随机变化。这样的设计会使高斯滤波器的窗口在每次处理一张图片前,都会先在这一取值区间内随机固定一个σ的数值,并用这个高斯分布函数去对图像进行平滑处理。通过这种方法,即使是将同一张图片输入镜像网络Network2的卷积层多次,也会输出多个不完全一致的平滑图像。这种滤波器的微小变动,只会改变图片部分像素,在总体上只会对图形的模糊效果有微小变化,对图形的分类结果并不会产生根本的影响[21],但是这个变动却能有效干扰扰动像素,防御对抗样本的攻击。本文在镜像网络中构造的这种动态去噪方法,使得构建对抗样本的攻击者很难通过在图片中添加固定的微小扰动像素,去对网络实施对抗样本攻击。另外,每次都会改变的图片像素也能干扰针对镜像神经网络发起的二次攻击,使得针对防御模块的对抗攻击更难发生,增加了模型的安全性。

2.2.2 输出层的选择防御机制

对于传统的构建额外的神经网络检测模型去检测对抗样本的方法,由于对抗样本和正常样本往往过于相似,容易有漏判的风险。且检测模型本身也可能被对抗样本攻击。所以本文在构建镜像神经网络用于检测对抗样本时,使用了和普通检测模型不一样的检测策略。由于同一个对抗样本虽然可能欺骗多个分类模型,但往往很难在多个不同的分类模型上取得完全一致的欺骗效果,根据这一攻击效果的差异,可以从根源上筛选出带有动态扰动的对抗样本。本文方法将一个图像样本同时输入上述构造的孪生神经网络的两侧,并比较两个网络输出的向量的相似程度。由于这两个镜像网络是结构相似且权值共享的,因此如果输入的图像是一个正常样本,理论上两个神经网络Network1 和Network2 会输出相似的结果。反之,如果输入的图像是一个带有攻击者特意添加的微小扰动的对抗样本,则即使图片能欺骗第一个分类网络Network1 得出错误结果,但在Network2 的第一个卷积层中这些扰动像素会被动态滤波器完全抵消或削弱,导致在模型两侧的网络得出区别较大的分类结果。根据这点,本文方法在孪生神经网络的输出层设置了一个防御选择模块,根据判断两侧分类网络内的向量的距离大小Distance(F(Input1),F(Input2))是否超过设置的阈值Maximun Distance,去判断输入图片是否相似,进而判断图片是否为对抗样本。根据这一方法,只要比较孪生神经网络模型两侧的Network1 和Network2分类效果是否足够相似,就可以进一步地有效过滤出带有人为设计扰动的对抗样本。即使有部分伪装得很好的对抗样本成功欺骗了两个分类模型,根据这种同一个对抗样本很难在不同网络上产生完全一致的影响的判断原理,也能根据孪生神经网络两侧的向量距离太大,而拦截出潜在的对抗样本,这一输出层的选择防御机制能大大提高分类网络对对抗样本的防御能力。

在孪生神经网络的两个子网络中,Network1处理的是原始图像,镜像网络Network2 处理的是动态高斯滤波器平滑后的图像。这一滤波器以丢失图片的部分细节为代价,平滑对抗样本中添加的恶意扰动像素。利用高斯函数对图片中不连续的对抗像素进行平滑处理,以周围连续的正常像素去抵消对抗扰动。虽然高斯滤波器在用连续像素平滑扰动像素时,损失了图形的部分细节,但是在同一个权值共享的网络中,对于高清图像和平滑后的模糊图像的输出结果是相似的,输出的向量会控制在一个误差范围之内[22]。相反的,对于一个恶意攻击者设计的对抗样本,则会在被高斯滤波器模糊之后,由于不连续的对抗扰动像素被完全抵消或削弱后,影响了对抗样本图片的攻击能力,导致镜像网络输出一个和原始网络输出差别很大的结果。这里用L2范数去衡量两个模型分类时输出的向量相似度,则两个分类网络的向量距离大小可以表示为如下形式:

其中,F(x)表示一个分类网络接受图像输入x后,将输入映射到新特征空间后对应的向量。这一距离可用于衡量同一张图片在被动态滤波器平滑处理前后的分类相似程度。并针对这一距离设置一个最大值Maximum Distance,将超过这一最大距离阈值的两个输入图像,归类为相似度不足的图像。最后根据平滑前后的两张图像相似性是否不足,在孪生神经网络的输出部分设计了一个选择模块。根据同一个对抗样本很难同时对两个不同网络产生相同攻击效果的原理,进一步筛选出潜在的对抗样本。在这一选择模块中,如果平滑前后的两张输入图片被孪生神经网络归类为足够相似的图片,则说明图片是正常样本,此时选择模块输出原始网络的分类结果Output1,分类准确率不会因为防御模块的影响而降低。只有当遇到一个对抗样本时,孪生神经网络才会因为平滑后的两张图片相似度严重不足,而将其归类为恶意的对抗样本图片,此时会输出镜像防御网络的分类结果Output2,并对这一张输入图像打上对抗样本标签。

这一防御模块的设计具有许多优点,首先,这种根据孪生神经网络两端输出距离去识别对抗样本的防御方式,可以从对抗攻击效果的根源处着手,在无需特定种类对抗样本训练的情况下,对多种对抗样本的攻击具有通用防御能力。其次,防御模块不会降低分类模型的准确率,只有检测到相似度不足的对抗样本才会使用防御模块的分类结果,解决了传统防御方法无法兼顾防御能力和准确率这两者的缺点。最后,这一模型同时具备了对抗样本防御和对抗样本检测的功能,不仅能够增强模型对对抗样本的鲁棒性,还能有效检测出对抗样本,目前所有防御方法都无法完全抵御各种对抗样本攻击,同时防御和检测可使得在无法做出正确分类时,也能对对抗样本打上可疑的恶意标签,增强了模型的安全性。

3 实验及分析

3.1 构造数据集及预训练

为了验证本文方法的有效性。本文分别用MNIST图片和CIFAR-10 图片构造了两组测试数据集,并将本文方法应用于对应的两个MNIST和CIFAR神经网络分类模型,测试本文的防御方法对于对抗样本的防御效果。这两组测试数据集都包含了由FGSM、DeepFool、JSMA 这三种攻击产生的对抗样本。每个单独的测试集中都包含有5 000张测试图片,其中MNIST是灰色手写数字数据集,而CIFAR-10 是彩色图像数据集。在每次实验中主要以预测准确率为评估指标,并使用FGSM、DeepFool、JSMA这三种攻击方法来检验本文防御方法的有效性。

此外,虽然对神经网络添加一个权值共享的镜像防御模块不需要额外的训练,但是本文中的孪生神经网络模型中的部分参数仍然需要训练集去训练,以确定合适的参数,如动态滤波器需要确定高斯函数参数σ的合适波动范围,孪生神经网络的选择模块也需要预先选择一个合适的阈值。且需要验证集去验证这些模型参数是否设置正确,因此,在测试实验开始前,还需要构造训练数据集和验证数据集,对构造的孪生神经网络进行简单的预训练,以设置这几个参数的数值。本文在构建训练集训练孪生神经网络时,为了验证本文方法在未使用特定种类对抗样本训练的条件下,仍对多种对抗样本攻击具有通用的防御效果,在预训练时只采用FGSM攻击方法去攻击MNIST 分类模型和CIFAR 分类模型,以生成训练数据集所需的对抗样本图片。首先分别给普通的MNIST 和CIFAR 神经网络分类模型添加镜像防御模块,并构建成本文设计的孪生神经网络结构。然后针对MNIST 数据和CIFAR 数据,构建了两个数量为50 000的数据集,这里的两个数据集中,50%是正常的图片,另外的50%则是用FGSM 攻击方法生成的对抗样本。并将其以8∶2 的比例划分为训练集和验证集。对所构建的孪生神经网络进行预训练。在确定好合适的参数值后,即可通过实验,用上述的三种攻击方法分别检验本文方法的防御性能。

3.2 对抗样本攻击防御实验

首先,以准确率为评估指标,测试本文方法在未使用特定种类对抗样本训练的条件下,对多种对抗样本攻击的通用防御能力。在测试防御准确率的过程中,由于本文方法同时具有对抗防御和对抗检测功能。因此,对于测试集中的正常图片,只有模型正确输出其分类、且未输出对抗样本警告时,才视为正确预测。对于测试集中的对抗样本图片,只要模型正确输出了对抗样本的分类、或者在无法正确分类时输出了对抗样本警告,就视为防御成功。

将上述使用不同种对抗样本攻击构造的测试数据集,分别输入对应的孪生结构分类模型。其中以MNIST分类模型构建的孪生结构防御模型为例,其输入包括3个测试集,这3 个测试集分别是用FGSM、DeepFool 和JSMA 三种攻击方法添加对抗扰动生成的对抗样本图片,和普通的手写数字图片,各以50%的比例组成的5 000张测试图片数据集。实验得到相应的检测准确率如表1所示。

表1 本文方法在不同测试集上的检测准确率Table 1 Detection accuracy of proposed method on test datasets %

从实验结果可以看出,在未收集特定种类对抗样本进行训练的条件下,在MNIST和CIFAR测试数据集上,本文的防御方法对FGSM攻击的防御准确率较高,分别为95.35%和92.13%。对于DeepFool方法的防御准确率则较低,由于DeepFool 能够以更小的扰动生成对抗样本图片,使得孪生神经网络的防御选择模块中两端的输出区别较小,在两个测试数据集上对于DeepFool 的防御准确率分别为93.52%和91.47%。对于JSMA 方法的防御准确率则分别为93.73%和90.80%。

由于本文方法只在预训练阶段使用了少量FGSM攻击方法生成的对抗样本确定参数,并未针对FGSM、Deepfool 和JSMA 攻击方法进行训练。由此可见,本文方法能够从两个分类网络的攻击效果差异上着手,在没有特定种类对抗样本训练的条件下,仍然以较高准确率防御了各种对抗样本的攻击。和其他常规的防御方法相比较,本文的防御方法更具通用性,可以在不需要收集特定种类的对抗样本图片进行训练的情况下,获得对不同种类对抗样本攻击的通用防御能力。因此,实验中在多种对抗样本测试集上取得的防御效果,证明了本文方法对多种攻击都具有通用的防御能力。

然后,为了进一步测试本文方法对于不同强度的对抗攻击的防御能力,以精确率、召回率和F1-score 作为评估指标,在MNIST 数据集上,分别用不同扰动强度ε的FGSM攻击生成对抗样本进行实验。在实验中,扰动强度ε由0.1递增至0.5。最后得到的实验结果如表2所示。从实验结果可以看出,本文方法对不同扰动大小的FGSM 攻击都具有一定的防御效果。当对抗扰动取最小值0.1 时,本文方法的精确率为94.71%,召回率为91.15%,F1-score 为92.89%。而当对抗扰动增大至0.5时,本文方法的精确率为99.27%,召回率为93.61%,F1-score为96.35%。

表2 对抗扰动大小对防御效果的影响Table 2 Influence of disturbance strength on defense effect

图7 展示了防御效果随着动态扰动的增大而变化的过程。从图中可以看出,当对抗扰动增大时,本文方法对FGSM 对抗样本的检测效果也随之增强。这是由于随着对抗扰动的增大,对抗样本中改变的像素点也越多。因此,经过动态滤波器滤波后,对抗样本图片和原始图片的差异也变得越大,使得孪生神经网络的防御选择模块能够更有效地分辨出正常图片和对抗样本图片。

图7 对抗扰动增大时,对于FGSM攻击的防御效果Fig.7 Defense effect against FGSM attack as disturbance increases

3.3 二次攻击防御实验

由于滤波器内的参数在动态波动,因此本文的防御方法除了具有通用的防御能力之外,还比常规方法具有更强的二次攻击防御能力。在动态滤波器不断变化的参数和孪生神经网络的防御选择模块的共同作用下,更难被对抗样本攻击二次攻破,能够获得更好的二次攻击防御效果。目前的对抗样本防御方法都有很大的局限性,用于防御对抗样本攻击的模型本身也存在被二次攻击的风险,文献[23]对各种对抗样本检测方法做了总结。

为了测试本文的防御方法对二次攻击的防御能力。将本文方法和文献中的对抗训练方法和使用平均滤波器对图像进行模糊处理的方法进行对比,比较三种防御方法在白盒攻击情况下对二次攻击的防御效果。

分别使用MNIST 和CIFAR-10 分类模型进行两组实验。其中,以MNIST分类模型为例,对于对抗训练的防御方法,在数据集中生成FGSM、DeepFool 和JSMA三种攻击方法的对抗样本,对分类模型进行对抗训练。然后对MNIST 分类模型进行二次攻击,并分别用三种防御方法防御。分别构建总数为5 000 张,且包含了三种对抗样本的MNIST 图片测试集,比较对于三种防御方法的二次攻击成功率,实验结果如表3所示。

从表3 实验结果可以看出,在MNIST 和CIFAR-10数据集上,相比其他常规的防御方法,如对抗训练和用均值滤波器平滑对抗样本的方法,本文的防御方法可以降低二次攻击的成功率,具有更好的防御能力。在镜像网络中,参数不断变化的动态滤波器能提高针对防御模块的攻击难度,使得二次攻击更难成功。动态滤波器能够平滑或干扰大多数的扰动像素,并结合孪生神经网络的选择模块有效地防御对抗样本攻击。使得对抗样本的对抗扰动更难成功欺骗分类模型,提高恶意攻击者的攻击门槛。

表3 对本文方法和其他防御方法的攻击效果比较Table 2 Different attack performance of this method and other methods %

4 结论及未来工作

为增强神经网络对于对抗样本攻击的防御能力,本文设计了一种基于孪生结构的对抗样本攻击动态防御方法。在输入层中,通过镜像网络中设计的动态滤波器,平滑对抗样本图像中的扰动像素。并在输出层中,通过孪生神经网络中的防御选择模块,从孪生神经网络两端的差异着手,通过检测动态滤波前后样本是否有不同的攻击效果,从根源处检测出各种对抗样本,进一步提高对对抗样本攻击的防御能力。

实验结果表明,通过这种方法,可以在无需特定对抗样本训练的条件下,防御多种对抗样本的攻击,相比于其他防御方法,本文方法对各种对抗样本具有更通用的防御能力。在上述MNIST 测试集的实验中,本文防御方法在FGSM 算法生成的对抗样本测试集上取得了95.35%的防御准确率,在DeepFool和JSMA对抗样本上则分别取得了93.52%和93.73%的防御准确率。证明了在没有使用特定对抗样本进行训练的情况下,本文方法仍然能取得较高的防御准确率。此外,在动态滤波器和选择模块这两个防御模块的共同作用下,该方法比其他防御方法更难被成功攻击,提高了攻击者的二次攻击难度。在MNIST 和CIFAR-10 数据集上使用三种攻击进行二次攻击实验时,对抗训练和使用均值滤波器平滑对抗样本的方法均被成功攻破,但在本文方法上只取得了68.24%和63.15%的攻击成功率。本文方法难以被二次攻击,也在整体上提高了本文防御方法的安全性。

虽然本文方法在对抗样本攻击检测问题中取得了一定的效果,但是在设计卷积层的动态滤波器和设计孪生神经网络的防御选择模块时,只使用了较为通用的高斯函数和L2范数。这两个防御模块的具体方法和参数在选择上还有很大的研究空间,在未来的研究工作中,针对不同分类任务的特点,还可以尝试更有针对性的动态防御方法和特征距离衡量方法,进一步提高防御能力。

猜你喜欢
扰动滤波器像素
像素前线之“幻影”2000
带扰动块的细长旋成体背部绕流数值模拟
磁暴期间中国中低纬电离层不规则体与扰动分析
结合向量化和FFT技术的模型扰动引力快速计算
“像素”仙人掌
从滤波器理解卷积
一种改进的基于SINS/GNSS的水平重力扰动测量方法
开关电源EMI滤波器的应用方法探讨
一种微带交指滤波器的仿真
高像素不是全部