机器学习模型现在无处不在。 白天,您可能比您意识到的更多地使用这些模型。 机器学习模型用于社交媒体浏览、拍照和查看天气等常见任务。
机器学习算法可能已向您推荐了此博客。 我们都听说过训练这些模型非常耗时。 我们都听说训练这些模型非常耗时。
然而,对这些模型进行推理通常在计算上是昂贵的。
我们需要足够快的计算机系统来处理我们使用机器学习服务的速度。 因此,这些模型中的大多数都在具有 CPU 和 GPU 集群(在某些情况下甚至是 TPU)的大型数据中心上运行。
当你拍照时,你想要 机器学习 立即改善它。 您不想等待图像被传输到数据中心、处理并返回给您。 在这种情况下,机器学习模型应该在本地执行。
当您说“Hey Siri”或“OK,Google”时,您希望您的小工具立即响应。 等待您的声音被传输到计算机,在那里将对其进行评估并获取数据。
这需要时间并且对用户体验有不利影响。 在这种情况下,您希望机器学习模型也能在本地工作。 这就是 TinyML 的用武之地。
在这篇文章中,我们将研究 TinyML、它是如何工作的、它的用途、如何开始使用它等等。
什么是 微型机器学习?
TinyML 是一门前沿学科,它将机器学习的革命性潜力应用于小型设备和嵌入式系统的性能和功率限制。
在这个行业中成功部署需要对应用程序、算法、硬件和软件有透彻的了解。 它是一种机器学习子类型,在嵌入式系统中使用深度学习和机器学习模型,这些系统采用微控制器、数字信号处理器或其他超低功耗专用处理器。
支持 TinyML 的嵌入式设备旨在为特定作业运行机器学习算法,通常作为设备的一部分 边缘计算.
为了在不充电或更换电池的情况下运行数周、数月甚至数年,这些嵌入式系统的功耗必须低于 1 mW。
我们如何运作?
唯一可以与微控制器和计算机一起使用的机器学习框架是 TensorFlow Lite. 它是一组工具,可让开发人员在移动、嵌入式和边缘设备上运行他们的模型,从而实现机器学习。
微控制器的接口用于从传感器(如麦克风、摄像头或嵌入式传感器)收集数据。
在发送到微控制器之前,数据被整合到基于云的机器学习模型中。 通常采用离线模式的批量训练来训练这些模型。 将用于的传感器数据 学习和推理 已经确定了具体的应用程序。
例如,如果模型正在接受训练以检测唤醒词,则它已经设置为处理来自麦克风的连续音频流。
在 TensorFlow Lite 的情况下,一切都已经在 Google Colab 等云平台的帮助下完成,包括数据集选择、规范化、模型的欠拟合或过拟合、正则化、数据增强、训练、验证和测试。
一个完全训练好的模型在离线批量训练后,最终被转换并传输到微控制器、微型计算机或数字信号处理器。 该模型在移动到嵌入式设备后没有额外的训练。 相反,它仅使用来自传感器或输入设备的实时数据来应用模型。
因此,TinyML 机器学习模型必须非常耐用,并且能够在多年后重新训练或永远不会重新训练。 必须调查所有潜在的模型欠拟合和过拟合,以便模型在较长时间内保持相关性,理想情况下是无限期的。
但为什么要使用 TinyML?
TinyML 最初是为了消除或减少物联网对基本小规模云服务的依赖 机器学习 操作。 这需要在边缘设备本身上使用机器学习模型。 它提供以下主要好处:
- 低功耗 消费:TinyML 应用程序最好使用小于 1 毫瓦的功率。 凭借如此低的功耗,即使由纽扣电池供电,设备也可能会在数月或数年内继续从传感器数据中得出结论。
- 更低的花费:它设计用于在低成本 32 位微控制器或 DSP 上运行。 这些微控制器通常每个只需几美分,用它们开发的整个嵌入式系统不到 50 美元。 对于大规模运行小型机器学习程序来说,这是一个非常划算的选择,在必须应用机器学习的物联网应用中尤其有用。
- 较低的延迟:它的应用程序具有低延迟,因为它们不需要通过网络传输或交换数据。 所有传感器数据都在本地记录,并使用已经训练过的模型得出结论。 推理的结果可能会发送到服务器或云以进行日志记录或其他处理,尽管这对于设备的工作来说并不是必不可少的。 这最大限度地减少了网络延迟,并消除了在云或服务器上执行机器学习操作的需要。
- 隐私政策: 这是互联网和物联网的一个主要问题。 TinyML 应用程序中的机器学习工作在本地执行,无需将传感器/用户数据存储或发送到服务器/云。 因此,即使连接到网络,这些应用程序也可以安全使用并且不会造成隐私风险。
应用领域
- 农业——何时 农民给植物拍照,TensorFlow Lite 的应用程序会检测植物中的疾病。 它适用于任何设备,不需要互联网连接。 该程序保护了农业利益,是农村农民的一项重要要求。
- 机械维修 – TinyML 在低功率设备上使用时,可以持续识别机器中的缺陷。 它需要基于预测的维护。 澳大利亚初创公司 Ping Services 推出了一种物联网小工具,通过将自身连接到涡轮机的外部来监控风力涡轮机。 每当检测到任何可能的问题或故障时,它都会通知当局。
- 医院—— Solar Scare 是一个项目。 Mosquito 使用 TinyML 来阻止登革热和疟疾等疾病的传播。 它由太阳能提供动力,并在向水发出信号以抑制蚊子滋生之前检测蚊子滋生条件。
- 交通监控 – 由 将 TinyML 应用于收集实时交通数据的传感器,我们可以使用它们更好地引导交通并缩短紧急车辆的响应时间。 例如,Swim.AI 在流数据上使用这项技术来提高乘客安全,同时还通过智能路线减少拥堵和排放。
- 法律:TinyML 可用于执法部门,使用机器学习和手势识别来识别暴乱和盗窃等非法行为。 类似的程序也可用于保护银行 ATM。 通过观察用户行为,TinyML 模型可以预测用户是完成交易的真实消费者还是试图入侵或破坏 ATM 的入侵者。
如何开始使用 TinyML?
要开始在 TensorFlow Lite 中使用 TinyML,您需要一个兼容的微控制器板。 TensorFlow Lite for Microcontrollers 支持下列微控制器。
- Wio 终端:ATSAMD51
- Himax WE-I Plus EVB端点AI开发板
- STM32F746 探索套件
- Adafruit EdgeBadge
- Synopsys DesignWare ARC EM 软件开发平台
- 索尼Spresense
- Arduino Nano 33 BLE感应
- 火花边缘
- 适用于微控制器套件的 Adafruit TensorFlow Lite
- Adafruit 电路游乐场 Bluefruit
- 乐鑫 ESP32-DevKitC
- 乐鑫 ESP-EYE
这些是 32 位微控制器,具有足够的闪存、RAM 和时钟频率来执行机器学习模型。 这些板还具有许多板载传感器,能够运行任何嵌入式程序并将机器学习模型应用于目标应用程序。 至 建立机器学习模型,除了硬件平台之外,您还需要一台笔记本电脑或计算机。
每个硬件平台都有自己的编程工具,用于构建、训练和移植机器学习模型,这些工具使用 TensorFlow Lite for Microcontrollers 包。 TensorFlow Lite 可以免费使用和修改,因为它是 开放源码.
要开始使用 TinyML 和 TensorFlow Lite,您只需要上述嵌入式硬件平台之一、一台计算机/笔记本电脑、一根 USB 电缆、一个 USB 转串口转换器——以及使用嵌入式系统练习机器学习的愿望.
挑战
尽管 TinyML 的进展取得了许多积极成果,但机器学习行业仍然面临着相当大的障碍。
- 软件多样性——手工编码、代码生成和 ML 解释器都是在 TinyML 设备上部署模型的选项,每个选项都需要不同的时间和精力。 因此会出现不同的表现。
- 硬件多样性——那里 有几个可用的硬件选项。 TinyML 平台可以是从通用微控制器到尖端神经处理器的任何东西。 这会导致跨不同架构的模型部署出现问题。
- 故障排除/调试 - 何时 ML 模型在云上表现不佳,查看数据并找出问题所在很简单。 当模型分布在数千台 TinyML 设备上时,没有数据流返回云端,调试变得困难,可能需要使用不同的方法。
- 内存限制——传统 智能手机和笔记本电脑等平台需要千兆字节的 RAM,而 TinyML 设备使用千字节或兆字节。 因此,可以部署的模型的大小是有限的。
- 模型训练——虽然 在 TinyML 设备上部署 ML 模型有几个优势,但大部分 ML 模型仍在云端进行训练,以迭代并不断提高模型准确性。
未来
TinyML 具有占地面积小、电池消耗低以及对互联网连接缺乏或有限依赖的特点,在未来具有巨大的潜力,因为大多数窄 人工智能 将在边缘设备或独立的嵌入式小工具上实现。
它将通过利用它们使物联网应用程序更加私密和安全。 尽管 TensorFlow Lite 是目前唯一用于微控制器和微型计算机的机器学习框架,其他类似的框架,如传感器和 ARM 的 CMSIS-NN 正在开发中。
虽然 TensorFlow Lite 是一个正在进行中的开源项目,并在 Google 团队中取得了不错的开端,但它仍然需要社区支持才能进入主流。
结论
TinyML 是一种将嵌入式系统与机器学习相结合的新颖方法。 随着狭窄的人工智能在许多垂直领域和领域达到顶峰,该技术可以成为机器学习和人工智能的一个突出子领域。
它为物联网部门和将机器学习应用于许多特定领域学科的专业人士现在面临的众多挑战提供了解决方案。
利用机器学习的概念 具有小型计算能力的边缘设备 占地面积和功耗有可能显着改变嵌入式系统和机器人技术的构建方式。
发表评论