历史上的今天
返回首页

历史上的今天

今天是:2025年03月26日(星期三)

正在发生

2019年03月26日 | 特斯拉和Waymo,做自动驾驶有什么不同?

2019-03-26 来源:极客网

资讯机构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也迟迟没有发布。尽管在“数据”容量上有先天优势,但率先量产以及频发的几次事故使其屡陷舆论风波。所以,特斯拉在自动驾驶上到底能有怎样的成就,还在还很难说。

不过我个人倒是蛮欣赏之前马斯克说过的一段话。

他说,“我不认为哪家企业能在特斯拉之前打造出一套综合性的自动驾驶解决方案。除非它们保密工作做得太好了,到时候要拿出惊人的成果来。我觉得这种可能性不大,对特斯拉而言,任何车企都不是我们的竞争对手”。

希望这种“目中无人”的狂妄自大,可以给特斯拉带来点好运气。

推荐阅读

史海拾趣

东软载波(EastSoft)公司的发展小趣事

凭借卓越的产品性能和技术实力,东软载波获得了多项荣誉和认证。公司被评为“国家绿色工厂”,多款产品通过国内外权威认证。同时,公司还荣获了多项行业奖项和荣誉称号,如“2022 PLC互联互通·基石奖”、“2022年山东民营企业新一代信息技术行业领军10强”等。这些荣誉的获得充分证明了东软载波在电子行业中的领先地位和实力。

Amprobe公司的发展小趣事

东软载波公司成立于1993年,自成立之初就专注于电力载波通信技术的研发。公司在1996年开始了电力线载波通信技术的深入研究,经过数年的努力,终于在2000年推出了第一代电力线载波通信芯片。这一成果标志着东软载波在电力载波通信领域取得了重要突破,为其后续发展奠定了坚实的基础。

ETC2公司的发展小趣事

为了拓展全球市场,ETC2公司制定了国际化战略。他们积极参加国际展览和交流活动,与国际同行建立了广泛的合作关系。同时,ETC2公司还针对不同国家和地区的市场特点,推出了定制化的ETC产品和服务。这些举措不仅帮助ETC2公司成功打入国际市场,也为其未来的发展奠定了坚实的基础。

EMC Technology RF Labs公司的发展小趣事

RF Labs非常重视产品质量和品质保证。他们建立了完善的质量管理体系,从原材料采购到生产、检测、包装等各个环节都进行严格的质量控制。同时,RF Labs还引进了先进的生产设备和技术,确保产品的质量和性能达到国际先进水平。这些举措使得RF Labs的产品在市场上享有很高的声誉和口碑。

FCI [First Components International]公司的发展小趣事

随着对射频技术的深入研究,RF Labs在多个领域取得了技术突破。他们成功开发了一系列高性能的射频电阻、衰减器、定向耦合器等关键元件,这些产品不仅具有优异的性能,而且能够满足各种复杂的应用场景需求。同时,RF Labs还不断推出创新产品,如智能探测器温度测量端子等,这些产品为客户提供了更加便捷和高效的解决方案。

德崧电子(D-SWITCH)公司的发展小趣事

技术创新是德崧电子持续发展的核心动力。公司不断加大研发投入,引进先进的生产设备和技术人才,致力于开发具有竞争力的新产品。通过不断的技术创新,德崧电子在电子开关行业中取得了多项重要成果。例如,公司成功研发出了具有自动感应功能的智能开关,实现了对灯光、温度等环境因素的自动调节。这一技术的推出不仅提高了产品的智能化水平,也为公司赢得了更多的市场份额。

问答坊 | AI 解惑

150M的虚拟示波器 DSO-2150 USB

DSO-2150 USB 流线型设计,体积小巧, USB2.0接口,免电源,与台式示波器类似界面,易于上手. 更适合于笔记本电脑,生产线维修调整,便于出差使用。 小的尺寸(mm):190(L)x100(W)x35(H) ,便于携带. .高刷新率, 高采样率,150MS/s实时采样. 软 ...…

查看全部问答>

手机电池供电原理

请教下高手~! 最近在研究手机充电原理,有个问题解决不了,为什么用线充可以边充边使用手机,但是把电池取下来后不久手机就关机了,上网查了有的说是电流不稳定,有的说电压不稳定,具体的应该是什么呢?麻烦高手们给点建议! O(∩_∩)O谢谢!~…

查看全部问答>

USB和SD/MMC移植笔记(转)

一、USB移植 在移植好内核和跟文件系统的基础上,进行USB的移植。 S3C2440集成了USB控制器支持USB1.1版本,支持USB主机和USB设备主机符合OHCI1.0版本,Linux2.6.29.1的内核支持USB控制器,只需在内核中配置即可。 在内核目录下,输入make menuco ...…

查看全部问答>

大家帮帮忙 程序查错

在keil编译 错误一大堆烦死了,大家帮帮忙看下 哪出问题了 先谢谢了 #include sbit p3_0=P3^0; sbit p0_0=P0^0; sbit p0_1=P0^1; void delay(unsigned int k); int cheak(unsigned char *jj); void scankey(); int n=0; main() {   ...…

查看全部问答>

内核保护以及数字签名

在WINCE 6.0下,内核下的EXE以及DLL都能正常运行,外部数字签名过的EXE以及DLL也可以在这个内核下运行。任何无数字签名的EXE以及DLL则不能运行。不知该如何做? 我在平台定制时,已经将sysgen_certmod设为1。重新build and sysgen。 …

查看全部问答>

如何编写USB Camera驱动程序

老师要我编写USB Camera驱动程序,不知道从哪里下手,没有头绪,要做什么啊!我用的是VS2005,都不知道建什么项目,驱动程序被编译为动态链接库(。DLL文件),难道是建立。DLL的项目吗?不明白,请大家提点一下啊,我要具体做什么?…

查看全部问答>

request_region()到底如何使用?

谁能举个例子, 比如,我想使用arm芯片的I/O口C,也就是GPGC,用它的若干个口吧,比如8~11 该如何调用这个函数呢?期待答案,谢谢 …

查看全部问答>

msp430f413编译出错

Error[Pe020]: identifier "BCSCTL1" is undefined 头文件:#include<msp430x41x.h> 请帮忙分析下,应该是头文件里没BCSCTL1的定义。如果如此,又应该包含哪个头文件呢。…

查看全部问答>

继续菜鸟IIC总线之编程问题

这几天器件没有回来。没法实践验证。 自己编了IIC通信的写一位数据函数如下(#define uchar unsigned char) void write(uchar cbyte)         //写入一个字节的数据 {     uchar i;     S ...…

查看全部问答>

Launchpad和msp430f149通信

各位大侠,小弟想试着让Launchpad和msp430f149进行双机通信,但Launchpad能接收msp430f149发送的数据,msp430f149却接收不了Launchpad发的数据,纠结了几天,希望各位大侠帮帮小弟。。。…

查看全部问答>