为了更好地为目标客户服务,嵌入式设计团队今天正在研究新技术,如机器学习(ML)和深度学习(DL)。ML和DL使这些设计人员可以更快,更有限的资源开发和部署复杂的机器和设备。借助这些技术,设计团队可以使用数据驱动方法构建系统或系统的复杂模型。
ML和DL算法不是使用基于物理学的模型来描述系统的行为,而是从数据推断出系统的模型。当要处理的数据量相对较小并且问题的复杂度较低时,传统的ML算法很有用。
但是更多数据的更大问题如自动驾驶汽车呢?这项挑战需要DL技术。这种新兴技术将推动我们进入控制设计和物联网(IoT)应用的下一个时代。
首先,考虑ML技术在工业资产状态监测中的应用。ML帮助将基于状态的监控应用从反应式和预防性维护转变为预测性维护。这些技术被用于检测异常行为,诊断问题,并在一定程度上预测工业资产(如电动机,泵和涡轮机)的剩余使用寿命。
图1显示了基于ML开发和部署模型的工作流程。
图1 分析工作流程与机器学习
看看这个工作流程是如何用来监测电动机的健康状况的。数据是从多种类型的传感器收集的,例如加速度计,热电偶和连接到电机的电流传感器。特征工程步骤通常由两部分组成:特征提取和特征缩减(图2)。
图2 特征工程
特征提取用于从原始数据(或波形)中导出有用信息以了解资产的健康状况。例如,如图3所示,来自电机的电流信号的频谱中嵌入了可用于检测故障的信息。频谱中不同频带上的平均幅度可用作从当前信号。从多个传感器提取的特征可能具有冗余信息。
图3 从电机电流信号中提取特征
可以使用特征缩减方法(如主成分分析(PCA))来减少最终用于构建模型的特征的数量。减少特征的数量会降低要使用的ML模型的复杂性。缩减的特征集表示为向量(或数组),并输入到模型创建步骤中使用的ML算法中。
模型创建和验证是一个迭代过程,通过这个过程,您可以尝试使用几种ML算法,并选择最适合您的应用程序的算法。无监督ML算法(如高斯混合模型(GMM))可用于模拟电机的正常行为,并检测电机何时开始偏离其基线。无监督方法适用于发现数据中的隐藏模式,而不需要标记数据。
鉴于无监督技术可用于检测电机中的异常情况,需要有监督算法来检测异常原因。在监督方法中,该算法用成对的输入数据和期望的输出来呈现。这些数据被称为标记数据。该算法学习将输入映射到输出的函数。用于训练ML算法的数据包括在正常和错误条件下提取的特征。使用表示电机状态的标签清楚标识这些功能。支持向量机(SVM),逻辑回归和人工神经网络通常用于监督ML算法。
传统ML技术面临的挑战是特征提取过程。这是一个脆弱的过程,需要领域专家的知识,而且通常是ML工作流程中的失败点。
DL算法最近获得了普及,因为它们消除了对特征工程步骤的需求。从传感器获取的数据(原始测量数据)可以直接输入到DL算法中,如图4所示。
图4 深度学习的工作流程
DL算法基于人工神经网络。人工神经网络学习算法受生物神经网络的结构和功能方面的启发。这些算法以层组织的计算节点(人造神经元)的互连组的形式构成。第一层被称为输入层,与输入信号或数据接口。最后一层是输出层,该层中的神经元输出最终的预测或决策。
在输入层和输出层之间,有一个或多个隐藏层(图5)。一层的输出通过加权连接连接到下一层的节点。网络通过修改这些权重来学习输入和输出之间的映射。通过使用多个隐藏层,DL算法学习需要从输入数据中提取的特征,而不需要将特征明确地输入到学习算法中。这被称为“特征学习”。
图5 前馈人工神经网络
DL在IoT应用领域取得了最近的成功,主要是因为技术组件时代的到来,比如硬件计算能力更强,标注培训数据的大型库,学习算法和网络初始化的突破以及开源软件框架的可用性。
以下是使用DL技术设计系统的一些主要考虑事项。
深度学习是一个不断发展的领域, 目前正在使用许多网络拓扑[1]。其中一些网络显示了对控制和监控物联网应用的承诺:
深层神经网络(Deep Neural Network, DNN)是一种完全连接的人工神经网络, 具有许多隐藏层(因此深层)。 这些网络是极好的函数逼近器, 例如, 可用于电力行业中电子控制的应用。控制系统的仿真模型可用于使用深度网络构建控制器, 并生成训练数据。通过这种方法, 可以探索通常难以使用传统方法控制的状态(边界/交叉条件)
卷积神经网络(Convolutional Neural Network, 简称 CNN)是利用输入信号的二维结构, 如输入图像或语音信号。一个卷积网络由一个或多个卷积层(过滤层)组成, 然后是一个完全连接的多层神经网络。 这些网络在成像和目标识别中的缺陷检测等问题上取得了成功。它们也被用于驾驶员援助系统(ADAS)中的场景。
循环神经网络(Recurrent Neural Network, RNN)是基于利用顺序(或历史)信息进行预测的算法。这些网络有利于时间序列分析。传统的神经网络假设所有的输入(和输出)在时间或到达的顺序上相互独立。记录状态信息, 存储过去的信息, 并使用迄今为止计算出来的信息进行下一个预测。 在物联网应用中, RNN有利于学习历史行为, 并用于预测未来的事件, 例如资产的剩余使用寿命。 长短期记忆(LSTM)网络也适用于这类应用[2]。
深度强化学习(DRL)对于在复杂动态环境中运行的自适应控制系统是有好处的。 考虑控制在仓库操作中部署的机器人, 这些机器人必须动态地适应新的任务。 以强化学习为基础的控制者学习一项任务时, 它们通过执行一个动作, 使他们更接近目标而获得的奖励。例如, 控制器接收来自摄像机的图像, 该照片显示了机器人手臂的当前位置, 并利用图像中的信息来学习如何将手臂移近目标(图6)[3]。 基于DLC的控制器可以通过机器人模拟器或者通过观察实际的机器人来训练。
图6 机器人控制应用的深度强化学习
DNN需要大量的训练数据, 这些数据最好包括来自学习所需要的所有不同状态或条件的数据。对于大多数应用而言, 现有数据主要来自系统的正常工作状态, 其中包括从其他状态获取的少量数据。
数据增强/泛化是一种用来改善数据不平衡的技术, 可以从现有的小样本集开始, 通过数据转换创建额外的合成版本,还可以使用该系统的模拟模型来创建训练数据。
另一个挑战是难以收集训练这些网络所需的大量数据。转移学习是可以用来缓解这个问题的方法之一。 使用转移学习, 可以从预训练的神经网络开始(大多数深度学习框架提供了可以下载的经过完全训练的模型) , 并用应用中的数据对其进行微调。
训练深度网络有着巨大的处理要求。GPU已经成为训练深度网络的主要选择。由于计算性能高, 内存大, 以及编程工具的选择, GPU很有吸引力, 几乎成为训练的必要条件。
此外, FPGA是部署训练网络的良好目标。FPGA提供了更低的延迟, 更好的功率效率,特别是在嵌入式设备上部署这些网络, 用于与I/O紧密操作的控制系统。
快速采用和成功的一个原因是成熟软件框架的可用性。 一些常见的框架有 TensorFlow, Caffe, Keras 和 Computational Network Toolkit (CNTK)[4,5,6,7]。 这些框架支持不同的操作系统, 如 Windows 和 Linux, 以及 Python 和 C语言。 大多数这些框架都有支持或实例来实施最新的深度网络,也支持GPU的使用。
DL是人工智能领域令人激动的新方向,也是解决工业控制设计应用中下一代问题的有前景的技术。
开始使用DL的一种快速方法是下载前面提到的开源框架之一,并尝试使用教程示例。从与您的应用程序类似的示例开始,并使用转换学习快速运行。