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