DeepXplore:深度学习系统的自动化白盒测试
机器学习
2017-09-26 v4 密码学与安全
软件工程
摘要
深度学习(DL)系统日益部署在自动驾驶汽车和恶意软件检测等安全攸关领域,在这些领域中,系统对边界情况输入行为的正确性和可预测性至关重要。现有的 DL 测试严重依赖人工标注数据,因此往往无法暴露罕见输入下的错误行为。我们设计、实现并评估了 DeepXplore,这是首个用于系统性测试真实世界 DL 系统的白盒框架。首先,我们引入了神经元覆盖率,用于系统性衡量测试输入对 DL 系统各部分的覆盖程度。其次,我们利用具有相似功能的多个 DL 系统作为交叉参照预言机,以避免人工检查。最后,我们证明了,为 DL 系统寻找既能触发大量差分行为又能实现高神经元覆盖率的输入,可以表示为一个联合优化问题,并利用基于梯度的搜索技术高效求解。DeepXplore 在包含数千个神经元、基于包括 ImageNet 和 Udacity 自动驾驶挑战赛数据在内的五个流行数据集训练的 SOTA DL 模型中,高效地发现了数千个错误的边界情况行为(例如,自动驾驶汽车撞上护栏以及恶意软件伪装为良性软件)。对于所有受测的 DL 模型,DeepXplore 平均在一秒内即可生成一个展示错误行为的测试输入,且仅需在普通商用笔记本电脑上运行。我们进一步表明,DeepXplore 生成的测试输入也可用于重新训练相应的 DL 模型,使模型准确率最高提升 3%。
引用
@article{arxiv.1705.06640,
title = {DeepXplore: Automated Whitebox Testing of Deep Learning Systems},
author = {Kexin Pei and Yinzhi Cao and Junfeng Yang and Suman Jana},
journal= {arXiv preprint arXiv:1705.06640},
year = {2017}
}
备注
To be published in SOSP'17