[论文解读] DeepStellar: Model-Based Quantitative Analysis of Stateful Deep Learning Systems
DeepStellar: Model-Based Quantitative Analysis of Stateful Deep Learning Systems
简介
论文标题
- DeepStellar: Model-Based Quantitative Analysis of Stateful Deep Learning Systems
- DeepStellar:基于模型的有状态深度学习系统定量分析
- 2019.8
贡献
- 我们建议将基于RNN的有状态DL系统形式化为DTMC模型,以刻画系统的内部状态和动态行为。
- 基于DTMC抽象,我们为有状态DL系统设计了两个相似性度量和五个覆盖准则,这是最早量化样本差异和测试RNNs数据充分性的标准之一。
- 利用DeepStellar,我们设计了两种算法来检测敌意样本,并根据度量和准则对RNNs进行引导测试。
- 我们通过控制实验和两个典型的真实应用程序对DeepStellar进行了深入的评估。
DTMC:Discrete-Time Markov Chain 离散时间马尔可夫链
DeepCruiser的改造升级版,核心思想不变,但理论部分与实验部分都增加了许多内容,
1. 将RNN系统对状态和转移同时进行抽象成为一个状态转移模型,这里使用的是DTMC模型
2.对转移后的模型定义覆盖标准,这里有三个状态级准则和两个转换级准则,同时还有两种输入相似性度量
3.对模型应用定义的覆盖标准实施fuzz测试,并进行对抗样本检测
摘要
深度学习(DL)在许多前沿应用中取得了巨大的成功。然而,最先进的DL系统仍然存在质量问题。虽然前馈DL系统的分析已经取得了一些进展,但基于递归神经网络(RNN)的有状态DL系统在音频、自然语言和视频处理等领域的广泛应用却鲜有研究。在本文中,我们开启了基于RNN的DL系统定量分析的第一步。我们将RNN建模为一个抽象的状态转换系统,以刻画其内部行为。在抽象模型的基础上,我们设计了两个踪迹相似度度量和五个覆盖准则,使得RNNs的定量分析成为可能。在此基础上,提出了两种基于量化度量的对抗性样本检测算法和覆盖率引导的测试生成算法。我们在四个基于RNN的系统上对DeepStella进行了评估,这些系统涵盖了图像分类和自动语音识别。结果表明,抽象模型能有效地捕捉RNN的内部行为,并证实(1)相似性度量即使在很小的扰动下也能有效地捕捉样本之间的差异(检测敌意样本的准确率达到97%),以及(2)覆盖准则对于揭示错误行为是有用的(生成的敌意样本比随机测试多3倍,比展开方法多数百倍)。(2)覆盖准则有助于揭示错误行为(生成的敌意样本比随机测试多3倍,比展开方法多数百倍)。
介绍
然而,现有的技术并不是专门设计成适用于RNN的。特别地,与FNN相比,RNN通过内部状态的循环和记忆来捕捉时间行为,以考虑过去(或未来)观测的影响。简单RNN的体系结构如图1所示。简单RNN是组织成连续迭代的神经元样节点的网络。它将数据流和维护的内部状态向量都作为输入。RNN不是将输入数据作为一个整体来处理,而是在数据到达时处理一小块数据,并且在更新内部状态的同时在每次迭代中顺序地产生输出。换句话说,RNN中的信息不仅从前面的神经层流向后面的神经层,而且还从当前的迭代流向后续的迭代。RNN的有状态特性有助于它在处理顺序数据(如音频和自然语言)方面取得巨大成功。目前,长短期记忆(LSTM)[22]和门控递归单元(GRU)[10]是最先进和使用最广泛的RNN之一,它们的设计是为了克服大多数DL系统训练过程中存在的“消失梯度问题”[21],而简单RNN的迭代设计加剧了这一问题。
虽然最近的工作提到了通过直接展开来分析RNN的可能性,将其视为FNN[27,32,50],但这样的策略仍然远远不足以处理不同长度的输入。与FNN不同的是,在FNN中,每一层在特征提取中都具有固定的角色,而展开的RNN中的一层对于不同的输入序列通常不保持相同的特征潜在空间函数(或语义)。因此,对一个输入有效的相同展开可能不适用于另一个输入。此外,当输入序列非常长时,可能存在可伸缩性问题。
为了更好地刻画RNN的内部行为,我们提出了一个基于RNN的DL系统的通用定量分析框架DeepStellar。考虑到RNN的状态特性,我们首先将RNN建模为离散时间马尔可夫链(DTMC),以捕捉其统计行为。在DTMC模型的基础上,我们设计了两个踪迹相似性度量来量化不同输入的预测接近度,并设计了五个覆盖标准来从不同的角度度量测试数据的充分性。为了进一步证明DeepStellar的有效性,我们开发了两种基于定量分析的算法,即RNN测试和对抗性样本检测,以解决目前学术界和工业界高度关注的问题。
我们实现了DeepStellar,并在从图像分类到自动语音识别(ASR)的四个基于RNN的系统上对抽象模型、相似性度量和覆盖标准的有效性进行了实证评估。具体地说,我们首先进行了对照实验来评估抽象模型的性能。结果表明,(1)迹相似性度量可以很好地反映RNN的区分能力,抽象模型对微小扰动产生的输入具有足够的敏感度;
(2)由抽象模型导出的覆盖准则能够度量测试充分性,并能有效地表现错误行为;
此外,我们将这些度量和标准应用于两个应用,即对抗性样本检测和RNN的覆盖率引导测试。结果表明,对于ASR和图像分类系统,DeepStellar(1)分别检测89%和97%的敌意样本;(2)生成的测试覆盖率高,产量最多是随机测试和现有神经元覆盖率引导的展开测试的数百倍[50]。
综述
图2总结了我们方法的工作流程,包括RNN的抽象模型构建,在抽象模型上定义的不同量化度量,以及检测和生成RNN对抗性样本的两个应用程序。
抽象模型构建模块将训练好的RNN作为输入,通过剖析分析其内部行为。分析的输入来自训练数据,它最能反映训练后的RNN模型的特征。具体地说,对每个输入序列进行简档以导出轨迹,即RNN状态向量序列。在分析之后,我们可以获得一组跟踪,其中记录了在培训阶段访问的状态和进行的转换。
在实践中,RNN的内部状态空间和训练数据支持的踪迹数量往往超出了我们的分析能力。因此,我们对状态和轨迹进行抽象,以获得一个能够捕捉训练网络的全局特征的抽象模型。在状态层面,我们应用主成分分析(PCA)[26]来降低状态向量的维数,并保留前k个最主要的成分。对于k个维度中的每一个,我们将其进一步划分为m个相等的间隔。在转换层,我们根据抽象状态将具体的转换合并为抽象的转换。我们还考虑了每个状态下不同转变的频率,并有效地导出了训练后的RNN的离散时间马尔可夫链(DTMC)[38]模型。
MDP变成了DTMC
在抽象模型的基础上,我们设计了两个评价不同输入引起的轨迹相似度的度量和五个覆盖准则,以便于对RNNs进行系统测试。度量和覆盖标准都是从状态和转换级别设计的。具体而言,轨迹相似性度量包括基于状态的轨迹相似性(SBTSim)和基于变迁的轨迹相似性(TBTSim)。覆盖准则包括基本状态覆盖(BSCov)、n步状态边界覆盖(n-SBCov)、加权状态覆盖(WSCov)、基本转移覆盖(BTCov)和加权转移覆盖(WTCov)。
state-based trace similarity (SBTSim) ;
transition-based trace similarity (TBTSim) ;
basic state coverage (BSCov);
n-step state boundary coverage (n-SBCov);
weighted state coverage (WSCov);
basic transition coverage (BTCov);
weighted transition coverage (WTCov).
原来的论文是两个状态三个转移,现在是三个状态两个转移
然后,我们将这些度量和标准应用于两个应用,即对抗性样本检测和覆盖率引导测试,这两个应用的目的都是为了减轻来自对抗性样本的威胁。在此基础上,提出了一种基于相似度量的运行时的敌意示例检测方法。根据覆盖标准,我们开发了一个测试框架来指导测试生成,目的是为了提高覆盖率并发现缺陷以实现质量保证。这两种技术是相辅相成的。该测试技术旨在生成看不见的对抗性样本,帮助开发人员分析和提高模型的健壮性。敌意样本检测技术能够在运行时识别恶意输入并防止潜在损害。
多了两个检测方法
RNN的状态转移建模
RNN内部状态和状态转换
在[42]的基础上,我们将神经网络抽象地表示为一个可微的参数化函数。RNN的输入是序列 其中是输入域,是序列的长度。设是该序列的第i个元素。然后,当将传递到RNN中时,它保持状态向量,其中 并且,其中S是隐藏状态的域, 是RNN在第i次迭代时的隐藏状态,并且 是在该步骤的对应输出。我们用来表示状态向量 的d维。
自然,每个输入序列 诱导有限的状态转换序列 ,我们将其定义为 trace。迹中的第i个元素(由 表示)是在接受输入并产生输出 之后从 到的过渡。有限状态换能器(FST)[38]可用于更紧凑地表示轨迹集合[39],如下所定义。
定义1.Fst是一个元组(S,X,O,I,F,δ),使得S是非空的有限状态集合,X是输入字母表,O是输出字母表,I⊆S是初始状态集,F⊆S是最终状态集,δ⊆S×X×O×S是转换关系。
例如,图4示出表示两个轨迹的简单FST,即和,其中s0是初始状态,s3是最终状态。第一道采用输入序列x0x1x2并发出输出序列y0y1y2;第二道采用输入序列并发出输出序列
这部分没有变化,和之前一样
抽象状态转换模型
训练RNN时启用的状态和轨迹的数量可能很大。为了有效地捕捉大量输入序列所触发的行为,更好地捕捉训练网络的全局特征,本文引入了一种抽象的状态转移模型。抽象模型过度逼近RNN的观测轨迹,与原始模型相比,状态和跃迁的集合要少得多。抽象也是可配置的-可以在模型的大小和精度之间进行折衷,以便抽象模型仍然能够维护特定分析任务的输入序列的有用信息。为了得到训练后的RNN的抽象模型,我们同时对状态和转换进行抽象。
状态抽象。每个当前状态被表示为一个向量,通常是高维的(即,m可以是很大的数字)。直观地说,抽象状态代表了一组在空间上接近的具体状态。为了获得这样的状态抽象,我们首先应用主成分分析(PCA)[34]对具体的状态进行正交变换-找到最能区分给定状态向量的前k个主成分(即轴),而忽略它们在其他成分上的差异。这有效地将所有具体状态投影到所选择的k维分量基上(表示为PCA-k)。
然后,我们将新的k维空间分割成个规则网格[49],使得在每个轴上有m个等长间隔:这里多了个公式解释
其中表示d维上的第i个区间,和分别表示d维上所有状态向量的下界和上界。这样,落入同一网格的所有具体状态 被映射到相同的抽象状态:。我们将所有抽象状态的集合表示为。值得注意的是,状态抽象的精度可以很容易地通过调整参数k和m来配置。
设 是在d维上 的索引 使得对于所有 落在 对于任意两个抽象状态 和 我们将它们的距离定义为:
这个定义也可以推广到包括超出上下限的空间
这里都一样
转换抽象。一旦计算出状态抽象,就可以将两个具体状态之间的具体转换映射为抽象转换的一部分。抽象转换表示一组共享相同源和目标抽象状态的具体转换,换句话说,在两个抽象状态和之间存在抽象转换当且仅当和 之间存在具体转换,使得 所有抽象转移的集合表示为。
例如,图4a描绘了三条具体轨迹,即t1、t2和t3,其中状态被示为点,而转换是连接点的有向边。以虚线绘制的网格表示抽象状态,即 和 ,每个状态都映射到相应网格内的一组具体状态。因此,抽象转换集是。
这里基本一样,注意图中不在考虑输入x
轨迹相似性度量
这实际上是原有论文中RQ1,这里单独抽了一节
为了精确比较两个输入序列,我们定义了迹相似度量来量化它们在抽象模型上诱导的状态转移的接近程度。在给定抽象模型M和输入x的情况下,我们将x所覆盖的抽象状态和转换集合表示为,然后,基于它们所覆盖的状态和转换的Jaccard索引,分别定义了这两个输入x,y的基于状态和基于转换的踪迹相似性度量:
轨迹相似性度量的范围在[0,1]上,其中0表示不相交的集合(即,由x和y引起的轨迹完全不同),而1表示相等的集合(即,轨迹相似)。
这实际上是原有论文中RQ1采用的度量输入相似度使用的指标
图5显示了由两个语音输入样本(图5A(“这本书是关于科学的”)和图5B(“这本书是关于文学的”)诱导的基于RNN的ASR模型上的具体痕迹。较暗的点在序列中出现得较早,反之亦然。我们可以在序列的后面部分看到两者的明显区别。然后在PCA-3抽象下将这两个具体痕迹投影到三维空间上,每个维度上有5个间隔,以计算痕迹相似度。两个输入的基于状态和基于转换的轨迹相似度分别为0.71和0.64。
训练集中的每个输入序列产生RNN模型的具体踪迹。抽象状态转换模型捕获从训练数据(或其代表性部分)启用的所有具体轨迹以及尚未启用的其他潜在轨迹。这个定义的状态和变迁抽象使得所得到的抽象模型表示训练的RNN模型的观察行为的过度近似和泛化。
这个图反映了RNN的状态序列轨迹
将训练好的RNN表示为离散时间马尔可夫链
为了同时考虑不同状态下转移的可能性,我们在抽象模型上增加了转移概率,有效地使其成为离散时间马尔可夫链(DTMC)。
定义2.DTMC是元组,其中是抽象状态的集合,是初始状态的集合,是给出不同抽象转移的概率的转移概率函数
相比原有定义,去掉了X,转移只跟状态有关而不跟输入有关,更清晰
状态处的选择空间由在该状态下启用的一组输入给出,其抽象方式与状态相同。我们写来表示在给定当前状态 的情况下访问 的条件概率,使得我们将转移概率定义为从 到 的所有传出具体转移的数目比上所有从传出的具体转移的数目同之前论文,频率估计概率
例如,图4b将图5a中的具体跟踪的抽象状态转换模型显示为MDP。抽象转换用它们的转换概率进行标记。例如,由于 处的所有传出转换在中结束,因此从到的转换概率为1。有四种可能的传出转换,即,因此,从到的转移概率被计算为。其他抽象转移的计算类似
如示例所示,DTMC模型是通过首先将状态和转移抽象应用于一组具体轨迹,然后计算每个抽象状态的转移概率分布来构建的。抽象步骤的时间复杂度取决于具体踪迹的数量,而计算转移概率的复杂度仅取决于抽象转移的数量。
RNN的覆盖标准
受传统软件测试的启发,提出了一套基于抽象状态转移模型的RNNs测试覆盖准则。RNN复盖标准的目标是衡量测试数据在执行已训练行为和未见行为方面的充分性。状态和转换抽象被设计为分别反映特定时间点的内部网络配置以及网络随时间的时间行为。因此,为了最大限度地发现有状态的神经网络,应该将基于状态和转换抽象的覆盖标准结合起来,以便系统地生成全面和多样化的测试用例集。
设 是表示为dtmc的训练后的rnn的抽象模型。设 是一组测试输入序列。我们定义了T的状态级state-level和转换级transition-level覆盖,以衡量T分别对M的状态和转换进行了多广泛的操作。
没变化
State-Level Coverage Criteria
状态覆盖标准侧重于RNN的内部状态。抽象状态集表示从训练数据(或其代表部分)获得的访问状态的空间泛化,其被称为主功能区域[19]。测试数据应广泛覆盖主要功能区域,以验证训练的行为,并充分覆盖角例区域,以发现看不见的行为中的缺陷
Basic State Coverage。在给定RNN抽象模型M和一组测试输入T的情况下,基本状态覆盖度量T在训练时访问的主要功能区域的覆盖程度。为了量化这一点,我们比较了训练输入和测试输入访问的抽象状态集,分别由 和 表示。然后,基本状态覆盖由训练和测试输入访问的抽象状态的数量相对于训练输入访问的状态的数量给出:没变化,覆盖率计算还有和训练集和测试集数据中所覆盖的状态数有关系
类比tensorfuzz覆盖的是输出向量,这里覆盖的是状态向量
Weighted State Coverage。基本状态覆盖范围对每个状态都一视同仁。在训练期间,并不是所有的州都被同等频繁地访问,一个人可能想要更多地强调一些状态而不是另一些状态。为了考虑不同州的频率,并能够为状态分配权重,我们定义了加权的状态覆盖,并允许用户指定权重函数。抽象状态的默认权重定义为其在所有抽象状态中的相对频率,即,其中S是所有不同的具体状态的集合。然后,将加权状态覆盖定义为:这个是新增的,就是将原有的状态基于了权重,权重为状态的频率,然后覆盖率是权重的求和比
在实际应用中,权重函数可以根据具体需要进行不同的定义。例如,当选择常量函数时,加权状态覆盖等于基本状态覆盖。在§6.3中,我们评估了两个权重函数,包括默认的和反转的,后者将较大的权重分配给访问较少的状态。
n-Step State Boundary Coverage 测试数据还可以触发在训练期间从未访问过的新状态。n步状态边界覆盖衡量角例区域被测试输入T覆盖的情况。角例区域 是之外的抽象状态的集合,其与中的任何状态的距离都不为零。然后,可以将 形状记忆中心进一步划分为不同的边界区域,这些边界区域由它们到 状记忆中心的距离来定义。例如,n步边界区域包含与具有最小距离n的所有抽象状态,或者更正式地,
n-Step State Boundary Coverage被定义为测试输入在距离至多n步的边界区域中访问的状态的比率:和之前一样,就是把k变成n
没出现在训练集的状态向量叫做边角区域,边角区域的向量和训练集向量的最小距离为n的被划分在一起
Transition-Level Coverage Criteria
状态级覆盖指示RNN的内部状态被执行的程度,但它不反映在连续时间步中状态之间发生转换的不同方式。转换层复盖标准针对的是由不同输入序列**的抽象转换,较高的转换复盖率表明,输入更足以触发不同的时间动态行为。
Basic Transition Coverage 为了量化转换覆盖率,我们比较了在训练和测试阶段进行的抽象转换,分别写为。然后,通过以下方式给出基本过渡覆盖范围:
basic transition coverage 包括basic state coverage。换言之,对于任何抽象模型M,每个测试输入T满足关于M的基本转换覆盖,也满足基本状态覆盖。
看图4a,一个格子代表一个抽象状态,格子里的点是状态,线是转移,满足转移的一定满足状态,但抽象状态与抽象状态之间可以有很多的线(转移)
Weighted Transition Coverage。与状态级覆盖类似,我们可以通过考虑每个转移的相对频率来计算加权转移覆盖。更正式地说,
其中权重函数可以与加权状态覆盖中类似地配置。默认情况下,trying的权重(ˆs,ˆs’)。按§3.4中定义的转移概率计算
新增的,原理类似于加权状态
这里删掉了两个跟x有关的覆盖指标
应用
为了证明抽象模型和所提出的质量度量的有效性,我们在两个场景中应用它们来寻找RNN的对抗性样本:(1)对抗性样本检测,以在运行时识别对抗性输入;(2)覆盖引导测试,以离线生成看不见的对抗性样本。
RNN中的敌意样本检测
这节是新增的
对抗性样本检测的目的是在运行时检查给定的输入是否是对抗性样本。我们建议使用踪迹相似性度量来度量两个输入之间的行为差异。基于这一思想,我们提出了一种新的检测RNN敌意样本的方法。
给定目标样本i,我们定义参考样本( reference sample) r,使得RNN对i和r两者给出相同的预测。当i为良性时,从原始样本和参考样本导出的轨迹通常是相似的。然而,当我是对抗性的时候,两个样本之间的痕迹差异可能要大得多。在这样的直觉下,我们提出了基于与参考样本的踪迹差异来检测敌意样本。
我们使用基于学习的方法(算法1)来训练分类器。输入包括基于RNN的系统D和抽象模型M。我们首先收集一组良性样本B和一组对抗性样本A。还准备了一组参考样本R用于比较(更详细的在下一段中),并计算良性/对抗性样本与参考样本之间的踪迹相似度。对于每个良性样本B,选择函数从参考样本R中获得一组相应的参考样本R’.在此基础上,我们计算b与每个参考样本r∈R‘(第6-10行)之间的踪迹相似度,并取平均相似度(第11行)来表示b与参考样本集合R’之间的距离。该距离被添加到良性距离列表DISB(第12行)。类似地,我们计算对手距离列表DISA(第13行)。用DISA和DISB学习线性回归分类器C。给定一个新的输入i,我们计算i和参考样本之间的相似度di,并依赖C(di)来指示i是良性的还是对抗性的。
我们在ASR和图像分类两个领域对检测算法进行了应用和评估。用于生成参考样本的方法如下:对于ASR,给定由RNN转录成文本t的音频输入a,我们使用现成的文本到语音引擎(例如,Google Cloud文本到语音[4])来生成具有正确和清晰发音的音频t。对于图像分类,给定具有预测结果c的新图像i(即,图像i属于类别c),从训练数据中选择参考图像,使得它们共享与c相同的标签。
ASR(自动语音识别)
基于覆盖率的RNN测试
在这一部分中,我们提出了一种覆盖引导测试(CGT)技术,旨在生成被RNN错误识别的对抗性样本。CGT使用建议的覆盖标准(§4)来指导测试生成,并从不同的角度评估测试的质量。在测试过程中,CGT维护测试队列。在每次运行中,它从队列中选择种子并生成多个突变体。如果一个突变体被网络预测错误,它就是一个对抗性样本。否则,如果突变体提高了覆盖率,则会将其保留为有趣的种子,并将其添加回队列。
算法2介绍了为RNN生成测试的过程。输入包括初始种子I、基于RNN的DL系统D和抽象模型M,输出为良性测试和失败测试,D分别给出正确和错误的推理。初始测试队列包含一组初始种子。在每次运行中,CGT从测试队列中选择一个Inputa(第2行),并随机选取一个带有参数p的转换函数t(第4行)。然后,在变换t下生成一组新样本A(行5)。对于每个新样本a’,CGT首先通过让D进行推理来获得具体的踪迹(第7行),然后计算抽象模型上的覆盖信息(第8行)。如果推断不正确,则将?添加到失败的测试集合F中(第10行)。如果?被正确预测并覆盖新状态或转换,则CGT将其放入测试队列,并更新队列中当前所有测试的覆盖标准(第12-13行)。
DL测试中的一个挑战是缺乏能告诉任何新突变体地面真相标签的oracle。变异运算符通常特定于应用程序域。对于CGT,我们主要关注图像分类,并应用变形突变策略[55]来生成新的突变体,这些突变体在测试过程中将从人类的角度保持预测意义。
第7行的R应该是D
比原论文少了一大段的语音处理的背景介绍和语音变异算法介绍,算法与原论文基本相同,
为了证明所提技术的有效性,我们在Kera(2.2.4)[11]的基础上,使用TensorFlow(1.4,1.8和1.11)[7]在Python中实现了DeepStella。我们首先研究抽象模型是否能够刻画RNNs(即RQ1和RQ2)的有状态行为。在此基础上,对RQ3和RQ4两个应用实例的有效性进行了进一步的评价。具体地说,我们利用DeepStella调查以下研究问题:
RQ1:建议的踪迹相似性度量是否适合用来衡量RNN的区分能力(即,对输入的微小扰动都很敏感)?
RQ2:不同的覆盖标准对于捕获RNN的错误行为有多敏感?
RQ3:基于踪迹相似度的检测算法对于检测RNN的敌意样本有多大用处?
RQ4:覆盖率指导的测试在实现高覆盖率和生成RNN的敌意样本方面有多有效?
评估
Experiment Settings
模型和数据集。我们选择了四个基于RNN的DL模型,包括两个ASR模型和两个图像分类模型,它们涵盖了流行的RNN变体(参见表1)。可训练参数的大小往往反映了模型的复杂程度,我们选择的模型既有60k左右参数的小规模模型,也有1亿参数以上的实际规模的模型。RNN状态向量的最高维度(Column “State vec. shape“)达到4096,表明模型的高度复杂性。
对于ASR任务,我们选择了Mozilla预先训练的DeepSpeech[2]的两个版本(即0.1.1和0.3.0),它们都是具有不同类型RNN核心的最先进的开源ASR模型。DeepSpeech-0.1.1采用双向LSTM,DeepSpeech-0.3.0采用单向LSTM。这两种模型的状态向量都是64位浮点型的高维。对于图像分类任务,我们按照指令在MNIST数据集(即MNIST-LSTM,MINIST-GRU)上训练了两个基于RNN的分类器,达到了相当的精度,这两个模型相对轻量级,其内部状态通过128维的32位浮点向量来表达。
抽象模型构造。对于ASR模型,我们使用Common Voice[1]训练数据集进行分析,该数据集用于DeepSpeech模型的训练。总体而言,数据集中有193,284个音频。每个样本都由两个模型处理,以收集状态轨迹。对于图像分类模型,我们使用了包含6万幅图像的MNIST官方训练数据集。
对于PCA变换,由于ASR模型的状态向量庞大,我们随机选取20%的状态向量来拟合PCA模型,并将其用于进一步的分析。对于图像模型,我们使用所有状态向量。可以配置模型抽象参数k和m来生成不同粒度的DTMC模型。表2总结了我们评估的13种不同配置,以及每个获得的DTMC模型中抽象状态和转换的数量。请注意,我们使用(k,m)表示具有k个维度和m个分区的配置。
数据准备。为了全面评估提出的度量和覆盖标准,我们准备了三种类型的样本:1)来自测试数据的原始良性样本,2)由于对原始良性样本的轻微扰动而产生的扰动样本,以及3)来自原始良性样本的对抗性样本。对于ASR模型,我们使用字错误率(word error rate WER)来衡量推理的精确度。特别是,良性样本的WER为零。扰动样本具有相对较小的WER,而目标对抗性样本具有较大的WER。对于图像分类任务,我们生成的扰动样本有轻微的扰动,但仍然是良性的。
首先,我们分别从测试数据集中随机选取100个良性音频和100个良性图像,生成扰动样本和敌意样本。对于每个ASR模型,我们使用现有的音频数据增强技术[5](即,速度和音量调节、低/高频滤波、噪声混合),从原始的良性模型生成10,000个扰动音频。最后,我们只成功地为DeepSpeech-0.1.1生成了对抗性样本,因为DeepSpeech-0.3.0与所使用的对抗性攻击工具[8]之间存在兼容性问题。值得注意的是,目标对抗性音频的生成相当计算密集且耗时。具体地说,我们选择11个命令[13]作为目标,并在4个GPU上生成1100(100个种子×11个目标)对抗性音频,总共花费了大约12天(即48天V100 GPU时间)。对于每个MNIST模型,我们还使用现有的图像转换技术[50](即图像对比度、亮度、平移、缩放、剪切、旋转和添加白噪声)生成10,000个良性扰动样本。此外,我们使用各种最先进的攻击工具,包括FGSM[17]、BIM[28]和DeepFool[37],生成了10,000个对抗性样本。
对于音频和图像两种情况,我们都设置了保守的变换参数,使得对原始样本的扰动很小,不易察觉。请注意,所有对抗性样本也都具有最小的扰动,并且人类无法察觉。
覆盖标准实例。对于n-SBCov准则,我们实证研究了n=3和n=6的两个实例,分别记为3-SBCov和6-SBCov。对于WSCov和WTCov,除了默认的权重函数(在分析过程中为访问频率较高的状态或转换分配较大的权重)之外,我们还引入了另一个权重函数,通过倒置原始权重来为访问频率较高的状态和转换分配较小的权重。我们用WSCov和WTCov来表示具有缺省权重函数的准则,并将WSCov和WTCov指的是倒置的准则。该标准允许观察测试数据如何覆盖具有高/低访问频率的状态和转换。
所有实验都在Ubuntu16.04系统、28核2.0 GHz Xeon CPU、196 GB RAM和4个NVIDIA Tesla V100 16G
GPU的服务器上运行。
RQ1:跟踪相似性
Setup。我们对轻微扰动的样本和它们的原始良性样本的踪迹相似性和预测差异之间的相关性进行了统计分析。这种差异很难捕捉到,因为从人类的感知来看,样本和略有扰动的对应物几乎是一样的。我们用ASR的词级Levenshtein距离[6]来计算ASR的预测差异,并通过检查它们是否属于不同的类别来计算图像分类中的预测差异。
对于音频,我们使用10,000个扰动样本,这些样本与其原始种子相比具有不同的Levenshtein距离。对于图像情况,我们取10,000个扰动样本,并从所有生成的对抗性样本中随机选择另外10,000个样本。这包括正确推断和错误推断的扰动图像。对于统计分析,对于ASR模型,我们使用Spearman秩次相关[44](记为ρ)来分析两个变量之间的单调关联;对于MNIST模型,我们使用Mann-Whitney U检验[35](记为ASU)来检验二元关联。
Results表3显示了在扰动数据上测量的踪迹相似性和预测差异之间的相关性的结果,其中列ρ(st.)。和ColumnU(st.)。表示STSim的结果;列ρ(tr.)。和ColumnU(tr.)。表示TTSim的结果。每列的最佳两个结果以粗体突出显示。所有报道的相关性均有统计学意义(p<0.01)。Spearman相关性的负关联表明,相似性度量越大,预测结果的差异就越小。对于MNIST模型,Mann Whitney U检验结果表明,与原始良性样本相比,扰动样本在度量踪迹相似性时,得到的值明显大于对抗性样本。
RQ1的答案:状态级和过渡级跟踪相似性度量都能够捕捉到预测差异,即使对于稍有扰动的样本也是如此。因此,踪迹相似性对于检测敌方样本很有用(见RQ4)。
RQ2。覆盖标准
Setup。在这个实验中,我们评估了所提出的覆盖标准对对抗性样本的敏感性。RQ2中使用的抽象配置是根据RQ1结果选择的。为了更好地区分不同的覆盖标准,根据STSim或TTSim,从RQ1中选择了对微小扰动最敏感的三种配置。我们比较了100个原始良性样本(表示为O)的覆盖结果,以及通过包括扰动样本(表示为Aso+P)或对抗性样本(表示为Aso+A)获得的覆盖(参见表4的列数据)。请注意,MNIST模型不包括扰动样本,因为它们都是良性的。对于DeepSpeech-0.1.1,对抗性样本数量为1100个,我们还选择了相同数量的扰动样本进行公平比较。对于其他模型,我们使用全部10,000个扰动/敌意样本。
Results。表4报告了在不同数据集上使用不同覆盖标准的覆盖结果(参见网站[3]上DeepSpeech-0.3.0和MNIST-GRU的结果)。复盖增加率表明复盖标准对敌方样本的敏感性。我们观察到更细粒度的抽象模型往往具有更大的复盖率增加率。这是因为更细粒度的状态和转换信息更有可能区分敌意样本和良性样本。我们还发现,不同的标准对对抗性样本的敏感度有很大的不同。例如,WSCov/WTCov的增加比率相对较小,因为它们主要涉及经常覆盖的状态和转变(在剖析过程中),这些状态和转变通常已经被良性样本完全覆盖。相比之下,WSCov‘/WTCov’的增加比更大,与BSCov和BTCov的表现相当,表明很少访问的状态和转变往往被对抗性/扰动样本所覆盖。对于当时的SBCov准则,当初始准则为零时,我们给出的是增加值而不是增长率。这一增长并不是很显著,因为即使是敌对的样本也很难涵盖这些州。此外,对于DeepSpeech-0.1.1,我们发现O+A的覆盖标准一般高于O+P,这可能是由于对抗性音频的平均WER较大。
RQ2的答案:使用更细粒度的抽象,测试覆盖标准更加敏感。所有提出的覆盖准则对敌方样本中的错误行为都是敏感的,其中BSCov和BTCov是最敏感的。
RQ3。对抗性样本检测
setup。本节评估DeepStella在三个模型上的敌意样本检测,即DeepSpeech-0.1.1、MNIST-LTSM和MNIST-GRU。我们首先准备了良性样本、对抗性样本和参考样本(参见算法1中的B、A和R)来训练线性回归分类器。对于ASR模型,我们从测试数据集中随机选择了1100个良性样本(800个用于训练,300个用于测试),使其数量与生成的1100个对抗性样本相同。具体地说,11个目标命令被分成两个集合C1和C2,分别包含8个和3个命令。将预测结果属于C1的对抗性样本作为训练数据(即100×8),另一个作为测试数据(即100×3)。参考样本是通过使用Google
Cloud文语转换将对抗性样本和良性样本的所有预测结果重新转录成音频来构建的[4]。对于MNIST模型,我们从MNIST的测试数据中抽取9000个良性样本,分别用FGSM、BIM和DeepFool三种方法生成9000个敌意样本,其中70%用于训练,30%用于测试。对于参考样本,我们从Minist的训练数据中随机选择了50个样本,每类10个(即50×10)。利用构建的数据集,我们为每个模型训练一个分类器来检测敌意样本。
results。表5显示了使用不同踪迹相似性度量(即,STSim和TTSim)和具有不同配置(列配置)的DTMC模型的对抗性样本检测的AUROC[14]结果。每个模型最好的两个结果被突出显示,例如,DeepSpeech-0.1.1的89.26%,MNIST-LSTM的96.63%,MNIST-GRU的96.63%(参见网站[3])。实验结果表明,在很多情况下,基于状态的轨迹相似度比基于转移的轨迹相似度更有效。MNIST模型对不同工具产生的攻击的检测结果表明,我们的算法对大范围的攻击具有鲁棒性,准确率分别为97%、93%和93%。此外,在不同结构的DTMC模型下,结果差异很大。使用更细粒度的模型,结果不一定会更好。实验结果表明,在精心选择的抽象结构下,基于迹线相似度的方法对敌方样本检测是有效的,预测准确率在89%以上。
对RQ3的回答:基于相似性度量的方法对于敌意样本检测是有用的。在不同的指标和模型配置下,检测精度会有所不同。
RQ4。覆盖率制导的测试
setup。我们使用100个原始良性样本作为初始种子,MNIST-LTSM和MNIST-GRU都预测正确。基于RQ2的结果,我们使用细粒度配置(3,10)来构建DTMC模型,并选择BSCov和BTCov作为测试指导。最后,我们实现了两种测试策略,即S-Guid和T-Guid。为了进一步证明覆盖指导的有效性,我们包括没有覆盖指导的随机测试和DeepTest[50],这是一个用于展开RNN的神经元覆盖指导测试工具,作为比较的基线方法。每个测试配置运行6小时,在此基础上研究的覆盖标准趋于饱和。针对测试工具的随机性,每种配置重复5次,并报告平均结果。
results。表6总结了针对不同复盖标准获得的复盖结果,以及使用测试工具检测到的独特对抗性样本。第一栏列出了所研究的覆盖标准。列SEED表示初始种子的覆盖范围。列S-Guid.、T-Guid.、Random和DeepTest是不同测试策略的覆盖。我们可以观察到,所有研究的策略都在不同程度上提高了覆盖率。在所有标准下,转移复盖率指导策略在实现更高复盖率方面都优于其他两种策略。此外,状态覆盖制导策略虽然不能获得最高的覆盖率,但在生成对抗性样本方面往往更有效。总体结果表明,复盖更多的状态可能对生成对抗性样本有潜在帮助。
RQ4的答案:覆盖率引导的测试在实现更高的覆盖率和指导对抗性样本探索方面通常是有用的。在这三种策略中,转移覆盖制导方法的覆盖率较高,而状态覆盖制导的方法发现了更多独特的对抗性样本。
有效性威胁
总结了影响本研究有效性的因素。主要威胁与抽象模型配置设置有关。抽象模型中可能有许多可能的配置。由于计算资源的限制,我们尽力尝试尽可能多的设置。即使我们的结果可能仍然不会超出考虑的设置。
主题模型的选择可能是通用性的另一个威胁。我们通过选择具有不同复杂性和不同应用领域的模型来缓解这一问题,这些模型涵盖了简单案例和工业级ASR应用。此外,对于ASR模型,对抗性检测分类器的训练集相对较少,这可能会影响检测的性能。采用更大的训练集可能有助于获得更好的检测性能,我们将其留到未来的工作中。此外,随机性在我们研究的研究问题的抽样和测试中都是一种威胁。为了抵消这一点,我们对所有实验重复相同的设置五次,并对结果进行平均。
相关工作
RNN的抽象。已经提出了几种方法来建模RNN,但大多是以有限状态自动机(FSA)的形式。FSA有助于显式地显示内部状态转换,因此可以用来解释嵌入在RNN中的底层决策规则。DTMC具有更强的捕捉状态转移分布的能力,更适合于定量分析。从RNN构造FSA通常需要两个步骤:(1)隐藏状态空间的划分和抽象,(2)转移抽象和自动机构造。已经提出了各种划分策略和自动机构造算法。Omlin和Giles[40]提出将状态向量的每一维划分为相等的间隔,从而将状态空间划分为规则网格。非监督分类算法也被应用于状态空间划分。例如,k-Means及其变体在[9,24,53]中进行了研究。Weiss等人。[54]设计了一种动态创建分区的算法,其中采用一个带有RBF核的支持向量机分类器来将多个状态向量从原始分区中分离出来。最近的研究[24,53,54]更多地关注RNN行为的可解释性和可视性,并试图通过降低模型的规模来简化抽象模型。当应用于实际任务,包括NLP和语音识别时,训练的RNN模型的状态空间可能非常大。这使得可伸缩性成为k-means和内核算法等分区技术的问题。然而,我们采用了一种更便宜的区间抽象,并且可以从其在精确度调整方面的灵活性中受益
DNN的测试。缺乏健壮性是DL系统商业化和广泛采用的主要威胁。在贝等人的开创性工作的领导下,研究人员投入了大量的努力来研究测试DL系统的有效和系统的方法。[41][font=宋体]。作者设计了第一个测试标准-神经元覆盖率-来衡量给定的测试数据集检查了多少DNNs的内部逻辑。此后又提出了几个新的测试准则,包括DeepGauge[32]中提出的一组多粒度测试准则、一组改进的MC/DC测试准则[45]和组合测试准则[31]。到目前为止,所提出的覆盖标准被用来指导DNN的基于变形突变的测试[50]、共生测试[46]和覆盖引导测试[39,55]。此外,还提出了突变测试技术,通过向DL模型注入故障来评估测试数据的质量[33]。在[56]中,提出了一种黑盒差异测试框架,用于检测多个模型之间的不一致。
MC/DC标准在可伸缩性方面受到限制,而其他标准是特定于FNN体系结构的,即使通过展开适用于RNN。文献[50]中报道的结果表明,神经元覆盖在FNN上有效,但在RNN上并不理想,当用来指导测试生成时。这表明RNN超越了CNN的简单折叠,现有的标准可能不太适合它。由于页数的限制,我们建议感兴趣的读者参考关于机器学习测试的全面调查[58]。
对抗性样本检测。提出了一些技术[15,19,29,34,52,57]来检测错误预测的对抗性样本。作者发现敌意样本在模型突变中更为敏感,并提出了一种基于敏感度的前馈模型敌意样本检测方法[52]。[36]中的技术通过添加一个从DNN的中间特征表示获得输入并被训练来检测敌意样本的小子网络来增强DNN。作者提出了两个特征[15],即密度估计和贝叶斯不确定性估计来显示良性样本和敌对样本之间的差异。许等人。[57]采用两种类型的特征压缩,即降低每个像素的颜色位深度和空间平滑来检测敌意样本。这些方法主要考虑CNNs和图像分类域。
在[19]中,作者基于对抗性样本具有相对较小的软最大概率来检测对抗性样本。沿着这条线,[29]中提出的技术观察到,分布内和分布外样本之间的软最大概率可以通过Softmax函数中的温度缩放进一步放大。这种方法可以用于RNN,但仅限于分类问题。与它们相比,我们的方法可以处理基于抽象模型的RNN的顺序输出(例如,自动语音识别中的输出)。
总结
前馈模型敌意样本检测方法[52]。[36]中的技术通过添加一个从DNN的中间特征表示获得输入并被训练来检测敌意样本的小子网络来增强DNN。作者提出了两个特征[15],即密度估计和贝叶斯不确定性估计来显示良性样本和敌对样本之间的差异。许等人。[57]采用两种类型的特征压缩,即降低每个像素的颜色位深度和空间平滑来检测敌意样本。这些方法主要考虑CNNs和图像分类域。
在[19]中,作者基于对抗性样本具有相对较小的软最大概率来检测对抗性样本。沿着这条线,[29]中提出的技术观察到,分布内和分布外样本之间的软最大概率可以通过Softmax函数中的温度缩放进一步放大。这种方法可以用于RNN,但仅限于分类问题。与它们相比,我们的方法可以处理基于抽象模型的RNN的顺序输出(例如,自动语音识别中的输出)。
总结
DL系统的漏洞正威胁着这些技术的信任和大规模采用。这项工作开启了对有状态DL系统进行定量分析的第一步。我们将RNN建模为抽象模型,并在此基础上提出了一组相似度量和覆盖准则。我们验证了所提出的模型和量化方法在RNNs测试和对抗性样本检测中的有效性。我们的长期目标是为DL系统生命周期提供质量保证[30]。