机器学习|嵌入式开发人员应该关心机器学习的 5 个理由

机器学习|嵌入式开发人员应该关心机器学习的 5 个理由

人工智能 (AI) 和机器学习 (ML) 似乎每年越来越多地成为头条新闻 。 但在大多数情况下 , 嵌入式开发人员似乎并没有给予太多关注 。 当然 , 人工智能有一些非常酷的应用程序 。 然而 , 对于实时微控制器开发人员来说 , 人工智能似乎是一种遥远的工具 , 属于云端或高端应用处理器 。 事实证明 , 嵌入式开发人员现在需要开始关注 AI 和 ML 有几个原因 。
【机器学习|嵌入式开发人员应该关心机器学习的 5 个理由】原因 #1 – CMSIS-NN 软件库
已经有一个专门设计用于在嵌入式设备上实现神经网络的 CMSIS 库 。 该库为开发人员提供了实现神经网络功能的能力 , 例如:
神经网络卷积函数
神经网络激活函数
全连接层函数
神经网络池化函数
Softmax 函数
神经网络支持函数
库函数可用于任何定点处理器 。 不过 , 为了真正提高执行效率 , 开发人员可以在更高端的 Cortex-M4 或 Cortex-M7 设备上使用 ARM DSP 指令 。
原因 #2 – STMicroelectronics NUCLEO-F746ZG
CMSIS-NN 软件库可以在一系列 Cortex-M 设备上运行 , 但值得一提的是 STMicroelectronics NUCLEO-F746ZG 。 它是已经有示例和正在使用它执行基准测试的开发板 。 NUCLEO-F746ZG 是一款 ARM Cortex-M7 处理器 , 包括 DSP 指令、一个浮点硬件处理器和高达 1 MB 的板载闪存 。 它拥有嵌入式开发人员在实时微控制器中快速高效地运行机器学习算法所需的一切 。

 原因 #3 – 提高设备智能
使用机器学习可以为嵌入式系统增加一定程度的智能 , 否则这将是耗时的或几乎不可能以传统方式实现 。 开发人员可以使用神经网络来学习传感器和系统行为 , 并识别行为何时衰减或何时发生故障 。 利用机器学习可以帮助降低成本和实施工作 。
原因 #4 – 提高架构效率
在许多应用中 , 在微控制器中使用机器学习会极大地影响系统架构 。 以关键字识别应用程序为例 。 开发人员可以使用不断运行的应用处理器来构建系统 , 寻找关键字 。 应用处理器将使用更多的能量和计算能力来完成一项非常简单的任务 。 相反 , 可以使用 Cortex-M 处理器来识别关键字 , 它比应用程序处理器使用更少的功率 , 并且可以在发现关键字时唤醒应用程序处理器 。 这只是一个嵌入式开发人员使用机器学习可以改变系统架构方式的例子 。
原因 #5 – 学习曲线
学习如何在嵌入式设备上实现机器学习不仅仅是开发人员已经使用的技能的扩展 。 它不仅涉及新技术 , 还涉及一种思考如何设计嵌入式系统的新方法 。 开发人员不可能在一夜之间学习这些新概念和技术 。 在开发周期中尝试学习它们 , 当它们处于关键路径时 , 无疑会由于复杂性增加而导致错误的实施和项目延迟 。 只需回顾原因 #1 中的函数列表即可 。 现在有多少这些术语对你有意义?现在开始零碎地学习机器学习将帮助开发人员在开发战场上需要他们之前磨练他们的技能 。
结论
AI 和 ML 不仅仅是用于高端应用程序或云的工具 。 如今 , 嵌入式开发人员可以使用这些工具开始利用这些新技术并使他们的系统更智能 。 开始学习这些新功能的时候不是你需要在设计中实现它们并且已经落后了;现在是时候了 。