您的位置: 首页 >汽车 >

第一个白盒测试模型在自动驾驶汽车中发现了数千个错误

2019-06-24 15:34:13 编辑: 来源:
导读 如何在黑匣子中找到系统中的错误?这是完善深度学习系统(如自动驾驶汽车)背后的挑战之一。深度学习系统基于以人脑为模型的人工神经网络,神

如何在黑匣子中找到系统中的错误?这是完善深度学习系统(如自动驾驶汽车)背后的挑战之一。深度学习系统基于以人脑为模型的人工神经网络,神经元像网状物一样连接在一起。这种类似网络的神经结构使机器能够以非线性方法处理数据 - 基本上是通过所谓的训练数据来教导自己分析信息。

当输入在被“训练”之后呈现给系统时 - 就像呈现给自动驾驶汽车平台的典型双车道公路的图像 - 系统通过其复杂逻辑系统运行分析来识别它。这个过程主要发生在一个黑盒子里,并没有被包括系统创建者在内的任何人完全理解。

任何错误也会出现在黑匣子中,因此难以识别并修复它们。这种不透明性对识别角落案例行为提出了特殊挑战。拐角情况是在正常操作参数之外发生的事件。角落案例:自动驾驶汽车系统可能被编程为在大多数情况下识别双车道高速公路中的曲线。但是,如果照明比正常情况更低或更亮,系统可能无法识别它并且可能发生错误。最近的一个例子是2016年特斯拉坠毁事故的部分原因......

Lehigh大学的Yinzhi Cao和哥伦比亚大学的Junfeng Yang和Suman Jana以及哥伦比亚大学的博士学位将光线投射到深度学习系统的黑匣子中。学生Kexin Pei已经使用DeepXplore实现了这项系统的首次自动化白盒测试。在真实世界的数据集上评估DeepXplore,研究人员能够揭示成千上万个独特的错误角落行为。他们将于10月29日在中国上海举行的2017年两年一次的ACM操作系统原理研讨会(SOSP)会议上发表他们的研究成果:第一场:虫狩猎。

“我们的DeepXplore工作提出了第一个称为'神经元覆盖'的测试覆盖率指标,以经验性地了解测试输入集是否提供了对深度神经网络的决策逻辑和行为的良好覆盖与良好覆盖,”Cao,计算机科学助理教授说。和工程。

除了将神经元覆盖作为指标引入外,研究人员还演示了在更传统的系统中检测逻辑错误的技术 - 称为差分测试 - 如何应用于深度学习系统。

“DeepXplore解决了另一个需要许多手动标记的测试输入的困难挑战。它通过交叉检查多个DNN并巧妙地搜索导致深度神经网络不一致结果的输入来实现,”计算机科学副教授杨说。“例如,考虑到自动驾驶汽车摄像头拍摄的图像,如果两个网络认为汽车应该向左转,第三个认为汽车应该向右转,那么角落情况可能在第三个深度神经网络中。不需要手动标记来检测这种不一致。“

该团队评估了DeepXplore的真实数据集,包括Udacity自驾车挑战数据,ImageNet和MNIST的图像数据,Drebin的Android恶意软件数据,Contagio / VirusTotal的PDF恶意软件数据,以及在这些数据集上培训的生产质量深度神经网络,如这些在Udacity自驾车挑战中名列前茅。

他们的研究结果显示,DeepXplore 在15个最先进的深度学习模型中发现了成千上万个不正确的角落案例行为(例如,自动驾驶汽车撞到护栏),共有132个,057个神经元在五个流行的数据集上训练大约162 GB的数据。

该团队已将其开源软件公开供其他研究人员使用,并推出了一个网站DeepXplore,让人们上传自己的数据,以了解测试过程的工作原理。

更神经元的覆盖范围

根据会议后发表的论文(参见此处的初步版本),DeepXplore旨在生成最大化深度学习(DL)系统神经元覆盖范围的输入。

作者写道:“在高层次上,DL系统的神经元覆盖与传统系统的代码覆盖类似,这是衡量传统软件中输入所执行代码量的标准指标。但是,代码覆盖本身并不是估算DL系统覆盖范围的良好指标,因为与传统软件不同,DL系统中的大多数规则不是由程序员手动编写,而是从训练数据中学习。

“我们发现,对于我们测试的大多数深度学习系统,即使是一个随机选择的测试输入也能够实现100%的代码覆盖率 - 但是,神经元的覆盖率不到10%,”计算机科学助理教授Jana补充说。 。

DeepXplore生成的输入平均比相同数量的随机选择的输入和对抗输入(攻击者有意设计导致模型犯错的机器学习模型的输入)平均高出34.4%和33.2%的神经元覆盖率。

差分测试应用于深度学习

Cao和Yang展示了具有相似功能的多个深度学习系统(例如Google,Tesla和Uber的自动驾驶汽车)如何用作交叉引用的神谕,以识别错误的角落情况而无需人工检查。例如,如果一辆自动驾驶汽车决定向左转,而另一辆则为同一输入向右转,则其中一辆可能不正确。这种差分测试技术过去已成功应用于检测逻辑错误,而无需各种传统软件中的手​​动规范。

在他们的论文中,他们展示了如何将差异测试应用于深度学习系统。

最后,研究人员的新颖测试方法可用于重新训练系统以提高分类准确性。在测试过程中,通过对DeepXplore生成的输入重新训练深度学习模型与在相同数量的随机选择或对抗输入上进行重新训练相比,他们实现了分类准确度提高了3%。

“DeepXplore能够生成大量输入,自动高效地导致深层神经网络错误分类,”Yang补充说。“这些输入可以反馈到培训过程中,以提高准确性。”

Cao补充说:“我们的最终目标是能够测试一个系统,比如自动驾驶汽车,并告诉创作者它是否真正安全,在什么条件下。”


免责声明:本文由用户上传,如有侵权请联系删除!

精彩推荐

图文推荐

点击排行

2016-2022 All Rights Reserved.平安财经网.复制必究 联系QQ280 715 8082   备案号:闽ICP备19027007号-6

本站除标明“本站原创”外所有信息均转载自互联网 版权归原作者所有。