龙空技术网

基于模型变异测试的深度神经网络对抗样本检测

慕测科技 277

前言:

目前姐妹们对“sprt算法”都比较着重,姐妹们都想要剖析一些“sprt算法”的相关资讯。那么小编在网上搜集了一些对于“sprt算法””的相关内容,希望我们能喜欢,我们一起来了解一下吧!

论文摘要

深度神经网络(DNN)已被证明在广泛的应用中是有用的。然而,它们也很容易受到对抗样本的攻击。通过一些精心制作的人类难以察觉的干扰来转换一个正常的样本,即使是高度精确的 DNN 也会做出错误的决定。多种防御机制已经被提出,旨在阻止这种对抗样本的产生。然而,最近的一项研究表明,大多数方法都是无效的。本文提出了一种在运行时检测对抗样本的替代方法。本文的主要观察到如果我们对 DNN 施加随机突变,对抗样本比正常样本要敏感得多。因此,本文首先提出了一种“敏感性”的测量方法,并从经验上表明,正常样本和对抗样本具有可区分的敏感性。然后,本文将统计假设检验和模型突变检验结合起来,通过测量输入样本的敏感性来检查输入样本在运行时是正常的还是敌对的。本文在 MNIST 和 CIFAR10 数据集上对方法进行了评估。结果表明,该方法能有效、准确地检测出由最先进的攻击方法生成的对抗样本。

技术介绍

本文的方法是基于这样的假设:在大多数情况下,与正常样本相比,对抗样本对 DNN 模型上的突变更“敏感”。也就是说,如果我们基于给定的 DNN 模型生成一组略有突变的 DNN 模型,那么突变的 DNN 模型更有可能使用与原始 DNN 模型生成的标签不同的标签来标记对抗样本,如图 1 所示。换句话说,我们的方法是基于区分对抗样本和正常样本的敏感性度量来设计的。在文献中,已经提出了多种方法来捕捉它们的差异,例如密度估计、模型不确定性估计和对输入扰动的敏感性。然而,我们的测量方法允许我们通过模型突变测试在运行时有效地检测对抗样本。

图 1:正常样本和对抗样本面对 DNN 突变模型的标签变化。

变异深度神经网络

为了验证我们的假设(并开发一种实用的算法),我们需要一种系统的方法来生成给定 DNN 模型的突变体,我们采用了对 DNN 进行突变检测的方法。突变测试是评价测试套件质量的一种众所周知的技术,其思想是通过应用一组突变算子来生成被测试程序的多个突变,以查看有多少突变可以被测试套件杀死。突变算子的定义是该技术的核心组成部分。由于传统软件系统与 DNN 的不同,为传统程序设计的变异算子不能直接应用于 DNN。

在这项工作中,我们需要一组变异的模型来进行运行时反例检测。我们将重点放在模型级算子上,这些算子直接修改原始模型,以获得不经过训练的突变模型。具体来说,我们采用了表 1 所示的 4 种。例如,NAI 是指我们改变原模型中一定数量的神经元的激活状态。

表 1 DNN 模型变异算子

评估假设

我们首先进行实验,测量将对抗样本和正常样本输入一组突变 DNN 模型时的标签变化率(LCR)。给定一个输入样本 x(普通的或对抗的)和一个 DNN 模型 f,我们首先采用表 1 所示的模型突变算子来获得一组突变模型。请注意,一些产生的突变模型可能是低质量的,即其对测试数据的分类精度明显下降。我们排除那些低质量的,只保留那些准确的突变模型,保留测试数据的准确性,即至少保证原模型精度的 90%,以保证决策边界不受太大扰动。一旦我们得到这样一组突变的模型 F,我们就可以在每个突变的模型 F 上得到输入样本 x 的标签 fi(x)。我们对样本 x 上的 LCR 定义如下

其中|S|是集合 S 中的元素个数,&(x)测量输入样本 x 对 DNN 模型的调制度的敏感性。

表 2 总结了我们使用两个流行数据集 MNIST 和 CIFAR10 以及多种最先进的攻击方法测量&(x)的实证研究。利用 NAI 算子随机选取部分神经元并改变其激活状态,共产生 500 个突变模型。第一列显示数据集的名称。第二个是突变率,即激活状态改变的神经元的百分比。第三列是随机抽取的 1000 个正常样本的 LCR 均值(置信区间为 99%),其余的列是用最先进的方法生成的 1000 个敌对样本的 LCR 均值(置信区间为 99%)。请注意,“错误标记”栏是来自测试集的样本,原 DNN 模型错误标记了这些样本。

表 2:在 500 个 NAI 突变模型下,正常样本和对抗样本的平均值&

从结果可以看出,在任何突变率下,对抗样本的&值都显著高于正常样本。

解释模型

我们使用一个简单的模型来解释上面的观察。回想一下,对抗样本的生成方式是在仍然能够跨越决策边界的情况下,尽量减少对正常样本的修改。不同类型的攻击使用不同的方法来实现这一目标。我们的假设是,大多数由现有方法生成的对抗样本都位于决策边界附近(以最小化修改)。因此,当我们对模型进行随机突变并扰动决策边界时,对抗样本更有可能跨越突变的决策边界,即如果我们将一个对抗的样本提供给一个突变的模型,输出标签就有更大的机会从其原始标签更改。图 2 直观地说明了这一点。

图 2:说明模型突变检测效果的模型

检测算法

表 2 的结果表明,我们可以使用 LCR 来区分对抗样本和正常样本。在本文中,我们提出了一种基于测量给定样本的 LCR 来检测运行时对抗样本的算法。该算法基于统计模型检验的思想。

我们的算法的输入是一个 DNN 模型 f,一个样本 x 和一个阈值&h,用来决定输入是否是对抗的。我们将在后面讨论如何系统地识别&h。该算法的基本思想是通过假设检验来判断两个相互排斥的假设的真实性。

三个参数(α,β 和 δ)用于控制出错的概率。测试在区间(r-δ,r +δ)内。在实践中,参数通常由可用的测试资源决定。通常,对于较小的错误范围,需要更多的资源。

我们的检测算法不断地从原始模型生成精确的突变模型(其精度超过测试数据的某个阈值),并对其进行评估&(x),直到满足停止条件。我们注意到,在实践中,我们可以预先生成一组精确的变异模型,并在运行时简单地使用它们,以进一步节省检测时间。

有两种主要的方法来决定什么时候可以停止测试过程,即有足够的信心拒绝假设。一个是固定大小抽样测试(FSST),它运行预定义的测试数量。这种方法的一个难点是找到要执行的适当数量的测试,使错误界限有效。另一种方法是序列概率比测试(SPRT)。每次更新&(x)后,SPRT 都会动态地决定是否拒绝一个假设,这需要可变数量的突变模型。SPRT 通常比 FSST 更快,因为一旦得出结论,测试过程就会结束。

在这项工作中,我们使用 SPRT 进行检测。我们基于 SPRT 算法的细节显示在算法 1 中。检测算法的输入包括输入样本 x,原模型 f,突变率 γ 和 LCR 阈值&h。此外,检测区间有一个浮动误差 δ。为了应用 SPRT,我们在第 5 行生成精确的突变模型。然后计算第 7 行处的 fi(x)是否等于 f(x)。如果我们使用突变的模型 fi 时观察到 x 的标签变化,则计算并更新第 9 行 SPRT 比率。当假设在第 11 行或第 14 行被接受时,算法就会停止。我们注意到,SPRT 保证以概率 1 终止。

实验研究LCR 差异

使用一组不同突变算子的突变模型计算正常样本集和对抗样本集的平均 LCR。为每个突变算子生成一组 500 个突变(由于 NS 的突变率太低,无法为 CIFAR10 模型生成突变模型,因此省略)。根据表 2 和 3 中总结的详细结果,得出以下答案:与正常样本相比,在模型突变情况下,对抗样本的 LCR 显著升高。

表 3:采用不同的突变算子进行模型突变检测,每组样本的标签变化率(置信区间为 99%,显著性水平)(NAI 结果如表 2 所示),结果以百分比表示。

LCR 的效果

使用 LCR 作为将输入样本分为正常样本和对抗样本的指标,进一步研究 ROC 曲线。我们比较提出的特性,即模型突变下的 LCR 采用两种基线方法。第一个基线是密度估计和模型不确定性估计的组合,作为联合特征。第二个基线是基于对输入样本施加随机扰动的标签变化率。

表 4 给出了不同模型突变算子下的 AUROC 结果。我们将结果与上面介绍的两个基线进行了比较。三种方法中 AUROC 最好的结果以粗体显示。我们可以观察到,我们提出的特性在超过半数的情况下都超过了这两个基线。我们也可以观察到 AUROC 的结果大多非常接近 1,说明我们可以利用所提出的特征来区分对抗样本,具有较高的准确性。因此模型突变下的 LCR 能比现有基线更好地检测对抗样本。

表 4:AUROC 结果

检测算法有效性

我们将检测算法(算法 1)应用于使用每次攻击生成的每一组对抗样本,并评估图 3 中检测的准确性。我们还报告了我们的算法在一组正常样本上的准确性。结果基于使用突变率 0.05 (MNIST)和 0.005 (CIFAR10)生成的一组模型,因为它们在检测对抗和正常样本之间具有良好的平衡。

图 3:检测精度和所需突变模型数量

图 3 显示了分别使用 MNIST 和 CIFAR10 数据集的 4 个突变算子进行检测所需的模型突变的检测精度和平均数量。可以看出,我们的检测算法对于每一个变异算子的每一种攻击都具有很高的准确率。结果表明,我们的检测算法能够有效地检测出大部分对抗样本。此外,我们还观察到,原始 DNN 模型(如 MNIST)越精确,我们的算法就越好。此外,JSMA 和 DF 的精度可以达到接近 1 的水平。我们还建议在 NS/WS 算子之上使用 NAI/GF 算子,因为它们的性能始终优于其他算子。因此我们的基于统计假设检验的检测算法可以有效地检测出对抗样本。

本文的主要贡献提出了一种在运行时检测深度神经网络的对抗样本的方法。方法基于一个经过评估的假设,即就标签变化率而言,大多数对抗样本比正常样本对模型突变更敏感。通过统计检查模型突变下输入样本的标签变化率来检测输入样本是正常的还是对抗的。在 MNIST 和 CIFAR10 数据集上评估了方法,并表明算法在检测对抗样本时既准确又有效。致谢

本文由南京大学软件学院 2020 级硕士顾逸飞翻译转述。

标签: #sprt算法