实现网络边缘机器学习应用
Posted 05/23/2017 by Juju Joyce
谈到技术,最让我激动的一点是它能让人类的生活变得更加美好。如果人工智能(AI)、机器学习和深度学习技术能够得以正确应用的话,前景可谓一片大好。
机器学习被定义为不对计算机进行明确编程而使其学习/行动的科学。这种技术使得我们能够让计算机/机器人去做某些特定的事,这些事可能因代码太过复杂而无法通过编程实现。例如,编写代码以指示机器人如何行走或者汽车自动驾驶功能。在这类应用中,有太多的细节和场景需要考虑,甚至还有一些我们还不了解的新场景,由人来编写一套完美的指令几乎是不可能的。
深度学习是机器学习的一个子集,而机器学习又是人工智能的一个子集
学习过程
深度学习是机器学习的一个子集,该技术已取得显著进步,特别是计算机使用多层人工神经网络(ANN)来进行学习/行动而不被明确编程的应用已经非常普及。ANN的概念源于人类大脑的生物神经网络。在我们出生时,神经元网络能够做的事情还很有限,在一段时间里,我们需要学习走路、说话和阅读,即“训练”阶段。最终,我们变得知识渊博,可以从过去的训练和经历中汲取经验,在新情况出现时做出决定,这是“推理”阶段。类似地,ANN可在“训练”阶段中被教导使用一组训练数据,经过训练之后,当新数据出现时能够进行相应的行动(“推理”)。例如,若要创建一个可以准确区分狗和猫的ANN,在“训练”阶段,它被输入成千上万狗和猫的图像,直到它能够准确识别狗和猫。一旦“训练有素”,ANN即可迎接“真实世界”的挑战,它可以“推理”(识别)狗或猫——尽管它之前从未真正“看过”那只特定的狗或猫的图象。
相比传统的机器学习技术,基于ANN的机器学习技术的主要优点是在“训练”阶段,ANN自动选择用于区分狗和猫所需的特征/参数。而使用传统的机器学习技术时,这些特征/参数必须由人类内容专家(SME)手动选择。如果推理精度不理想,SME需要修改特征/参数以提高准确性。 所以实质上它变成一个更费力、更耗时并且需要多次迭代的过程,最终结果可能还不如基于ANN的机器学习技术。
ANN技术的发展不曾停止
虽然ANN技术已经诞生了几十年,但只有在最近几年它才开始显示出比传统算法更好的结果,这是两个因素导致的。首先是计算能力的可用性和可承受性,是否能够支持我们构建更复杂和更深层次的ANN,即深层神经网络(Deep Neural Networks,DNN),在几十年前这是不切实际的。第二个因素是是否有大量可用于“训练”的数据,例如数字图像、视频、声音片段等。ANN在推理过程中能够达到的精度通常取决于训练数据的数量和质量。上文中狗与猫的训练示例中,这意味着图像的数量以及图像是否足够准确地来表现猫和狗,ANN在“推理”阶段就会被要求进行识别。
训练与推理
“训练”通常发生在数据中心/云端,而“推理”则发生在网络边缘(嵌入式/移动系统)。“训练”阶段往往使用高性能CPU、GPU、FPGA和/或TPU(Tensor Processing Unit),并且使用浮点数计算。经过训练的ANN可以进行针对性的优化以实现复杂程度相对较低的ANN,可以移植到成本和功耗优化的嵌入式/移动系统中用于“推理”,这时候浮点数计算通常也会被转换为定点数计算以降低复杂性并更有效地利用计算资源。
‘在云端/数据中心进行“训练”,在网络边缘进行“推理”
在网络边缘(嵌入式/移动系统)实现“推理”功能可以最大限度地减少决策和分析过程中的延迟,不用通过网络将所有数据发送到数据中心来进行分析,同时也可降低网络拥塞,增强用户隐私保护(因为数据存储在本地设备上),并且可在没有网络连接的情况下启用“推理”功能。
实现网络边缘推理应用
得益于并行处理架构,FPGA能够以最低的功耗(与CPU和GPU相比)实现最高的每秒操作数(OPS),因此FPGA非常适合用于网络边缘“推理”应用。使用FPGA提供的并行处理架构可以显着加速ANN处理。莱迪思FPGA针对低功耗、小尺寸和低成本进行了优化,所有这些都是网络边缘处理应用所需的。此外,由于机器学习技术还处于发展的早期阶段,每天都在研究和发布更好和改进的ANN架构,因此我们需要一种灵活、可编程的硬件架构,例如FPGA提供的架构,以便在推出新的ANN架构和技术时轻松升级。新的嵌入式视觉开发套件(莱迪思嵌入式视觉解决方案系列的一部分)就是基于FPGA的平台,能够为移动相关的网络边缘智能应用提供灵活的互连和加速,适用于机器人、无人机、高级驾驶辅助系统(ADAS)、智能监控摄像头以及AR/VR系统等应用。
总结
人类总是不断寻求和构建能够使我们的生活更美好的“事物”,而机器学习(ANN)可以说是一个非常有前途的技术,能够为许多“事物”添加人工智能,从而大大提高了它们为我们服务的能力。同时,为了确保安全和人性化的社会体系,我们始终要确保智能“事物”不得越过(或违反)某些边界(或一套规则)。