聚焦AI在汽车中的应用:实用深度学习
在未来的某个时候,人们必定能够相对自如地运用人工智能,安全地驾车出行。这个时刻何时到来我无法预见;但我相信,彼时“智能”会显现出更“切实”的意义。
与此同时,通过深度学习方法,人工智能的实际应用能够在汽车安全系统的发展进步中发挥重要的作用。而这些系统远不止仅供典型消费者群体掌握和使用。
深度学习这一概念在几十年前就已提出,但如今它与特定的应用程序、技术以及通用计算平台上的可用性能更密切相关。深度学习的“深度”层面源于输入层和输出层之间实现的隐含层数目,隐含层利用数学方法处理(筛选/卷积)各层之间的数据,从而得出最终结果。在视觉系统中,深度(vs.宽度)网络倾向于利用已识别的特征,通过构建更深的网络最终来实现更通用的识别。这些多层的优点是各种抽象层次的学习特征。
例如,若训练深度卷积神经网络(CNN)来对图像进行分类,则第一层学习识别边缘等最基本的东西。下一层学习识别成形的边缘的集合。后续图层学习识别诸如眼或鼻这样的形状的集合,而最后一层将学习甚至更高阶(如面部)的特征。多层更擅长进行归纳,因为它们可以学习原始数据和高级分类之间的所有中间特征。如图1所示,这种跨越多层的归纳对于最终用例是有利的,如对交通标志进行分类,或者尽管存在墨镜、帽子和/或其他类型的障碍物,也可能识别特定面部。
图 1:简易交通标志示例
深度学习的“学习”层面源于对分层网络如何在给定大量已知输入及其期望输出的情况下产生更准确结果(图2)所需的训练(反向传播)的迭代。这种学习减少了那些迭代产生的错误,并最终获得分层函数的结果,以满足整体系统需求,并为目标应用程序提供极其稳健的解决方案。这种学习/分层/互连类型类似于生物神经系统,因此支持人工智能的概念。
图 2:简易反向传播示例
尽管深度学习具有效力,但其在实际应用中也遇到了一些挑战。对于容易受到系统限制因素(如总体成本、功耗和扩展计算能力)影响的嵌入式应用程序而言,在设计支持深度学习功能的系统时必须考虑这些限制因素。开发人员可以使用前端工具,如Caffe(最初由加州大学伯克利分校开发的深度学习框架)或TensorFlow(谷歌的发明)来开发总网络、层和相应的功能,以及目标最终结果的培训和验证。完成此操作后,针对嵌入式处理器的工具可将前端工具的输出转换为可在该嵌入式器件上或该嵌入式器件中执行的软件。
TI 深度学习(TIDL)框架(图3)支持在TI TDAx汽车处理器上运行的深度学习/基于CNN的应用程序,以在高效的嵌入式平台上提供极具吸引力的高级驾驶辅助系统(ADAS)功能。
图 3:TIDL框架(TI器件转换器和深度学习库)
TIDL框架为软件可扩展性提供快速嵌入式开发和平台抽象;在TI硬件上实现用于加速CNN的高度优化的内核,以及支持从开放框架(如Caffe和TensorFlow)到使用TIDL应用程序编程界面的嵌入式框架进行网络转换的转换器。