来自系列:应用机器学习
Seth Deland,Mathworks
通过几个关键技术和在嵌入式设备上运行机器学习模型的最佳实践。
该视频讨论了更快,减少其内存占用的选项,包括自动C / C ++代码生成,特征选择和模型减少。
“机器学习”一词让人联想到使用大量计算来训练模型的复杂算法。但是在“嵌入式设备”上的计算受到内存和可用计算量的限制。
现在,当我说“嵌入式设备”时,我指的是具有特殊用途的计算系统的对象,所以想想像家用电器或自动驾驶汽车中的传感器之类的东西。
今天,我们将讨论为嵌入式设备准备机器学习模型时要记住的不同因素。
不同类型的模型需要不同的内存和时间来进行预测。例如,单决策树速度很快,并且需要较少的内存。最近邻方法速度较慢,需要更多内存,因此您可能不希望将它们用于嵌入式应用程序。
在决定在嵌入式设备上使用哪些模型时,要记住的另一件事是如何将模型发送到设备上。
大多数嵌入式系统都以低级语言编程,例如C.
但机器学习通常是在高级解释语言,如MATLAB, Python,或R。
如果您必须以2种不同的语言维护代码基础,请保持同步才会非常痛苦。
MATLAB提供了自动将机器学习模型转换为C代码的工具,因此您不需要单独在C中手动实现模型。
那么如果在将模型转换为C之后,那么您发现它不会符合我们系统的要求?也许内存足迹太大,或者模型需要太长,无法预测?
您可以尝试其他类型的模型,看看代码是否满足需求。也许可以从一个简单的模型开始,比如决策树。
或者,您可以在进程中早些时候回复,并查看是否可以减少模型中的功能数量。您可以使用邻域组件分析等工具,这对于确定功能对结果的影响有用。如果您发现某些功能重量低,则可以从模型中删除它们,使我们的模型更简洁。
特定类型的模型具有不同的约简技术。对于决策树,可以使用修剪技术,删除精度改进最小的节点。
另一种方法是查看减少存储模型参数所需的内存。例如,看到模型可以转换为保持可接受精度的定点表示。
根据您的用例,这些策略中的任何一个都可能是合适的。硬件注意事项,网络连接和预算是影响设计决策的关键因素。
这只是嵌入机器学习模型的快速概述。有关为嵌入式设备准备型号的更多信息,请参阅下面的链接。
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。
本网站使用cookie来改善用户体验,个性化内容和广告,并分析网站流量。如果您继续使用本网站,即表示您同意我们使用cookies。请参阅我们的隐私政策了解更多关于cookie和如何更改您的设置。