四、验证
在本节中,我们回顾神经网络的验证技术。现有的网络验证方法主要分为以下几种:约束求解、基于搜索的方法、全局优化和过近似;注意,它们之间的分离可能并不严格。图6将本文中调查的一些方法分为这两类。
在这次调查中,我们采用了一种不同的方法,根据验证技术可以提供的保证类型对其进行分类;这些保证类型可以是:
- 精确的确定性保证,它准确地说明一个财产是否成立。我们将省略"精确保证"一词,并在本文的其余部分称之为确定性保证。
- 单边保证,它提供了一个变量的下界或上界,因此可以作为一个属性保持的充分条件------该变量可以表示Reach(f,η)中某个维数的最大值。
- 保证使变量的上下限收敛。
- 统计保证,它量化了一个属性所持有的概率。
注意,具有单边保证和约束收敛保证的算法用于计算实值,例如,输出可达性性质(定义10)、区间性质(定义12)或自由矩阵性质(定义14)。它们各自的验证问题都是基于这些值的,请参见定义11、13和15。
4.1 具有确定性保证的方法
确定性保证是通过将验证问题转换为一组约束(有或没有优化目标)来实现的,这样它们就可以用约束求解器来解决。"deterministic"这个名字来源于这样一个事实,即求解器通常对查询返回一个确定性的答案,即要么是可满足的,要么是不可满足的。这是基于当前各种约束求解器的成功,如SAT求解器、线性规划(LP)求解器、混合整数线性规划(MILP)求解器、可满足模理论(SMT)求解器。
4.1.1 SMT/SAT
布尔可满足性问题(SAT)确定给定一个布尔公式,是否存在对布尔变量的赋值使得该公式是可满足的。基于SAT的可满足模理论(SMT)问题,确定了经典一阶逻辑中具有等式的背景理论组合的逻辑公式的可满足性。我们在神经网络的背景下考虑的理论包括实数理论和整数理论。对于SAT和SMT问题,都有复杂的、开源的求解器,可以自动回答关于公式可满足性的查询。
一种基于SMT求解的抽象精化方法。在Pulina and Tacchella, 2010中提出了一种验证区间性质(可以很容易地扩展到ReLU激活函数的可达性性质)的解决方案,通过将网络抽象为一组线性算术约束的布尔组合。基本上,层之间的线性变换可以直接编码,并且诸如 Sigmoid 之类的非线性激活函数可以通过分段线性函数来近似(具有下限和上限)。 结果表明,每当抽象模型被声明为安全时,具体模型也同样如此。 另一方面,虚假反例会触发改进,并可用于自动纠正不当行为。 该方法在具有少于 10 个神经元且具有逻辑激活函数的神经网络上得到了验证。
用于神经网络的 SMT 求解器。 提出了两个 SMT 求解器 Reluplex Katz et al., 2017 和 Planet Ehlers, 2017,以验证神经网络可通过 SMT 约束表达的属性。 SMT 求解器通常对可以表示为其他变量类型约束的布尔组合的问题具有良好的性能。 通常,SMT 求解器将 SAT 求解器与其他理论的专门决策程序结合起来。 在网络验证中,它们采用实数线性算术,其中原子(即最基本的表达式)的形式为
,其中 ai 和 b 是实数。
在 Reluplex 和 Planet 中,它们都使用 Davis-PutnamLogemann-Loveland (DPLL) 算法的架构来分割案例并排除冲突条款,但在处理交集方面略有不同。 对于Reluplex,该方法继承了Simplex算法中的规则,并添加了一些ReLU操作的规则。 通过经典的主元运算,它首先寻找线性约束的解,然后应用ReLU规则来满足每个节点的ReLU关系。 相反,Planet使用线性逼近来过度逼近神经网络,并通过逻辑公式来管理ReLU和最大池化节点的条件。
SAT 方法。 纳罗迪茨卡等人 Narodytska et al., 2018,Narodytska, 2018 提出通过简化众所周知的布尔可满足性来验证一类神经网络(即二值化神经网络)的属性,其中权重和激活都是二元的。 使用这种布尔编码,他们利用现代 SAT 求解器的强大功能以及提出的反例引导搜索程序来验证这些网络的各种属性。 特别关注的是对抗性扰动的鲁棒性。 实验结果表明,该方法可以扩展到图像分类任务中使用的中等规模的 DNN。
4.1.2 混合整数线性规划(MILP)
线性规划(LP)是一种优化线性目标函数的技术,受线性等式和线性不等式约束。 LP中的所有变量都是实数,如果某些变量是整数,则问题变成混合整数线性规划(MILP)问题。 值得注意的是,虽然 LP 可以在多项式时间内求解,但 MILP 是 NP 难的。
神经网络的 MILP 公式。 Lomuscio 和 Maganti,2017 使用 MILP 对全连接神经网络的行为进行编码。 例如,隐藏层 zi+1 = ReLU(Wizi + bi) 可以用以下 MILP 描述:

其中 ti+1 的条目值为 0 或 1,并且与 zi+1 具有相同的维度,并且 M > 0 是一个大常数,可以视为 Infini。 这里 ti+1 中的每个整数变量表示神经元被激活或不激活的可能性。 优化目标可用于表达与边界相关的属性,例如 ||z1 − x||∞,它表示 z1 到某个给定输入 x 的 L∞ 距离。 这种方法可以与可达性属性和间隔属性一起使用。
然而,简单地使用 MILP 来验证网络或计算输出范围的效率并不高。 在 Cheng et al., 2017 中,开发了许多 MILP 编码启发式方法来加速求解过程,此外,使用了 MILP 求解器的并行化,导致数量几乎呈线性加速(高达 实验中计算核心的一定限制。 在 Dutta et al., 2018 中,Sherlock 交替进行局部和全局搜索以有效计算输出范围。 在局部搜索阶段,Sherlock使用梯度下降法来寻找局部最大值(或最小值),而在全局搜索阶段,它使用MILP对问题进行编码以检查局部最大值(或最小值)是否是全局输出范围。
此外,Bunel et al., 2017 提出了一种分支定界 (B&B) 算法,并声称基于 SAT/SMT 和基于 MILP 的方法都可以视为其特例。
4.2 计算近似界限的方法
本小节中探讨的方法考虑了下限(或通过对偶性、上限)的计算,并且能够声称实现属性的充分性。 虽然这些方法只能对某些变量的值进行有界估计,但它们能够使用更大的模型,例如最多 10,000 个隐藏神经元。 另一个优点是它们有可能避免现有约束求解器实现中的浮点问题。 实际上,大多数最先进的浮点运算约束求解器仅给出近似解,这可能不是实际的最优解,甚至可能位于可行空间之外Neumaier and Shcherbina, 2004。 事实上,求解器可能会错误地声明属性的可满足性或不可满足性。 例如,Dutta et al., 2018 报告了 Reluplex 中的几个误报结果,并提到这可能来自不健全的浮点实现。
4.2.1 抽象解释
抽象解释是计算机程序语义的合理近似理论Cousot and Cousot, 1977。 它已用于静态分析中,以验证程序的属性,而无需实际运行程序。 抽象解释的基本思想是使用抽象域(表示为例如框、区域和多面体)来过度近似一组输入的计算; 它的应用已经通过多种方法进行了探索,包括 AI2 Gehr et al., 2018,Mirman et al., 2018 和 Li et al., 2018。 通常,在输入层上,定义一个具体域 C,使得输入集 η 是其元素之一。 为了实现有效的计算,选择了一个相对简单的域,即抽象域A,它过度近似C中变量的范围和关系。 C 和 A 上都存在偏序 ≤,即子集关系 ⊆。

直观上,伽罗瓦连接(α,γ)分别表达域之间的抽象和具体化关系。 选择伽罗瓦连接是因为它保留了两个域中元素的顺序。 请注意,当且仅当 α© ≤ a 时,a ∈ A 是 c ∈ C 的合理抽象。 在抽象解释中,选择合适的抽象领域非常重要,因为它决定了抽象解释的效率和精度。 在实践中,采用某种特殊形状作为抽象元素。 形式上,抽象域由可表示为一组逻辑约束的形状组成。 欧几里得空间抽象最流行的抽象域包括区间、区域空间和多面体; 这些内容详述如下。
- 间隔。 区间 I 包含 a ≤ xi ≤ b 形式的逻辑约束,对于每个变量 xi,I 最多包含一个与 xi 的约束。
- 区域位。 区域位 Z 由 zi =
形式的约束组成,其中 ai、bij 是实常数,j ∈ lj, uj。 这些约束的结合表达了欧几里得空间中的中心对称多面体。 - 多面体。 多面体 P 具有线性不等式形式的约束,即
,并且它在欧几里得空间中给出一个封闭的凸多面体。
例 7 令 ˆx ∈ R2。 假设 ¯x 的值域是离散集合 X = {(1, 0), (0, 2), (1, 2), (2, 1)}。 我们可以用 Interval、Zonotope 和 Polyhedron 对输入 X 进行抽象,如下所示。


基于抽象解释的方法可以验证区间属性,但不能验证可达性属性。
4.2.2 基于凸优化的方法
凸优化是最小化凸集上的凸函数。 大多数神经网络函数不是凸的(即使是凸的,也可能非常复杂),因此基于它的计算需要近似值。 Wong 和 Kolter,2018 提出了一种方法来学习基于 ReLU 的深度分类器,该分类器对于训练数据的范数有界对抗性扰动具有鲁棒性。 该方法适用于区间属性,但不适用于可达性属性。 它可能会将一些非对抗性示例标记为对抗性示例。 基本思想是考虑通过范数有界扰动可达到的激活集的凸外部过近似,然后开发一个鲁棒的优化程序,最大限度地减少该外部区域的最坏情况损失(通过线性程序)。 至关重要的是,该线性程序的对偶问题可以表示为类似于反向传播网络的深层网络,从而产生非常有效的优化方法,从而在鲁棒损失上产生有保证的界限。 该方法在许多具有强大对抗性保证的任务上进行了说明。 例如,对于 MNIST,他们生成了一个卷积分类器,对于任何有界 L∞ 范数小于 = 0.1 的对抗性攻击,其测试误差均低于 5.8%。
此外,Dvijotham et al., 2018 通过对对偶问题采用不同的表述来进行工作,即在优化中应用拉格朗日松弛。 这是为了避免处理受约束的非凸优化问题。
4.2.3 区间分析
在 Wang et al., 2018 中,利用区间算法来计算 DNN 输出的严格界限,即区间属性。 关键思想是,给定操作数的范围,可以仅使用操作数的下限和上限来计算高估的输出范围。 从第一个隐藏层开始,该计算可以一直进行到输出层。 除了这种显式计算之外,还开发了符号区间分析以及其他几种优化,以最大限度地减少对输出范围的高估。 这些方法在 ReluVal 中实现,ReluVal 是一个用于正式检查基于 ReLU 的 DNN 安全属性的系统。 与基于约束求解的方法相比,这种方法的优点是它可以轻松并行化。 一般来说,区间分析接近基于区间的抽象解释,我们在 4.2.1 节中对此进行了解释。
在 Peck et al., 2017 中,改变神经网络分类所需的对抗性扰动的下限是通过利用层函数得出的。所提出的界限具有理论上的保证,即任何对抗性操作都不能更小,并且在这种情况下,可以在给定模型的(超)参数数量和任何输入的最大线性时间内有效地计算,这使得它们适用于选择 基于鲁棒性的分类器。
4.2.4 输出可达集估计
在 Xiang et al., 2018 中,解决了输出可达集估计。 给定 DNN N 及其关联函数 f 和一组输入 η,输出可达集为 Reach(f, η),如定义 10 中所示。问题是计算近似估计 Y 使得 Reach(f, η) ⊆ Y,或者确定对于安全规范 S 是否达到 (f, η) ∩ ØS = ∅,其中 S 也用类似于等式(12)中的集合来表示。 因此,实际上就是计算区间性质。 首先,引入了最大灵敏度的概念,对于一类激活函数为单调函数的多层感知器,最大灵敏度可以简化为第4.1.2节中的MILP问题。 然后,使用基于模拟的方法,将神经网络的输出可达集估计问题表述为一系列优化问题。 最后,根据输出的可达集估计结果开发自动安全验证。 该方法应用于具有两个关节的机械臂模型的安全验证。
4.2.5 ReLU网络的线性逼近
FastLin/FastLip Weng et al., 2018 分析了 ReLU 网络的区间属性和 Lipschitzian 属性。 对于区间属性,他们考虑对那些不确定其激活或停用状态的 ReLU 神经元进行线性近似。 对于 Lipschitzian 性质,他们使用梯度计算来进行近似计算。 Crown Zhang et al., 2018a 通过允许上限和下限的线性表达式不同并使其能够与其他激活函数(例如 tanh、sigmoid 和 arctan)一起使用,概括了 FastLin/FastLip 中的区间属性计算算法。 RecurJac 中改进了 Lipschitzian 属性计算 Zhang et al., 2019。
4.3 计算收敛界限的方法
虽然上述方法可以适用于小型网络(最多数千个隐藏神经元),但最先进的 DNN 通常包含至少数百万个隐藏神经元。 有必要开发其他方法来与现实世界的系统一起工作。 在第 4.3 节和第 4.4 节中,这些方法能够适用于大规模网络,尽管它们可能有其他限制或限制。 由于本小节中研究的方法计算收敛的上限和下限,因此它们可以同时处理输出可达性属性和区间属性。
4.3.1 逐层细化
Huang et al., 2017b 基于可满足性模理论(SMT)开发了一种前馈多层神经网络的自动验证框架。 该框架的主要特点是,它保证发现错误分类(如果存在),并且逐层传播分析,即从输入层到隐藏层,再到输出层 。
在这项工作中,单个分类决策的安全性,即逐点(或局部)鲁棒性,被定义为分类器结果对原始输入的小邻域内扰动的不变性。 正式地,

其中 x 表示输入,N 表示神经网络,ηk 表示第 k 层输入 x 的相应激活周围的区域,Δk 表示第 k 层的一组操作。 后来,在Wicker et al., 2018,Wu et al., 2020中,表明通过Lipschitz常数的存在可以保证Δ中操作的最小性。
更具体地说,其验证算法使用单/多路径搜索来穷举探索与输入层或隐藏层相关的向量空间的有限区域,并使用Z3求解器实现逐层细化 确保较深层的局部鲁棒性意味着较浅层的鲁棒性。 该方法在软件工具 DLV 中实现,并在 MNIST、CIFAR10、GTSRB 和 ImageNet 等图像基准上进行评估。 尽管复杂性很高,但它可以扩展以与 VGG16 等最先进的网络一起使用。 此外,在Wicker et al., 2018,Wu et al., 2020中,搜索问题通过蒙特卡罗树搜索得到缓解。
4.3.2 简化为两人回合制游戏
DeepGame Wu et al., 2020 研究了点稳健性的两种变体:
- 最大安全半径 (MSR) 问题,对于给定的输入样本计算到对抗性示例的最小距离,以及
- 特征稳健性 ( FR)问题,旨在量化个体特征对对抗性扰动的鲁棒性。
它表明,在 Lipschitz 连续性假设下,两个问题都可以通过离散化输入空间使用有限优化来近似,并且该近似具有可证明的保证,即误差是有界的。 随后,它将所产生的优化问题简化为两人回合制游戏的解决方案,其中玩家 I 选择功能,而玩家 II 扰乱功能内的图像。 虽然玩家 II 的目标是最小化与对抗性示例的距离,但根据优化目标,玩家 I 可以是合作的,也可以是竞争的。 采用随时方法来解决游戏,即通过单调提高游戏的上限和下限来近似游戏的价值。 蒙特卡罗树搜索算法用于计算两个游戏的上限,可接受的 A* 和 Alpha-Beta 剪枝算法分别用于计算 MSR 和 FR 游戏的下限。
4.3.3 基于全局优化的方法
DeepGO Ruan et al., 2018a 表明大多数已知的 DNN 层都是 Lipschitz 连续的,并提出了一种基于全局优化的验证方法。 对于单一维度,提出了一种算法来始终计算下界(通过利用 Lipschitz 常数)并最终收敛到最优值。 基于这种单维算法,多维算法就是穷举搜索最佳组合。 该算法能够与最先进的 DNN 配合使用,但受到扰动维度数量的限制。
在 DeepTRE Ruan et al., 2019 中,作者重点关注汉明距离,并研究量化经过训练的 DNN 的全局鲁棒性问题,其中全局鲁棒性定义为测试数据集上最大安全半径的期望 。 他们提出了一种迭代生成网络鲁棒性下限和上限的方法。 该方法是随时可用的,即,它返回中间边界和鲁棒性估计,这些估计随着计算的进行而逐渐但严格地改进; 基于张量,即同时对一组输入进行计算,而不是逐一进行,以实现高效的 GPU 计算; 并且具有可证明的保证,即界限和鲁棒性估计都可以收敛到其最优值。
4.4 统计保证方法
本小节回顾了一些旨在实现其结果的统计保证的方法,通过以一定的概率声称属性的可满足性,或者一个值是另一个值的下限等。
4.4.1 极值理论的 Lipschitz 常数估计
Weng et al., 2018 提出了一种称为 CLEVER 的度量来估计 Lipschitz 常数,即该方法适用于 Lipschitz 性质。 它通过对梯度范数进行采样并使用极值理论拟合极限分布来估计鲁棒性下界。 然而,正如Goodfellow,2018所说,他们的评估方法只能找到下限的统计近似,即他们的方法存在稳健性问题。
4.4.2 鲁棒性估计
Bastani et al., 2016提出了两种鲁棒性统计数据,分别衡量对抗性例子的频率和严重性。 这两种统计数据都基于参数 ,该参数是不存在对抗性示例的最大半径。 这些统计量的计算基于局部线性假设,当 足够小时,该假设成立。 除了应用分段线性的 ReLU 激活函数之外,这一假设可以通过 Lipschitz 常数的存在来满足,如 Ruan et al., 2018a 所示。
4.5 验证的计算复杂性
有两种方法可以衡量进行形式验证的复杂性。 第一个出现在 Katz et al., 2017 中,测量隐藏神经元数量的复杂性。 这是因为他们的方法是将 DNN 编码为一组约束,并且在约束中每个隐藏神经元都与两个变量相关联。 另一方面,在 Ruan et al., 2018a 中,复杂度是根据输入维度的数量来衡量的。 这是因为他们的方法是操纵输入。 对于这两种情况,复杂性都是 NP 完全的,尽管隐藏神经元的数量可以大于输入维度的数量是可以理解的。
4.6 总结
我们从可实现的保证类型、底层算法和客观属性(即鲁棒性、可达性、区间和 Lipschitzian)等方面总结了表 1 中一些现有的 DNN 验证方法。
