Guiding Deep Learning System Testing using Surprise Adequacy
简介
文章目录
- Guiding Deep Learning System Testing using Surprise Adequacy
-
- 简介
- 核心内容
-
- 预备定义
- SA: 意外充分性
-
- 算法一般步骤
- LSA: 基于可能性的SA
-
- 核心思想
- 注意
- 公式定义
-
- 密度函数 f x fx fx
- LSA定义
- DSA: 基于距离的SA
-
- 核心思想
- 注意
- 公式定义
-
- 计算 d i s t a dist_a dista
- 计算 d i s t b dist_b distb
- DSA定义
- SC: 意外覆盖率
-
- 定义
- 注意
- 其他
-
-
- 研究问题 RQ
- 实验
- 结果
-
论文标题:
- Guiding Deep Learning System Testing using Surprise Adequacy
- 使用惊讶指标SA来构建深度学习测试系统
- 2018.8.25
现状
目前有两个假设
- 蜕变测试(metamorphic testing): dl系统的两个输入在某些人类感觉上是相似的,那么输出也应该是相似的
- 一组输入越多样化,可以对dl系统执行的测试就越有效。(违反第一个假设的输入也会增加神经元覆盖率。)
作者观点
- 传统的白盒测试技术旨在增加结构覆盖对dl系统不是很有用,因为它们的行为没有在控制流结构中显式地编码
- ad hoc testing 随机测试,现在的方式是使用统计,聚合的方式评价测试集的有效性,但是对于单个输入而言,这是不够的.例如:
- 现在还不清楚什么时候一个高NC的输入应该被认为比另一个低NC的输入更好,以及为什么
- 某些输入可能比其他输入自然激活更多阈值以上的神经元。
该论文提出了一个叫SA的指标,该指标用于衡量新用例相对于训练集中用例的多样性程度.指标越大分类器越容易分错
基于SC的方法是黑盒方法,它对每个测试用例打分(LSA/DSA),从而来评价用例,其覆盖率不同于以往的白盒方式得到的覆盖率,不是基于神经元而是基于用例的SA分布,选取不同的阈值会得到不同的覆盖结果
LSA DSA 都依赖于原始训练集
核心内容
- SA: 意外充分性(Surprise Adequacy )
- SC: 意外覆盖率 (Surprise Coverage)
预备定义
符号定义
设 N = { n 1 , n 2 … } \mathbf{N}=\left\{n_{1}, n_{2}\ldots\right\} N={n1,n2…}是组成一个dl系统 d d d的一组神经元
设 X = { x 1 , x 2 , … } X=\left\{x_{1}, x_{2}, \ldots\right\} X={x1,x2,…}是一组输入
设 α n ( x ) \alpha_{n}(x) αn(x)是单个神经元 n n n相对于输入 x x x的激活值
另 N ⊆ N N \subseteq \mathbf{N} N⊆N,其中 n n n是神经元N的子集
α N ( x ) \alpha_{N}(x) αN(x) 代表激活向量,其中每个元素对应于 N N N中的单个神经元.(激活值的向量组合)
∣ N ∣ |N| ∣N∣是 α N ( x ) \alpha_{N}(x) αN(x)的模
激活迹(Activation Trace) AT
对于一组输入 X : A N ( X ) = { α N ( x ) ∣ x ∈ X } X : A_{N}(X)=\left\{\alpha_{N}(x) | x \in X\right\} X:AN(X)={αN(x)∣x∈X} A N ( X ) A_{N}(X) AN(X) 是一组激活迹.
就是所有测试用例激活向量的集合
SA: 意外充分性
SA旨在衡量给定新输入相对于用于训练的输入的相对新颖性,是DL系统如何对未知输入做出反应的指标
注意: SA值依赖于原始训练集
算法一般步骤
-
获取激活迹 A N ( X ) A_{N}(X) AN(X)
对于一个训练集 T T T,使用 T T T中所有的训练用例,计算出所有神经元的激活值后拼接到一起,从而得到 A N ( T ) A_{\mathbf{N}}(\mathbf{T}) AN(T),使用激活 迹公式 X : A N ( X ) = { α N ( x ) ∣ x ∈ X } X : A_{N}(X)=\left\{\alpha_{N}(x) | x \in X\right\} X:AN(X)={αN(x)∣x∈X}获取激活迹.
-
计算 A N ( x ) A_{N}(x) AN(x)
对于新的输入 x x x,我们通过比较 A N ( x A_{N}(x AN(x)与 A N ( T ) A_{\mathbf{N}}(\mathbf{T}) AN(T)来计算出Surprise Adequacy (SA).具体计算方法有LSA和DSA两种
注意
对于用SA衡量分类任务时,我们只关注分为该类的训练集里的例子,即: T c ∈ T T_{c}∈T Tc∈T,我们只关心 A N ( T c ) A_{\mathbf{N}}\left(T_{c}\right) AN(Tc),这样更有意义.
SA的计算方法
- LSA: 基于可能性的SA (Likelihood-based Surprise Adequacy)
- DSA: 基于距离的SA (Distance-based Surprise Adequacy)
LSA: 基于可能性的SA
核心思想
LSA: 采用核密度估计(KDE)来获得输入数据的分布密度函数,这里使用高斯核函数
注意
在这种方法的时候,为了减少计算量,有如下两种规则
-
只选定特定的某层
对于所有的测试用例,我们只考虑一个选定层 N L ⊆ N N_{L} \subseteq \mathbf{N} NL⊆N中的神经元和他们的激活轨迹 A N L ( X ) A_{N_{L}}(\mathbf{X}) ANL(X),每个轨迹的基数为 ∣ N L ∣ \left|N_{L}\right| ∣NL∣
-
方差过滤
过滤掉那些激活值的方差小于预先定义的阈值 t t t的神经元
公式定义
密度函数 f x fx fx
KDE产生密度函数f如下:
f ^ ( x ) = 1 ∣ A N L ( T ) ∣ ∑ x i ∈ T K H ( α N L ( x ) − α N L ( x i ) ) \hat{f}(x)=\frac{1}{\left|A_{N_{L}}(\mathbf{T})\right|} \sum_{x_{i} \in \mathbf{T}} K_{H}\left(\alpha_{N_{L}}(x)-\alpha_{N_{L}}\left(x_{i}\right)\right) f^(x)=∣ANL(T)∣1xi∈T∑KH(αNL(x)−αNL(xi))
其中 :
A N L ( x A_{N_{L}}(x ANL(x): 给定输入在 N L N_{L} NL层中的激活迹
A N L ( x i ) , x i ∈ T A_{N_{L}}\left(x_{i}\right){, x_{i} \in \mathbf{T}} ANL(xi),xi∈T: 训练集中的某个样本在 N L N_{L} NL层中的激活迹
∣ A N L ( T ) ∣ \left|A_{N_{L}}(\mathbf{T})\right| ∣ANL(T)∣:激活迹的个数
公式的直观理解:在选定Nl层后,对于所有的训练集中的用例,每个用例使用高斯核函数计算该用例与新输入x的激活迹的差值
概率密度降低了,证明输入更加稀有,概率密度增高了,证明输入更加相似
LSA定义
L S A ( x ) = − log ( f ^ ( x ) ) L S A(x)=-\log (\hat{f}(x)) LSA(x)=−log(f^(x))
LSA因为只选择了某层的神经元,再加上kde只在原始训练集上执行一次,所以运行速度很快
DSA: 基于距离的SA
核心思想
寻找某个用例最近的相同类别和不同类别的用例,并计算距离比,这个值反映了决策边界的相对距离
注意
DSA 只适用于分类任务
公式定义
计算 d i s t a dist_a dista
x a = arg min D ( x i ) = c x ∥ α N ( x ) − α N ( x i ) ∥ dist a = ∥ α N ( x ) − α N ( x a ) ∥ \begin{array}{l}{x_{a}=\arg \min _{\mathbf{D}\left(x_{i}\right)=c_{x}}\left\|\alpha_{\mathbf{N}}(x)-\alpha_{\mathbf{N}}\left(x_{i}\right)\right\|} \\ {\text {dist}_{a}=\left\|\alpha_{\mathbf{N}}(x)-\alpha_{\mathbf{N}}\left(x_{a}\right)\right\|}\end{array} xa=argminD(xi)=cx∥αN(x)−αN(xi)∥dista=∥αN(x)−αN(xa)∥
理解:
- x i x_{i} xi: 是训练集中的某个用例, α N ( x i ) \alpha_{\mathrm{N}}\left(x_{i}\right) αN(xi)则是它的激活迹
- α N ( x ) \alpha_{\mathrm{N}}(x) αN(x): 是新输入的用例的激活迹,这里求他们的距离,使用的是欧式距离
- arg min D ( x i ) = c x \arg \min _{\mathbf{D}\left(x_{i}\right)=c_{x}} argminD(xi)=cx:明确指出只从同类的用例中寻找一个距离最小的
- x a x_{a} xa: 就是那个点,称作参考点.
- dist a \text {dist}_{a} dista: 找到该点后,计算新用例和该参考点之间的欧式距离
计算 d i s t b dist_b distb
x b = argmin D ( x i ) ∈ C \ { c x } ∥ α N ( x a ) − α N ( x i ) ∥ dist b = ∥ α N ( x a ) − α N ( x b ) ∥ \begin{array}{l}{x_{b}=\operatorname{argmin}_{\mathbf{D}\left(x_{i}\right) \in C \backslash\left\{c_{x}\right\}}\left\|\alpha_{\mathbf{N}}\left(x_{a}\right)-\alpha_{\mathbf{N}}\left(x_{i}\right)\right\|} \\ {\text {dist}_{b}=\left\|\alpha_{\mathbf{N}}\left(x_{a}\right)-\alpha_{\mathbf{N}}\left(x_{b}\right)\right\|}\end{array} xb=argminD(xi)∈C\{cx}∥αN(xa)−αN(xi)∥distb=∥αN(xa)−αN(xb)∥
理解:
同样的方法去找点,只不过这次是在类不相同的用例之间寻找到一个距离最小的
DSA定义
D S A ( x ) = d i s t a d i s t b DS A(x)=\frac{d i s t_{a}}{d i s t_{b}} DSA(x)=distbdista
形象解释

图中黑线则是DSA的两个距离
DSA因为每个样本都需要去寻找两次距离,复杂度很高,在训练集较大的情况下,运行速度就会变得非常慢
SC: 意外覆盖率
定义
给定 U U U的上界, 将 ( 0 , U ] (0, U] (0,U] 分成 n n n个 S A SA SA段的 b u c k e t : B = { b 1 , b 2 , … , b n } bucket: B=\left\{b_{1}, b_{2}, \ldots, b_{n}\right\} bucket:B={b1,b2,…,bn},一组输入 x x x的 S C SC SC定义如下
S C ( X ) = ∣ { b i ∣ ∃ x ∈ X : S A ( x ) ∈ ( U ⋅ i − 1 n , U ⋅ i n ] } ∣ n S C(X)=\frac{\left|\left\{b_{i} | \exists x \in X : S A(x) \in\left(U \cdot \frac{i-1}{n}, U \cdot \frac{i}{n}\right]\right\}\right|}{n} SC(X)=n∣∣{bi∣∃x∈X:SA(x)∈(U⋅ni−1,U⋅ni]}∣∣
最后的覆盖率是指被覆盖的段数除以总段数
注意
- 一组具有较高SC的输入是一组多样化的输入
- 然而,具有任意高sa值的输入可能与问题域无关(如交通标志的图像将与动物图片分类器的测试无关)。
- 因此,SC只能相对于预定义的上界来测量
其他
研究问题 RQ
- sadl是否能够捕捉到dl系统输入的相对惊喜?
- 更令人惊讶的输入更难正确分类
- 基于sa值来检测对抗性示例,因为我们期望对抗性示例更令人惊讶
- 我们期望基于sa的分类器能够成功地检测出对抗性的例子
- 层敏感性:用于SA计算的神经元层的选择是否对SA反映DL系统行为的准确性有任何影响?
- 相关性:SC是否与DL系统的现有覆盖标准相关?
- 再训练:SA可以指导DL系统的再训练吗?
实验
参数选择
- lsa的默认激活方差阈值设置为 1 0 − 5 10^{-5} 10−5
- kde的带宽使用scott规则设置
结果
- 结论1: 基于三个不同的分析,RQ1的答案是SADL可以捕获输入的相对意外。 具有较高SA的输入难以正确分类; 对抗性示例显示较高的SA值,因此可以根据SA进行分类。
- 先选SA大的可以明显发现dl开始的准确率不高,先选SA小的可以明显发现dl开始的准确率高
- 对抗用例的SA值和非对抗用例的SA值差距较明显
- 结论2:基于这些结果,我们回答rq2,dsa对计算层的选择是敏感的,并且从选择更深的层中受益。然而,对于lsa,没有明确的证据支持更深层的假设。在不同的对抗性范例生成策略中,层次敏感度是不同的。
- 结论3:总体而言,除了NC,我们回答RQ3,即SC与到目前为止引入的其他覆盖标准相关。
就是SC增加了别的类似于KMNC的也增加了
- 结论4: SA可以提供指导更有效的再训练adversarial examples的例子。