Skip to main content
QUICK REVIEW

[论文解读] Learning Invariants using Decision Trees

Siddharth Krishna, Christian Puhrsch|arXiv (Cornell University)|Jan 20, 2015
Adversarial Robustness in Machine Learning参考文献 33被引用 23
一句话总结

本文提出了一种基于决策树的算法,从测试数据中学习以数值不等式为基本单元的归纳不变量的布尔组合,从而实现对C程序的高效且可扩展的不变量推断。该方法在精度和可扩展性方面表现优异,在具有挑战性的基准测试中优于现有的基于机器学习的技术,能够直接从大规模数据集中学习复杂不变量,而无需人工调整模板。

ABSTRACT

The problem of inferring an inductive invariant for verifying program safety can be formulated in terms of binary classification. This is a standard problem in machine learning: given a sample of good and bad points, one is asked to find a classifier that generalizes from the sample and separates the two sets. Here, the good points are the reachable states of the program, and the bad points are those that reach a safety property violation. Thus, a learned classifier is a candidate invariant. In this paper, we propose a new algorithm that uses decision trees to learn candidate invariants in the form of arbitrary Boolean combinations of numerical inequalities. We have used our algorithm to verify C programs taken from the literature. The algorithm is able to infer safe invariants for a range of challenging benchmarks and compares favorably to other ML-based invariant inference techniques. In particular, it scales well to large sample sets.

研究动机与目标

  • 为解决在大型或复杂程序中自动推断归纳不变量以支持程序安全验证的挑战。
  • 通过在测试生成数据上应用机器学习,提升不变量推断的可扩展性和精度。
  • 实现对具有任意布尔结构的复杂不变量(包括多面体的并集)的自动发现。
  • 在PAC学习模型下,为不变量学习提供概率完备性保证。
  • 通过直接从数据中学习不变量结构和阈值,减少对人工模板工程的依赖。

提出的方法

  • 该算法将程序状态表示为整型变量构成的d维空间中的点。
  • 基于形式为±xi ± xj的超平面斜率设计特征,受八边形抽象域的启发,用于定义数值不等式。
  • 应用决策树学习器,从测试样本中分类可达(良好)和不安全(错误)状态,生成作为候选不变量的不等式布尔组合。
  • 决策树结构通过基于特征阈值的分层划分,自然地捕捉复杂不变量。
  • 该方法在PAC学习框架下,为样本大小提供了理论上的样本复杂度上界,以保证概率完备性。
  • 该算法通过从数据中同时学习布尔结构和阈值,避免了人工模板设定,从而能够推广到非线性特征。

实验结果

研究问题

  • RQ1决策树能否有效从测试数据中学习到作为数值不等式布尔组合的复杂归纳不变量?
  • RQ2在大规模数据集上,基于决策树的不变量学习在可扩展性方面与现有基于机器学习的方法相比如何?
  • RQ3特征设计——特别是使用八边形风格的斜率——对推断不变量的表达能力和准确性有何影响?
  • RQ4在拥有足够测试数据的前提下,该算法是否能在不依赖迭代精化循环的情况下实现高精度?
  • RQ5该方法的理论完备性保证与其它基于学习的不变量推断技术相比如何?

主要发现

  • 该算法成功推断出一系列具有挑战性的C程序基准的正确不变量,这些基准对其他工具而言难以处理。
  • 其在大规模数据集上表现出良好的可扩展性,时间复杂度为O(mn log n),优于基于集合覆盖的方法(O(mn³)复杂度)。
  • 由于其贪婪的分层结构偏好更简单的模型,决策树学习生成的不变量比MCMC和ICE方法更简洁。
  • 该方法在运行时间和表达能力方面均优于[14]和[30],且无需固定模板或有界阈值。
  • 在实践中,该算法无需迭代精化循环,因为充分采样可直接生成正确不变量,而不同于依赖反例引导精化的ICE学习框架。
  • 理论上的概率完备性保证表明,在足够大的样本下,该算法在PAC模型下以高概率学习到安全不变量。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。