alpha-beta-CROWN
神经网络的数学保镖:五年VNN-COMP冠军,用形式化方法证明AI模型绝对安全
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
神经网络的数学保镖:五年VNN-COMP冠军,用形式化方法证明AI模型绝对安全
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你坐在一辆由神经网络自动驾驶的汽车里,前方突然出现行人——模型能100%保证在那一刻做出正确的决策吗?这种"保证"不是概率上的"很可能",而是数学上的"绝对"。这正是神经网络形式化验证(Neural Network Verification)要做的事:给 AI 模型的安全性一个数学上的硬证明。
α,β-CROWN(alpha-beta-CROWN) 就是这个领域的最强者——它连续五年(2021-2025)在国际神经网络验证竞赛 VNN-COMP 中夺冠,是该领域毫无争议的技术标杆。

图1:Verified-Intelligence 组织标志
α,β-CROWN 由伊利诺伊大学香槟分校(UIUC)Huan Zhang 教授团队主导开发,团队成员还来自 UCLA、哥伦比亚大学、密歇根大学、卡内基梅隆大学等多所顶尖机构。项目自 2021 年开源以来,已经成为神经网络验证领域引用最广泛的工具之一。
在 AI 安全日益重要的今天,形式化验证解决了传统测试方法无法覆盖的"对抗样本"问题——攻击者通过对输入做微小人眼不可察觉的扰动,就能让神经网络输出完全错误的结论。传统测试无法穷举所有可能的对抗输入,而 α,β-CROWN 通过数学证明来保证:在这个扰动范围内,模型绝对不会出错。
α,β-CROWN 的核心技术建立在线性边界传播(Linear Bound Propagation)框架之上,融合了多个里程碑式算法:
CROWN 将网络验证问题转化为线性不等式的反向传播。信息沿着网络反向流动,每一层都用线性边界来近似激活函数的真实行为。计算复杂度接近线性,远快于基于混合整数规划(MIP)的传统方法。
auto_LiRPA 将 CROWN 扩展到任意计算图,不限于标准神经网络层。它支持:
在 bound propagation 框架内引入通用切割平面(Cutting Planes),使用 IBM CPlex 求解器进一步收紧边界。
基于分支定界的对抗攻击,专门解决传统梯度攻击和输入空间搜索无法攻克的"硬样本"。
将分支定界扩展到非 ReLU 非线性函数(如 Transformer 中的 softmax、gelu),支持高维输入的通用非线性网络验证。
在分支定界过程中自适应生成切割平面,无需 MIP 求解器,效率和可扩展性大幅提升。
最新成果(NeurIPS 2025),高效处理线性约束,显著减少分支定界子问题数量,加速复杂验证任务。
虽然 α,β-CROWN 最初为对抗鲁棒性验证设计,但它已扩展到更广泛的领域:
| 验证场景 | 说明 |
|---|---|
| 对抗鲁棒性 | Lp 范数扰动下的安全边界证明 |
| Lyapunov 稳定性 | 神经网络控制器的李雅普诺夫稳定性证明 |
| 预像分析 | 计算神经网络的可达集(backward reachability) |
| 通用属性验证 | VNNLIB 格式,支持任意线性约束 |
| AC 最优潮流 | 电力系统中神经网络控制器的安全验证 |
支持的网络架构:MLP、CNN、ResNet、Transformer、LSTM、残差网络、自定义计算图。
支持的规范格式:Lp 范数扰动(L1/L2/Linf)、VNNLIB 格式(VNN-COMP 标准)、任意线性输出约束。
α,β-CROWN 对环境有较高要求,建议具备以下条件:
# 安装 uv 包管理器
curl -LsSf https://astral.sh/uv/install.sh | sh
# 克隆仓库(含 auto_LiRPA 子模块)
git clone --recursive https://github.com/Verified-Intelligence/alpha-beta-CROWN.git
cd alpha-beta-CROWN
# 创建并激活虚拟环境
uv sync
source .venv/bin/activate
# 如使用 V100 等旧 GPU,回退 PyTorch 版本
uv pip install --reinstall torch==2.11.0 torchvision --index-url https://download.pytorch.org/whl/cu126
方式一:新 Python API(推荐,2025年新增)
from complete_verifier import abcrown
result = abcrown.verify(
model=model,
inputs=input_bound,
spec=spec,
config="default"
)
方式二:命令行 + YAML 配置
cd complete_verifier
python abcrown.py --config exp_configs/tutorial_examples/cifar_resnet_2b.yaml
提供大量预设配置文件,覆盖 MNIST、 CIFAR-10/100、 TinyImageNet、 ACASXu、 NN4sys、 ML4ACOPF 等基准测试。
alpha-beta-CROWN/
├── abcrown/ # Python 包入口(对外 API)
│ └── abcrown_smt/ # SMT 求解器适配
├── complete_verifier/ # 核心验证引擎
│ ├── api.py # 新 Python API(155KB,核心)
│ ├── arguments.py # 参数解析(96KB,YAML 配置映射)
│ ├── beta_CROWN_solver.py # β-CROWN 求解器(63KB)
│ ├── bab.py # 分支定界框架(24KB)
│ ├── branching_domains.py # 分支域管理(50KB)
│ ├── domain_clipper.py # Clip-and-Verify 线性约束处理(52KB)
│ ├── attack/ # 对抗攻击模块
│ │ ├── bab_attack.py # BaB-Attack
│ │ └── attack_pgd.py # PGD 攻击
│ ├── activation_split/ # 激活函数分割策略
│ ├── cuts/ # 切割平面生成
│ └── exp_configs/ # 大量 YAML 验证配置
├── auto_LiRPA/ # 子模块:线性边界传播引擎
├── vnncomp_scripts/ # VNN-COMP 竞赛脚本
└── pyproject.toml # 依赖:PyTorch 2.11 + ONNX + Gurobi + ...
依赖生态:PyTorch 2.11、ONNX 全套工具链(onnx2pytorch、onnxruntime、onnxoptimizer、onnxsim)、Gurobi(可选 MIP)、Pandas、SymPy。
α,β-CROWN 的价值不仅在于它是竞赛冠军,更在于它代表了一种趋势——AI 系统的安全性需要可证明的保证,而不是靠"测试了很多次没出错"来安慰自己。随着神经网络在自动驾驶、医疗诊断、金融风控等高风险场景的落地,形式化验证正在从学术研究走向工业应用。
α,β-CROWN 五年的持续领先说明:在这个赛道上,工程能力和学术创新缺一不可——既要有深刻的算法理解,也要有能处理真实规模网络的工程实现。
项目信息