演讲嘉宾:地平线机器人 创始人&CEO 余凯
据中国了解,2017中国ADAS与自动驾驶论坛5月25-27日在上海颖奕皇冠假日酒店召开,各位朋友大家早上好,非常感谢佐思组织这样的会议,我也非常的珍惜这个机会,可以和同行交流和学习。我这个报告会离商业稍微远一点,更多的是讲技术的问题,而且会从深度学习角度讲我们对自动驾驶的一些看法。
介绍一下地平线,地平线2015年7月份成立的,总部在北京中关村。我们在南京有一个软件研发中心有50多个人,现在在上海我们刚刚在安亭设立了自动驾驶研发中心。上海安亭在汽车产业里面我觉得有点像硅谷的地位了,我们也非常重视这里的产业链环境和人才优势。现在我们差不多有240多名员工。
我们在做的事情首先在算法,算法是我们看家的本领,很多公司核心成员都有深度学习方面算法的背景。从算法切入到芯片,因为我们在一开始成立的使命是打造人工智能处理器。在两年前还是蛮有远见的事情,今天大家也看到了,在人工智能时代,数据中心、智能车、智能终端上面,大家都看到一个产业级的大趋势就是重构人工智能处理器。
我们知道,未来汽车这样的智能终端是一个大数据牵引的产业,所以在云端不断有数据在聚集,包括模型训练、地图特别是高精度地图的建立,同时不断动态更新的模型跟局部地图。这是一个从端到云,从云到端的整体系统,我们在这方面也非常重视。
首先讲一下深度学习,这是人工智能领域最前沿的话题。过去几年的时间里,我们通常在很多领域都在用深度学习的方法替代传统方法,不管语音、图像、还是下围棋。对汽车我相信也同样是如此。传统的机器学习或人工智能或数据挖掘的方法通常是这样的方法,从数据采集、数据处理到最后的预测。深度学习之前,绝大部分的研究工作,都需要数据的预处理和标记,数据标记的工作量相当之大。
深度学习是一个完美的框架,这个框架不需要人工构建中间很多的步骤,而是让机器自动从数据里面学习,这就是所谓端到端的思想。这个思想在很多领域都获得了成功,在视觉领域,在语音识别,在自动驾驶,在广告搜索等很多领域都应用深度学习的技术,取得了非常多的成果。
因为今天我们讲驾驶,所以我想讲两个例子。第一个,我讲一下自己过去负责的项目。当时我们希望用深度学习来大幅度提升搜索引擎的相关性。这个如果用机器学习的模型来训练我们需要大量的数据样本,可是实际上人工标注数据样本是非常费时费力的事情。我们当时标注了很久才标了30万个数据样本,30万个数据样本在几年前觉得是很大的数据,今天早就是一个小数据了。而这样的数据样本是不够的。我们当时想了一个方法,我们不用人工标注来处理数据,而是从用户反馈来看看能不能找到隐性标注。如果能够这样做,我们可以突破人工标注有限量数据的壁垒。
比如举个例子,如果一个用户搜索时输入一个Query,看到这个用户点了第一篇文章,然而下面的文章没有点。实际上他点这篇文章我们不知道这篇文章是否相关的,但是至少知道点这篇文章比不点文章更加相关。我们把Query和这两篇文章组成一个三元组,这样组合起来可以有无限的数据集。我们后面用了一千亿的数据训练样本,组成一个很大的神经网络,这个神经网络有一亿的参数。这样的方法是搜索引擎过去几年对搜索相关性最大的提升。当时我们做完这个项目后,用更多精力投入神经网络做搜索相关性。大概一两年以后,谷歌也做了一个类似项目,他们的结果也是用神经网络做的,效果比过去十几年做的方法还要好。
另外一个例子是最近几天大家都在关注的柯洁和阿法狗的围棋比赛。Alpha Go2.0这次有很重要的增强,一方面是深度神经网络的处理器TPU,另外一方面是它的算法。过去Alpha Go1.0的算法有相当一部分是向人类过去的历史数据学习的,这一次是完全从0开始,完全靠虚拟的程序左右互博,不断学习提升。
我把这两个例子放在一起,其实想讲我的核心观点。因为自动驾驶未来一定是大数据驱动的,但大数据驱动被人工标注限制住,那这个产业没有办法真正起飞。这两个案例的启发是:第一个是从自然数据里面学习,不需要人工标注,第二个观点是从Monte Carlo Simulations学习。把这两个思想放在一起,会突破我们现在构建人工智能系统做自动驾驶很多问题的核心点。这个壁垒是以前我们都构建被训练的系统,现在我们要构建主动学习的系统。主动学习系统相比人工训练系统,随着在路面跑的时间越长,汇聚在云端的数据使得路上每一辆车会随着时间迁移越来越聪明。
在这样的一个思想上面,我们需要有一个全新思维去构建自动驾驶大脑,从软件到编译器,到硬件设计到整个云端大数据的架构。先讲一下算法,算法软件的设计有几个点我们要关注,第一个点是它的可解释性,因为这个系统关乎人身安全。如果完全是一个黑盒子系统那是不可接受的。我们希望,如果遇到有什么问题,我们找到它可解释的原因,然后用可解释原因找到相应方法控制它。第二个是叫做主动学习,端到端的学习,是我刚才讲的主动学习而不是被训练。第三个是整个软件设计要跟硬件相适应。
神经网络有一个最大的问题,它非常好用但是它是一个黑箱系统。我们看到除了神经网络以外,九十年代人工智能发展中有一个非常热的因果推理的框架,是在逻辑中引入不确定性,能够建立Bayes网络,这个模型是可解释的。通过把神经网络和Bayes网络结合,可以得到一个非常大的Bayes网络,这个网络里面可以分解成很多局部的条件概率。一个子网络可以单独训练,也可以整体在Bayes框架下面去训练。同时因为网络跟网络之间的接口具有语义定义,所以整个网络结构里面可以把先验或者基于规则的系统很自然的嵌入进去。另外还有一个好处是,整个网络结构是可以端到端的学习,所以我们可以构建一个增强学习的系统。
另外一点是怎么样根据硬件去设计软件,包括不同网络规模的稀疏化、结构化、定点化。还有一个很重要的是根据硬件特性,我们希望有一定的灵活度,但是这个灵活度不会损失它的效率。这里很重要的是构建系统软件,使得对于给的硬件总可以保证它的最高效率。
硬件设计在整个从感知到决策的过程中,它的计算模型形态是不一样的,有的计算形态更偏神经网络的计算,有的计算形态更像逻辑判断,所以这里要构建一个异构的计算平台,而不是一个单一化的计算平台来完成整个事情。这样的平台我们要考虑不同的硬件有不同的特性,比如CPU、FPGA、GPU包括现在非常热门的ASIC。比如FPGA的好处是算法可以变,但是像TPU是ASIC,就不能随便变。
对于一个给定的结构,ASIC能效总是最高的。地平线在构建自己的ASIC,今年我们有自己的第一款处理器发布。GPU的计算能力是最高的,但是它的效率是比较低的,TPU一开始是ASIC,我们做的也是ASIC。
今年的1月份CES,我们跟英特尔利用我们的处理器架构,进行了在底特律的一些路测。实际效果表明,我们的处理器架构设计,使得效率高到同行很吃惊的地步。最终我们希望对于复杂的场景,我们能够还原出对自动驾驶有意义的方面,比如说它的相对位置关系。比如对巴士有几个窗户可以不关心,但是它往什么地方走我们很关心,构建一个语义、三维、动态场景的理解对于决策是非常重要的。
在效率方面,低速驾驶不代表可以延迟,延迟太高也不行的,这些是大家要关注的。另外一个是大数据,现在无论手机还是在汽车方面都看到这种趋势,传感器越来越多。数据的产生也是爆炸性的增长。先比较一下,这是一些过去在学术界比较大的标准数据集,比如大家熟悉的ImageNet。如果一千辆这样的车,大概会每天收集60亿张图片。
我几年前曾经负责过百度的图片搜索,图片搜索引擎大概检索了一共70亿张互联网图片,所以一千辆车一天产生的数据(60亿张图片),跟世界上最大规模的搜索引擎所检索的数据量差不多,所以这对计算和存储都是多么大的挑战。我们不大可能把这些数据都传到云上,我们需要在数据中心进行大数据量的仿真模拟计算。
如果只是在本地真实路上跑,一年收集几百万公里或者是千万公里的数据是可能的。但是要达到它的三个数量级,比如上百亿公里几乎是不可能的。这可以通过计算机仿真,充分暴露自动驾驶系统里的各个问题,特别是对边界条件的测试,这个对自动驾驶来讲,尤其对测试控制策略的算法非常有必要的。
最后总结一下,汽车未来一定是算法跟数据持续驱动的。要让我们的技术框架设计适应这样的趋势,就一定要突破现有的数据训练模型和方法,一定要让系统能够自主成长,自主学习。从工程实践来讲,我们需要构建透明可解释可控制的软件系统,使得问题能够清楚。另外它不仅是软件算法的工程,不仅是计算平台的事情,而是需要软件跟硬件的联合优化才能达到最高的效率。