導讀:為了更好地服務于目標客戶, 嵌入式設計團隊也在研究新技術, 如機器學習和深度學習。 深度學習允許這些設計師以有限的資源更快地開發(fā)和部署復雜的系統(tǒng)和設備。 通過這些技術, 設計團隊可以使用數(shù)據(jù)驅(qū)動的方法建立系統(tǒng)或復雜的系統(tǒng)模型。
為了更好地服務于目標客戶, 嵌入式設計團隊也在研究新技術, 如機器學習和深度學習。 深度學習允許這些設計師以有限的資源更快地開發(fā)和部署復雜的系統(tǒng)和設備。 通過這些技術, 設計團隊可以使用數(shù)據(jù)驅(qū)動的方法建立系統(tǒng)或復雜的系統(tǒng)模型。
為了更好地服務于目標客戶, 嵌入式設計團隊也在研究新技術, 如機器學習和深度學習。 深度學習允許這些設計師以有限的資源更快地開發(fā)和部署復雜的系統(tǒng)和設備。 通過這些技術, 設計團隊可以使用數(shù)據(jù)驅(qū)動的方法建立系統(tǒng)或復雜的系統(tǒng)模型。
機器學習和深度學習不是用基于物理的模型來描述系統(tǒng)的行為, 而是從數(shù)據(jù)推導出系統(tǒng)的模型。當需要處理的數(shù)據(jù)量相對較小, 而且問題的復雜性較低時, 傳統(tǒng)的機器學習算法是有用的。但是, 如果有更多的數(shù)據(jù), 比如無人機, 那么更大的問題又如何呢? 這個挑戰(zhàn)需要深度學習技術。 這種技術將把我們推向下一個控制設計和物聯(lián)網(wǎng)應用的時代。
機器學習在工業(yè)資產(chǎn)中的應用
首先, 考慮機器學習技術在工業(yè)資產(chǎn)狀態(tài)監(jiān)測中的應用。機器學習將基于條件的監(jiān)測應用從被動和預防性維護的時代過渡到預測性維護。 這些技術用來檢測異常行為, 診斷問題, 并在某種程度上預測了工業(yè)資產(chǎn)的剩余使用壽命, 比如馬達, 水泵和渦輪機等等。
基于機器學習開發(fā)和部署模型的工作流程如圖1所示:

圖1 分析工作流程與機器學習
看看這個流程是如何用來監(jiān)測馬達健康狀況的。數(shù)據(jù)來自于多種類型的傳感器, 如加速度計, 熱電偶和電動機上的電流傳感器等。 特征工程通常由兩部分組成: 特征提取和特征提煉(圖2)。

圖2 特征工程
特征提取是用來從原始數(shù)據(jù)(或波形)中獲取有用信息, 以了解資產(chǎn)的健康狀況。例如, 從電動機發(fā)出的電流信號的頻譜包含了可用于檢測故障的信息, 如圖3所示。 頻譜中不同頻段的平均振幅可以作為從當前信號中提取的特征。 從多個傳感器中提取的特征可能有冗余信息。

圖3 從電機電流信號中提取特征
一種特征提煉的方法是主成分分析(PCA) , 可以用來減少最終用于構(gòu)建模型的特性數(shù)量。、特征數(shù)量的縮減可以減少所使用機器學習模型的復雜性??s減的特征集被表示為向量(或數(shù)組) , 并輸入到模型使用的機器學習算法中。
機器學習的類型
模型創(chuàng)建和驗證是一個迭代過程, 通過這個過程, 可以實驗幾種機器學習算法, 并選擇最適合目標應用的算法。一種非監(jiān)督的機器學習算法, 如高斯混合模型(GMM) , 可以用來模擬電機的正常行為, 并檢測電機何時開始偏離其基線。 非監(jiān)督的方法有利于發(fā)現(xiàn)數(shù)據(jù)中隱藏的模式, 而無需對數(shù)據(jù)進行標記。
雖然非監(jiān)督學習可以用來檢測馬達中的異常, 而監(jiān)督學習則需要檢測異常的原因。 在監(jiān)督學習中, 提出了一對輸入數(shù)據(jù)和所需輸出的算法。這些數(shù)據(jù)被稱為標記數(shù)據(jù)。該算法是將輸入映射到輸出的函數(shù)。用于訓練機器學習算法的數(shù)據(jù)包括在正常和錯誤條件下提取的特征。 這些特特征是用一組標簽來清楚地標識出馬達的狀態(tài)。 支持向量機、 Logit模型和人工神經(jīng)網(wǎng)絡是常用的監(jiān)督式機器學習算法。
對傳統(tǒng)機器學習技術的挑戰(zhàn)是特征提取過程。 這是一個脆弱的過程, 需要領域?qū)<业闹R, 通常是機器學習工作流程中的勝負關鍵。
向深度學習工作流程的邁進
深度學習算法最近越來越流行, 可能是因為它們不再需要特征工程步驟。從傳感器獲得的數(shù)據(jù)(原始測量)可以直接輸入 DL 算法, 如圖4所示。

圖4 深度學習的工作流程
深度學習算法是基于人工神經(jīng)網(wǎng)絡的。人工神經(jīng)網(wǎng)絡算法受到了生物神經(jīng)網(wǎng)絡結(jié)構(gòu)和功能方面的啟發(fā)。這些算法的結(jié)構(gòu)形式是由一組相互連接的計算節(jié)點(人工神經(jīng)元)組成的層次結(jié)構(gòu)。 第一層被稱為輸入層, 它是輸入信號或數(shù)據(jù)的接口。最后一層是輸出層, 這一層中神經(jīng)元輸出最終的預測或結(jié)果。
在輸入和輸出層之間, 有一個或多個隱藏層(圖5)。 一層的輸出通過加權(quán)后連接到下一層的節(jié)點。網(wǎng)絡通過修改這些權(quán)重來學習輸入和輸出之間的映射。通過使用多個隱藏層, 深度學習算法從輸入數(shù)據(jù)中提取特征, 而不需要明確地將特征輸入到算法中。 這被稱為"特征學習"。

圖5 前饋人工神經(jīng)網(wǎng)絡
面向深度學習的系統(tǒng)設計
深度學習最近在軟件應用領域取得了成功, 主要是因為技術部件的成熟, 比如硬件中的計算能力增強, 大量的訓練數(shù)據(jù)被標記, 學習算法和網(wǎng)絡初始化方面的突破, 以及開放源碼軟件框架的可用性。
下面是用深度學習系統(tǒng)的主要考慮因素。
拓撲
深度學習是一個不斷發(fā)展的領域, 目前正在使用許多網(wǎng)絡拓撲[1]。其中一些網(wǎng)絡顯示了對控制和監(jiān)控物聯(lián)網(wǎng)應用的承諾:
深層神經(jīng)網(wǎng)絡(Deep Neural Network, DNN)是一種完全連接的人工神經(jīng)網(wǎng)絡, 具有許多隱藏層(因此深層)。 這些網(wǎng)絡是極好的函數(shù)逼近器, 例如, 可用于電力行業(yè)中電子控制的應用??刂葡到y(tǒng)的仿真模型可用于使用深度網(wǎng)絡構(gòu)建控制器, 并生成訓練數(shù)據(jù)。通過這種方法, 可以探索通常難以使用傳統(tǒng)方法控制的狀態(tài)(邊界/交叉條件)
卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network, 簡稱 CNN)是利用輸入信號的二維結(jié)構(gòu), 如輸入圖像或語音信號。一個卷積網(wǎng)絡由一個或多個卷積層(過濾層)組成, 然后是一個完全連接的多層神經(jīng)網(wǎng)絡。 這些網(wǎng)絡在成像和目標識別中的缺陷檢測等問題上取得了成功。它們也被用于駕駛員援助系統(tǒng)(ADAS)中的場景。
循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network, RNN)是基于利用順序(或歷史)信息進行預測的算法。這些網(wǎng)絡有利于時間序列分析。傳統(tǒng)的神經(jīng)網(wǎng)絡假設所有的輸入(和輸出)在時間或到達的順序上相互獨立。記錄狀態(tài)信息, 存儲過去的信息, 并使用迄今為止計算出來的信息進行下一個預測。 在物聯(lián)網(wǎng)應用中, RNN有利于學習歷史行為, 并用于預測未來的事件, 例如資產(chǎn)的剩余使用壽命。 長短期記憶(LSTM)網(wǎng)絡也適用于這類應用[2]。
深度強化學習(DRL)對于在復雜動態(tài)環(huán)境中運行的自適應控制系統(tǒng)是有好處的。 考慮控制在倉庫操作中部署的機器人, 這些機器人必須動態(tài)地適應新的任務。 以強化學習為基礎的控制者學習一項任務時, 它們通過執(zhí)行一個動作, 使他們更接近目標而獲得的獎勵。例如, 控制器接收來自攝像機的圖像, 該照片顯示了機器人手臂的當前位置, 并利用圖像中的信息來學習如何將手臂移近目標(圖6)[3]。 基于DLC的控制器可以通過機器人模擬器或者通過觀察實際的機器人來訓練。

圖6 機器人控制應用的深度強化學習
訓練
DNN需要大量的訓練數(shù)據(jù), 這些數(shù)據(jù)最好包括來自學習所需要的所有不同狀態(tài)或條件的數(shù)據(jù)。對于大多數(shù)應用而言, 現(xiàn)有數(shù)據(jù)主要來自系統(tǒng)的正常工作狀態(tài), 其中包括從其他狀態(tài)獲取的少量數(shù)據(jù)。
數(shù)據(jù)增強/泛化是一種用來改善數(shù)據(jù)不平衡的技術, 可以從現(xiàn)有的小樣本集開始, 通過數(shù)據(jù)轉(zhuǎn)換創(chuàng)建額外的合成版本,還可以使用該系統(tǒng)的模擬模型來創(chuàng)建訓練數(shù)據(jù)。
另一個挑戰(zhàn)是難以收集訓練這些網(wǎng)絡所需的大量數(shù)據(jù)。轉(zhuǎn)移學習是可以用來緩解這個問題的方法之一。 使用轉(zhuǎn)移學習, 可以從預訓練的神經(jīng)網(wǎng)絡開始(大多數(shù)深度學習框架提供了可以下載的經(jīng)過完全訓練的模型) , 并用應用中的數(shù)據(jù)對其進行微調(diào)。
硬件
訓練深度網(wǎng)絡有著巨大的處理要求。GPU已經(jīng)成為訓練深度網(wǎng)絡的主要選擇。由于計算性能高, 內(nèi)存大, 以及編程工具的選擇, GPU很有吸引力, 幾乎成為訓練的必要條件。
此外, FPGA是部署訓練網(wǎng)絡的良好目標。FPGA提供了更低的延遲, 更好的功率效率,特別是在嵌入式設備上部署這些網(wǎng)絡, 用于與I/O緊密操作的控制系統(tǒng)。
軟件
快速采用和成功的一個原因是成熟軟件框架的可用性。 一些常見的框架有 TensorFlow, Caffe, Keras 和 Computational Network Toolkit (CNTK)[4,5,6,7]。 這些框架支持不同的操作系統(tǒng), 如 Windows 和 Linux, 以及 Python 和 C語言。 大多數(shù)這些框架都有支持或?qū)嵗齺韺嵤┳钚碌纳疃染W(wǎng)絡,也支持GPU的使用。
深度學習: IoT 控制設計的新方向
深度學習是人工智能領域中一個令人興奮的新方向, 也是解決工業(yè)控制設計應用中一個有前途的技術。
快速開始掌握深度學習的方法是下載前面提到的開源框架, 并且用教程示例進行實驗。 從一個類似于應用程序的示例開始, 然后使用轉(zhuǎn)移學習來快速操作。