要说现在最热门的前沿技术,那非人工智能(AI)莫属。而人工智能的核心却是机器学习(ML)。可以说,掌握了机器学习,也就掌握了人工智能技术。
那么,对于工业用户来说,机器学习如何在 工业自动化 中应用呢?
今天,笔者尝试通过一个一般性方法的介绍来谈谈如何将机器学习引入自动化,同时对机器学习的相关概念做一个梳理。
简单理解,机器学习就是通过根据各类算法建立数学模型,然后通过数据不断训练(优化)模型,最后将训练好的模型放到实际应用场景中运行做推理计算,解决用普通数学方法难以解决的实际问题。
将机器学习引入到工业自动化中通常需要三步:收集工业现场数据、建立模型并训练模型、下载到实际应用中运行。听上去是不是很简单?
当然了,实际使用过程并非如此简单,每个环节都会涉及到专业知识和工具。
首先,是数据收集阶段,要通过各类传感器和测试测量工具来采集现场数据,这个环节就会用到我们原先自动化控制中的很多数采产品,利用这些工具将数据采集到本地数据库或者云端存储,以便下一步来建模和训练。
然后,第二步是模型的搭建和训练。这是至关重要的一步,也是目前机器学习中最难、研究最多的一步。这一步首先需要对上一步采集到的数据进行预处理,除去异常值等。然后,提取特征数据确定数学模型,进行学习微调,并进行未知数据的学习模型验证。模型训练完成后,生成导出一个可供自动化控制软件运行的描述文件,通常是XML文件或者ONNX文件。这一步中特征数据的挖掘,也就是提取哪些数据来建模是整个机器学习能否成功的关键,往往需要精通行业知识经验的人才能做到。
在这一步中,搭建模型时往往需要用到第三方框架(平台工具),比如:Python SciKit、MATLAB Machine Learning Toolbox,以及深度学习框架TensorFlow(谷歌)、PyTorch(脸书)、MxNet(亚马逊)、CNTK(微软)、MATLAB Deep Learning Toolbox(Math Works)等,其中大多数是开源的和基于Python的。
当然,除了这些框架外,还有一个重要的事,数学模型的选择和建立。在数学上,可以把万事万物所有问题分为两大问题:回归问题和分类问题。回归问题通常是用来预测一个值,如预测房价、未来的天气情况等。分类问题是用于将事物打上一个标签,通常结果为离散值,如判断一幅图片上的动物是一只猫还是一只狗。解决这两类问题需要用到不同的数学模型,比如常见的有支持向量机(SVM)、神经网络、决策树和随机森林、线性回归、贝叶斯线性回归等,这些模型在框架中是现存的,可以直接使用。
在这里,还需要提到一个知识点,那就是ONNX开放神经网络交换文件,这是一种针对机器学习所设计的开放式文件格式,用于存储训练好的模型。它使得不同的人工智能框架(如Pytorch,MXNet)可以采用相同格式存储模型数据并交互。主要由微软,亚马逊,Facebook和IBM等公司共同开发。
最后,第三步是加载模型到 控制器 里运行。由于模型描述文件并不能被工业控制器所识别,所以就需要用到像倍福TwinCAT3、贝加莱Automation Studio软件这样的自动化控制软件平台作为引擎,将训练好的模型文件加载到控制器,才能在自动化中应用机器学习。
从这么三步来看,似乎机器学习在自动化中应用起来还是挺简单的。当然在实际操作中,特征数据的挖掘提取、模型的建立和训练是最难的两步,好在目前建模工具和算法已经十分丰富和成熟,而且我们领先的几家自动化厂商也在自己的软件中无缝集成了机器学习模型的导入。这样看来,机器学习进入自动化领域已经一路坦途,突破自动化技术发展的“天花板”指日可待了!