雷锋网按:大多数的软件故障(Software bug)最多会让你电脑死机,但绝对不会杀了你。不过,如果把场景换到自动驾驶汽车上,恐怕一旦出错就是致命的了,毕竟谁也承受不了一辆疾驰的汽车在错误的时间做出错误的决定。
为了消除人们的担心,研究人员专门开发了寻找软件故障的方法,它能系统地揪出在线服务和自动驾驶汽车上深度学习算法的错误决定。
不过,想揪出 AI 的错误,还是得靠 AI。这种名为 DeepXplore 的纠错方法背后至少有三套神经网络(深度学习算法的基础架构)。投入使用时,它们会相互进行对照检查。DeepXplore 由哥伦比亚大学和里海大学共同研发,其主要目标是解决优化问题,即在最大化神经网络中神经元的激活数量和在不同的神经网络中触发尽可能多的冲突决策中找到最佳平衡。
当然,这种方法也有个前提,那就是假设大多数神经网络在通常状态下会做出正确选择。随后,DeepXplore 会自动对那些怀有异见的神经网络进行“再教育”,让它们学会“随大流”。
“这是一个完全不同的测试架构,它能找到自动驾驶系统和类似神经网络系统中出现的数千种错误。”里海大学计算机科学助理教授 Yinzhi Cao 解释道。
据雷锋网了解,上月月底在上海举办的 SOSP 大会上,Cao 和他的同事就凭借一篇论文技惊四座并拿下大奖。该团队的获胜意味着业内对深度学习中潜藏的软件故障越来越关心,像 DeepXplore 这样的除错工具未来将有一番新天地。
一般来说,深度学习算法在做特定任务时是有人帮助的,技术人员会在海量的训练数据中标出正确答案帮 AI 进步。这样的方式让深度学习算法在某些测试数据集上准确率突破了 90%,在执行 Facebook 的人脸识别和谷歌翻译的句型选择时能派上大用场。当然,在这种使用场景下,出点小错根本无伤大雅。
DeepXplore 找出了英伟达 DAVE-2 自动驾驶软件的致命错误(右)
如果说以上的应用场景 AI 准确率已经能让人满意的话,在高速上行驶的大卡车恐怕就达不到要求了,毕竟一个小小的错误可能就会酿成大祸。
想让政府监管者为自动驾驶汽车“放行”,就必须向他们证明自动驾驶汽车能达到非常高的安全水准,或者说用随机测试集考验它时不会轻易被揪出那些会带来灾难的“极端情况”。
“我认为安全和可靠 AI 的理念与可解释 AI 如出一辙。”Suman Jana 说道,他是哥伦比亚大学的计算机科学助理教授。“透明、可解释和稳健这三大特点在机器学习系统与人类携手工作或驱动自动驾驶汽车上路之前,还有许多地方有待提升。”
Jana 和 Cao 所在的团队有许多研发者是软件安全和除错专家,在他们的世界里,即使是那些准确率高达 99% 的软件也不安全,因为黑客会找到系统故障并趁虚而入。
不过,在当下的 AI 行业中,深度学习研究者将错误当成整个训练过程中非常自然的一部分。因此,这个团队非常适合担起大任,成为 AI 世界中的“Bug 猎人”,帮算法找到一个除错的综合方案。
眼下,在为自动驾驶汽车的神经网络除错时,会用到一些相当沉闷且随机的方法。其中就包括研究人员手动创造测试图片并将它们“喂”给神经网络,直到 AI 做出错误的选择。第二种测试方案名为“敌对测试”,AI 会自动生成一系列测试图片,通过调整其中细节起到欺骗神经网络的作用。
DeepXplore 的方法与以上两种有所不同,它自动创造的图片会让三个或更多的神经网络做出相互矛盾的决定。举例来说,DeepXplore 会在一张图片中找到几盏灯光,其中两个神经网络会将它看作汽车,而第三个则会将它看作人脸。
与此同时,在测试中 DeepXplore 还会通过激活神经元和不同的神经网络通路来提高神经元的覆盖率。Cao 表示,这种方法取材于传统的软件测试方法——代码覆盖率。整个过程能让神经网络 100% 的活跃起来,或者说比上面提到的两种测试方法活跃度提高 30%。
据雷锋网(公众号:雷锋网)了解,为了证明 DeepXplore 的实力,它找了 15 个顶级神经网络练手。
果然,DeepXplore 直接揪出了数千个此前从未发现过的错误。测试所用的数据集涵盖了自动驾驶汽车、自动目标识别和恶意软件伪装普通软件等复杂的应用场景。
当然,现在的 DeepXplore 可不敢保证它已经找到了系统中的每一个 Bug,不过在测试大规模神经网络上,它已经比此前的方案先进多了。
斯坦福大学也在专心研究 AI 除错,它的方法和 DeepXplore 完全背道而驰,斯坦福更重视如何让一小簇的神经元不受软件故障的影响。眼下,两种方案都处在未完成状态,但在深度学习算法的除错上,它们都是关键且潜力巨大的一步。
。
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/116177.html