10月17日-19日,2019年中国计算机大会在苏州举办,本届大会以“智能 引领社会发展”为主题,1000家机构的代表、8000余人参展参会。阿里巴巴自动驾驶实验室主任、首席科学家在会上发表了《自动驾驶没有免费的午餐》的主题演讲。
王刚认为,单用一套通用的自动驾驶算法很难覆盖复杂多样化的交通场景,需要将多场景问题进行分解、细化,有针对性的解决。王刚认为,自动驾驶的研发依赖于三个要素:精细化场景、针对性算法和自动化平台。
自动驾驶是智慧城市里面非常重要的一个部分,也可以说是人工智能里最复杂的一个系统,非常具有挑战性。我今天主要想讲讲,阿里巴巴在自动驾驶系统上的一些思考和观点。
关于自动驾驶,很多公司都在做载人的自动驾驶。阿里跟他们不一样,从一开始关注的就是物流行业的自动驾驶,怎么让物流车变得无人化。
阿里为什么要选择这个行业?大家都听说过,去年的“双11”活动,光“天猫”一个电商平台就产生了1亿个包裹。未来以天猫、淘宝为代表的电商平台,包括饿了么、盒马代表的本地生活平台将会产生越来越多的包裹。有人做了一个预测:五年之后,物流包裹可能会突破5亿个/每天。
与庞大的包裹数量形成反差的是,我们社会的老龄化非常的严重,年轻人在慢慢变少。在可以预见的未来,社会将会缺乏足够的劳动力去运输这些包裹。因此阿里相信,物流车的无人化是整个物流产业发展的必然选择,也是社会发展的必然选择。
阿里目前专注于两个物流场景:第一是末端物流场景,最后1~3公里的问题。这应该是未来几年内最容易实现落地的场景,其在安全、法律上的挑战都相对少一些。除了末端物流之外,阿里也在做公开道路的技术研发,自动驾驶必然会从末端走向开放道路。我们也在杭州街头进行了常态化路测以及相应的研发工作。
阿里的无人车不仅可以应对各种复杂的开放道路路况,包括转弯、与非机动车辆以及行人的交互,还能在复杂的城市道路实现3000公里的自动驾驶,而不需要人工的监管。
以场景精细化应对交通多样化
最近几年,国内外的无人驾驶公司都取得了非常大的技术进步,但从客观来看,自动驾驶还存在非常多的困难和挑战,目前还没有能够完全落地的产品。
自动驾驶为什么这么难?不同的人有不同的看法:硬件还没准备好、基础交通设施不够完善,但是阿里认为智能系统或者软件是最上层的内容。多数情况下,还没落地是因为自动驾驶的算法还不能够处理道路上的复杂交通状况。
在阿里内部,有称之为cut-in的场景,即别的车辆跑在了自动驾驶车的前面。很多人认为这是一个非常简单的场景,但我们发现由于车辆的侧车型不一样,cut-in的原因也不一样,导致的行为方式也是非常不一样的。很多时候,自动驾驶算法不能有效处理这么多复杂、多样化的场景。这对自动驾驶来说是一个非常大的挑战。
交通场景过于复杂、多样化,那要怎么处理这样多样化的场景?我认为,我们非常有必要回想人工智能里的经典理论,比如no free lunch理论。
这个理论是讲,假如用一种通用算法来解决所有问题,是不可能在所有的问题上都取得很大成功的。相反,需要针对每一个问题进行相对应的研发,针对性的优化可以取得更好的结果。
这个理论在自动驾驶领域也是适用的。交通场景众多,很难用一套或者几套通用的自动驾驶算法去解决问题。相应地,阿里希望能够把自动驾驶的多场景问题进行分解、细化,有针对性的解决,这也是阿里称之为的“自动驾驶里的no free lunch”理论。
将交通场景进行分类,听上去很简单,但仔细考虑就会发现这是一个非常复杂的问题。我觉得一个好的分类至少要满足两个标准:
第一,分类必须非常精细化,粗粒度的分类是不能分解问题、降低问题的难度的;第二,分类必须为算法服务,跟算法高度融合,而不是为了测试和管理服务。
我们也审视了业界常用的分类方法,发现离这两个标准还有非常大的距离。有人按照行驶环境来分类,按高速、城市道路、乡村道路来分,这样粗粒度的分类,无法把问题分解为更简单的问题。
也有人按场景要素来分,按照物体类型、天气等情况进行组合。我们也发现,很多组合非常冗余并且和算法是没有关系的。因此从这两个角度来看,现有的场景分类方式都不够理想。
基于此,阿里内部提出了自己的自动驾驶场景库,阿里巴巴中央场景库。我们的场景库有非常典型的分类。我们联合感知和决策,有针对性地对场景类别进行开发。比如感知到场景后,决策环节可以预先做一些判断,把速度降下来,避免事故的发生。我们的分类是针对算法来进行开发的。
这种分类方法的一个特点是,非常精细化。还是以cut-in场景为例,我们的场景库里cut-in分为25个子类。通过精细化分类可以把非常复杂的cut-in问题降解为25个比较容易解决的问题。
这些分类是怎么产生的?过去,分类主要是由专家来设计,根据对场景的理解得出结论。遗憾的是,这些理解是非常粗粒度的,到不了非常精细的程度。而阿里采用的是数据驱动的方法,通过搜集大量的路测数据,从数据里挖掘、发现什么样的场景是算法更应该关注的场景,从而形成精细化的分类。
另外一个特点是,我们的分类包括很多动态化的场景,比如与社会车辆、行人的交互。如果路上没有其它车辆,自动驾驶就不是一个难题了。因此动态场景才是自动驾驶最大的困难,我们也基于数据驱动的方法得到这些动态场景。单纯的人工去设计很难描述动态场景,因此也很容易错失一些重要的场景分类。
基于精细化场景的算法问题
基于这个自动驾驶场景库和no free lunch理论,需要针对每个场景分类做相应的算法开发。可以想象的是,假如有1000个场景分类,我们需要开发1000个不同的算法来解决问题。这是一个非常巨大的灾难。因为现在算法的开发模式称之为“人工 智能”,算法的设计极度依赖自动驾驶工程师的领域知识,包括规则、算法模型、超参数等。所以这也是自动驾驶公司在市场上处于供不应求状态的原因。
这样分类方法必然在研发效率上带来很大的局限性。阿里也在通过计算换智能的方式来研发。这个词并不新鲜,人工智能尤其是深度学习,本质上就是计算换智能。
最开始可能需要依赖计算机视觉和图像处理专家来进行人工设计,但可能会丧失非常重要的信息。深度学习被发明之后,可以通过神经网络、计算去搜索、找到最好的设计,从而提升了研发的效率和质量。
但非常遗憾是,这样的方式在自动驾驶领域应用的并不多,其渗透率还远远不够。有以下几个原因:一个原因是设计理念上的差别;另一个原因是基础设施以及工程平台的缺失。这两个原因导致了我们在自动驾驶上对人工的依赖过于严重。
数据驱动的自动化平台
为解决这个问题,阿里提出了AutoDrive平台。希望通过这个平台的开发,能更多地采取数据驱动、计算驱动的方式,让计算机更聪明地找到适合每个场景的算法、参数、结构等,从而提高系统的智能程度。
目前阿里取得了一些初步结果。
在决策规划上,比如在非常困难的路口碰撞项目上,过去完全依赖人工设计规则和参数,但结果并不令人满意。采用了数据驱动的方式之后,AutoDrive平台可以提高16个百分点。
在研发效率上,基于这个平台,研发效率也能够获得极大提高。
在场景精细化上,我们把场景分成25个子类,再进行针对性的优化能把成功率提高18个百分点。这些初步结果,也表明了我们的方向是非常正确的。
再举一些视觉案例,视觉也是自动驾驶里非常重要的部分,它能捕捉到激光雷达无法得到的语义信息。这些语义信息对于理解场景、预测来说是非常重要的。
对一些典型识别和检测任务,我们也用AutoDrive平台进行了计算化智能,在效率和效果上都有很大的提升。比如用人工来设计一个典型的检测网络,由于不知道哪些部分是最核心的网络部分,就可能带来冗余,但经过AutoDrive平台的优化之后,可以极大地降低网络复杂度。因为自动驾驶对实时性要求非常高,降低网络复杂度可以提高整个效率以及降低对硬件的依赖程度。
最后讲一下,AutoDrive背后其实是有非常坚实的工程支撑的,它需要很多的工程电路以及工程经验的。但AutoDrive平台能够运行起来还有几个要素:
第一、我们将全量的海量数据全部都放在了云上,只有云上才有足够多的内存和计算资源。将海量自动驾驶数据是放在单独的服务器,是不可能跑起来。
第二、我们打通了整个AutoDrive运行起来需要的闭环。用计算换智能必须从input到output都有一个完整的结果。所以我们打通了数据收集,数据标注以及仿真、模型训练、评价等一整套系统,就能知道服务器上的每一个结构能产生什么样的结果,从而达到计算换智能的效果。
总结一下,我认为未来自动驾驶的研发需要依赖三个要素,这三个要素会进行协同,产生更好的化学反应。
1、场景。过去业界的场景分类过于粗犷,支撑不了no free lunch理论。因此需要研发出一个更好的精细化场景分类方式带动整个研发体系。
2、算法。需要对算法进行相应的优化,有的放矢地针对每个场景进行处理。
3、自动化平台、云平台。为了实现高效的研发,需要AutoDrive自动化平台,但AutoDrive平台背后离不开整个云平台的支撑,包括数据的采集、回归、仿真、以及模型训练、测试评价等。
这三个要素结合在一起才能高效地推进自动驾驶技术的研发。
最后再讲一下阿里的芯片,过去在整个AI领域里,讨论的芯片主要是inference芯片,但我认为训练芯片需要引起业界的注意。现在业内认为训练芯片还可以用,那是因为业内还没有广泛地应用计算换智能的方式,芯片的一些方法限制了训练算法的大规模使用,只有解决这个问题,计算换智能才能得到普及。