关键词:
深度神经网络
软件测试
可解释性
缺陷检测
测试数据生成
摘要:
随着深度学习的高速发展,以深度神经网络(Deep Neural Network,DNN)为代表的深度学习模型在某些特定任务上的准确性已可媲美甚至超过人类。然而,基于DNN模型的人工智能软件与传统软件一样不可避免地存在缺陷。深度学习模型缺陷导致的多起致人伤亡的严重事故使人们对人工智能技术的可靠性产生了怀疑。如何有效测试DNN模型,已成为了软件工程和人工智能交叉领域的研究热点。
目前已有研究工作通过覆盖率制导或对抗攻击等方式,针对内部信息透明的白盒DNN模型或内部信息不可知的黑盒DNN模型提出了多种测试方法。但现有DNN模型测试方法所生成的测试数据往往因真实性欠佳而存在测试预言问题,且只能应用于特定DNN模型,难以迁移应用于测试其他DNN模型。为更有效地测试DNN,需要更加深入地分析和理解深度学习模型的行为。解释方法为理解DNN模型的行为提供了技术手段,可在测试过程中提供依据。
针对上述问题,本文使用深度学习模型的解释方法对其预测行为进行解释,并以此为基础研究构建了一套可应用于不同场景的DNN模型测试技术体系。
首先,提出了基于解释分析的自动驾驶软件测试方法IATG,使用DNN的解释方法分析自动驾驶转向角预测模型所做出决策的视觉解释,并选择原始图像中对决策产生重要影响的物体,通过将其替换为语义相同的其他物体来生成测试数据。实验结果表明,相比Deep Test和sem Sens Fuzz,IATG所生成测试数据更加接近真实图像且具有更高的误导能力。
然后,提出了基于解释分析的白盒模型差分测试方法IADT,利用解释方法分析白盒DNN模型对于测试输入的行为解释,并使用统计方法分析模型对测试集行为解释的显著性差异来检测缺陷模型。实验结果表明,解释方法的引入使IADT能有效检测缺陷DNN模型,相比Deep Crime,IADT检测缺陷模型的F1值提高了0.8%~6.4%,而所消耗的时间仅为4.0%~5.4%。
最后,提出了基于解释分析的黑盒模型可迁移测试生成方法IATT,使用解释方法对白盒源模型的预测行为进行解释并分析测试输入中的重要区域,然后使用反向传播优化器和扰动掩膜过程对重要区域添加针对性扰动来生成可迁移测试输入,以用于测试黑盒目标模型。实验结果表明,相比Deep Search和ADAPT,IATT生成的可迁移测试输入在不同测试场景中的致错成功率平均高43.7%,且具有更高的真实性。