如何向消费者证明自家的汽车很安全,一直是一个困扰自动驾驶厂商的问题。作者认为,由于路况的多变和复杂性,利用机器学习所实现的自动驾驶在面对潜在风险时也会显得力不从心。本文出自 IEEE,作者 Andrew Sliver, 雷锋网(搜索“雷锋网”公众号关注)编译,未经许可不得转载。
要证明自动汽车很安全,怎么就这么难?
去年秋天,媒体正在加州帕洛阿托试驾带有自动驾驶系统的特斯拉 Model S
汽车厂商很难证明自动驾驶汽车究竟有多安全,因为使它们智能化的核心是机器学习。
卡内基梅隆大学的计算机科学家、从事汽车制造业的 Phillip Koopman 说道:“你不能总是觉得自动驾驶这玩意儿一定可靠。”
早在 2014 年,一家市场研究公司称自动驾驶汽车市场将于 2030 年达到 870 亿美元的规模。而包括谷歌、特斯拉和 Uber 在内的许多公司均开展了自家的计算机辅助驾驶或全自动驾驶项目。这些公司或多或少都取得了一些进展,但仍有大量的技术难题等待攻克。
有部分研究人员认为因为机器学习的本质,要证明自动驾驶汽车可以安全上路是一项非常困难的挑战,而Koopman 对此也深信不疑。
一般而言,工程师先按要求编写代码,然后运行测试检查代码是否满足要求。但使用机器学习,要让计算机掌控这一复杂的系统就不是这么简单的事儿了。
比如,处理同一天不同时间拍下的图像或在特定环境下分辨像人行横道、停车标识等重要的标识并不是写个代码就能解决的问题。Koopman 说:“机器学习的难点就在于,你根本无法界定代码要满足的要求是什么。”
多年前,工程师们就意识到传统软件是无法对相机图像进行分析处理的,所以他们转而使用了机器学习算法。算法通过对样本的处理生成一个可以解决特定问题的数学模型。
工程师会提供许多带有注释的样本——告诉计算机什么是停车标识,什么不是。这些算法会把图像分像素块解析,提取当中特征像素块来建立运算模型。当计算机收到新图像时,它会将这些图像在这个模型中运算一遍,以分辨出包含有停车标识的图像。
Koopman 说:“这种归纳式学习有一定的潜在失效风险。如果你想深入看看这些机器到底在干什么的话,你只能看到一些统计数字。它就是个黑匣子,你根本不知道它到底在学些什么。”
更形象一点地说,设想你正在测试一台自动驾驶汽车,想看它会不会躲开行人。而周围有穿着橙色警示服的行人站着,此时你不对车辆采取控制。车辆也许会像程序里训练的那样辨认出行人的手、胳臂、脚甚至是橙色的衬衫,最后停止车辆。
或者再具体一点,假如你在夏天对自动驾驶车辆进行测试学习,而整个夏天都没有人戴过帽子,这时让车辆电脑看见一顶帽子,岂不是会让它惊慌失措?
“我们能用来训练算法的事件是有限的。”Koopman 如是说。
人工神经网络是一种常见的能模仿人类大脑间神经元联系的机器学习模型。而谷歌的研究人员曾尝试使用它来辨别哑铃。如果系统通过一系列图片了解了“哑铃”是什么,但如果接受训练的图片并没有哑铃单独存在的形象(都是健美先生举着它的样子),那么它就无从提取哑铃的基本要素,进而会产生错误的判断。
这里的另一个问题便是安全验证。Koopman 指出,如果使用近似数据对算法训练测试太多的话,它可能会记住某一次特定的测试,并返回那次测试的信息。
Koopman 称,如果Uber任意挑选一个城市投放其自动驾驶汽车,而当地没有详尽的高精度电子地图的话,那么这些自动驾驶汽车也就无法完全发挥功效。虽然有一个简单的解决办法——只在匹兹堡市中心(Uber已绘制过这里的地图)训练并投放自动驾驶汽车。但这样就大大限制了自动驾驶汽车的使用范围。
除此之外的又一大挑战是,当系统遇到诸如雨雾、扬尘等视线不佳天气状况时,算法的辨识能力是否会受到影响。
在 2013 年的一次研究中发现,改变图像中的某一像素块,肉眼是看不出任何变化的,但却能影响算法判断能力,令算法以为面前的校车只是一辆普通车辆。
法国国家科学研究中心的软件可靠性工程师 Matthieu Roy,从事于汽车和航空电子设备行业,告诉我们说:“我们永远也不会把机器学习算法放在飞机上用,因为我们无法判断系统的决策是对还是错。而如果飞机不能通过自身的安全测试,它也不能起飞或降落。”Roy 指出,我们不可能将自动驾驶汽车可能遇到的场景都测试一遍,但是我们要应对这些可能发生的潜在风险。
Alessia Knauss 是瑞典查尔姆斯理工大学的软件工程博士后,她正在研究一个开发自动驾驶汽车的最佳测试模型。她说:“这样做的代价太大了!”
她目前正在约谈一些车企高管,以洞悉他们对这方面的态度。她说,即便是配备了多个传感器(如谷歌的自动驾驶汽车),也只是作为后备应急使用。但每一个部件都要根据实际情况进行测试,这样系统才能更好的利用它们。Knauss 说:“我们将尽力而为,开发出一个最佳的测试模型。”
Koopman 想让汽车厂商在第三方机构那里证明他们的自动驾驶系统到底有多安全。“我并不相信他们所说的话,” Koopman 说。
他还想让厂商们对车辆的算法特点、不同场景测试训练的数据、以及他们在模拟测试中的产物如何现实生活中保证车辆乘客的安全进行专门讲解。如果在工程团队 100 亿英里的模拟测试中都没能发生任何突发事件,车辆也就理所当然地不会有相应的处理方式,而汽车厂商却可以冠冕堂皇的称其他情况不太可能发生。
“每个产业公司在开发关键软件时都会设立一个独立的制衡程序,”Koopman 指出。就在上月,美国国家公路交通安全管理局( NHTAS )颁布了自动驾驶汽车法规,但 NHTAS 并没对独立的安全测试做出硬性规定。
Koopman 认为,某些公司因为研发时限与研发成本的限制,对车辆的安全性指标就会放宽要求。比如1986年 NASA 的挑战者事故,正是因为忽视了一些风险因素才导致了航天飞机在升空 73 秒后发生了爆炸,造成了 7 名宇航员身亡。
我们并不需要告诉公众算法是如何进行安全检查的,航空工业里有在航空公司就职的工程专家,要他们签署保密协定也是行规。“我并不是在教他们该怎么做,我只是在告诉他们,民众有权利知道点什么。”