Python社区  »  机器学习算法

万字长文解读深度学习算法在自动驾驶规控中的应用

焉知智能汽车 • 3 月前 • 60 次点击  

来源 | 九章智驾

知圈 | 进“底盘社群”请加微yanzhi-6,备注底盘


引言
作者注:在本文的语境中,数据驱动的算法、深度学习算法、AI模型三个词表达的是同一个概念。
进入文章正题之前,我们需要先简单讲清楚本文中所提到的“规控”究竟是什么。

相信凡是自动驾驶行业的人,一定都知道感知、定位、决策、规划、控制这几大模块——尽管大家日常沟通时如此区分,但具体工作中如果还这么分类就有点问题了。

这里的问题出在决策上,广义地说,决策包含预测,而预测的划分非常尴——预测本身与感知高度相关,但预测又是决策的前置阶段,只有先预测之后才能进行决策。

所有已经发生的既定事实我们可以称之为T0+,感知就是已经发生过的既定事实。例如车辆未来应该怎么走、别人可能会怎么等都属于未来将要发生的事情,我们可以称之为T0-。

以T0为分水岭划分会有一个好处:感知环节只需关心路面上已经发生的既定事实即可,此后基于这个既定事实的任何推断都可以直接放到决策部分。

如此分类可以将预测的结果与决策部分更加紧密地结合,从而人为“弱化”预测与感知的关系,“增强”预测与决策的关系。反映到实际工作中,这么划分就可以更好地确定到底该预测哪些内容、如何更好地用预测的结果服务于决策。(以上内容是笔者在跟领骏科技CEO杨文利博士交流后总结的)

基于以上逻辑,自动驾驶公司内部通常都会有一个PNC组,PNC组的主要任务就是负责规控方面的工作。大家在PNC组干时间长了就会把预测、决策、规划、控制统一称呼为“规控”。

那么此“规控”,即为本文中所称的“规控”。

接下来,我们再将“数据驱动”与“规控”结合起来讲。

尽管“数据驱动”早成为自动驾驶产业的基本共识,但事实上,直到现在,数据驱动的深度学习算法仍主要应用在感知模块,而在规控中应用的却很少——目前,行业内的规控相关算法主要还是基于规则驱动。

虽然目前公开的自动驾驶规控算法相关资料大都是针对基于规则的算法的,但笔者打开招聘软件却经常能看到自动驾驶企业招聘规控算法工程师时会要求候选人懂深度学习算法,这在某种程度上也说明了目前很多企业也正在向混合决策算法“进军”。

图片来源于某自动驾驶公司的招聘要求
目前还鲜有文章完整细致地阐述过深度学习算法在自动驾驶规控中的应用情况。因此,本文将从规则的局限性与深度学习算法的潜在优势、为什么现阶段深度学习算法尚不能被大规模应用于规控算法、未来的规控算法以规则为主还是以深度学习为主这三个方面来详述。

一.规则的局限性与深度学习算法的潜在优势
1.基于规则的算法有局限性
目前,规控相关算法主要还是基于规则,但随着自动驾驶等级的提升及应用场景的不断拓展,基于规则的规控算法在实际测试中就会暴露出它的局限性。

使基于规则的规控算法暴露出短板的,主要是非确定性场景、强交互场景、强主观场景这三个大类的corner case:

(1)非确定性场景

非确定性场景是相对于确定性场景而言的,最简单的确定性场景就是红灯停绿灯行、可以在白色虚线变道、不能在白色实线变道,除此类的场景则都可视为“非确定性场景”。

例如,大部分情况下车都在有车道线的道路开,但有一种情况是当前的道路是三条干道加一条辅路,而辅路与干道间只有车道线没有绿化带,这也就意味着辅路的车辆在任何情况下都有可能并线进入主路,这就是一个典型的非确定性场景。因为大多数司机根本不会管实线虚线,你根本不知道周边什么时候会突然出现一辆车,它有多大的概率会直接变道。

因为道路中其他车辆的轨迹带有概率,基于规则的算法很难处理。

(2)强交互场景

最典型的场景就是十字路口,多个物体在一个场景下的路线会发生交互而互相影响,所以交互的时候是有一定博弈在里面。

在非常复杂的一个道路场景里,不断地对周围车做预测,然后基于交互的结果去调规划,这不是能够用人的规则描述清楚的。

(3)强主观场景

简单说就是在不同路况下,人会无意识地根据环境去调节自车跟前车的距离。因为人脑中可能有一套规则在驱动,但这些规则又很抽象、不能明确,只可意会不可言传的,例如变道的时机、在路口对其他车辆的反应等等。

有的场景下,虽然可以用规则算法来模仿车主的一些行为和驾驶风格,但人的主观习惯很难用规则解决,即使能解决也需要大量的人力。

用基于规则的算法应对corner case,最难的是预测环节。因为,除了要预测自车轨迹外,自动驾驶车辆还需要预测“其他道路使用者”的轨迹,而道路中往往不只有一个“其他道路使用者”,他们彼此间会产生交互,所以预测他们的轨迹很难。

人类驾驶员在做预测时会通过观察车的历史轨迹、驾驶员的驾驶风格,根据“经验”和“直觉”来做决策,即可以根据其他车辆是否保守来选择自车的策略,然而,基于规则的算法很难达到和人类类似的预测效果。

此外,当车辆遇到一些corner case需要制动时,基于规则的规控系统很难保证曲线时刻平滑。

举个例子,如果前方有辆车正以很低的速度行驶,此时自动驾驶系统下达“向右变道超车”的指令,但刚变道至一半时突然旁边有一辆车正在向右侧车道飞速超车,决策系统随即取消变道决策,并重新生成一条平滑曲线让车辆返回原来的车道中。

这里的难点在于,如何平衡好舒适性、安全、效率、动力模型的可实现性等元素,并保证此时生成的轨迹规划路径是光滑的?

依旧以上文为例,如果无法保证此时生成的路径是平滑的,那么车辆开起来会很“硬”,行驶途中会变得很不舒适。如果驾驶员/乘客此时能看到周围出现紧急情况,而系统及时帮他避免了事故,他就会认为系统很靠谱,哪怕是急刹车乘客也会认为自动驾驶系统“帮我避免了一次事故”。

但现实情况却是,多数情况下,系统早就发现了问题并做出了决策,直接“防患于未然”。可问题在于,大多数驾驶员/乘客不会知道一次“看起来很普通”的变道在刚刚“差点酿成事故”,甚至可能都没发现后方有来车。所以,如果此时规控系统无法生成一条光滑的曲线,驾驶员/乘客不会非但不会认为系统“帮我避免了一次事故”,反而会怪系统“太生硬”,变道“甩来甩去”的。

这类问题虽然也可以用基于规则的算法解决,但解决的过程却非常麻烦。

除此之外,尽管从理论上讲,有一些长尾场景也可以用基于规则的算法来解决,但在实际工作中,工程师很难保证这些复杂的代码在解决问题的同时还能不占用太多计算资源。这些代码放在离线系统上可以很轻松地跑起来,但上车后,车载芯片是否能支撑起这么庞大的算力消耗?解决这些问题非常考验工程师的代码水平和工程能力。

而且,可能有的工程师写了几千行代码,他自己都忘记自己写过什么了。规则越来越多、逻辑越来越乱,当“未来”某个时刻又新加了一个需求的时候,系统也将会变得难以维护。

2.深度学习算法可以在合适的场景提升系统的拟人性
上文说了很多规则算法的局限性,但实际上规则算法的局限性不止于此。如果把所有问题综合来看,我们可以统称为规则算法的“拟人性低”。

所谓拟人性,就是系统在行驶过程中像不像一个“老司机”。毫末智行的一位规控算法专家说:“拟人化老司机的核心能力是随机应变,而用基于规则的系统就得设定一大堆规则来区分场景,设定大量的环境参数和代价函数,不停地寻找最优解,从数学上很难做到实时。”
目前,能够上路测试的自动驾驶车辆在多数情况下更像一个“新手司机”,而“老司机”与“新手司机”最大的差别是:“老司机”的预测能力更强,并且对长尾场景随机应变的能力更强。

两相比较,多数“新手司机”虽然也很安全,但“新手司机”在路上开车会很“傻”,而“老司机”则可以在保证安全的前提下各种操作都会更加顺滑、效率更高。这个差别叫做“假释经验”。

本质上,“新手司机”在路上更多依靠的是“基于驾校的教材”,决策规划方式更像if else(规则算法),而“老司机”决策时依靠的是经验和主观判断,决策规划的方式相对抽象,更像是“深度学习算法”。

综上,在规控环节引入深度学习算法,尽可能多地学习人类司机的经验,自动提炼特征找规律,就可以提升规控算法的“拟人性”。

特斯拉在本届 AI Day 上提到的数据引擎,就是将通过将数据输入到神经网络,提高确定性,以更好地去解决现实世界的预测问题。

轻舟智航规控算法负责人认为,预测(判断其他车辆的未来轨迹)是最适合也是率先大规模应用深度学习算法的环节。他说:“轻舟智航的预测算法就使用了深度学习。”

具体到场景方面,他认为,那些高度依赖人的主观判断的场景,更需要用深度学习算法做指导。

小马智行的规控算法专家称,小马已将AI模型可以应用在多个层次。

“比如可以用传统分类AI模型(可以是深度学习,也可以是传统的机器学习分类模型)来做decision making,用深度学习做轨迹生成来指导path planning,用端到端强化学习给出当前应该执行的action来指导motion planning(最终轨迹的规划)。” 
这位专家还认为,结构化的高速场景可能更容易由传统算法解决,而非结构化的城区场景则可能有更大空间发挥AI模型的优势。

而挚途则是高速匝道口场景的决策环节用到了强化学习算法。

领骏科技CEO杨文利博士认为,在自动驾驶的不同模块上,深度学习算法的重要性及适用性不完全相同。

“从感知-融合-预测-决策-规划-控制,这个流程来看,越靠前的部分,深度学习算法的效果越好。”
杨文利博士说:“感知系统数据处理量大,但允许出错,对准确率和召回率有一定容忍度(因为后续的融合和决策可以对感知纠错),所以,深度学习方法比较合适。

“决策这部分,规则和学习各有所长,所以我们用的混合架构,用深度学习方法提升性能,用规则方法保证安全。

“控制系统数据量小,对可靠性要求强,绝对不允许出错,而使用深度学习算法非但不能提升性能,还有可能引入不确定性和不可靠因素,因此不适合采用深度学习算法。并且,控制这种底层技术,已经有200年历史了,数学证明上很完美了,也没必要再用深度学习。”
况且,在规划算法出错的情况下,控制算法还需要为安全兜底。在经典控制算法的PID中,控制层为了保证安全,就可以拒绝执行规划层发出的“错误指令”。例如,规划下达指令让车辆开到120公里/小时,但车辆本身的硬件并不能支持120公里/小时的车速,这个时候,控制算法就可以做一个校验,直接拒绝执行指令,保证车辆能正常行驶,不会开翻。

而控制算法要想为一切失误兜底,就必须要用基于规则的算法来保证可靠性。

据此看,通常在提到“深度学习算法应用于规控”时,大家所说的“规控”,其实主要指预测、决策和规划,而不包括控制。

除去解决实际技术难题外,深度学习算法还有一个不可忽视的巨大优势,即充分利用GPU或神经网络专用处理器,降低CPU算力消耗。

为了实现某些功能,自动驾驶发展初期使用的复杂规则代码会消耗大量CPU算力,但车载芯片的设计一般倾向于提高深度学习算力,而CPU部分的算力有限,工程师必须想方设法节省。而通过深度学习算法替换大量复杂的基于规则的算法,便可以节省不少CPU算力。

轻舟智航规控算法专家认为,城区NOA量产车上一般使用嵌入式芯片,CPU都是基于ARM架构,CPU算力资源没法跟基于X86架构的L4 Demo车比,因此,如果要实现接近于L4的驾乘体验,供应商们有必要尝试在规控环节引入深度学习算法,把计算负载放到深度学习专用处理器上去。

二.现阶段,深度学习算法还不能大规模应用于规控算法
既然深度学习算法听上去这么“牛”,那为什么实践中的规控算法仍以规则为主,而不是深度学习算法呢?

这是因为,深度学习算法同样有不少短板,正是这些短板导致,在短期内,深度学习算法的效果还不如规则。

1.很难断定人类司机的驾驶行为是否“值得学习”
在理想的情况下,用于训练的数据越多,深度学习算法的效果就越好,但在某些情况下,随着数据量的增加,算法的效果却可能下降。这是为何?

深度学习算法首先要学习大量人类司机的驾驶行为,然后才有可能被应用于规控算法,但问题在于,不同司机的驾驶风格不一样,同一个司机在不同情况下的驾驶风格也不完全一致,那如何确保人类司机的驾驶行为就是值得学习的良好数据?

比如说在路口里面的一些变道行为,我们在正常行驶的时候不能压实线变道,但经常很多司机特别喜欢压实线去变。 

小马智行的规控算法专家说:“人类司机驾驶也有很多坏习惯,如果只是盲目追求拟人性而忽视了安全、舒适和高效这三个自动驾驶系统的主要优化目标,那就本末倒置了。实际上,即便用AI模型来弥补传统算法方面的不足,也应该是围绕着这3个维度来改进的。”

因此,在许多情况下,只有预先对数据做个“清洗”,深度学习算法的效果才会好。然而,大规模的即时数据清洗,效率和质量如何保证?这是个问题。

针对这一问题,有一些公司的做法是,人为地去设定一些规则,评价司机开得好还是不好,然后把看起来不好都得过滤掉,但这便是用规则来“约束”深度学习了;并且,这种做法过于简单粗暴,有可能是“倒洗澡水的时候连孩子一起倒掉”,把一些有用的驾驶行为数据给误删。

2.深度学习算法比规则更难应对需求变更
某家自动驾驶企业的算法规定,在路上行驶时与前车的安全距离应不小于五米。某一天,产品经理提出了一个新需求:在路上正常行驶时与前车的安全距离从不小于五米更改到不小于十米。

这种情况就会暴露深度学习算法的一个问题:工程师如果想根据需求更改模型,则需要对模型重新训练,成本很高。但如果用的是基于规则的算法,此时就非常简单,几行代码即可解决问题。

并且,如果出现事故,深度学习算法很难像规则算法那样在最短的时间里快速排查出问题究竟出在哪儿。

3.深度学习算法的效果可能不如规则
轻舟智航规控算法专家说:如果在各项数据基础设施不完善的情况下就引入AI模型,AI模型的表现很难达到预期。

比如,通过简单的测试标定就可以确定的ACC跟车距离,通过AI模型却可能很难达到相同效果。其主要原因是,许多公司的数据基础设施不完善,没有办法找到不同跟车场景下的多样的数据,导致很难训练出一个达到或者超过规则表现的模型。

毫末智行的规控算法专家也说:“现在AI模型效果还没有完全打败规则,试图拟人但效果还不够好,因为这类认知网络的模型架构、输入输出定义、,数据准备都还没有完全做好,并没有达到感知模型的程度,大家还在探索(但我觉得一年之内就会有重大突破)。”

4.深度学习算法仍需要规则来兜底
在车辆上路行驶的过程中,决策算法出错其实是无法彻底避免的。因为哪怕是人在开车,再厉害的老司机也不可能保证自己的决策永远完全正确,基于深度学习模型的决策算法也一样。

因此,在系统设计时,开发者们应当考虑到“决策算法会出错”这一可能性,并做好“接受”决策出错这一潜在事实的“心理准备”。

对此,领骏科技采用了混合决策架构,该公司CEO杨文利博士的说法是“深度学习算法由于善于学习人类的驾驶经验,因此主要用于提升性能,而由程序员设计的规则已进行过充分测试论证的,用来保证安全,拥有更高的优先级。”

再往下层看,规划层也能拒绝来自决策的“错误指令”。例如,输入的障碍物速度及尺寸应该在某一个范围之内(比如不能出现时速100m/s如同“起飞”的小轿车);再比如,决策层给出指令“向左换道”,但此时左边都是车,因为此时变道则空间规划无完全解,此时,规划就可以直接“拒绝执行指令”。

这里提到的拒绝来自上一环的“错误指令”的规划算法,只能是基于规则的。

根据以上,我们可以看到,在那些可以使用深度学习算法的场景中,扮演“兜底”角色的规则依旧是必不可少的。

5.引入深度学习算法,意味着大量代码需要被替换
还有一个非常考验自动驾驶公司的问题:如果要用混合式规控算法,就必然面临大量代码需要被替换的问题,而这么做又必然需要“堆人”。

轻舟规控算法专家说,传统基于规则的系统在设计的时候没有考虑加入与深度学习相关接口,而且代码库经过多年发展已经相对固化,为引入深度学习而对代码进行重构成本很高,

“但轻舟智航在2019年开始构建决策规划算法栈时就考虑到了AI的广泛使用,并在各个接口层面都事先考虑到了模型引入后的情况,针对性地做了架构调整”。
据一位曾在某头部Robotaxi公司担任规控算法负责人的资深专家说,在规控中引入深度学习后,代码重写的工作量非常大,因为涉及在线、离线、仿真等多个系统的改造。

笔者曾经在互联网行业多次听过用户抱怨,为什么某某软件的程序员面对臃肿的系统一直选择打补丁而不是重构。这个例子在某种程度上与用混合式规控算法替代基于规则的规控算法时所面临的问题相同——重构的效益很低。

你重写了,系统运行水平的改进是有限的,但你却要为此付出巨大的成本,这种“吃力不一定讨好”的事情对任何一家企业都是“无法承受之重”。这一顾虑也让自动驾驶公司对混合式规控算法内心产生“只想远观,不愿亵玩”的心理。

事实上,笔者在跟多家自动驾驶公司的规控算法负责人/工程师交流后发现,不同于2014—2015年深度学习神经网络被应用于感知时的“场面”,目前,大家普遍对深度学习算法在规控环节的应用“不着急”。

可以说,大家更多地还是以一种“可有可无”的心态来开展预研和实际应用。

更具体一点说,自动驾驶公司知道在采用规则+深度学习算法的“混合式规控算法”是未来,但目前能用到混合式规控算法的场景也不多,那干脆招几个人“让他们自己慢慢预研去”。

所以,现阶段,多数自动驾驶公司对混合式规控算法的态度是:只在应对匝道、十字路口等极少数场景时采用混合式规控算法;而过去用基于规则的算法已经解决的corner case,只要没发现“令人无法容忍”的问题就“不动”。

还有规控算法专家很直白地说,具体用不用混合式规控算法还得看需求,这是个工程性的问题。

根据以上逻辑,目前自动驾驶公司对混合式规控算法的态度是“可有可无”,而未来混合式规控算法的应用范围也需要“打一个问号”。

三、规则为主or 深度学习算法为主?
我们接着上一节的逻辑继续探讨。

有不少专家都认为,无论深度学习算法、混合框架发展的多么成熟,规控算法永远是规则代码占多数,深度学习算法仅扮演辅助角色。

他们给出的关键理由是:深度学习算法具有“不可解释性”的特点,用深度学习算法去做预测和决策,遵循的是概率,而不是严格意义上的因果关系,因此,让它去承担规控的“第一责任人”,难免让人“不放心”。

如领骏科技CEO杨文利博士说:“深度学习是黑箱,人理解的‘场景’和深度学习理解的‘场景’可能不一样。之前有个diss人工智能的例子,在图像上改几个像素,人工智能就认错了;在交通标记上贴几个黑胶布,特斯拉就认不出来了。除非是像素级的‘一致’,否则人们认为的‘同一场景’,在深度学习看来,极有可能是‘不同场景’。

“深度学习算法是基于输入输出的拟合,从输入输出特性上可以获得更好的拟人性,但其实它很难理解驾驶的内部逻辑关系。“针对用深度学习算法做决策出错的可能性,我们采用了混合决策架构。”

某商用车无人驾驶公司CTO和某造车新势力规控算法专家也持类似观点。


在9月底的一场技术交流活动上,地平线CTO黄畅博士也谈到了这个问题,但黄畅认为,在混合式规控算法中,深度学习将是主流,而规则仅作为“必要的辅助”——以免出现明显的、在语义上都可以解释的错误。”  

黄畅解释说,根据他的经验,对于一个已经雕琢了很多年、调得很好的一套基于规则的系统,仅在某一个局部模块引入深度学习,改善是非常有限的,甚至没有改善。“因为其他的模块还是基于规则去设计,在这种大框架下,你用深度学习算法替换一个模块,那其他模块跟这边个新模块适配的成本很高。整个验证的周期很长,长到你没有耐心去完成。”

某Robotaxi公司规控算法负责人和轻舟规控算法专家同样认为,未来的规控算法是以深度学习为主,规则为辅。

轻舟规控算法专家说,在轻舟智航,目前在预测环节,深度学习算法相关运算(包括前处理,模型推理和后处理)占整体模块运行时间的比例已接近95%,在决策和规划环节,深度学习算法运算占比也已达到了30%左右。

“不太容易量化,但总的算下来,在规控算法中,深度学习算法占比应该有50%-60%。”
他认为,最终,规控算法80%-90%的运算时间会花在深度学习算法上。并且,不同于杨文利博士在前面提到的“底层控制算法中没必要用到AI”,他认为,控制算法是以规则为主,但也可以使用深度学习模型优化控制的参数,增加算法的适应性。
他指出:“如果说之前产业里对‘AI为主’还是‘规则为主’存在争议,是可以理解的,但特斯拉最近一次AI DAY上公布出的信息已经显示,特斯拉大量使用深度学习的规控算法表现非常亮眼,这从侧面反映了马斯克的‘第一性原理’在某种意义上也可以适用于基于深度学习的规控算法:如果人类的大脑作为一个复杂的神经网络,能够通过大量的经验学会驾驶,那规控算法也可以利用深度学习去获得更好的性能和表现。”

深度学习算法存在一个很大的争议即它的“不可解释性”,那么,如果某个场景从“未知”变成“已知”了,我们是否需要再在算法里面加一个规则把它“确定下来”?

对笔者的这一问题,某Robotaxi公司规控算法专家认为,通过规则将AI对场景辩识的不确定性确定化,“具有可行性”;但黄畅和轻舟规控算法专家则认为“不可行”“也没必要”。

黄畅说:“我们不能强求这个系统一定要‘可解释’——因为,所谓‘可解释’就是拿规则去约束它,甚至完全依赖规则,像专家系统一样,结果就是,在A城市跑得很溜的系统,到B城市去跑时还需要大量的工程师做调试才行;并且,它会让那些复杂的、无法用人为规则描述的corner case‘无解’了。”

可见,强求系统一定要“可解释”,这就又回到了本文第一节所提到的“规则的局限性”上了。

黄畅认为,在将深度学习算法引入规控时,我们不必过分纠结于系统是否“可解释”。

“我跟你交流,我们之间,我能够充分理解你,并能推理你的整套逻辑,但对你底层的一些直觉、一些隐藏的特质,我却是不知道的(甚至你自己也未必知道),但这并不影响我们能建立起信任感、能顺畅地交流。同理,我们也不必用是否‘可解释’去限制去探索深度学习算法的应用边界。

“我前段时间看了一篇帖子,说深度学习和经典的统计学之间的区别在于经典统计学依然尝试用规则模型的方式让整个系统变得‘可解释’,但深度学习突破了这一点,它甚至非常极端去优化最终的目标。

“人会犯错,规则系统会犯错,数据系统也会犯错,但是如果在广泛统计学意义上,当数据规模足够大的时候,深度学习算法会比规则系统强一个数量级,因此,我们可以放心地使用它。

“在这个基础上,把环境模型这样的东西可视化,让人可以理解,再在规划的最后一个阶段引入少量的必要的规则去约束深度学习算法,这样就足够了。”
黄畅认为,在算法2.0时代,AI有能力去完成自适应,因此,自动驾驶公司可能要设计一些“在算法之上的算法”,使得它能够帮助基础的算法更好地在应用场景中去迭代、去适应。

轻舟规控算法专家认为,笔者提到的“当一个场景从未知变成已知的时候,就用规则把应对方案给‘确定’下来”的设想在实践中很难行得通,因为,现实中的场景往往是动态调整的——起初可能是清晰的,但变着变着,就“模糊不清”了,因而很难用规则将其描述清楚。

关于深度学习算法的“不可解释性”,他的回应是:“有好多人会说深度学习‘不可解释’,但其实如果你仔细地去设计你的深度学习算法,它可也以实现‘可解释性’的效果,甚至,这种可解释性可能会比规则还强。”

他举了这样一个例子:自动驾驶车辆在十字路口右转弯,需要避让直行而来的车,这个时候,很难用规则穷举在直行车辆的车速是多少、两车之间的距离是多少时自动驾驶系统应该采取什么措施,但如果是用深度学习算法,只要给出自车和潜在障碍物(直行车辆)的位置和状态,以及一些相关的环境和历史信息,经过训练的神经网络能够就能够算出“你让我”或“我让你”的概率分别是多少,这跟人开车做决策的思路是一样的。“概率,比规则更容易解释。”

说到这里,笔者想到一个看似跟本文主题不直接相关、但又有很深的关联的话题——什么是人的“直觉”?

之前经常看到一些做企业管理研究的人说,企业家们在重大事项决策的关键时刻,依赖的往往不是调研,而是直觉。很少有人能解释清楚这个直觉究竟是什么,但笔者觉得,这个“直觉”,其实就是数据驱动的“深度学习算法”。

所谓的“直觉准”,并不是什么天分,其背后都是日积月累的信息及在此基础上形成的认知。类似于大数据分析,结论和信息之间有相关性,但没有因果关系,或者是因果关系不够直接、不够明显,人很难用逻辑解释清楚,便说这是“直觉”。

从这个意义上说,我们确实不必强求深度学习算法一定要“可解释”。

不过,毫末智行的规控算法专家认为,即使上了大量AI模型做认知,那也一定是场景化的,必须有显式的、可解释的“意图和意义”,“这是我们的原则”。

这位专家说:“深度学习的强项在于可以随机应变,各种复杂环境都能快速给出一个解,但它的黑盒特质导致有时候给的解会出错,而基于规则的算法其实都是‘我知道我知道’以及‘我知道我不知道’,它对‘未知’的复杂场景给出一个正确解的可能性比深度学习方法要低,但‘我做不出正确答案并不影响我在看到答案之后评判它是对是错啊’。因此,AI为做题主力,规则负责校验是我们使用的方式。”

小马智行的规控算法专家认为,现阶段,深度学习算法很难保证安全,所以在,未来很长时间内都一定是传统算法和深度学习相结合。

这位规控算法专家说:“我们认为,L2很可能可以达到AI为主的状态,因为AI无需应对好所有的corner case——毕竟还有司机可以做最后的安全保证,特斯拉在AI Day上的分享也说明了这一点。

“但L4的算法在未来很长一段时间内都不太可能做到以AI为主,主要原因还是它的可解释性和对有安全风险的corner case处理能力的问题;不过,随着技术的进步,我们相信算法中AI的部分会越来越多。

“事实上,传统规控算法绝不是规则的堆砌,好的传统规控算法更多是对场景归纳总结后抽象出来的数学模型——借助不同的数学工具对规划问题建模并通过优化方式求解,它有能力刻画问题的本质,从根本上保证理论范围内的安全性。

“因此,所以引入深度学习,并不会涉及到大量的代码重写,更多应该是如何结合好传统算法和深度学习,用传统算法保证行车的安全性。可以说,传统规控算法和AI模型并不是一个简单的替代关系,算法研发也是逐步迭代的,不存在要花很大成本一下子把规则代码替换成AI模型的需求,而是循序渐进的。”
而一位主机厂的架构师则提出这样一个建议:在主系统里跑基于规则的算法,在影子模式里跑深度学习算法,等深度学习算法的训练效果超过规则的时候,再将深度学习算法部署到主系统中去。

附. 两个关于深度学习算法应用于自动驾驶规控中的案例
7月底,九章智驾在苏州高铁新城举办过一场主题为“数据驱动的规控算法”的技术沙龙,在这次沙龙上,轻舟智航和智加的专家通过简单的例子给与会者们分享了一下深度学习算法如何应用于自动驾驶规控。我们在经过专家当事人同意后将这两个案例分享如下——

1.智加:通过深度学习算法降低油耗
智加对数据驱动的决策的应用,也经历了以规则为主过度到规则+数据混合决策的过程。智加科技首席科学家崔迪潇曾说,他们认为换道时机很适合用深度学习算法来做辅助做决策。

因为干线物流对时效和油耗要求非常高,一方面不合适的换道时机会导致司机使用自动换道功能比例降低,另一方面以规则为主的换道算法偏保守,如果仅仅在前车车速过低时才触发“换道”指令,会导致更多的后续刹车,进而带来整个时效和油耗的损耗。为了降低油耗,自动驾驶系统通过收集数据来观察司机如何做决策,再去研究更类人的换道决策。

这一方案经历过两个阶段。

第一阶段为换道决策由司机“自触发”形式变为“系统建议”。在这个阶段,工程师会不断去研究为什么司机在某个点会做出换道决策,进而形成换道建议的规则。在系统给出换道建议后,如果司机允许换道,则系统认为此时的决策是合适的,如果司机认为此时不应该换道,则司机可不采纳换道建议。

第二阶段是,工程师还会在不同场景采集人工换道的数据,并结合第一阶段收集的系统换道决策和司机换道决策不一致场景的数据(如司机触发换道,系统未触发;或系统触发换道,但司机未采纳)进行标注和模型训练,得到换道决策模型,改进系统原本的规控算法,进一步提高节油性能。

2.轻舟智航:用深度学习算法提升系统的“拟人性”
据轻舟智航预测和规控专家还介绍,现阶段,轻舟规控算法给深度学习预留了大量的接口,并积极研发深度学习规控算法。轻舟智航的整体规控算法架构的最终目标是实现AI First(深度学习算法优先),让模型做大部分行为的输出,然后再用规则去做互补(规则主要处理安全相关的问题)。

轻舟智航认为,规控能力将是城市NOA功能差异化的重要体现。目前,轻舟智航已开始尝试在城市NOA方案的规控环节尽可能多运用AI来处理,让系统在多数情况下的决策“接近人”、在极端情况下的决策“超越人”。

例如,对变道时机选择、匝道merge时机选择、路口博弈等在使用城市NOA会遇到的某些规划关键场景,轻舟已经有专门的深度学习算法来进行处理。

为保证深度学习算法的可预见性和可控性,轻舟智航会通过对输入和输出设置校验的方式,来确保输入数据是否符合当前设计的需求。在输入层面会使用规则的方式来选择深度学习算法适用的场景,确保模型的输入的合理性,限定模型运行在设计的问题范围之内,在输出层面也会使用规则进行输出的校验,保证输出达到预设的效果。同时,如果遇到模型处理不好的场景,也可以自动记录时间点和场景相关信息,后续通过数据闭环来更新模型,让模型泛化能力更强,适应更多场景。

目前,在轻舟智航,通过深度学习(比如模仿学习或者强化学习)来生成自车“未来可能的轨迹”这一技术已经比较成熟,通过收集大量专家驾驶的轨迹来训练模型,现在模型生成的轨迹在90%情况下都无需做后续的修饰;但在10%的情况下,深度学习生成的轨迹效果可能不好,甚至有安全风险,这时候就需要一个框架能够去修正/修改它。轻舟使用其国内在首创的时空联合算法(一种基于数值优化的算法)对深度学习生成的轨迹进行微调。

轻舟规控算法专家说,时空联合规划算法相比传统的横向纵向分离更适合与深度学习算法协同使用。因为,用深度学习算法生成的轨迹本身其实就是一个时空联合的轨迹,这个轨迹上面不仅有位置、速度、方向信息,还有时间信息。因此,时空联合规划算法就能较好地跟模型出来的结果结合到一起,进而能够无缝地给深度学习算法加上安全防护。

参考资料:

自动驾驶决策控制及运动规划方法「AI核心算法」

https://mp.weixin.qq.com/s/6UbTsPbckcDrn-cCeqQBTQ

万字综述自动驾驶决策规划中的问题与挑战

https://mp.weixin.qq.com/s/W86mxuv3R8lV9DVaz4mJKg

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/149102
 
60 次点击  
分享到微博