什么是机器学习?ML基础介绍

捍卫真理人工智能 2022-07-08 08:55:13 2462阅读 举报

本文旨在为硬件和嵌入式工程师介绍机器学习(ML ),它是什么,如何工作,为什么重要,以及TinyML如何适应。

机器学习是一个无处不在且经常被误解的技术概念。这种实践是一门科学,使用复杂的处理和数学技术使计算机能够找到大量输入和输出数据之间的相关性,几十年来,这种实践一直存在于我们对技术的集体意识中。近年来,由于以下方面的改进,科学得到了迅猛发展:

  • 计算能力
  • 图形处理单元(GPU)架构支持并行处理
  • 面向大规模工作负载的云计算

事实上,这个领域一直如此关注桌面和基于云的应用,以至于许多嵌入式工程师并没有过多考虑ML对他们的影响。在很大程度上,它没有。

然而,随着的出现TinyML或者微型机器学习(在微控制器和单板计算机等受限设备上的机器学习),ML已经与所有类型的工程师相关,包括那些从事嵌入式应用的工程师。除此之外,即使你熟悉TinyML,对机器学习有一个总体的具体理解也是很重要的。

在本文中,我将概述机器学习,它是如何工作的,以及为什么它对嵌入式工程师很重要。

 

什么是机器学习?

作为人工智能(AI)领域的一个子集,机器学习是一门专注于使用数学技术和大规模数据处理来构建可以找到输入和输出数据之间关系的程序的学科。作为一个总括术语,人工智能涵盖了计算机科学的一个广泛领域,专注于使机器能够在没有人类干预的情况下“思考”和行动。它涵盖了一切,从“一般智能”或机器像人一样思考和行动的能力,到专门的、面向任务的智能,这就是ML的范围。

我在过去听过的定义ML的最有力的方法之一是与传统的、在经典计算机编程中使用的算法方法相比较。在经典计算中,工程师向计算机提供输入数据(例如,数字2和4)以及将它们转换为所需输出的算法(例如,将x和y相乘得到z)。当程序运行时,会提供输入,然后应用算法产生输出。这可以在图1中看到。


 

另一方面,ML是向计算机提供一组输入和输出,并要求计算机识别“算法”——或者用ML的说法是模型——每次都将这些输入转化为输出的过程。通常,这需要大量的输入,以确保模型每次都能正确识别正确的输出。

例如,在图2中,如果我向一个ML系统输入数字2和2,并期望输出4,它可能会决定算法总是将这两个数字相加。但是如果我随后提供数字2和4以及预期输出8,模型将从两个示例中了解到正确的方法是将这两个提供的数字相乘。

 

假设我用一个简单的例子来定义一个复杂的领域,你可能会问:为什么要把简单的事情复杂化呢?为什么不坚持我们经典的算法计算方法呢?

答案是,倾向于机器学习的这类问题通常无法通过纯粹的算法方法来表达。没有简单的算法可以给计算机一张照片,并让它判断照片中是猫还是人脸。相反,我们利用ML,给它数以千计的有猫和人脸的图片(作为像素的集合),两者都没有,然后通过学习如何将这些像素和像素组与预期输出相关联来开发模型。当机器看到新数据时,它会根据之前看到的所有例子推断出一个输出。这个过程的这一部分,通常被称为预测或推理,是ML的神奇之处。

听起来很复杂,因为事实就是如此。在嵌入式和物联网(IoT)系统领域,ML越来越多地被用于机器视觉、异常检测和预测性维护等领域。在这些领域中的每一个领域,我们都会收集大量的数据,包括图像和视频、加速度计读数、声音、热量和温度,以便监控设施、环境或机器。然而,我们常常很难将这些数据转化为我们可以采取行动的洞察力。条形图很好,但当我们真正想要的是在机器损坏和离线之前预测机器需要服务的能力时,简单的算法方法就不行了。

 

机器学习开发循环

进入机器学习。在有能力的数据科学家和ML工程师的指导下,流程从数据开始。也就是说,我们的嵌入式系统产生了大量的数据。ML开发过程的第一步是收集数据,并在将数据输入模型之前对其进行标记。标注是一个关键的分类步骤,也是我们将一组输入与预期输出关联起来的方式。

 

ML中的标签和数据收集

例如,一组加速度计x、y和z值可能对应于机器空闲,另一组可能意味着机器运行良好,第三组可能对应于问题。在图3中可以看到一个高级描述。


 

数据收集和标记是一个耗时的过程,但对正确处理至关重要。虽然在ML领域有一些创新,利用预先训练的模型来抵消一些工作和新兴工具,以简化从真实系统收集数据,但这是不可跳过的一步。在没有看到来自该机器或其他类似机器的实际数据的情况下,世界上没有任何一个ML模型能够可靠地告诉你你的机器或设备是否运行良好或即将崩溃。

 

机器学习模型开发、训练、测试、提炼

数据收集之后,接下来的步骤是模型开发、培训、测试和细化。在这个阶段,数据科学家或工程师创建一个程序,该程序吸收大量收集的输入数据,并使用一种或多种方法将其转换为预期的输出。解释这些方法可能会很冗长,但是可以说大多数模型对它们的输入执行一组转换(例如,向量和矩阵乘法)。此外,他们将相互调整每个输入的权重,以便找到一组与预期输出可靠相关的权重和函数。

过程的这个阶段通常是迭代的。工程师将调整模型、使用的工具和方法,以及在模型训练期间运行的迭代次数和其他参数,以构建能够可靠地将输入数据关联到正确输出(也称为标签)的东西。一旦工程师对这种相关性感到满意,他们就使用训练中未使用的输入来测试模型,以查看模型在未知数据上的表现。如果模型在这个新数据上表现不佳,工程师重复循环,如图4所示,并进一步改进模型。

 

一旦模型准备就绪,就可以部署它并根据新数据进行实时预测。在传统的ML中,模型被部署到一个云服务中,这样它就可以被一个正在运行的应用程序调用,该应用程序提供所需的输入并接收来自模型的输出。应用程序可能会提供一张图片,询问是否有人在场,或者一组加速度计读数,并询问模型这组读数是否对应于一台空闲、运行或损坏的机器。

正是在这个过程的这一部分,TinyML变得如此重要,如此具有开创性。

 

那么TinyML适合在哪里呢?

如果还不清楚的话,机器学习是一个数据密集型过程。当您试图通过相关性获得一个模型时,您需要大量的数据来支持该模型。数百张图像或数千个传感器读数。事实上,模型训练的过程是如此的密集,如此的专业,以至于几乎对任何人来说都是一个资源猪中央处理器无论多么强大。相反,ML中常见的向量和矩阵数学运算与图形处理应用程序没有什么不同,这就是GPU成为模型开发如此受欢迎的选择的原因。

鉴于对强大计算的需求,云已经成为事实上卸载训练模型工作并托管它们进行实时预测的地方。虽然模型训练现在是,而且仍然是云的领域,特别是对于嵌入式和物联网应用而言,但我们越是能够将我们的实时预测能力转移到数据捕获的位置,我们的系统就越好。在微控制器上运行模型时,我们获得了内置安全性和低延迟的优势,以及在本地环境中做出决策和采取行动的能力,而无需依赖互联网连接。

这是TinyML的领域,平台公司喜欢边缘脉冲正在为传感器数据收集和ML架构构建基于云的工具,以输出紧凑、高效的模型微控制器单元(MCU)。越来越多的芯片供应商意法半导体Alif半导体公司正在构建具有类似GPU计算能力的芯片,这使它们非常适合与您的传感器一起运行ML工作负载,就在收集数据的地方。

对于嵌入式和物联网工程师来说,现在是探索机器学习世界的最佳时机,从云到最小的设备。我们的系统变得越来越复杂,处理的数据比以往任何时候都多。将ML带到边缘意味着我们可以更快地处理这些数据并做出决策。

版权声明:
作者:捍卫真理
链接:https://www.dianziwang.net/p/1722af41ace199
来源:人工智能
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以点击 “举报”


登录 后发表评论
0条评论
还没有人评论过~