资讯机构Navigant Research最近公布的报告再次将两家公司推向风口浪尖。一个是在排名中垫底的特斯拉,另一个则是拔得头筹的Waymo。至于评判标准,是根据每家公司在“愿景”、“商业化策略”、“合作方”、“量产计划”、“技术”以及“产品持久力”这几个方面的综合表现打分排名。
在去年的报告中,Waymo和特斯拉的排名分别为第七位和第十二位。对Waymo而言,去年开始的大规模商业化试运营应该是其领先的重要原因。但特斯拉垫底就有点说不过去了,排名竟然比苹果都低。在一些业内人士看来,这份报告在成文的视角和方法论上略有偏差,缺失了对“政府关系”和“数据”这两个重要标准的考量。
和政府搞好关系的重要性自不必说。一旦硬件实现商品化,软件就成了关键。实际上不能说是软件,而是“数据”。数据是驱动自动驾驶技术发展的“燃料”,或者如前英特尔首席执行官Brian Krzanich提出的观点,“数据是新的石油资源”。世界上最先进的人工智能也需要数据支持——它依靠浩如烟海的数据将信息传化为下一步的行动。
显然,如果只考虑“科技”和“数据收集”这两个维度,排在榜首的应该是Waymo和特斯拉。至于谁最终会在这场“旷日持久战”中胜出,我们暂且不讨论。今天想和大家聊聊关于特斯拉和Waymo在技术层面的一两点差异性。
“貌合”“神离”的两套方案
二月底,Waymo首席科学家Drago Anguelov在MIT首次开讲,他分享的内容主题为“解决自动驾驶中的长尾问题”(Taming The Long Tail of Autonomous Driving Challenges),这应该是外界对Waymo自动驾驶研发目前能够了解到的最深度、最详细的内容了。
近些年,使用大量标注过的数据对深度学习网络进行监督训练,使得物体感知和行为预测能力有了大幅提升,这些技术在Waymo自动驾驶开发过程中得到了大规模应用。我们也从Drago Anguelov口中第一次知道了Waymo在使用“模仿学习(imitation learning)”,这里先稍微科普一下。
模仿学习属于机器学习的一种,它的神经网络能够通过“观察”人类的行为将某些特定的动作和场景进行匹配。如果使用不同类型的“人类行为”作为数据源来训练,最终神经网络就能够根据感知的结果输出相对应的决策动作。例如,“如果你看到停车标志,马上停车”、“如果前方有辆停着的车挡路了,绕开它”等等。
(“行为克隆”(behaviour cloning)与“模仿学习”(imitation)是一回事)
随着商业化试运营的推进,谷歌能够采集数据的场景更多了,模仿学习算法也就有了更频繁的用处。但Drago Anguelov也指出,人类驾驶行为存在着很多不确定性,一些罕见的场景(所谓的“长尾”问题),Waymo的数据集中并没有足够的案例来训练算法应对。出现这种情况就只能依靠开发人员手动编写算法。Drago认为这种“折中”的做法迟早是会被机器学习代替的。
根据Waymo官方披露的数据,Waymo目前已经累积了约1500万英里的行驶里程。按照平均每3000万英里才会出现一起事故的概率来计算的话,Waymo可能到现在都没有得到一个特定的“长尾”案例。假设行驶每100万英里会发生一起事故,waymo也不过积累了15个数据而已。按照普通机器学习神经网络需要的数据量(每个图像分类需要至少1000个样本)的标准来看,Waymo似乎还差得有些远。
尽管Drago Anguelov表示希望通过采集尽可能多的人类驾驶行为(包括“长尾”案例)来进行模仿学习,但“数据量的缺失”是个很大的问题。
而为了弥补这方面的缺陷,Waymo已经构建出了一套仿真模型,仿真出尽可能多的场景来进行测试。因为有时会得出截然相反的结果,所以要加强系统的鲁棒性,做出足够多的仿真模型,确保系统的准确性。
(仿真测试是自动驾驶研发中的关键一环)
不过仿真模型的建立依然需要真实世界数据的支持,解决“长尾”问题也需要对人类驾驶行为进行大量地模仿学习。所以这就又回到了问题的原点,Waymo还需要更大量级“数据”的支持。
对比之下,似乎“差生”特斯拉在“数据”问题上还真是不发愁。
特斯拉目前预计有超过40万辆搭载了Autopilot系统的车子在道路上行驶,单日行驶里程超过了1300万英里。如果未来这个车队的规模增加至超过100万辆,那么每月产生的有效行驶里程将到达10亿英里的量级。对一家已经有成熟产品落地的车企而言,这种真实世界产生的“数据”根本不是问题。
(特斯拉Model 3)
至于特斯拉在自动驾驶研发上的独特性,根据外媒 The Information 曾经透露的信息,特斯拉同样在利用“里程累积”上的优势进行模仿学习。
原文是这么说的:
据熟悉特斯拉这套系统的线人爆料称,特斯拉的车子在行驶过程中会将摄像头及其他传感器的数据搜集起来,Autopilot是否运行并没有关系。之后工程师可以将这些数据中人类的驾驶行为与不同的场景进行匹配,之后遇到类似的场景机器就可以模仿人类去执行。比如怎样拐弯或躲避障碍物。当然这种被叫做“行为克隆”的方法也有局限性,但特斯拉的工程师认为只要有足够的数据支撑,神经网络就能够给出正确的决策结果,例如在绝大多数场景中如何转向、刹车以及加速。在特斯拉看来,未来不再需要人类手动编程控制无人车应对特定场景。
不过按照个人的理解,特斯拉软件工程师提到的“行为克隆”和Waymo的“模仿学习”是一个意思,等同于大家都在讲的“端到端学习”的方案,即使用一个巨大的神经网络,输入传感器数据后得到关于转向、加速和刹车的整体执行策略。
假设特斯拉采用的是端到端学习方案,那它肯定是不需要对图像进行标记的。唯一需要“标记”的是人类驾驶员的行为,比如转向角是多少、加减速的力度等。将整个传感器数据输入到一个巨大的神经网络后,系统会学习如何将传感器数据与人类驾驶员的行为进行匹配。但我们知道特斯拉是在做图片标记的,所以从这一点出发考虑,它采用的就不大可能是和Waymo一样的“端到端学习”的策略。
(“端到端”与“语义抽象”的差异)
针对自动驾驶感知的算法差异,Mobileye创始人Amnon Shashua曾经对“端到端学习(End-to-End Learning)”和“语义抽象(Semantic Abstraction)”这两个概念做过详细的讲解。
而根据外媒 The Information 报道的内容来推断,特斯拉可能是在开发一套用于路径规划或执行控制的神经网络。而用来训练这套神经网络的数据并非来自传感器,而是由感知神经网络输出的元数据。这样人类驾驶员的直接行为—转向、加速和刹车可以对元数据进行“标记”,类似端到端学习中,驾驶行为与传感器数据的匹配。
这种将感知层和执行层神经网络分开的做法能够规避Shashua教授上面提到的端到端学习可能产生的一系列问题:如“不常见场景”出现的几率会大幅下降;对先备知识(Prior Knowledge)的要求提高,深度神经网络在解决一些简单问题上可能会“惨败”。
(“端到端”机器学习的局限性)
假设特斯拉用于训练的数据来自特斯拉车主,通过人工的方式将一些“坏的”行为去掉,这样可以避开人工编码算法的局限和模拟测试的不真实。当然特斯拉还可以使用强化学习或监督学习来进一步优化。可以把路径规划或执行控制的神经网络放在运行Autopilot或其他驾驶辅助功能的车子上,一旦出现系统脱离、失效、碰撞等情况,工程师就可以通过bug报告来定位原因。这些“错误”之后还可以用来训练新的神经网络。
如果上面猜测正确的话,这种方法可以用相当快的速度来解决路径规划和执行控制方面的问题。考虑到目前搭载硬件2.0版本的特斯拉车型每个月可以获得近10亿英里的行驶里程,获得的数据量之大是Waymo无法企及的。之后硬件3.0版本上线后,搭载了AI芯片的这套系统会更有利于特斯拉算法的迭代。
一场马拉松式的长跑
尽管Waymo深受“数据”的困扰,但光凭对这个维度的考量自然是没办法断言什么的。只不过Waymo要解决自动驾驶中的“长尾”问题,自然需要更多的数据支持。Waymo近日宣布将在亚利桑那州的梅萨市开设新的技术服务中心,进一步扩大无人车出行服务的规模。显然Waymo是奔着搜集更多“数据”的目的来的。
(基于克莱斯勒Pacifica车型打造的Waymo自动驾驶原型车)
也有人认为,Waymo可以效仿特斯拉开发一套类似Autopilot的驾驶辅助系统,仅使用成本低廉可量产的传感器。一旦在市场铺开后,搜集真实场景的驾驶数据也就不是什么难事了。当然,Waymo自己要完成这件事比较困难,肯定需要来自主机厂领域的合作伙伴。
上周有消息称,“Waymo正在寻求外部投资人”。意料之中的计划。如果有车企成为Waymo的股东,要获得海量的驾驶数据自然容易得多。而且Waymo作为自动驾驶解决方案的供应商,始终只有借助OEM的平台才能最终获得商业化成功。不管是手中的全栈自动驾驶技术亦或是正在进行的移动出行业务,Waymo对很多车企而言,都是有十足吸引力的合作伙伴。Cruise和通用、福特与Argo.AI,这些都是比较成功的先例。
对特斯拉而言,之前因为Model 3陷入“量产地狱”,Autopilot的研发进程似乎出现了停滞,硬件3.0也迟迟没有发布。尽管在“数据”容量上有先天优势,但率先量产以及频发的几次事故使其屡陷舆论风波。所以,特斯拉在自动驾驶上到底能有怎样的成就,还在还很难说。
不过我个人倒是蛮欣赏之前马斯克说过的一段话。
他说,“我不认为哪家企业能在特斯拉之前打造出一套综合性的自动驾驶解决方案。除非它们保密工作做得太好了,到时候要拿出惊人的成果来。我觉得这种可能性不大,对特斯拉而言,任何车企都不是我们的竞争对手”。