本文来源:Reluplex: An Efficient SMT Solver for Verifying Deep Neural Work
Guy Katz, Clark Barrett, David L. Dill, Kyle Julian, and Mykel J. Kochenderfer
Stanford University, Stanford USA
解决的主要问题
在安全性很高的系统中应用DNN需要为DNN的行为提供“formal guarantees”,验证DNN的特性或者提供反例。
算法的主要实现过程
与单纯形法相同,Reluplex允许变量临时违反边界,因为它反复查找可行的变量赋值。 不仅如此,Reluplex还允许属于ReLU对的变量临时违反ReLU约束。然后,在迭代时,Reluplex会反复选择超出范围或违反ReLU约束的变量,并使用Pivot和Update操作对其进行纠正。
对于一组给定的变量 χ={
x1,...,xn} χ = { x 1 , . . . , x n } ,它的配置规则是一组区别符号 {
SAT,UNSAT} { S A T , U N S A T } 或者一个元组 <B,T,l,u,α,R> < B , T , l , u , α , R > <script type="math/tex" id="MathJax-Element-5170"> </script>, B⊆χ B ⊆ χ 是一组基本变量;T,代表tableau,包含每一 xi∈B x i ∈ B ,有方程 xi=∑xj∉Bcjxj x i = ∑ x j ∉ B c j x j ; l,u l , u 是对应每一个变量 x∈χ x ∈ χ 赋值的下界和上界; R∈χxχ R ∈ χ x χ 是Relu连接的集合。初始赋值全都是0,保证所有的方程能够保持(不过上下界的约束可能会被违反)。
具体的操作有:
Updateb和Updatef U p d a t e b 和 U p d a t e f 规则允许通过分别更新向后或向前的变量来纠正损坏的ReLU连接,前提是这些变量是非基本的变量。