機器學習之于IOT淺見
為了更好地服務于目標客戶, 嵌入式設計團隊也在研究新技術, 如機器學習和深度學習。 深度學習允許這些設計師以有限的資源更快地開發和部署復雜的系統和設備。 通過這些技術, 設計團隊可以使用數據驅動的方法建立系統或復雜的系統模型。
機器學習和深度學習不是用基于物理的模型來描述系統的行為, 而是從數據推導出系統的模型。當需要處理的數據量相對較小, 而且問題的復雜性較低時, 傳統的機器學習算法是有用的。但是, 如果有更多的數據, 比如無人機, 那么更大的問題又如何呢? 這個挑戰需要深度學習技術。 這種技術將把我們推向下一個控制設計和物聯網應用的時代。
機器學習在工業資產中的應用
首先, 考慮機器學習技術在工業資產狀態監測中的應用。機器學習將基于條件的監測應用從被動和預防性維護的時代過渡到預測性維護。 這些技術用來檢測異常行為, 診斷問題, 并在某種程度上預測了工業資產的剩余使用壽命, 比如馬達, 水泵和渦輪機等等。
基于機器學習開發和部署模型的工作流程如圖1所示:
圖1 分析工作流程與機器學習
看看這個流程是如何用來監測馬達健康狀況的。數據來自于多種類型的傳感器, 如加速度計, 熱電偶和電動機上的電流傳感器等。 特征工程通常由兩部分組成: 特征提取和特征提煉(圖2)。
圖2 特征工程
特征提取是用來從原始數據(或波形)中獲取有用信息, 以了解資產的健康狀況。例如, 從電動機發出的電流信號的頻譜包含了可用于檢測故障的信息, 如圖3所示。 頻譜中不同頻段的平均振幅可以作為從當前信號中提取的特征。 從多個傳感器中提取的特征可能有冗余信息。
圖3 從電機電流信號中提取特征
一種特征提煉的方法是主成分分析(PCA) , 可以用來減少最終用于構建模型的特性數量。、特征數量的縮減可以減少所使用機器學習模型的復雜性。縮減的特征集被表示為向量(或數組) , 并輸入到模型使用的機器學習算法中。
機器學習的類型
模型創建和驗證是一個迭代過程, 通過這個過程, 可以實驗幾種機器學習算法, 并選擇最適合目標應用的算法。一種非監督的機器學習算法, 如高斯混合模型(GMM) , 可以用來模擬電機的正常行為, 并檢測電機何時開始偏離其基線。 非監督的方法有利于發現數據中隱藏的模式, 而無需對數據進行標記。
雖然非監督學習可以用來檢測馬達中的異常, 而監督學習則需要檢測異常的原因。 在監督學習中, 提出了一對輸入數據和所需輸出的算法。這些數據被稱為標記數據。該算法是將輸入映射到輸出的函數。用于訓練機器學習算法的數據包括在正常和錯誤條件下提取的特征。 這些特特征是用一組標簽來清楚地標識出馬達的狀態。 支持向量機、 Logit模型和人工神經網絡是常用的監督式機器學習算法。
對傳統機器學習技術的挑戰是特征提取過程。 這是一個脆弱的過程, 需要領域專家的知識, 通常是機器學習工作流程中的勝負關鍵。
向深度學習工作流程的邁進
深度學習算法最近越來越流行, 可能是因為它們不再需要特征工程步驟。從傳感器獲得的數據(原始測量)可以直接輸入 DL 算法, 如圖4所示。
圖4 深度學習的工作流程
深度學習算法是基于人工神經網絡的。人工神經網絡算法受到了生物神經網絡結構和功能方面的啟發。這些算法的結構形式是由一組相互連接的計算節點(人工神經元)組成的層次結構。 第一層被稱為輸入層, 它是輸入信號或數據的接口。最后一層是輸出層, 這一層中神經元輸出最終的預測或結果。
在輸入和輸出層之間, 有一個或多個隱藏層(圖5)。 一層的輸出通過加權后連接到下一層的節點。網絡通過修改這些權重來學習輸入和輸出之間的映射。通過使用多個隱藏層, 深度學習算法從輸入數據中提取特征, 而不需要明確地將特征輸入到算法中。 這被稱為"特征學習"。
圖5 前饋人工神經網絡
面向深度學習的系統設計
深度學習最近在軟件應用領域取得了成功, 主要是因為技術部件的成熟, 比如硬件中的計算能力增強, 大量的訓練數據被標記, 學習算法和網絡初始化方面的突破, 以及開放源碼軟件框架的可用性。
下面是用深度學習系統的主要考慮因素。
拓撲
深度學習是一個不斷發展的領域, 目前正在使用許多網絡拓撲[1]。其中一些網絡顯示了對控制和監控物聯網應用的承諾:
- 深層神經網絡(Deep Neural Network, DNN)是一種完全連接的人工神經網絡, 具有許多隱藏層(因此深層)。 這些網絡是極好的函數逼近器, 例如, 可用于電力行業中電子控制的應用。控制系統的仿真模型可用于使用深度網絡構建控制器, 并生成訓練數據。通過這種方法, 可以探索通常難以使用傳統方法控制的狀態(邊界/交叉條件)
- 卷積神經網絡(Convolutional Neural Network, 簡稱 CNN)是利用輸入信號的二維結構, 如輸入圖像或語音信號。一個卷積網絡由一個或多個卷積層(過濾層)組成, 然后是一個完全連接的多層神經網絡。 這些網絡在成像和目標識別中的缺陷檢測等問題上取得了成功。它們也被用于駕駛員援助系統(ADAS)中的場景。
- 循環神經網絡(Recurrent Neural Network, RNN)是基于利用順序(或歷史)信息進行預測的算法。這些網絡有利于時間序列分析。傳統的神經網絡假設所有的輸入(和輸出)在時間或到達的順序上相互獨立。記錄狀態信息, 存儲過去的信息, 并使用迄今為止計算出來的信息進行下一個預測。 在物聯網應用中, RNN有利于學習歷史行為, 并用于預測未來的事件, 例如資產的剩余使用壽命。 長短期記憶(LSTM)網絡也適用于這類應用[2]。
- 深度強化學習(DRL)對于在復雜動態環境中運行的自適應控制系統是有好處的。 考慮控制在倉庫操作中部署的機器人, 這些機器人必須動態地適應新的任務。 以強化學習為基礎的控制者學習一項任務時, 它們通過執行一個動作, 使他們更接近目標而獲得的獎勵。例如, 控制器接收來自攝像機的圖像, 該照片顯示了機器人手臂的當前位置, 并利用圖像中的信息來學習如何將手臂移近目標(圖6)[3]。 基于DLC的控制器可以通過機器人模擬器或者通過觀察實際的機器人來訓練。
圖6 機器人控制應用的深度強化學習
訓練
DNN需要大量的訓練數據, 這些數據最好包括來自學習所需要的所有不同狀態或條件的數據。對于大多數應用而言, 現有數據主要來自系統的正常工作狀態, 其中包括從其他狀態獲取的少量數據。
數據增強/泛化是一種用來改善數據不平衡的技術, 可以從現有的小樣本集開始, 通過數據轉換創建額外的合成版本,還可以使用該系統的模擬模型來創建訓練數據。
另一個挑戰是難以收集訓練這些網絡所需的大量數據。轉移學習是可以用來緩解這個問題的方法之一。 使用轉移學習, 可以從預訓練的神經網絡開始(大多數深度學習框架提供了可以下載的經過完全訓練的模型) , 并用應用中的數據對其進行微調。
硬件
訓練深度網絡有著巨大的處理要求。GPU已經成為訓練深度網絡的主要選擇。由于計算性能高, 內存大, 以及編程工具的選擇, GPU很有吸引力, 幾乎成為訓練的必要條件。
此外, FPGA是部署訓練網絡的良好目標。FPGA提供了更低的延遲, 更好的功率效率,特別是在嵌入式設備上部署這些網絡, 用于與I/O緊密操作的控制系統。
軟件
快速采用和成功的一個原因是成熟軟件框架的可用性。 一些常見的框架有 TensorFlow, Caffe, Keras 和 Computational Network Toolkit (CNTK)[4,5,6,7]。 這些框架支持不同的操作系統, 如 Windows 和 Linux, 以及 Python 和 C語言。 大多數這些框架都有支持或實例來實施最新的深度網絡,也支持GPU的使用。
深度學習: IoT 控制設計的新方向
深度學習是人工智能領域中一個令人興奮的新方向, 也是解決工業控制設計應用中一個有前途的技術。
快速開始掌握深度學習的方法是下載前面提到的開源框架, 并且用教程示例進行實驗。 從一個類似于應用程序的示例開始, 然后使用轉移學習來快速操作。
References:
Veen, Fjodor Van. "The Neural Network Zoo." The Asimov Institute. October 28, 2016. Accessed September 20, 2017. http://www.asimovinstitute.org/neural-network-zoo/.
"Long short-term memory." Wikipedia. August 27, 2017. Accessed September 20, 2017. https://en.wikipedia.org/wiki/Longshort-termmemory.
Zhang, Fangyi, Jürgen Leitner, Michael Milford, Ben Upcroft, and Peter Corke. "Towards Vision-Based Deep Reinforcement Learning for Robotic Motion Control." [1511.03791] Towards Vision-Based Deep Reinforcement Learning for Robotic Motion Control. November 13, 2015. Accessed September 20, 2017. https://arxiv.org/pdf/1511.03791.pdf.
"TensorFlow." TensorFlow. Accessed September 20, 2017. https://www.tensorflow.org/.
"Caffe." Caffe | Deep Learning Framework. Accessed September 20, 2017. http://caffe.berkeleyvision.org/.
"Keras: The Python Deep Learning library." Keras Documentation. Accessed September 20, 2017. https://keras.io/.
"Video: Unlock deeper learning with the new Microsoft Cognitive Toolkit." Microsoft Cognitive Toolkit. Accessed September 20, 2017. https://www.microsoft.com/en-us/cognitive-toolkit/.
http://www.embedded-computing.com/hardware/machine-learning-now-and-into-the-future
【本文來自51CTO專欄作者“老曹”的原創文章,作者微信公眾號:喔家ArchiSelf,id:wrieless-com】