感觉性周围神经病

首页 » 常识 » 预防 » 深度详解首个系统性测试现实深度学习系统的
TUhjnbcbe - 2022/8/18 19:51:00

作者:YoavHollander机器之心编译参与:吴攀、晏奇

五月份,来自哥伦比亚大学和理海大学的几位研究者的论文《DeepXplore:AutomatedWhiteboxTestingofDeepLearningSystems》提出了一种深度学习系统的自动白箱测试方法DeepXplore,参阅机器之心的报道《学界

新研究提出DeepXplore:首个系统性测试现实深度学习系统的白箱框架》。近日,YoavHollander在一篇博客文章中对这项研究进行了深度解读,同时还对「对基于机器学习的系统进行验证」这一主题进行了更广泛的探讨。机器之心对本文进行了编译介绍。

论文《DeepXplore:AutomatedWhiteboxTestingofDeepLearningSystems》描述了一种新的且(我认为)相当重要的用于验证基于机器学习的系统的方法。而且其或多或少打破了机器学习世界和类似CDV(覆盖驱动验证)的、动态验证的世界之间的界限。

在我阅读这篇论文时,我一直在对自己说:「恩,很不错嘛,不过,他们好像还忽略了什么。」所以我联系了一下作者,事实证明他们很清楚这个「什么」是什么(而且他们也正计划在未来的研究中解决其中的一些问题)。我将在这篇文章中引述他们的一些答案。

关于DeepXplore

这篇论文描述了一种用于验证基于深度神经网络(DNN)的系统的方法,下面部分来自原论文的摘要:

我们提出了DeepXplore:这是首个系统性测试真实深度学习系统的白箱框架(whiteboxframework)。该框架解决两个难题:(1)生成能够激发一个深度学习系统逻辑的不同部分的输入(input);(2)在不涉及手动操作的情况下,识别深度学习系统的不正确行为。首先,我们引入了神经元覆盖(neuroncoverage)来评估深度学习系统的不同部分(这些部分由用于测试的输入训练而成)。然后,利用多个有类似功能的深度学习系统作为交叉引证,因此避免了对错误行为的手动检查。我们表明了可以如何将在实现深度学习算法高神经元覆盖率时找到触发不同行为的输入的过程表示为一个联合优化问题,然后使用基于梯度的优化技术有效地解决。

DeepXplore有效地在当前最先进的深度学习模型上发现了数千个不同的不正确的极端案例行为(corner-casebehaviors,比如自动驾驶汽车撞向护栏、恶意软件伪装成好软件),这些模型是在五个流行的数据集上训练的,其中包括来自Udacity在山景城收集的驾驶数据和ImageNet数据。

其中有4个主要思想我比较喜欢:

使用了神经元覆盖(neuroncoverage);通过比较多个相似的DNN的输出来检查DNN的输出;自动「轻微推动」运行过程向目标移动,即:(2)中定义的检查可以找到不一致的地方,同时(1)中定义的覆盖实现最大化,同时还考虑到了约束条件;使用了有效的基于梯度的联合优化而做到了(3)。

但对于这其中的每一个,我都有问题。这不是坏事:实际上这篇论文带来的很多问题是一个很大的加分——我已经在期待后续的研究了。我的问题主要和DeepXplore的「仅有白箱(whitebox-only)」的本质有关(当然,这也是一个优点)。

让我按顺序逐一阐述一下这四个主要思想,讨论一下我喜欢它们的理由以及相关的问题:

1.使用神经元覆盖

对于一组DNN运行,它们的覆盖指标是「在这些运行过程中有多大比例的神经元(DNN节点)至少激活了一次」。其核心思想是,对于一个给定的DNN输入,每个神经元要么是激活的(即超过了阈值),要么就保持为0。正如原论文说的一样:

最近的研究已经表明DNN中的每个神经元往往需要负责提取其输入的一个特定的特征……这个发现直观地解释了为什么神经元覆盖是一个用于DNN测试全面性(testing

1
查看完整版本: 深度详解首个系统性测试现实深度学习系统的