自动驾驶车在农业、运输和军事等领域开始成为一种现实,普通消费者在日常生活中使用自动驾驶车的那一天也在迅速来临。自动驾驶车根据传感器信息和AI算法来执行必要的操作,它需要收集数据、规划轨迹并执行行驶路线。而这些任务,尤其是规划和执行轨迹需要非传统的编程方法,它依赖AI中的机器学习技术。
3.自动驾驶车辆中采用的AI算法
计算机科学中的传统启发式算法可用于路径规划和控制,例如Bellman-Ford算法和Dijkstra算法。要应用这些算法,需要全程对车辆进行定位,而定位要通过GPS等传感器,以及同步定位与制图(SLAM)技术来完成。SLAM可用于无法搜索到GPS信号的地方,例如地下或封闭空间;它生成由地标或障碍物组成的环境图,同时估计车辆状态。SLAM适用于无法使用地图但需要创建地图的应用,它采用传感器和特殊算法创建数据模型,并生成地图。目标检测是AI在移动车辆中需要处理的最重要任务之一。其算法一直是业界积极研究的方向。目标检测依赖于不同的传感器,如摄像头或激光雷达、雷达或其它类型的传感器。它通常使用深度学习算法及某种类型的神经网络来完成工作。目标检测必须快速,因为它要处理的是车辆行驶时产生的一系列连续图像。一些最新的技术都基于卷积神经网络(CNN),如R-CNN、快速R-CNN和You Only Look Once(Yolo)方法。R-CNN方法首先查找图像中包含潜在对象的区域,然后尝试分析每个区域,因此它有些慢,这也是快速R-CNN方法和Yolo方法出现的原因。Yolo方法采用单个卷积神经网络查找区域,并同时对区域中的对象进行分类,因此比其它方法快很多。而且,Yolo能够看到整个图像,它不会引起R-CNN方法可能遇到的问题,例如将背景图误认为目标对象。决策是指根据来自传感器的信息确定车辆的动作。车辆会根据其规则和环境不断做出决策,用于决策的算法包括:
4.自动驾驶车辆中AI面临的挑战
除了与其它AI应用面临一些相同的挑战之外,自动驾驶汽车领域中的AI还面临一些特殊的障碍,涉及实时、安全和机器伦理等概念。以下小节将分别对此进行详细介绍。实时系统是一种特殊的嵌入式系统,其特征是在一定时间限制内产生输出或反应。它们必须在设计上具有确定性和简约性,以便始终满足预期的实时行为。为此,它们通常采用特殊的实时操作系统(RTOS)或与硬件直接交互的裸机执行程序,避免使用解释性语言和动态内存分配。在某些情况下,实时系统会刻意采用编程语言的子集以保证速度和确定性。人工智能解决方案通常与此相反,它使用高级编程语言、完全依赖操作系统、采用诸如动态内存分配和垃圾收集之类的技术。这对系统的实时决策带来了挑战。另外,系统是集中式系统还是分布式系统也有影响。集中式系统更易于构建,但严重依赖内部通信和强大的中央处理器。分布式系统则采用专用CPU,可以处理不同的子系统和传感器,从而降低了对复杂中央CPU的需求。而且,分布式架构的系统功耗较低,也更灵活、更便宜。由于数据量大且计算复杂,人工智能算法(尤其是深度学习)需要特殊的硬件解决方案。如对图形处理单元(GPU)或张量处理单元(TPU)等硬件进行深度优化,以实现快速并行计算。然而,速度通常以更高能耗和更高成本为代价。即使采用专用硬件,也无法确定某一特定算法能够实时解决问题。因此,鉴于其复杂性和CPU需求,算法的选择成为影响实时系统的一个重要因素。测量CPU计算和内存用量,有助于确定该算法是否适用于现代车辆的典型CPU中。人工智能算法曾因比标准计算机算法更难分析而被诟病。这是因为AI算法复杂度更高且依赖大量数据。一个复杂的神经网络可以执行多个AI任务,而无需了解其控制过程。实际上,深度神经网络本质上可以近似任何函数,因此它才如此成功。深度神经网络可以有数以万计的节点,这些节点通过训练即可达到特定状态。此外,它们可以具有许多隐藏层以及许多输入和输出。但当系统崩溃时,所有这些都会导致问题,需要进行取证分析来找出崩溃的确切原因。这也是业界积极研究的一个领域,如果取得成功将解决许多与使用AI相关的法律和技术问题。将AI与传统控制算法相结合的混合法是其中一个解决方案。这个问题对于事故预测和处理尤其重要。为什么要做出这个决定,而不是另一个决定?整个决策过程必须由AI算法来证明,但如果仅将算法视为黑匣子来进行分析和看待,那将很难证明或几乎不可能。用于自动驾驶车辆的计算机视觉可能尚未准备就绪,尽管它们可以在原始条件下工作,但在传感器输入端即使受到很小干扰的情况下也会失效。在具有一定特征的训练数据中进行AI算法的训练,其进展缓慢。更改数据可能使分类和预测算法极大地改变其行为,并带来灾难性的后果。例如,背着一个大包的人可能不会被车辆感知为一个人。此外,很难预测进入系统的任意数据会引发什么。已经有攻击者利用了这个缺陷,他们利用人类看不见的图像数据来欺骗深度学习算法,使神经网络停止正确分类。显然,我们需要大量改进来提高机器学习算法的可靠性和准确性。AI的复杂性还可能导致安全问题。越复杂的系统越难开发、测试和部署。但这只是问题的一部分。另一个现实是,新的安全标准逐步出台,但尚未被运输行业采用。让事情变得更复杂的是,人工智能系统的分析与验证仍处于早期阶段,因其复杂性还很难被驾驭。一般情况下,形式验证即使对传统软件系统都很难,对AI软件就更难。不仅仅对自动驾驶车辆,对所有AI应用,我们都必须创建强大的、经过校验和验证的AI解决方案。人工智能系统对自动驾驶车辆至关重要,其安全性直接关系到整个系统的鲁棒性。但机器学习系统很容易受到攻击,这样的案例已经有很多。AI最大的威胁是黑客可以操纵传感器发送到车辆的数据,从而使系统做出错误的决策。曾经有一项使用深度学习模型识别道路标志的实验表明,“在停车标志上仅仅添加几个黑白贴纸,就会使算法误以为它是45英里/小时的限速标志”。采用具有某些对抗性特征的数据来训练系统可以改善这种状况。在自动驾驶汽车中影响AI运行的最大威胁是干扰传感器的运行,它会导致传感器数据流发生变化,从而使AI算法完全混乱。研究人员正在探索的解决方案包括混合系统、模糊逻辑,以及基于模型的传统控制系统来补充AI。但风险有些高,因为AI已经应用于某些车辆子系统中,并且在不久的将来会应用于每辆汽车之中。目前,在自动驾驶和半自动驾驶车辆中实施AI,在伦理方面还不成熟,也没有得到大力发展。伦理价值观本是人类具有的品质,很难在机器中形式化并实现。换句话说,决定对与错对机器来说是很模糊的概念。机器伦理的全面发展可能还需要几十年的时间。这也是一个活跃的研究领域,属于人类心理学、机器学习和社会政策之间的交叉学科。随着技术的成熟,可能会出现一些法规提供相应的帮助。
5.结论
人工智能解决方案如今无处不在。它们是Alexa和Google Home设备的一部分,是割草机器人的一部分,也是我们有望很快使用的自动驾驶车辆的一部分。AI所面临的挑战与成就在许多行业中都是相同的,但在交通运输行业,尤其是自动驾驶车辆领域,在安全与防护方面更是面临特殊的挑战。部分原因是创建自动驾驶车辆这个任务的复杂性,另一部分是由于AI领域的发展水平,以及它是否适合解决复杂的问题,诸如目标检测、路径规划和实时决策等。随着越来越多的自主智能解决方案逐渐渗透到更多经济领域,很多障碍会得到解决。也许,我们对这个行业应该提出的正确问题是“我们要安全地实现它吗?”而不仅仅是“我们实现了吗?”(参考原文:Artificial intelligence algorithms and challenges for autonomous vehicles)