据外媒报道,特斯拉汽车公司人工智能(AI)总监安德烈·卡帕西(Andrej Karpathy)日前参加2018年TRAIN AI大会时,剖析了该公司构建自动驾驶仪(Autopilot)计算机视觉解决方案的方法。据介绍,Autopilot编程团队主要分为两部分:第一个团队构建了神经网络本身,而第二个团队则专注于神经网络的实际编程,它包括选择已标注的图像,帮助神经网络学习。他的演讲题目是“构建软件2.0堆栈”。
卡帕西的任务是将传统的、基于规则的编程方法与神经网络(也称机器学习或AI)运行时使用的编程方法区分开来。在典型的互联网术语中,他使用了神经网络编程软件2.0,用以与基于规则编程的软件1.0进行区别。事实证明,两者之间的差异是相当大的,编程神经网络与编程网页或智能手机应用程序是完全不同的。
近年来,随着计算机视觉解决方案越来越难以为图像中的每个可能对象定义规则,这一点变得尤其明显。然而,这些挑战并不能阻止程序员尝试甚至执行极其复杂的计算机视觉分析任务。
在1990年到2010年之间的照片分析中,早期的研究奠定了现代聚焦于视频图像分析的基础,而视频图像分析的帧率越高,对计算机资源的压力就越大。像特斯拉自动驾驶仪(Autopilot)这样的应用,要求所有处理过程都必须是实时的,甚至要使用实时数据来预测附近的司机会会做什么或可能做什么,以降低碰撞危险。
特斯拉的自动驾驶仪解决方案非常依赖计算机视觉,而不是激光雷达和其他传感器,因为特斯拉的团队认为,计算机视觉在根本上更加卓越,强大的摄像头阵列足以支持完全自动驾驶解决方案。
卡帕西深入探究了特斯拉团队用来自动驾驶仪计算机视觉难题的方法。自动驾驶仪编程团队主要分为两部分:第一个团队构建了神经网络本身,而第二个团队则专注于神经网络的实际编程,它包括选择已标注的图像,帮助神经网络学习。
正如编程代码必须高效和有效一样,卡帕西注意到用于编程神经网络的图像必须够大、够多样化以及干净。为神经网络编程更多的是识别异常,并为正确的行为编写软件2.0堆栈,而不是为正常情况下的系统编程。
我们可以用简单的方法来比较为图像编程的神经网络,它就像十字路口的交通信号。大多数信号系统都有标准的红黄绿设置,可以通过提供红灯图像并将其标记为指示车辆应该停车的信号来进行建模。
与此相对应,绿灯表示车辆可以继续通过十字路口。黄色是同样重要的指标,但比红色和绿色交替出现的频率要低得多。神经网络必须被编程以同样好地理解这三者的关系,即使在现实世界中黄色灯光出现的频率远低于绿色和红色。
特斯拉认为,从根本上说,与人类驾驶汽车相比,该公司自动驾驶仪解决方案将会在行驶过程中提供更安全的驾驶体验。这是有意义的,也十分重要,但这只是暗示了一种更广泛的可能性,即车辆在世界上任何地方、任何情况下都能自动驾驶。
与人类驾驶汽车相比,特斯拉的自动驾驶汽车如今已经帮助减少4倍车祸死亡人数。其首席执行官伊隆·马斯克(Elon Musk)相信,将来其至少可以提供10倍的改进效果。
原文发布时间为:2018-07-25
本文作者:北风教育