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