长亭百川云 - 文章详情

CC:深度神经网络的因果关系感知覆盖度量|技术进展

FuzzWiki

54

2024-07-13

基本信息

原文名称    CC: Causality-Aware Coverage Criterion for Deep Neural Networks

原文作者   Zhenlan Ji、Pingchuan Ma、Yuanyuan Yuan、Shuai Wang

原文链接   https://ieeexplore.ieee.org/document/

10172609

发表期刊   2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE)

开源代码   https://github.com/ZhenlanJi/DL\_CC

一、 引言

近年来,深度神经网络测试方法的研究发展迅速,旨在测试深度神经网络的正确性和鲁棒性。深度神经网络的覆盖度量标准经常被用来衡量测试集的质量问题,目前已经提出了基于神经元、基于层、基于路径的覆盖度量。然而,现有覆盖度量是不足以表征一个神经元是如何影响后续神经元的。因此,本文缺乏神经元在作为因果作用时,如何共同做出DNN预测的概念。

考虑到目前使用因果推断解释DNN内部的研究进展迅速,本文提出了第一个针对神经网络的因果关系感知覆盖度量,它可以通过测试集在多大程度上覆盖了新的因果关系来评估测试集的质量,但在DNN上应用标准的因果推断还面临理论和实际的困难。本文介绍了CC,一个实用且有效的覆盖度量,它结合了深度神经网络领域特定知识的优化。本文使用多样的真实输入和对抗样本对CC的有效性进行说明,证明在可接受的计算开销下,CC的表现优于其他覆盖度量。

二、 概述

本文借助因果推断,结合一些针对DNN的优化方案,提出了针对DNN的因果关系感知覆盖度量CC。在常见模型LeNet5、VGG16、ResNet50以及常见数据集CIFAR-10、MNIST、ImageNet上进行实验,证明CC的有效性。

本文的创新点:

01

从因果关系的视角探寻DNN如何做出决策,并证明常见的DNN模型可以使用因果分析的概念等价转换,尤其是SCM(Structural Causal Model)。CC是第一个基于DNN因果关系的覆盖度量。

02

CC结合了各种设计原则和优化方案,可以在大型DNN和实际测试输入上实现因果感知的覆盖计算。  是CC的一种简化方案,具有正确性保证和更低的计算成本。

03

与其他11个DNN覆盖度量相比,CC可以更好地衡量测试集的质量。CC与正常和对抗样本所传达的因果关系正确相关。

三、背景知识

(一)因果推断

结构化因果模型SCM是对变量之间的假设因果关系的一种简单而富有表现力的概念。SCM足以描述社会科学和生物学等许多现实生活场景中的因果关系。在一个多变量系统下,SCM的定义如下:

定义1:SCM,一个SCM   由d个结构赋值集合S组成。

 ≔     

其中  被称为  的父方;在噪声变量上的联合概率分布  ,要求其是联合独立,则  是乘积分布。

定义2:因果图

因果图G可以通过SCM得到,在这个意义上,为每个变量  创建一个节点,并在  和它每个父节点  之间添加一个有向边,且因果图G是无环图。

SCM描述了一个联合概率分布  ,其中  为  。此外SCM还需要一个数据生成过程。也就是说每一个来自  的样本都可以通过数据生成的方式等价地生成,其中每个变量的实现按因果图G的拓扑序列具体化。将SCM的实现定义如下:

定义3:SCM实现

设  是d个随机变量  上的SCM,  是  的一个样本(在不失一般性的前提下,设  为因果图G的拓扑序列)。  的实现就被定义为  。  的值迭代从  分配到  ,其中  。

在真实场景中,底层系统的基本真实SCM通常是未知的。相反,本文通常对这个系统有一个观测集合(SCM实现)。通常,从这些观察中建立因果图G是理解由底层系统组成的因果关系的一个基本步骤。这个过程被称为因果发现。常见的因果发现方法有基于约束的、基于得分的、基于梯度的、基于监督。以下是基于约束方法的简要介绍:

给定因果图G作为有向无环图DAG,基于约束的因果发现通常分为两个步骤,首先发现G的骨架(无向图),然后将边的方向进一步分配给无向边。骨架发现通常从一个完整图开始,其中每个变量都有节点,并且每个节点都是完全链接的;枚举所有节点对,并对每对节点进行统计测试,以确定条件独立性;在确定独立性时,删除它们的边;重复以上步骤,直到无法删除边。本文中CC发起的因果发现过程从标准骨架发现过程拓展而来,不需要进行边方向的界定。

四、研究动机

(一)DNN执行的因果关系

Sun等人的研究表明FFNN和CNN可以用SCM表示。本文认为任何以DAG有向无环图为特征的神经网络都可以用SCM进行表示,包括常见的神经网络FFNN、CNN、RNN。此外,DNN的运行等同于SCM的数据产生过程。本文提出以下命题。

命题:

任何与DAG兼容的神经网络都可以用SCM表示。

证明过程:

设一个与DAG兼容的神经网络N用DAG   表示,其中  是  上的节点(即神经网络中的神经元)的集合,  是边的集合。对于每个非输入节点  ,可以构造一个函数 : ,其中  是终点为  节点的边数。因此,可以建立SCM模型  ,每个非输入节点  纯粹由其父节点决定,使得  ;  是目标为  的边的源点。对于每个输入节点  ,表示输入  的第  维,  的值由的  值确定性地决定。并且,输入本身  ,从多元分布  中抽样,  表示其没有父节点。

DNN   描述了一个确定性的决策过程  ,因此,当  用SCM 表示时,  可以通过  初始化输入来等效计算,然后实现SCM。也就是说,DNN在给定输入x的预测过程等同于将噪声  赋值为输入  的相应SCM的实现。

图1 DNN运行与SCM实现之间的关系

如图1所示,给定一个DNN,其SCM的实现是通过给  赋值(  ,  ),并搜集神经元值  来决定,因此图1 (b)中的每一行都是DNN的SCM实现。之后,这张表会被用于条件独立检验,以确定节点之间是否存在因果关系。

图2 不同输入类型的因果关系分布

通过上面的讨论,本文假设在因果关系的视角下,正常输入、对抗输入、噪声可以被区分,如图2所示。首先,正常输入(训练集)由有限样本组成(中间的蓝色区域)。通过训练过程,DNN将训练数据的分布外推至整个样本集的分布(绿色区域)。在正常的输入中,DNN期望从正常输入集的SCM实现中学习到更多因果关系。与之相反,随机噪声不包含任何有意义的因果关系,因此只会触发少量的SCM因果关系,所以只是一个非常狭窄的数据分布(紫色)。对抗输入通常利用DNN推断的一些不正确的因果关系来欺骗模型决策。这些不正确的因果关系通常很少用于预测正常输入,与正常输入相比,对抗输入将产生明显的分布移位(橙色区域)。因此,本文希望通过CC来区分不同输入类型触发的不同因果关系。

(二)基于因果关系发现的DNN覆盖度量

本文发现,DNN的SCM为DNN执行状态提供了一个合理的抽象。通过对一组测试输入(多个SCM实现)执行DNN的因果发现,可以推断出高质量的因果图G。考虑到DNN中两个相互连接的神经元  ,为了决定  、  之间是否存在边连接,需要在DNN测试集上进行独立性检验。因果图中的边代表两个神经元在给定输入下存在因果关系。因此,如果一个测试集触发基本因果图中的大部分边,那么这个测试集可被认为是全面性的。相反,如果只能触发很少的边,那么这个测试集将被认为是同质化的。总之,本文假设因果关系覆盖较高的测试集表明测试的充分性越好。

五、CC设计

CC:用  表示目标DNN的基本因果图,  表示基于测试集得到的因果图。  与G的边重合率构成了覆盖度量标准即

要计算CC,首先要提取基本因果图  ,本文认为基本因果图是理想状态下各种可能存在的因果关系的总和。然后利用测试集在DNN上的运算过程,搜集SCM的具体实现,并依此构建  。最终计算CC。

在构建  时存在一些技术上的困难。第一,现有的因果发现依赖一些标准化的假设确保因果图的正确性。马尔可夫条件和信度假设确保分离(结构约束的一种形式)意味着联合概率分布中的条件独立性(CI),反之亦然。然而,这些假设在由深度神经网络导出的因果图中并不完全满足。本文通过将因果发现转换为边伪造解决这个问题,即检查基本因果图  中的边是否可以在DNN运行过程中被明显建立。第二,现有因果发现算法的计算复杂度为  ,n是变量数,𝑚是因果图中节点的最大入度。现有的算法只能支持𝑚≤5,本文基于对深度神经网络的观察,提出了一种新的简化方案来降低计算复杂度。第三,在多数DNN测试场景中,覆盖度量是以增量的方式计算的。然而,现有算法在发现新运行过程时,需要重新开展因果发现。本文通过将神经元输出值离散化,并借助卡方检验实现覆盖度量的增量计算。

通过试验性的观测,发现在测试大型DNN时,由于涉及大量神经元之间的边伪造,CC的运行速度较慢。本文采用选择性的因果发现策略,即只考虑DNN中的部分层计算  。这种策略用有效性换取效率,重要的是,本文证明  与CC具备相同的性质。

总体上,CC旨在提供一个有效的,增量计算的因果发现方案,是专门为深度神经网络测试定制的。首先将DNN   转换为基本因果图。然后,将测试集送入DNN并搜集神经元值。之后,在调整混杂神经元后,迭代进行边伪造检查  中是否有边可以被删除。这一过程与基于约束的因果发现方法的骨架学习类似。最终计算CC,即  中未删除的边数与总边数的比值。

(一)从因果发现转向边伪造

与标准因果发现相比,设计CC的独特在于,基础真值因果图  是从目标深度神经网络派生而来。回想CC的计算方式,只检查基本因果图  中的边是否也存在于  中。一个有效方式为通过DNN测试集的统计数据检查一条边是否可以被伪造,即确定是否可以删除基本因果图  中的一条边。设DNN的基本因果图  ,一对连接的神经元  。边可以被伪造的充分必要条件为:

总体而言,CC通过将DNN执行中的因果发现问题重新定义为边伪造问题,这样,CC省略探寻  中的非邻居节点。通过检查右手边的条件,足以建立计算CC的因果图  ,但这个过程计算复杂度依旧较高,需要进一步优化。

**(二)**针对混杂神经元进行调整

对(一)中计算复杂度的一个简化方式是将  。但这种简化方式容易收到混杂神经元的影响。给定一条边  ,本文将混杂神经元定义为的其他父结点(即除  外)。

图3 三层神经网络的例子

如图3所示,虽然  之间存在一条边,但它们之间的因果关系相对微弱(系数只有0.1)。但混杂神经元  对  具有较大的影响(系数为0.8)。此外,  和  是高度依赖的,因为它们具有相同的父节点。因此考虑到  很大程度上受  的影响,而  和  是高度依赖的,所以  会在  和  之间创建一个虚假的联系,使  和  之间的边伪造过程变得不精确。

图4 边伪造算法

为了伪造一条边  ,而不是直接检查它们之间的独立性(可能由于混杂神经元而产生偏差),算法1检查  是否独立于调整后的  ,其中  消除了混淆神经元的影响。对于每个混杂神经元  (第1行),本文计算  和  之间的绝对协方差,从而量化它们的相关性。这种相关性与其他混杂神经元归一化并形成系数   (第2行)。作为惩罚,该混杂神经元的值被缩放为(1 -   )(第3行)。最后,调整后的  由  和调整后的混杂神经元  在DNN中使用相同的结构赋值函数计算(即需要替换混杂神经元中的值并再次执行DNN)(第5行)。如果  不独立于  ,可以建立这个边(第6行),这意味着确认了因果关系。否则,删除这条边(第7行);因为  和  之间的联系没有被统计检验明显地观察到。通过用调整后的  检验  ,减少了其他混杂神经元的影响,使边伪造更加准确和实际可行。

**(三)**增量计算

在真实的DNN测试场景中,覆盖率通常以在线的、基于批处理的方式计算。因此,重要的是实现增量计算方案,使以前的中间结果可以有效地重用CC。实现了一个基于gpu的边伪造计算管道,它维护了几个可更新的中间值,这样增量DNN执行可以顺利追加。在初始阶段,使用初始测试套件计算,由协方差推导而来,对于增量数据,协方差通常是不变的。因此,它可以在后续增量数据中重用,而无需修改。

主要的挑战来自独立性测试目前多数在连续数据上的独立检验算法使不能更新的,受之前覆盖度量设计启发,本文将连续神经元的值划分为k个区间,基于离散可更新的独立检验-卡方检验进行独立检验。本质上,CC在GPU中维护列联表,对  ,  的联合分布和边际分布进行存储。利用现代GPU强大的并行能力,对所有边并行进行边伪造,进一步降低了计算开销。

(四)选择性因果发现

图5 三层DNN进行层选择的例子

现代神经网络通常具有大量神经元,在整个神经网络上进行因果发现计算开销太大且没有必要。本文设计了  ,CC的一种简化版本,提取神经网络的部分层进行因果发现。目前的研究发现靠前的神经网络层处理低级特征(颜色、图片的纹理)等,靠后的神经网络层处理高级特征(整体图片场景)。本文建议从前、中、后三层中选择至少三层。经实验证明,  可以保持CC的性质。

六、实验部分

**(一)**CC是否与不同因果程度的输入相关?

**实验方法:**使用包含类别数不同(30%、50%、100%)的数据集,计算CC以及其他覆盖度量指标,观察覆盖度量指标的变化。

**实验预期:**随着数据集中类别数的增加,覆盖度量应呈上升态势。即30% < 50% < 100%。

表1 不同类别比例数据集下覆盖度量统计结果

通过结果发现只有CC、NBC、SNAC三个度量指标大体呈上升态势。但本文认为NBC、SNAC未必反映了真实的因果关系。在测试集添加不同程度的白噪声([−1, 1], [−100, 100], and [−10000, 10000])之后,对NBC、SNAC、CC进行了对比试验。

表2 添加白噪声之后的覆盖度量结果

**结论:**CC可区分包含不同因果关系的样本集。现有的覆盖度量标准忽略因果关系,或者容易被噪声干扰。

(二)能否区分对抗样本?是否可以捕捉到对抗样本蕴含的因果关系?

**实验方法:**对比在噪声样本(随机产生)、对抗样本(FGSM、PGD)、后门攻击样本(BadNet生成)下覆盖度量的统计结果。

**实验预期:**对抗样本、后门攻击样本的覆盖度量结果应大于噪声样本。

表3 不同样本类型下的覆盖度量统计结果

**结论:**CC在对抗样本/后门攻击样本取得的结果要远大于噪声样本。而之前的覆盖度量标准要么无法正确评估对抗样本,要么无法正确评估后门攻击样本。

**(三)**只考虑部分层因果关系的优化方案是否可靠?

**实验方法:**在VGG16模型的前、中、后三个部分各随机选择一层,进行因果发现,计算  值并与CC进行对比。  -F-前三层的某一层;  -M-中间三层的某一层;  -L-后三层中的某一层。

实验预期:  能大体保持CC可以区分不同类型样本,以及与因果关系相关的性质。

表4 不同类别比例数据集下的覆盖度量统计

表5 不同数据类型下的覆盖度量统计结果

此外,本文对  与CC的计算开销进行了对比统计。

表6 相同数据集大小,不同覆盖度量的计算时长。

表7 相同batch_size下,GPU内存占用情况

**结论:**本文对DNN进行因果发现,并基于此进行解释DNN预测过程的方案有很强的鲁棒性。总体而言  保持了CC对正常样本\噪声样本\后门攻击样本\对抗样本的区分度,以及与因果关系相关的特性。且  相对CC的计算开销较小。至于选择哪些层需要使用者对模型结构自行调整。

七、总结

本文设计CC,一个感知因果关系的覆盖度量标准。从因果关系的角度理解整个深度神经网络的运行过程,为保证计算性能和有效性采用了一系列的优化措施。最后在正常数据集和对抗数据集上,评估CC度量指标的有效性。

参考文献

1. 

Z. Ji, P. Ma, Y. Yuan and S. Wang, "CC: Causality-Aware Coverage Criterion for Deep Neural Networks," 2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE), Melbourne, Australia, 2023, pp. 1788-1800, doi: 10.1109/ICSE48619.2023.00153.

2. 

Aws Albarghouthi et al. Introduction to neural network verification. Foundations and Trends® in Programming Languages, 7(1–2):1–157, 2021.

3. 

Bing Sun, Jun Sun, Long H Pham, and Jie Shi. Causality-based neural network repair. In Proceedings of the 44th International Conference on Software Engineering, pages 338–349, 2022

4. 

Jonas Peters, Dominik Janzing, and Bernhard Sch ̈ olkopf. Elements of causal inference: foundations and learning algorithms. The MIT Press, 2017.

5. 

Y. Liu, P. Yang, P. Jia, Z. He, and H. Luo, “MalFuzz: Coverage-guided fuzzing on deep learning-based malware classification model,” PLoS ONE, vol. 17, no. 9, p. e0273804, Sep. 2022, doi:

10.1371/journal.pone.0273804.

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2