Reluplex:一种用于验证深度神经网络的高效的SMT求解器
文献来源:Guy Katz, Clark W. Barrett, David L. Dill, Kyle Julian, and Mykel J. Kochenderfer. Reluplex: An efficient SMT solver for verifying deep neural networks. In Computer Aided Verification, 29th International Conference (CAV), pages 97–117, 2017.
单位:斯坦福大学
摘要
本文提出了一种新颖的、可扩展的、有效的技术来验证深度神经网络的特性(或者提供反例)。该技术基于单纯形方法(Simplex Method),扩展到处理ReLU激活函数。验证程序将神经网络作为一个整体来处理,而不做任何简化的假设。我们在无人机新型机载防撞系统(ACAS Xu)的原型深度神经网络上评估了我们的技术。结果表明,我们的技术可以成功地证明比使用现有方法能验证的最大网络还要大一个数量级的网络的性质。
背景介绍
验证深度神经网络(DNN)性质的困难主要是由激活函数的存在引起的。因为激活函数是非线性的,使得问题是非凸的。本文通过扩展单纯形算法,以持ReLU约束,我们称该算法为Reluplex,意为“带有单纯形的ReLU”。
本文的贡献总结如下:
(1) 提出Reluplex,一个SMT求解器,用于ReLU约束下的线性实数运算理论;
(2) 展示如何把需要验证的的DNN和属性编码为Reluplex的输入;
(3) 讨论对性能和可扩展性至关重要的几个实现细节,例如浮点运算的使用、ReLU变量的边界推导和冲突分析;
(4) 对ACAS Xu系统的实施进行全面评估,证明Reluplex能够扩展到比使用现有技术分析的DNN大一个数量级的DNN。
背景知识
神经网络:
对隐藏层每个节点都应用ReLU激活函数,因此有 v 31 ≡ v 11 v_{31}\equiv v_{11} v31≡v11
可满足性模型理论(SMT,Satisfiability Modulo Theories):
SMT问题是指,针对给定理论T,求解所给公式是否满足T的问题。DPLL(T)结构提供了确定公式的T可满足性的一般方法。
线性实数运算和单纯形方法:
线性运算是加法和数量乘法, 在实数领域像只包含加法和数量乘法二元一次方程就属于线性运算。
对于可行域方程组Ax=b,该方程确定的凸多边形的任意一个顶点对应A的一组基。单纯形算法就是通过反复的基变换(通过向量的进出)来找顶点,从而找到达到最优值的顶点。
从Simplex到Reluplex
在单纯形算法中,问题可以被编码为原子的合取。然而,虽然DNN的权重、偏移值等某些属性可以用单纯形方法编码,但非线性的ReLU激活函数不能。
Reluplex中提出一种思想,首先定义一个解释: R e L U ( x , y ) i f f y = m a