天天看點

機器學習之于IOT淺見

版權聲明:本文為半吊子子全棧工匠(wireless_com,同公衆号)原創文章,未經允許不得轉載。 https://blog.csdn.net/wireless_com/article/details/80325785

為了更好地服務于目标客戶, 嵌入式設計團隊也在研究新技術, 如機器學習和深度學習。 深度學習允許這些設計師以有限的資源更快地開發和部署複雜的系統和裝置。 通過這些技術, 設計團隊可以使用資料驅動的方法建立系統或複雜的系統模型。

機器學習和深度學習不是用基于實體的模型來描述系統的行為, 而是從資料推導出系統的模型。當需要處理的資料量相對較小, 而且問題的複雜性較低時, 傳統的機器學習算法是有用的。但是, 如果有更多的資料, 比如無人機, 那麼更大的問題又如何呢? 這個挑戰需要深度學習技術。 這種技術将把我們推向下一個控制設計和物聯網應用的時代。

機器學習在工業資産中的應用

首先, 考慮機器學習技術在工業資産狀态監測中的應用。機器學習将基于條件的監測應用從被動和預防性維護的時代過渡到預測性維護。 這些技術用來檢測異常行為, 診斷問題, 并在某種程度上預測了工業資産的剩餘使用壽命, 比如馬達, 水泵和渦輪機等等。

基于機器學習開發和部署模型的工作流程如圖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:

  1. Veen, Fjodor Van. "The Neural Network Zoo." The Asimov Institute. October 28, 2016. Accessed September 20, 2017. http://www.asimovinstitute.org/neural-network-zoo/.
  2. "Long short-term memory." Wikipedia. August 27, 2017. Accessed September 20, 2017. https://en.wikipedia.org/wiki/Longshort-termmemory.
  3. 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.
  4. "TensorFlow." TensorFlow. Accessed September 20, 2017. https://www.tensorflow.org/.
  5. "Caffe." Caffe | Deep Learning Framework. Accessed September 20, 2017. http://caffe.berkeleyvision.org/.
  6. "Keras: The Python Deep Learning library." Keras Documentation. Accessed September 20, 2017. https://keras.io/.
  7. "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/.
  8. http://www.embedded-computing.com/hardware/machine-learning-now-and-into-the-future

繼續閱讀