这对于 DNN 也是一样:如不雅你忘记在「靠右行驶」、谨慎转弯或巴士上涂鸦的人上练习的驾驶 DNN,那么你可能会在一个马脚很多的体系上实现 100% 的覆盖。
作者答复:
我认为扩大神经元覆盖能或多或少带来一些赞助。假设(这里简化了很多)我们的驾驶 DNN 有一个用于检测「狗在公路上」的神经元和另一个用于检测「猫在公路上」的神经元。那么,除了分别单个覆盖它们,我们还想要覆盖它们的反例(「没有狗」)和组合(「有狗有猫」、「有猫且没狗」)以及序列(「有猫然后有狗」——这就是膳绫擎提到的神经路径覆盖)。
然则,这只是实现覆盖,下面可看到更多评论。
经由过程比较其它实现来检查 DNN
经由过程参考模型检查平日是假设该参考模型是(几乎)完美的,等于可以被信赖的。当然,事实并非如斯,所所以有潜在问题的。
比如说,这能找到漏掉的 bug 吗?只能推敲我们在练习过程中推敲过的一些 DNN 案例,而不克不及推敲其它的。但我很困惑这是否足够。该论文说道:
如不雅所有被测试的 DNN 都邑犯同样的错,那么 DeepXplore 不克不及生查对应的测试案例。然则,我们发明这在实际中并不是一个明显问题,因为大年夜多半 DNN 是自力构建和练习的,它们都邑犯同样缺点的概率比较低。
但这是假设 (a) 你在实际和充斥竞争的市场中可以或许获取很多不合的实现,和 (b) 至少有一位作者(比如 Tsunami)想过这并不必定实际。
这确切是差分测试的一个限制。以一种自力的方法测试一个模型的一种办法是应用对抗 DNN 测试技巧,这种办法今朝仅许可实现人眼弗成见的稍微扰动。你也许可以扩大对抗练习来应用范围广泛的实际袈浼束。比如说,经由过程改变光的效不雅。然则,这种办法的重要问题是缺乏数据标签。我们很难肯定一个 DNN 模型是否做出了精确的分类。理论上,任何扰动都可以随便率性改变图像的┞锋实标签。
实际上,无需一个「自力的」检查事物的方法,这可能是一个相当好的方法。但其 CDV 选项(这确切意味着大年夜量的工作)说须要仁攀类来写出零丁的/人工的检查/断言集。
应用了神经元覆盖(neuron coverage);
比如说,如不雅我们在谈论的是 Udacity 驾驶案例,你可以写一些「不克不及朝其它汽车行驶」之类的检查……这些都是概率检查,所以这是一种眇乎小哉的工作,但做主动驾驶汽车的人可能会做。别的随便一提,安然问题永远不是只靠机械进修就可以的。
这些人也会应用功能覆盖来加强实现覆盖,比如「我们是不是走过了一个左转弯?一次没有保护的左转弯?一次没有汽车和我们同一条门路的左转弯?一次雨天的左转弯?」正如我前面提到的那样。
差分检查还有另一个潜在的问题:假设个中有比较大年夜的重叠,但个中每个都邑推敲一些其它不会推敲的案例。然后运行 DeepXplore 将会将这些案例标记为「不一致(inconsistent)」,然后你必须检查完它们全部,然后找到个中精确的部分(即:这是我的实现中的 bug 吗?照样只是其他人遗忘的一个?)
别的,还经常有「没有一个精确谜底」的情况:汽车可以左转也可以右转,或者决定计划界线可以有所不合(「我可以启动了吗?」)。而当不一致性仅仅意味着「这里可能有一个缺点时」,我们可能会须要一个长的、人工的过程。
推动运行检查缺点,同时最大年夜化覆盖并服大年夜束缚
这可能是最有意思的部分了。正如他们描述的一样:
最后,我们注解尽可能生成测试输入(该输入须要在最大年夜化深度进修体系的神经元覆盖的同时揭示出尽可能多的有区其余行动(即多个类似深度进修体系之间的差别))的问题可以若何被情势化成一个结合优化的问题,并且其可以在大年夜范围真实世界深度进修分类器上获得有效的解决。和传统的法度榜样不合,由深度进修体系所应用的大年夜多半风行的深度神经收集(DNN)所切近亲近的函数是可微分的。是以,在给出了对应模型的白箱权限的情况下,这些输入对应的梯度可以获得精确的计算。
我真的很爱好这一点:这既在同一个对象中包含了我们所说的覆盖最大年夜化(coverage maximization)和马脚寻找(bug-hunting)。他们也测验测验在一些束缚前提下做到这一点:比如说,在视觉义务中,他们仅仅使图像更暗或覆盖图像的小界线,而在检测文件中的恶意软件时,他们保持给文件的构造加一些束缚前提。
潜在问题:
这里有一个大年夜问题,我将其称为「束缚问题(constraint problem)」:因为,可许可的束缚不敷灵活,所以,获得的输入只能成为「用于练习的输入,加上一些小修改」。
这一切可能吗?听起来切实其实很难,然则恶意软件的例子向我们展示了人们可以在必定程度上自定义束缚。
经由过程比较多个类似的 DNN 的输出来检查 DNN 的输出;
在大年夜部分验证中我最爱好的结论是一些 CDV(覆盖驱动验证)的变体。是以,我期望为验证所有体系而创造一种随机验证的、基于模型的输入,这个中包含了基于 DNN 的体系。应用 DeepXplore 的人们只评论辩论获取现存输入与将这些输入进行变异的办法。寻找一些浇忧⒛办法应当是很有趣的。
作者答复:
你是对的,我们在图像设置中提出的束缚仍然不敷灵活。之所以推敲它们是因为它们可以被梯度有效的引导。实际上,还有很多其它的数据加强技巧:对图像而言,我们可以扭转、翻转它们,甚至我们可以做一些语义转换(比如:将 BMW X6 改变成 BMW X1)。然而,我们不克不及应用梯度来对这些转换(transformation)进行有效地计算——我们只能随机用这些束缚来转换这些图像,欲望部分转换可以激发模型间的不合状况。指明这些束缚(它们可被梯度有效引导)的类别、和性质是异常有趣的。
……提出数据(如图像)的实际模型/束缚本身就是一个艰苦的问题。在 DeepXplore 里,我们以实际的输入作为起点,欲望变异的样本是有效的,是以它们可以涌如今实际世界。我们也试着大年夜随机样本开端,后来发明 DeepXplore 可以或许发明不合引诱(difference-inducing)的输入,然则它们看起来不是一个不真实的图像。
在机械进修的世界里,一个履行类似义务的热点办法是应用生查对抗收集(GAN):给定一个随机向量,它可以进修生成真实的输入,这些输入和真正的输入是弗成分辨的(例如,https://github.com/jayleicn/animeGAN)。我们也正在应用这个技巧来研究若何生成输入。
推荐阅读
不合收集的带亢孟耋各不雷同,若何精确地计算带宽,是创建和保护一个稳定快速收集的关键环节。大年夜多半收集>>>详细阅读
本文标题:深度 | 详解首个系统性测试现实深度学习系统的白箱框架DeepXplore
地址:http://www.17bianji.com/lsqh/35834.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示