基本信息
原文名称 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和实际测试输入上实现因果感知的覆盖计算。
03
与其他11个DNN覆盖度量相比,CC可以更好地衡量测试集的质量。CC与正常和对抗样本所传达的因果关系正确相关。
三、背景知识
(一)因果推断
结构化因果模型SCM是对变量之间的假设因果关系的一种简单而富有表现力的概念。SCM足以描述社会科学和生物学等许多现实生活场景中的因果关系。在一个多变量系统下,SCM的定义如下:
定义1:SCM,一个SCM
其中
定义2:因果图
因果图G可以通过SCM得到,在这个意义上,为每个变量
SCM描述了一个联合概率分布
定义3:SCM实现
设
在真实场景中,底层系统的基本真实SCM通常是未知的。相反,本文通常对这个系统有一个观测集合(SCM实现)。通常,从这些观察中建立因果图G是理解由底层系统组成的因果关系的一个基本步骤。这个过程被称为因果发现。常见的因果发现方法有基于约束的、基于得分的、基于梯度的、基于监督。以下是基于约束方法的简要介绍:
给定因果图G作为有向无环图DAG,基于约束的因果发现通常分为两个步骤,首先发现G的骨架(无向图),然后将边的方向进一步分配给无向边。骨架发现通常从一个完整图开始,其中每个变量都有节点,并且每个节点都是完全链接的;枚举所有节点对,并对每对节点进行统计测试,以确定条件独立性;在确定独立性时,删除它们的边;重复以上步骤,直到无法删除边。本文中CC发起的因果发现过程从标准骨架发现过程拓展而来,不需要进行边方向的界定。
四、研究动机
(一)DNN执行的因果关系
Sun等人的研究表明FFNN和CNN可以用SCM表示。本文认为任何以DAG有向无环图为特征的神经网络都可以用SCM进行表示,包括常见的神经网络FFNN、CNN、RNN。此外,DNN的运行等同于SCM的数据产生过程。本文提出以下命题。
命题:
任何与DAG兼容的神经网络都可以用SCM表示。
证明过程:
设一个与DAG兼容的神经网络N用DAG
DNN
图1 DNN运行与SCM实现之间的关系
如图1所示,给定一个DNN,其SCM的实现是通过给
图2 不同输入类型的因果关系分布
通过上面的讨论,本文假设在因果关系的视角下,正常输入、对抗输入、噪声可以被区分,如图2所示。首先,正常输入(训练集)由有限样本组成(中间的蓝色区域)。通过训练过程,DNN将训练数据的分布外推至整个样本集的分布(绿色区域)。在正常的输入中,DNN期望从正常输入集的SCM实现中学习到更多因果关系。与之相反,随机噪声不包含任何有意义的因果关系,因此只会触发少量的SCM因果关系,所以只是一个非常狭窄的数据分布(紫色)。对抗输入通常利用DNN推断的一些不正确的因果关系来欺骗模型决策。这些不正确的因果关系通常很少用于预测正常输入,与正常输入相比,对抗输入将产生明显的分布移位(橙色区域)。因此,本文希望通过CC来区分不同输入类型触发的不同因果关系。
(二)基于因果关系发现的DNN覆盖度量
本文发现,DNN的SCM为DNN执行状态提供了一个合理的抽象。通过对一组测试输入(多个SCM实现)执行DNN的因果发现,可以推断出高质量的因果图G。考虑到DNN中两个相互连接的神经元
五、CC设计
CC:用
要计算CC,首先要提取基本因果图
在构建
通过试验性的观测,发现在测试大型DNN时,由于涉及大量神经元之间的边伪造,CC的运行速度较慢。本文采用选择性的因果发现策略,即只考虑DNN中的部分层计算
总体上,CC旨在提供一个有效的,增量计算的因果发现方案,是专门为深度神经网络测试定制的。首先将DNN
(一)从因果发现转向边伪造
与标准因果发现相比,设计CC的独特在于,基础真值因果图
总体而言,CC通过将DNN执行中的因果发现问题重新定义为边伪造问题,这样,CC省略探寻
(二)针对混杂神经元进行调整
对(一)中计算复杂度的一个简化方式是将
图3 三层神经网络的例子
如图3所示,虽然
图4 边伪造算法
为了伪造一条边
(三)增量计算
在真实的DNN测试场景中,覆盖率通常以在线的、基于批处理的方式计算。因此,重要的是实现增量计算方案,使以前的中间结果可以有效地重用CC。实现了一个基于gpu的边伪造计算管道,它维护了几个可更新的中间值,这样增量DNN执行可以顺利追加。在初始阶段,使用初始测试套件计算,由协方差推导而来,对于增量数据,协方差通常是不变的。因此,它可以在后续增量数据中重用,而无需修改。
主要的挑战来自独立性测试目前多数在连续数据上的独立检验算法使不能更新的,受之前覆盖度量设计启发,本文将连续神经元的值划分为k个区间,基于离散可更新的独立检验-卡方检验进行独立检验。本质上,CC在GPU中维护列联表,对
(四)选择性因果发现
图5 三层DNN进行层选择的例子
现代神经网络通常具有大量神经元,在整个神经网络上进行因果发现计算开销太大且没有必要。本文设计了
六、实验部分
(一)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模型的前、中、后三个部分各随机选择一层,进行因果发现,计算
实验预期:
表4 不同类别比例数据集下的覆盖度量统计
表5 不同数据类型下的覆盖度量统计结果
此外,本文对
表6 相同数据集大小,不同覆盖度量的计算时长。
表7 相同batch_size下,GPU内存占用情况
结论:本文对DNN进行因果发现,并基于此进行解释DNN预测过程的方案有很强的鲁棒性。总体而言
七、总结
本文设计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.