艾汉新兴Thinkstock照片641382150

让机器学习设计实践的边缘

2020年9月2日
将人工智能带到嵌入式设备的边缘并不适合胆小的人。然而,这种情况即将改变。

许多神经网络设计者发现他们既是儿科医生又是老年病学医生。儿科医生,因为神经网络的健康在他们的手中迈出了世界的第一步。因为即使在他们的网络诞生之初,他们也关心网络将如何演变或老化,因为它将与边缘的人工智能所包含的所有元素整合在一起。

本文讨论了部分由于缺乏适当工具而导致的竖井化和其他问题,如何影响将机器学习引入物联网边缘的挑战。它还将探讨设计师和开发人员如何使用新技术和工具来解决这些问题并建立联系。

断开来解决

能够在边缘执行推理的设备正日益成为实用解决方案的代理。想想在一个零售地点的人流,比较那些在商店里浏览的人和那些购买的人。或者是触摸式的机场登记。从这些和许多其他的边缘人工智能应用中,我们可以获得提高数据安全性、减少延迟和降低存储成本等实际好处。像TensorFlow Lite微控制器和TinyML这样的项目帮助实现了这些优势。

然而,随着人工智能进入嵌入式领域的步伐加快,需要让网络在“真正的”硬件上运行。以及将人工智能专门添加到嵌入式设备。满足这些需求仍然具有挑战性,原因有几个。

必须使用现有的框架(在某些情况下,框架仅供业余爱好者使用或用于超出实验阶段的内容)是一个问题。这样的框架缺乏设计生产级嵌入式软件所需的特性。这些特性包括可靠地启动一个网络堆栈以与云通信,启动Wi-Fi连接,并提供具有工业级别安全性的物联网设备——这只是构建商业应用程序所需的一些组件。

当然,也有一些框架,其特性使它们处于商业层面,而不是爱好层面。这些都是为Linux和Android操作系统开发和定义良好的。当目标是使用实时操作系统(RTOS)的嵌入式设备时,使用这些框架需要花费一些额外的精力和时间。例如,与丰富的操作系统(如Android)相比,基于实时操作系统的嵌入式系统的内存和性能有限,这就要求神经网络设计者更加关注如何集成一切。

除了刚才提到的脱节之外,还有另一个问题:当满足Linux和Android需求时,开发是在预期的平台上进行的。但是这种开发假设与嵌入式系统的实践是不一致的。嵌入式开发人员在主机上进行开发,然后交叉编译以在目标设备上运行。

另一个问题是,如果整个框架最初不打算用于嵌入式设备开发,那么它将不会考虑使用图形用户界面、在集成开发环境(IDE)中工作,或者使用嵌入式调试工具(如跟踪和跟踪分析器)。

在开发过程中,所有这些问题都在一定程度上是不切实际的,这阻碍了神经网络的出现(图1)


使边缘机器学习应用获得成功

处于边缘的机器学习已经达到了这样一个阶段,仅仅关注神经网络在世界上的第一步已经不够了——部署阶段已经到来。网络如何成熟并成为持续更新和维护的内聚性解决方案的一部分,是现在的重点。

随着部署阶段的到来,神经网络设计师和嵌入式软件设计师都在寻找实用的方法,以减少开发边缘机器学习应用程序的沮丧和耗时。神经网络设计者需要通过减少内存大小、操作次数和功耗来优化神经网络。嵌入式软件设计师一直在寻找方法,以减少在嵌入式边缘设备中添加人工智能的复杂性。

在考虑机器学习应用程序时,产品团队会寻找特定的功能,例如在专门为他们的特定用例设计的传感器板和评估板上进行实验的能力。如果能够在真实的硬件上进行快速原型设计,而无需编写任何嵌入代码,这将会有所帮助。该团队还想知道,编译器使神经网络设计者能够将他们的神经网络映射和优化到目标硬件的加速器上。商业硬件的可伸缩性和可接受性也是关键。

表明神经网络与中间件在一个真实的板上运行的方法,向团队表明该解决方案是工业级的。这是嵌入式软件设计师所希望的,因为它不再是一个复杂的过程,以使应用程序通过终点线。神经网络的设计者们希望能够有信心将应用程序的价值和商业可行性成功地展示给产品团队。

克服这些问题的一种方法是使用一个针对部署阶段的嵌入式AI平台(图2).这样的平台应该能够安全地获取和存储培训数据。它应该从TensorFlow Lite模型中自动生成优化的AI模型。该平台的神经传感器处理器必须能够无缝加载包含传感器接口的AI模型。通过包括基于新型号或新数据的物联网云连接、设备供应和固件升级,该平台可以帮助确保应用程序的持续生存能力。


例如,具有这些功能的平台可以为设计师提供改变推理发生方式的灵活性。或者更新软件组件,以反映额外的培训,从而导致更准确的推断。它可能包括更新网络堆栈、进行安全修复或添加设备功能。

溶解筒仓

TENSAI Flow平台由埃塔计算整合元素,使机器学习在边缘更实用。Eta Compute及其合作伙伴,包括Edge Impulse和谷歌TensorFlow团队,创建了一个解决方案,包括编译器、神经网络zoo和中间件,包括FreeRTOS、HAL、传感器框架,以及物联网/云支持。

TENSAI Flow解决了神经网络设计和嵌入式软件设计中存在的问题,在两者之间架起了桥梁。TENSAI Flow提供了匹配嵌入式目标需求的网络优化功能,将神经网络代码与中间件和固件包在一起,嵌入式团队可以直接使用。它可以在TENSAI流量传感器板或定制板上进行快速原型制作和数据采集。

此外,该平台使多核管理变得透明。在多个核之间分配工作负载的优点可以实现,而无需内部多核软件编写任务减缓开发。

用例1:将神经网络移植到边缘设备

考虑将现有的神经网络移植到边缘设备的任务,该神经网络可以提供正确的准确性。这个任务可能非常耗时:开发人员必须优化神经网络,以适应必要的有限资源的边缘设备,同时保持网络的速度和准确性。在最坏的情况下,它甚至可能不收敛。

开发人员首先将他们的神经网络转换为TFLITE格式,然后使用编译器生成优化的代码。编译器为设备创建最优化的代码,在显著降低风险的同时节省了大量时间。然后,开发人员可以快速移动,在一个TENSAI板上进行测试,并在真实的硬件上验证神经网络。

优化后的代码可能不满足设备的内存和性能约束。这并不是一种罕见的情况——学术界中生成的许多神经网络几乎没有考虑到实际的硬件,它们可能使用不适合嵌入式世界的架构。

编译器立即提供关于网络大小的信息和执行时间的估计。因为编译器会生成尽可能优化的代码,所以开发人员很快就知道这个任务是否不可能完成,并且可以专注于更合适的网络,比如TENSAI Flow神经网络动物园中的那些网络。

用例2:实现正确的准确性

第二个常见的用例是,开发人员的神经网络很好地适应硬件,执行速度足够快,但不能提供准确的准确性。例如,如果神经网络开发人员使用像MobileNet这样的对象检测网络,并希望在特定条件下识别特定类型的对象,那么经常会发生无法获得预期精度的情况。默认的数据集不会为这个特定的用例设计,需要使用更具体、更好的数据集进行更多的训练。

通过使用TENSAI板和TENSAI Flow来获取更多的数据,可以很容易地纠正这种情况。使用与TENSAI Flow集成的Edge Impulse TinyML管道,开发人员可以在云中获取、标记数据,并与所有其他开发人员共享数据。他还可以管理数据桶,应用数据转换和增强,并在其生命周期中管理数据集的修订。

这些用例显示了神经网络开发人员交付合适网络的直接好处。另一个好处是,该平台将生成可被嵌入式软件开发人员直接使用的代码——符合商业应用程序行业标准的代码。这样,开发人员就可以保证他们的神经网络可以在真实的产品中使用和部署。对于任何一个工程师来说,看到自己的劳动成果被运送到成千上万的设备上是一个非常令人满意的时刻。

结论

在过去的几年里,我们已经证实高效、低功耗的机器学习可以在小型设备中实现。然而,开发过程中的断开以及神经网络和嵌入式世界之间的竖井阻碍了商业部署。由于引入了新的硬件和软件解决方案,我们现在准备得更充分了,可以在前沿广泛部署具体的AI。

萨米尔·哈达德(Semir Haddad)是公司产品营销高级总监埃塔计算

从我们的合作伙伴

如何在频域和时域解嵌入互连元件

按需网络研讨会。加入Teledyne LeCroy,我们描述并演示了从串行d中去嵌入测试夹具、电缆和探头的最佳实践。

实时操作系统(RTOS)及其应用

2021年2月25日,
什么是操作系统。实时操作系统(RTOS)是一个轻量级的操作系统,用于在资源和时间限制下简化多任务和任务集成……

协同处理器体系结构:一种用于快速成型的嵌入式系统体系结构

2021年7月6日
编者注:尽管它以数字处理性能和吞吐量而闻名,但协处理器体系结构提供了嵌入式系统…

符合自动化和工业4.0标准的M12连接器编码

赞助。符合自动化和工业4.0标准的M12连接器编码连接器在任何一种电…

实现5G和机器人的未来

2021年11月18日,

声音你的意见!

本网站要求您注册或登录后发表评论。
目前还没有任何评论。想开始对话吗?

从我们的合作伙伴

如何在频域和时域解嵌入互连元件

按需网络研讨会。加入Teledyne LeCroy,我们描述并演示了从串行d中去嵌入测试夹具、电缆和探头的最佳实践。

实时操作系统(RTOS)及其应用

什么是操作系统。实时操作系统(RTOS)是一个轻量级的操作系统,用于在资源和时间限制下简化多任务和任务集成……

协同处理器体系结构:一种用于快速成型的嵌入式系统体系结构

编者注:尽管它以数字处理性能和吞吐量而闻名,但协处理器体系结构提供了嵌入式系统…

符合自动化和工业4.0标准的M12连接器编码

赞助。符合自动化和工业4.0标准的M12连接器编码连接器在任何一种电…
思想库
智能手表Thinkstock照片685367062
Baidu