如何训练无人驾驶系统
2018-08-19黄耀鹏
黄耀鹏
在高速公路上,按照美国国家公路交通安全管理局(NHTSA)划分的标准,拥有L1、L2级辅助驾驶的车辆,看起来和其他车辆没什么区别。L4级则完全无须人工干预,自主驶向目的地。所有自动驾驶项目的终极目标都是L4级无人驾驶系统。
不过,指望无人系统“无师自通”是难以如愿的。无人系统就像刚出生的婴儿一样,拥有用于感知外界环境的“感官”(摄像头、毫米波雷达、激光雷达),也拥有高速大脑(计算单元、图像处理单元),但“大脑”功能尚在分化中,需要教它识别环境中一切可能出现的人和物体。是的,你没看错,是一切可能。
如何识别
教无人系统分辨道路和其他可能遇到的一切,是训练的第一步。就像教婴儿看图识物一样。因为图像的信息太丰富,难以建模,深度学习似乎能发挥特殊优势。
深度学习既可以用于感知,也可以用于决策。比如AlphaGo的走子网络,就是一套DNN训练系统。用最简单的话说,就是根据当前状态做出决策。它的设计者和训练师不是要教它决策(事实上人类不知道系统将如何决策),而是教它一些基本知识。
首先,在一大批车的图像中提取基本特征,比如车的正面和侧面大致的几何形状,令系统分辨出车的左侧和右侧(用不同特征标记)。
有了连续多帧的图像,根据其间的连续变化,可以分辨车的行驶方向。并可以辨识出远处视野中很小的车辆,比任何人类都看得远、看得清楚。如何评估它们对自身的影响,将放在后面训练。
其次,传统图像中,路肩和马路本身颜色难以区分、立体视觉也很难辨别(毕竟高程差太小)。人类是如何轻易识别的?靠阴影。区区10厘米的路肩,将形成一条连续暗色的窄带区域。系统,你学会了吗?
用连续窄带阴影(断开的个别路段,正好可以做高危提醒信号),结合道线识别,勾勒出可行驶区域。
看上去很完美,可是有时候没有道线,或者由于天气原因道线难以识别,可以用人类在缺乏道线标识的情景下开车图像,来让系统学习人类是如何驾驶的,系统可以从大量的视频中(实际上是多帧图像)提取出人类策略,并加以优化。
因此,我们看到系统和明智的人类驾驶员,采取几乎相同的步骤,只不过判断更果断迅捷。
训练开始
当无人系统具备了辨识能力之后,它需要面对两类场景:一类是真实世界,另一类是数字世界。从前者取得“实操”经验后,在后者里面变换各种条件(比如将障碍物移动位置、让行人的行为更加不可预测),不断磨练应对策略,直到最优。
我们可能需要从更简单的情况开始,譬如在高速路上超车和并道,只涉及两辆车。A车搭载无人系统,B车将作为阻碍出现。
当A车以90公里的速度在内侧道路直行,右侧B车猛然超车并到A车前方,并且紧接着刹车。A车能否迅速、平稳地刹车,同时还要给后面车辆留出足够的刹车时间?
让我们将情况复杂一点:高速多车并道,遇到在车道上后退車辆、路上突然出现滚动的篮球或者从隔离带上突然蹿出行人,以考核无人系统的应对是否得当。
值得指出的是,软件设计师并不预先设定无人系统将如何应对,他们也无法在程序中穷尽所有情景。他们只希望无人系统在数万种情景中提炼出方法,以便在“超纲”情景中也能做出理智决策。
逐渐扩张
为了加速训练,有必要创造出虚拟世界(城市),模拟数万个无人系统在其中日夜奔跑。软件完善后,虚拟空间的设定越来越宏大、场景越来越复杂,直到像一个真实的城市。
一方面,训练师可以看到无人系统所能“看”到的一切,另一种视角下,人类也能俯瞰整个数字世界,监视无人系统之间的复杂互动。真实场景以数字化方式呈现在无人系统感官世界里,从人类的角度看,不能分辨是虚拟的场景,还是无人系统真的“看”到了这一切。
Waymo的专家们吹嘘他们是惟一一个采用“加速训练系统”的公司,实际上,福特、优步和通用也都在硅谷建立了类似的训练系统。Waymo只不过是开始得最早的一个。当然,他们取得的数据也是最多的。不过,大家对各自的训练效果以及如何改进,都秘而不宣。
有人认为,一旦无人系统在虚拟城市中的数量达到数百万个,其群体行为模式,已经非常接近真实的超级城市日常。而在其背后,必须部署足够的实际车辆和传感器,建立公路数据库。完全依靠虚拟场景训练出来的无人系统,可能面对真实路况时表现“不大一样”。
训练虽然开始时借鉴了人类司机应对的场景,但最终人工智能可能会采取不同的策略。无人系统对人类行为理解得更深刻,反过来促使它形成自己的驾驶风格。令人吃惊的是,无人系统面对另一个无人系统时采取的策略,与它面对人类驾驶车辆时不一样,虽然都以乘客的安全作为最高准则。
这意味着,无人系统统治整个城市的时候,可能自发形成全新的交通准则,且更高效、更默契。人类在上百年汽车时代所积累并奉为圭臬的准则,很可能被替代。但这不是令人悲伤的故事。就像人类最终不再掌握方向盘一样。