“最初,具有所有“无限”功能的云计算似乎消除了对边缘设备具有任何实质性智能的需求。然而,在过去几年中,有一种趋势是在边缘设备中实施人工智能 (AI) 和机器学习(ML),以解决数据传输延迟、隐私和更大的设备自主性等问题。这为在边缘设备中构建嵌入式系统带来了一定的内存要求。本文探讨了适用于边缘设备的某些 ML 方案,以及实现这些设备的非易失性存储器要求。
”作者:Zhi Feng
最初,具有所有“无限”功能的云计算似乎消除了对边缘设备具有任何实质性智能的需求。然而,在过去几年中,有一种趋势是在边缘设备中实施人工智能 (AI) 和机器学习(ML),以解决数据传输延迟、隐私和更大的设备自主性等问题。这为在边缘设备中构建嵌入式系统带来了一定的内存要求。本文探讨了适用于边缘设备的某些 ML 方案,以及实现这些设备的非易失性存储器要求。
为什么在边缘设备上进行机器学习 (ML)
边缘设备是生成 ML 数据的地方。物联网、工业和消费领域的应用从自己的传感器生成大量数据,并且需要能够根据人机界面 (HMI) 的命令做出快速决策。传感器融合技术使在边缘设备上获取数据变得更容易、更快、更准确。HMI使人机交互更加用户友好和自适应。当然,在更接近其来源的 ML 计算引擎中处理数据是有意义的。边缘计算永远不会取代云计算;但是,不必将数据传输到云,可以更快地训练机器,并且可以大大减少与云服务器的连接带宽。
广泛的物联网应用可以从提供本地AI处理中受益。图 1 显示了 SensiML 的图表,其中列出了边缘设备上的 AI 处理示例。
当然,在边缘设备上实施ML肯定会面临挑战。例如,边缘设备可能依赖电池,因此能源预算有限。它们也可能具有有限的计算能力和/或内存空间。然而,现代MCU技术正在边缘设备上实现这一目标。如图2所示,从Barth Development所做的研究中,在过去的几十年里,我们可以看到,虽然MCU功耗保持相对平稳,但晶体管的数量、时钟速度、并行内核的数量都在上升。随着越来越多的高性能、低功耗MCU问世,边缘计算可以帮助构建智能且用户友好的系统。
图2:过去几年的MCU研究(来源:Barth Development)
机器学习的不同方案
一般来说,ML可以分为两大类:监督学习和无监督学习。监督学习是指使用“标记”的数据训练机器,这意味着每个数据样本都包含特征和答案。通过向机器提供这些标记数据,我们正在训练它找到特征和答案之间的相关性。训练后,当我们为机器提供一组新功能时,希望它能得出我们期望的正确答案。例如,可以训练设备在其视频源(即相机)捕获的图像中查找文本和数字。为了以非常简化的方式描述该过程,通过给定可能包含也可能不包含文本和数字的图像以及正确答案(即“标签”)来训练设备。训练后,该设备可以在任何给定的新图像中查找文本和数字。
另一方面,无监督学习是指向机器提供未“标记”的数据的方法,这意味着每组特征都没有答案。无监督学习的目标是从所有这些数据中找到隐藏的信息,无论是对数据集进行聚类,还是找到它们之间的关联。无监督学习的一个例子可能是在生产线末端执行质量控制,从所有其他产品中发现异常产品(即异常检测)。设备没有给出“标签”答案以指示哪些产品异常。通过分析每个产品中的特征,该算法会自动从大多数好产品中识别不良产品,因为设备经过训练以查看它们之间的差异。
在本文中,我们将尝试更深入地介绍可以部署在边缘设备中的监督学习算法。我们将使用一些简单的数学公式来解释两种学习算法之间的差异。
如上所述,监督学习将标记的数据集馈送到正在训练的设备中。假设每个数据集包含许多特征 x1, x2.。.xn.接下来,为每个特征分配一个系数 q,并记下函数。这称为假设函数,hq(十):
hq(x) = q0+ 问1 x1 + 问2 x2+ 问3 x3 。.. + qn xn
训练机器意味着一组适当的q(q0, q1, q2, 。.., qn) 的发现使得假设输出 hq(x)尽可能接近给定的答案(标签)。训练后,当一组新的特征 X (x1, x2, 。.., xn)提出,假设函数将给出基于 q 的最优集的输出。
查找 q 的一种方法是使用梯度下降的线性回归。以下步骤是此方法的简化说明:
1.选择一组初始。..n.然后计算假设和给定答案 Y 之间的差异。这种差异通常称为成本。
2.不断向成本小的方向转变。每次重新计算成本。重复此步骤,直到成本不再降低。
3.如果成本不再降低,我们已经达到了一个最佳集合,为我们提供了所有给定样品的最低成本。
4.现在,如果给出一组新的X,这组可用于预测输出。
梯度下降的名称来自步骤 2 中更改 q 的方法。通过在梯度方向上更新q,该算法保证它将收敛到最佳值。图 3 显示了梯度下降的图形表示,以得到最小成本函数 J(q0, q1)。
图 3:梯度下降中的成本函数 J 与参数集 q 的关系
如果在步骤 2 中对所有给定的数据样本进行成本计算,则该方法称为批量梯度下降。每次更新 q 时,该算法都会计算所有训练数据样本的成本。这种计算方式为如何更改 q 提供了更好的方向。但是,如果给定的训练数据样本集很大,则计算所有样本的成本需要大量的计算能力。此外,系统必须在训练期间存储所有数据样本。
梯度下降的另一种方法是对数据样本的子集执行步骤 2。这种方法称为随机梯度下降。该算法在每次迭代时根据较小的数据样本集更改 q。此方法可能需要更多迭代才能达到最佳 q,但它节省了大量的计算能力和潜在的时间,因为它不需要计算整个数据样本集的成本。
使用随机梯度下降法,用于计算成本的最小样本数为一个。如果 ML 算法在有新的数据样本可用时细化 q,我们可以将此 ML 算法视为基于顺序数据样本的持续行为更新。当每个可用的数据样本进来时,算法会计算新的 q。因此,系统会在每个步骤动态更新假设函数。这种方法也称为在线梯度下降或在线机器学习。
批量梯度下降与在线机器学习
在批量梯度下降和在线机器学习之间,后者具有适用于边缘设备的某些特征。
1.无限数据样本
如前所述,边缘设备通常配备传感器或HMI,可以连续提供无穷无尽的数据样本或人工反馈。因此,在线 ML 算法可以不断从数据变化中学习并改进假设。
2.算力
边缘设备通常具有有限的计算能力。对大量数据样本运行批量梯度下降算法可能不切实际。但是,通过一次计算一个数据样本,就像在在线机器学习中一样,MCU 不必具有巨大的计算能力。
3.非易失性(NV)存储器
批量梯度下降算法要求系统存储整个训练集,这些训练集必须驻留在非易失性存储中,而在线 ML 算法一次计算一个传入的数据样本。在线 ML 算法可能会丢弃数据或仅存储一小部分样本,以节省非易失性存储。这特别适用于非易失性存储器可能受限的边缘设备。
4.适应性
想象一下,在线 ML 算法在边缘设备上执行语音识别。通过新的数据样本不断训练算法,系统可以动态适应特定的用户和/或口音。
边缘设备上 ML 的非易失性内存要求
除了MCU,非易失性存储器是设计进行ML处理的边缘设备的另一个重要因素。嵌入式闪存是一个显而易见的选择,如果MCU为应用软件提供了足够的电子闪存。然而,随着MCU技术节点的不断缩小,电子闪存变得越来越难以集成。简而言之,应用软件的增长超过了可用的电子闪存。在这种情况下,外部独立NV闪存变得必要。考虑到不同类型NV闪存设备提供的可靠性、读取吞吐量和就地执行功能,NOR闪存通常是边缘系统设计人员的首选。
要为 ML 构建安全可靠的边缘设备,需要考虑许多设计因素。以下是其中的一些,可帮助设计人员决定使用哪种NV存储器(参见图4)。
1.安全启动
所有嵌入式系统都必须安全启动。对于边缘设备,安全启动尤其重要,因为靠近人类访问,因此存在潜在安全攻击的风险。通常,对于使用存储下载 (SnD) 代码模型的设备,引导代码存储在非易失性存储器中并下载到 RAM 中执行。如果非易失性存储器不安全,黑客很容易替换或修改启动代码进行恶意操作。因此,将引导代码存储在安全的非易失性存储器中并在引导期间建立信任根是边缘设备非常重要的考虑因素。
2.抗攻击性
鉴于边缘设备的连接性,边缘设备的攻击面无疑是巨大的。即使使用安全启动,黑客也可能试图通过各种攻击方法从设备中窃取智能机密或隐私信息,例如被动监控、主动重放攻击、侧信道攻击等。使用能够抵抗这些攻击的非易失性存储器可以大大降低系统暴露的风险。
3.重要AI参数的安全存储
ML 算法需要参数的内存存储,例如上面提到的参数集。这些参数是使用大量数据样本集运行训练的结果。黑客对AI算法本身可能不感兴趣,但最终结果通常是。如果黑客可以从存储中窃取最终结果,他们可以不经过任何培训即可模仿AI系统。这些参数(例如参数集)直接影响 ML 方案和系统的智能。因此,它们应存储在安全的存储中,黑客不会无意或故意更改。提供这种安全存储能力的非易失性存储器将非常适合具有敏感信息要存储的边缘设备。
4.吞吐量快
尽管边缘设备可能不需要强大的MCU来运行广泛的ML算法,但它们可能仍需要快速访问非易失性存储器,以实现快速安全启动和良好的计算性能。
图 4:使用机器学习的边缘设备需要支持安全启动、抵御恶意攻击、安全存储和快速吞吐量的非易失性存储器,如此处所示的 CypressSemper 安全 NOR 闪存。
在边缘设备中实现智能是一种行业趋势,以便用户数据的处理更接近其来源。许多 AI 应用程序可以部署在构建智能和用户友好系统的边缘设备上。机器学习算法之一,在线机器学习,不需要广泛的计算能力,对变化具有很强的适应性,适用于边缘设备。为了在边缘设备上构建智能且安全的系统,用户可以选择提供信任根功能、安全存储、快速吞吐量和抗恶意攻击的非易失性存储器。
分享到:
猜你喜欢