SoundnessBench
收藏资源简介:
SoundnessBench是一个综合基准,用于彻底评估神经网络验证器的健全性。它通过提供大量带有隐藏反例的不可验证实例,来有效揭示神经网络验证器内部的错误,如果它们错误地声称这些不可验证实例是可验证的。该基准旨在支持开发者在评估和改进神经网络验证器方面的工作。
SoundnessBench is a comprehensive benchmark designed for thorough evaluation of the soundness of neural network verifiers. It effectively exposes inherent flaws of neural network verifiers by providing a substantial collection of unverifiable instances with hidden counterexamples, which allows these flaws to be uncovered when the verifiers incorrectly claim that these unverifiable instances are verifiable. This benchmark aims to support developers in evaluating and improving neural network verifiers.
SoundnessBench 数据集概述
概述
SoundnessBench 是一个用于全面评估神经网络(NN)验证器健全性的基准测试。该基准通过提供大量包含隐藏反例的不可验证实例,有效揭示 NN 验证器的内部错误,从而解决先前基准测试中缺乏真实标签的问题。
数据集下载
SoundnessBench 托管在 HuggingFace 上,可通过以下命令直接下载: bash git clone https://huggingface.co/datasets/SoundnessBench/SoundnessBench
数据集结构
下载的基准包含 26 个模型,涵盖 9 种不同的 NN 架构,具有不同的输入大小和扰动半径。以下是 9 种架构的详细信息:
| 名称 | 模型架构 | 激活函数 |
|---|---|---|
| CNN 1 Conv | Conv 10 × 3 × 3, FC 1000, FC 100, FC 20, FC 2 | ReLU |
| CNN 2 Conv | Conv 5 × 3 × 3, Conv 10 × 3 × 3, FC 1000, FC 100, FC 20, FC 2 | ReLU |
| CNN 3 Conv | Conv 5 × 3 × 3, Conv 10 × 3 × 3, Conv 20 × 3 × 3, FC 1000, FC 100, FC 20, FC 2 | ReLU |
| CNN AvgPool | Conv 10 × 3 × 3, AvgPool 3 × 3, FC 1000, FC 100, FC 20, FC 2 | ReLU |
| MLP 4 Hidden | FC 100, FC 1000, FC 1000, FC 1000, FC 20, FC 2 | ReLU |
| MLP 5 Hidden | FC 100, FC 1000, FC 1000, FC 1000, FC 1000, FC 20, FC 2 | ReLU |
| CNN Tanh | Conv 10 × 3 × 3, FC 1000, FC 100, FC 20, FC 2 | Tanh |
| CNN Sigmoid | Conv 10 × 3 × 3, FC 1000, FC 100, FC 20, FC 2 | Sigmoid |
| VIT | 修改后的 VIT [17],补丁大小 1 × 1,2 个注意力头和嵌入大小 16 | ReLU |
每个文件夹应包含以下内容:
model.onnx: 模型架构和参数的 ONNX 格式文件vnnlib/: 包含 VNN-LIB 格式的实例文件夹instances.csv: 包含 VNN-LIB 文件列表model.pt: 仅包含参数的 PyTorch 格式模型检查点(验证不需要)data.pt: 包含实例的原始数据(验证不需要)
基本用法
用户可以在基准测试上运行验证器,生成包含结果的 results.csv 文件。该 CSV 文件的格式应遵循 VNN-COMP 的格式。
评估脚本
提供了一个评估脚本,用于快速统计 results.csv 文件中的结果,并报告以下指标:
clean_instance_verified_ratioclean_instance_falsified_ratiounverifiable_instance_verified_ratiounverifiable_instance_falsified_ratio
训练新模型
提供了一个简单的管道,供用户训练包含隐藏对抗样本的新模型。详细步骤包括:
- 使用
synthetic_data_generation.py生成合成数据。 - 使用
adv_training.py在合成数据集上训练模型。 - 使用
cross_attack_evaluation.py评估训练后的模型,确保反例真正隐藏,并生成 ONNX 模型和 VNNLIB 文件。
引用
如果发现 SoundnessBench 对您的工作有帮助,请引用以下论文:
@misc{zhou2024testingneuralnetworkverifiers, title={Testing Neural Network Verifiers: A Soundness Benchmark with Hidden Counterexamples}, author={Xingjian Zhou and Hongji Xu and Andy Xu and Zhouxing Shi and Cho-Jui Hsieh and Huan Zhang}, year={2024}, eprint={2412.03154}, archivePrefix={arXiv}, primaryClass={cs.LG}, url={https://arxiv.org/abs/2412.03154}, }




