← 最新论文
🤖 machine learning

Floating-Point Neural Network Verification at the Software Level

本文介绍了 NeuroCodeBench 2.0,这是一个用于验证基于 C 语言的浮点神经网络实现的基准测试,它实现了对最先进软件验证器的首次严格评估,并展示了它们目前的局限性,同时突出了该基准测试对工具开发的积极影响。

原作者: Edoardo Manino, Bruno Farias, Rafael Sá Menezes, Fedor Shmarov, Lucas C. Cordeiro

发布于 2026-08-11
📖 1 分钟阅读☕ 轻松阅读

原作者: Edoardo Manino, Bruno Farias, Rafael Sá Menezes, Fedor Shmarov, Lucas C. Cordeiro

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你正在构建一个超级聪明的机器人大脑——一个神经网络,旨在驾驶汽车或驾驶飞机。在数学和理论的世界里,这些大脑是完美的;它们遵循着像河流流水般平滑、连续的规则。但在现实世界中,计算机并不说“完美的数学”。它们说的是“浮点数”语言,这是一种破碎的、数字化的语言,其中的数字被切分成微小的、有限的碎片,就像试图仅用一套有限的乐高积木来绘制一幅平滑的日落图。这种微小的像素化可能会导致奇怪的故障:一个本该始终上升的函数可能会因为舍入误差突然下降,就像一座从远处看很平滑的楼梯,如果近距离观察,会发现隐藏的、危险的台阶。

现在,想象一下,你想在让这个机器人大脑驾驶之前证明它是安全的。你可以测试一百万次,但这就像通过在桥上行驶一百万次来检查桥梁的安全性一样;你可能会错过那道导致坍塌的裂缝。相反,你想要一个“形式化验证器”——一个超级侦探,能够从数学上证明这个大脑永远不会犯错,无论输入是什么。大问题在于,这些数字侦探能否处理现代神经网络代码中那种混乱、破碎的浮点数现实,还是说它们只能处理那些完美的、理论上的版本?

本文对目前现有的八种最优秀的自动化软件验证工具进行了深刻而诚实的审视。作者构建了一个庞大的测试场,名为 NeuroCodeBench 2.0,其中包含 912 个不同的谜题,范围从简单的数学函数到拥有高达 17 万个参数的全功能神经网络。他们将这些谜题喂给这些验证器,以观察这些工具是否能正确识别代码是安全还是危险的。结果是一次现实的警示:这些工具目前正处于挣扎之中。它们经常陷入僵局、耗尽时间,或者更糟的是,自信地将不安全的代码判定为“安全”,或将安全的代码判定为“不安全”。事实证明,虽然这些工具在检查简单代码时表现出色,但它们尚未准备好处理现代神经网络中复杂的浮点数现实。然而,故事并非全是不好的;论文表明,仅仅拥有这样一个严谨的基准测试,就已经帮助开发者修复了许多他们的工具,这表明随着更多的实践和更好的工具,我们或许有一天能让这些数字侦探跟上步伐。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →