(如果你不喜欢阅读长文,请看图1的知识图谱)
限速80的国道,只能跑66?这是Banyan3.3.0/Cedar(s) 1.4推送后,很多车主反馈的问题,我们通常称之为模型‘不达速’现象,而在春节前蔚来AD团队推出这一版,就是为了解决模型不达速的问题。
过去为什么没有“不达速”?
因为过去大部分方案的纵向控制是由规则写的,本质上它就是一个速度“执行器”,你设置多少,它就开多少,除非前面有车,有障碍物。而横纵一体全模型化后,纵向也全由模型来控制,模型是在“模仿人类在这个场景下会开多快”,而不是“执行指令”。
模型的不达速往往是由于以下原因:
1、 “平均化陷阱”与模仿学习的局限
目前的端到端或混合驱动模型,大多基于人类驾驶数据进行模仿学习(IL)。并不是所有人类司机都会顶着限速80开。
我相信如果你生活在国内的大城市,你应该能理解这个现象,马路的“龟速”车很多。所以在数据集里,有的司机开80,有的开70,有的开60,甚至还有开50的。
模型在训练时,为了降低“Loss”,往往会取一个中间值或平均值。如果大量训练数据在该路段的平均车速只有65-70(可能因为历史时段拥堵或司机习惯),模型就会学着开66,而不是顶着限速跑。这就是模型拟合了人类的平均值。
2、舒适性与横向控制的“木桶效应”
车辆的速度不仅取决于“限速”,还取决于曲率、弯道的舒适性。人类司机过弯时,可能习惯承受0.4g甚至更高的离心力来维持速度。但辅助驾驶系统为了保证绝对舒适,通常会将过弯的侧向加速度严格限制在较低水平,比如0.2-0.3g。
3、置信度不足
如果感知系统对前方的路况判断不是100%确信,比如有阴影、有光线变化、或路边有不规则物体,系统往往会降速来留出更多时间观察。
不过这一次Banyan3.3.0的不达速,我觉得大概率还是因为平均化陷阱导致的。
那该如何解决呢?
似乎写规则的方式最简单,但会带来副作用。
所以最好的办法,还是通过微调模型,通过RL强化学习的方式来解决,但它需要时间。
据我了解,蔚来这一版的修正,并不是通过简单的if else来做的,他们采用了工程上的针对性优化,至于体验如何,升级到新版本的同学可以深度体感受一下。
