要說現(xiàn)在最熱門的前沿技術(shù),那非人工智能(AI)莫屬。而人工智能的核心卻是機(jī)器學(xué)習(xí)(ML)??梢哉f,掌握了機(jī)器學(xué)習(xí),你也就掌握了人工智能技術(shù)。
那么,對于工業(yè)用戶來說,如何將機(jī)器學(xué)習(xí)引入到自動化領(lǐng)域,突破傳統(tǒng)自動化技術(shù)發(fā)展的天花板呢?面對人工智能、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)……這些深奧的概念,如何快速了解和掌握呢?
今天,給我5分鐘,我告訴你答案!一文讓您對機(jī)器學(xué)習(xí)的概念、關(guān)鍵技術(shù)、如何應(yīng)用到工業(yè)自動化之中等全部都輕松掌握!
首 先
我們先來看一個,用機(jī)器學(xué)習(xí)進(jìn)行優(yōu)化的一個運動控制案例,以便你對機(jī)器學(xué)習(xí)有一個感性的認(rèn)識。
這是兩個相同的直線加圓弧的傳輸軌道,但我們可以看到,左邊軌道上的工件輸送十分平緩,而右邊軌道上的工件傳輸很不平穩(wěn),加速很急,產(chǎn)品都快要被甩出去了。這不僅對軌道上的工件影響很大,而且軌道自身的磨損也很嚴(yán)重,右邊軌道上工件運動曲線的設(shè)計顯然不如左邊的傳輸軌道。
那如何才能設(shè)計出左邊這樣的運動曲線呢?這里就需要用到機(jī)器學(xué)習(xí),通過對工件多次的速度、加速度、位置等信息的記錄,再經(jīng)過建立數(shù)據(jù)模型,不斷優(yōu)化(訓(xùn)練)模型,最后得出一個最佳的運動曲線。為何要用機(jī)器學(xué)習(xí)來設(shè)計呢,這是因為這樣的運動曲線設(shè)計并沒有現(xiàn)存的曲線(如正圓、橢圓、漸開線等),也不能通過數(shù)學(xué)方程計算出來,所以只有借助機(jī)器學(xué)習(xí)的“算法模型加訓(xùn)練”來求解出來。
看完這個例子,你對機(jī)器學(xué)習(xí)的作用應(yīng)該有了一個初步認(rèn)識。下面我們再來理解幾個常見概念。
人工智能(AI)
能夠模仿人智力的智能,分為弱AI和強(qiáng)AI,目前AI處于弱AI階段。
機(jī)器學(xué)習(xí)(ML)
達(dá)到弱AI的水平,基于可以通過“訓(xùn)練數(shù)據(jù)”學(xué)習(xí)特定任務(wù)的數(shù)學(xué)模型進(jìn)行優(yōu)化。
深度學(xué)習(xí)(DL)
專注于深度神經(jīng)網(wǎng)絡(luò)(DNN)作為模型,需要大量數(shù)據(jù)集進(jìn)行訓(xùn)練的復(fù)雜模型,目前主要用于強(qiáng)大的視覺應(yīng)用。
三者的關(guān)系是從屬關(guān)系,如下圖所示:
簡單理解,機(jī)器學(xué)習(xí)就是通過根據(jù)各類算法建立數(shù)學(xué)模型,然后通過數(shù)據(jù)不斷訓(xùn)練模型,提高模型準(zhǔn)確性,最后將訓(xùn)練好的模型放到實際應(yīng)用場景中運行做推理計算,解決用普通數(shù)學(xué)方法難以解決的實際問題。
所以我們可以總結(jié)一下,將機(jī)器學(xué)習(xí)引入到工業(yè)自動化中,需要三步:收集工業(yè)現(xiàn)場數(shù)據(jù)、建立模型并訓(xùn)練模型、下載到實際應(yīng)用中運行,如下圖所示:
看上去是不是過程很簡單?
當(dāng)然了,實際使用過程并非如此簡單,每個環(huán)節(jié)都會涉及到專業(yè)知識和工具,下面我們就來一一展開介紹一下,讓你不僅入門,而且成為“專家”!
第 /一/ 步 收集工業(yè)現(xiàn)場數(shù)據(jù)
首先,在數(shù)據(jù)收集階段,就是要通過各類傳感器和測試測量工具來采集現(xiàn)場數(shù)據(jù),這個環(huán)節(jié)就會用到我們自動化控制中的很多產(chǎn)品,比如像倍福的TwinCAT3 Scope、TwinCAT3 Database Server、TwinCAT3 Data Agent和TwinCAT3 Analytics Logger等工具,可以利用這些工具將數(shù)據(jù)采集到本地數(shù)據(jù)庫或者云端存儲、呈現(xiàn),以便下一步來建模和訓(xùn)練。
第 /二/ 步 模型的搭建和訓(xùn)練
這一步是至關(guān)重要的一步,也是目前機(jī)器學(xué)習(xí)中最難、研究最多的一步。這一步里首先需要對上一步采集到的數(shù)據(jù)進(jìn)行預(yù)處理,數(shù)據(jù)清洗除去異常值,數(shù)據(jù)轉(zhuǎn)化或者數(shù)據(jù)集成等。然后,選擇特征數(shù)據(jù)確定數(shù)學(xué)模型,進(jìn)行學(xué)習(xí)微調(diào),并進(jìn)行未知數(shù)據(jù)的學(xué)習(xí)模型驗證。模型訓(xùn)練后,生成導(dǎo)出一個可供TwinCAT3等模型運行環(huán)境的描述文件:XML文件或者ONNX文件。這一步中特征數(shù)據(jù)的挖掘,也就是提取哪些數(shù)據(jù)來建模是整個機(jī)器學(xué)習(xí)能否成功的關(guān)鍵,往往需要精通行業(yè)知識經(jīng)驗的人才能做到。
在這一步中,搭建模型時往往需要用到第三方框架(平臺工具),比如:Python SciKit、MATLAB Machine Learning Toolbox,以及深度學(xué)習(xí)框架TensorFlow (谷歌)、Keras (frontend for TensorFlow, CNTK, …)、PyTorch (臉書)、MxNet (亞馬遜)、CNTK (微軟)、MATLAB Deep Learning Toolbox (MathWorks)等,其中大多數(shù)是開源的和基于Python的。
當(dāng)然,除了這些框架外,還有一個重要的事,數(shù)學(xué)模型的選擇和建立。在數(shù)學(xué)上,可以把萬事萬物所有問題分為兩大問題:回歸問題和分類問題?;貧w問題通常是用來預(yù)測一個值,如預(yù)測房價、未來的天氣情況等。分類問題是用于將事物打上一個標(biāo)簽,通常結(jié)果為離散值,如判斷一幅圖片上的動物是一只貓還是一只狗。解決這兩類問題需要用到不同的數(shù)學(xué)模型,比如常見的有支持向量機(jī)(SVM)、神經(jīng)網(wǎng)絡(luò)、決策樹和隨機(jī)森林、線性回歸、貝葉斯線性回歸等,這些模型在框架中是現(xiàn)存的,可以直接使用。
在這里,還需要提到一個知識點,那就是ONNX開放神經(jīng)網(wǎng)絡(luò)交換文件,這是一種針對機(jī)器學(xué)習(xí)所設(shè)計的開放式文件格式,用于存儲訓(xùn)練好的模型。它使得不同的人工智能框架(如Pytorch,MXNet)可以采用相同格式存儲模型數(shù)據(jù)并交互。主要由微軟,亞馬遜 ,F(xiàn)acebook 和 IBM 等公司共同開發(fā)。
第 /三/ 步 加載模型到控制器里運行
說完了模型搭建和模型訓(xùn)練后,最后一步就是將模型加載到工業(yè)電腦或者控制器中運行計算。由于模型描述文件并不能被工業(yè)控制器所識別,所以就需要用到像倍福TwinCAT 3這樣的自動化控制軟件平臺作為引擎,將訓(xùn)練好的模型文件加載到控制器,才能在自動化中應(yīng)用機(jī)器學(xué)習(xí)。
目前、TwinCAT3以及無縫集成了機(jī)器學(xué)習(xí)引擎接口??梢酝ㄟ^機(jī)器學(xué)習(xí)文件轉(zhuǎn)換器(ML Converter)把訓(xùn)練生成的模型文件XML或者ONNX轉(zhuǎn)化成BML(倍福的機(jī)器學(xué)習(xí)文件)進(jìn)行加密保護(hù),經(jīng)過TwinCAT3 的ML Runtime 進(jìn)行加載,這樣已訓(xùn)練好的模型就可以被TwinCAT TcCOM對象進(jìn)行實時調(diào)用執(zhí)行,同時可以被PLC、C/C++ 封裝的TcCOM的接口進(jìn)行調(diào)用!如果神經(jīng)網(wǎng)絡(luò)較小,如權(quán)值大小為10K的多層感知器(MLP)可以在一個亞毫秒的任務(wù)周期中多次調(diào)用,以確保實時性!
同時,TwinCAT 3本身所提供的支持多核技術(shù)也同樣適用于機(jī)器學(xué)習(xí)應(yīng)用,不同的任務(wù)程序可以訪問同一個特定的TwinCAT 3推理引擎而不會相互限制。機(jī)器學(xué)習(xí)應(yīng)用完全可以訪問TwinCAT中所有可用的現(xiàn)場總線接口和數(shù)據(jù),這將使其能夠使用到大量數(shù)據(jù)。
TwinCAT 3現(xiàn)在有兩個機(jī)器學(xué)習(xí)推理引擎,TF380x TC3和TF381x TC3,前者是經(jīng)典機(jī)器學(xué)習(xí)模型的推理引擎,包括支持向量機(jī)(SVM), 主成分分析(PCA), k均值(k-means)等,后者是神經(jīng)網(wǎng)絡(luò)(NN)推理引擎,包括多層感知器(MPL),卷積神經(jīng)網(wǎng)絡(luò)(CNN),長短期記憶模型(LSTM)等。
舉個例子 最優(yōu)運動曲線是如何“機(jī)器學(xué)習(xí)”出來的
看完了上面的一般性方法介紹,下面我們再拿文章開頭的那個傳輸軌道最優(yōu)運動曲線是如何通過機(jī)器學(xué)習(xí)來進(jìn)行優(yōu)化的。
首先,將這個運動曲線優(yōu)化的問題轉(zhuǎn)化為數(shù)學(xué)問題,在一定的時間內(nèi),從pi順時針到pf找到最優(yōu)(最柔和)的運動曲線,運動過程中加速度要盡量小。
1第一步
就是要采集數(shù)據(jù),包括工件的位置、速度、加速度、時間等,把這些數(shù)據(jù)收集存儲起來,以便下一步優(yōu)化。
2第二步
提取步驟一里面的特征數(shù)據(jù)建立模型,用 ??(??) 來作為優(yōu)化準(zhǔn)則,通過神經(jīng)網(wǎng)絡(luò)算法來循環(huán)迭代,監(jiān)督學(xué)習(xí)訓(xùn)練模型。
3第三步
將訓(xùn)練好的模型通過ONNX文件部署到TwinCAT 3里,從而通過控制器實現(xiàn)最優(yōu)的運動曲線。
舉個例子 一個不需要故障數(shù)據(jù)的風(fēng)扇異常檢測
通常,我們通過大數(shù)據(jù)分析來做預(yù)測性維護(hù),需要很多故障數(shù)據(jù),可工業(yè)實際場景中往往沒有太多故障數(shù)據(jù),比如一個風(fēng)機(jī)在開始幾年并不太會有故障,只有到后期才有故障數(shù)據(jù)??墒?,通過機(jī)器學(xué)習(xí)的方法,就可以解決這個問題,在無需故障數(shù)據(jù)的情況做到故障檢測。
比如,要檢測下圖服務(wù)器工作站上的風(fēng)扇是否有異常,就可以通過機(jī)器學(xué)習(xí)來做。
首先,通過TwinCAT 3 Scope來采集大量風(fēng)扇正常情況下的壓力、轉(zhuǎn)速、振動等數(shù)據(jù),然后用MATLAB來讀取這些數(shù)據(jù),使用one-class SVM(一類支持向量機(jī))模型來訓(xùn)練,等模型學(xué)習(xí)了大量正常數(shù)據(jù)后,就會自動產(chǎn)生一個正常數(shù)據(jù)的邊界。最后將模型從MATLAB導(dǎo)出為一個ONNX文件,轉(zhuǎn)換后加載到控制器的TwinCAT 3中。這樣,當(dāng)采集的數(shù)據(jù)超出邊界時,控制器就會檢測到風(fēng)扇發(fā)生了異常狀況。
這個應(yīng)用看上去是十分簡單的,但是這其中最難的一部分是特征數(shù)據(jù)的挖掘和提取,也就是常說的特征工程。至于數(shù)據(jù)的采集、模型的創(chuàng)建、訓(xùn)練,以及最后的控制器上的運行,已經(jīng)有很多現(xiàn)存的工具和平臺,比如MATLAB和倍福的TwinCAT 3。站在這些“巨人”的肩膀上,你只要專注用工業(yè)現(xiàn)場知識和經(jīng)驗,就可以輕松將機(jī)器學(xué)習(xí)這一“高大上”的新技術(shù)引入到工業(yè)自動化之中。
編輯:hfy
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4777瀏覽量
100966 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8428瀏覽量
132850
發(fā)布評論請先 登錄
相關(guān)推薦
評論