應(yīng)用

技術(shù)

物聯(lián)網(wǎng)世界 >> 物聯(lián)網(wǎng)新聞 >> 物聯(lián)網(wǎng)熱點(diǎn)新聞
企業(yè)注冊個(gè)人注冊登錄

機(jī)器學(xué)習(xí)之于IOT淺見

2018-07-11 14:20 51CTO

導(dǎo)讀:為了更好地服務(wù)于目標(biāo)客戶, 嵌入式設(shè)計(jì)團(tuán)隊(duì)也在研究新技術(shù), 如機(jī)器學(xué)習(xí)和深度學(xué)習(xí)。 深度學(xué)習(xí)允許這些設(shè)計(jì)師以有限的資源更快地開發(fā)和部署復(fù)雜的系統(tǒng)和設(shè)備。 通過這些技術(shù), 設(shè)計(jì)團(tuán)隊(duì)可以使用數(shù)據(jù)驅(qū)動(dòng)的方法建立系統(tǒng)或復(fù)雜的系統(tǒng)模型。

   為了更好地服務(wù)于目標(biāo)客戶, 嵌入式設(shè)計(jì)團(tuán)隊(duì)也在研究新技術(shù), 如機(jī)器學(xué)習(xí)和深度學(xué)習(xí)。 深度學(xué)習(xí)允許這些設(shè)計(jì)師以有限的資源更快地開發(fā)和部署復(fù)雜的系統(tǒng)和設(shè)備。 通過這些技術(shù), 設(shè)計(jì)團(tuán)隊(duì)可以使用數(shù)據(jù)驅(qū)動(dòng)的方法建立系統(tǒng)或復(fù)雜的系統(tǒng)模型。

  為了更好地服務(wù)于目標(biāo)客戶, 嵌入式設(shè)計(jì)團(tuán)隊(duì)也在研究新技術(shù), 如機(jī)器學(xué)習(xí)和深度學(xué)習(xí)。 深度學(xué)習(xí)允許這些設(shè)計(jì)師以有限的資源更快地開發(fā)和部署復(fù)雜的系統(tǒng)和設(shè)備。 通過這些技術(shù), 設(shè)計(jì)團(tuán)隊(duì)可以使用數(shù)據(jù)驅(qū)動(dòng)的方法建立系統(tǒng)或復(fù)雜的系統(tǒng)模型。

  機(jī)器學(xué)習(xí)和深度學(xué)習(xí)不是用基于物理的模型來描述系統(tǒng)的行為, 而是從數(shù)據(jù)推導(dǎo)出系統(tǒng)的模型。當(dāng)需要處理的數(shù)據(jù)量相對(duì)較小, 而且問題的復(fù)雜性較低時(shí), 傳統(tǒng)的機(jī)器學(xué)習(xí)算法是有用的。但是, 如果有更多的數(shù)據(jù), 比如無人機(jī), 那么更大的問題又如何呢? 這個(gè)挑戰(zhàn)需要深度學(xué)習(xí)技術(shù)。 這種技術(shù)將把我們推向下一個(gè)控制設(shè)計(jì)和物聯(lián)網(wǎng)應(yīng)用的時(shí)代。

  機(jī)器學(xué)習(xí)在工業(yè)資產(chǎn)中的應(yīng)用

  首先, 考慮機(jī)器學(xué)習(xí)技術(shù)在工業(yè)資產(chǎn)狀態(tài)監(jiān)測中的應(yīng)用。機(jī)器學(xué)習(xí)將基于條件的監(jiān)測應(yīng)用從被動(dòng)和預(yù)防性維護(hù)的時(shí)代過渡到預(yù)測性維護(hù)。 這些技術(shù)用來檢測異常行為, 診斷問題, 并在某種程度上預(yù)測了工業(yè)資產(chǎn)的剩余使用壽命, 比如馬達(dá), 水泵和渦輪機(jī)等等。

  基于機(jī)器學(xué)習(xí)開發(fā)和部署模型的工作流程如圖1所示:

  圖1 分析工作流程與機(jī)器學(xué)習(xí)

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

  圖2 特征工程

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

  圖3 從電機(jī)電流信號(hào)中提取特征

  一種特征提煉的方法是主成分分析(PCA) , 可以用來減少最終用于構(gòu)建模型的特性數(shù)量。、特征數(shù)量的縮減可以減少所使用機(jī)器學(xué)習(xí)模型的復(fù)雜性??s減的特征集被表示為向量(或數(shù)組) , 并輸入到模型使用的機(jī)器學(xué)習(xí)算法中。

  機(jī)器學(xué)習(xí)的類型

  模型創(chuàng)建和驗(yàn)證是一個(gè)迭代過程, 通過這個(gè)過程, 可以實(shí)驗(yàn)幾種機(jī)器學(xué)習(xí)算法, 并選擇最適合目標(biāo)應(yīng)用的算法。一種非監(jiān)督的機(jī)器學(xué)習(xí)算法, 如高斯混合模型(GMM) , 可以用來模擬電機(jī)的正常行為, 并檢測電機(jī)何時(shí)開始偏離其基線。 非監(jiān)督的方法有利于發(fā)現(xiàn)數(shù)據(jù)中隱藏的模式, 而無需對(duì)數(shù)據(jù)進(jìn)行標(biāo)記。

  雖然非監(jiān)督學(xué)習(xí)可以用來檢測馬達(dá)中的異常, 而監(jiān)督學(xué)習(xí)則需要檢測異常的原因。 在監(jiān)督學(xué)習(xí)中, 提出了一對(duì)輸入數(shù)據(jù)和所需輸出的算法。這些數(shù)據(jù)被稱為標(biāo)記數(shù)據(jù)。該算法是將輸入映射到輸出的函數(shù)。用于訓(xùn)練機(jī)器學(xué)習(xí)算法的數(shù)據(jù)包括在正常和錯(cuò)誤條件下提取的特征。 這些特特征是用一組標(biāo)簽來清楚地標(biāo)識(shí)出馬達(dá)的狀態(tài)。 支持向量機(jī)、 Logit模型和人工神經(jīng)網(wǎng)絡(luò)是常用的監(jiān)督式機(jī)器學(xué)習(xí)算法。

  對(duì)傳統(tǒng)機(jī)器學(xué)習(xí)技術(shù)的挑戰(zhàn)是特征提取過程。 這是一個(gè)脆弱的過程, 需要領(lǐng)域?qū)<业闹R(shí), 通常是機(jī)器學(xué)習(xí)工作流程中的勝負(fù)關(guān)鍵。

  向深度學(xué)習(xí)工作流程的邁進(jìn)

  深度學(xué)習(xí)算法最近越來越流行, 可能是因?yàn)樗鼈儾辉傩枰卣鞴こ滩襟E。從傳感器獲得的數(shù)據(jù)(原始測量)可以直接輸入 DL 算法, 如圖4所示。

  圖4 深度學(xué)習(xí)的工作流程

  深度學(xué)習(xí)算法是基于人工神經(jīng)網(wǎng)絡(luò)的。人工神經(jīng)網(wǎng)絡(luò)算法受到了生物神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和功能方面的啟發(fā)。這些算法的結(jié)構(gòu)形式是由一組相互連接的計(jì)算節(jié)點(diǎn)(人工神經(jīng)元)組成的層次結(jié)構(gòu)。 第一層被稱為輸入層, 它是輸入信號(hào)或數(shù)據(jù)的接口。最后一層是輸出層, 這一層中神經(jīng)元輸出最終的預(yù)測或結(jié)果。

  在輸入和輸出層之間, 有一個(gè)或多個(gè)隱藏層(圖5)。 一層的輸出通過加權(quán)后連接到下一層的節(jié)點(diǎn)。網(wǎng)絡(luò)通過修改這些權(quán)重來學(xué)習(xí)輸入和輸出之間的映射。通過使用多個(gè)隱藏層, 深度學(xué)習(xí)算法從輸入數(shù)據(jù)中提取特征, 而不需要明確地將特征輸入到算法中。 這被稱為"特征學(xué)習(xí)"。

  圖5 前饋人工神經(jīng)網(wǎng)絡(luò)

  面向深度學(xué)習(xí)的系統(tǒng)設(shè)計(jì)

  深度學(xué)習(xí)最近在軟件應(yīng)用領(lǐng)域取得了成功, 主要是因?yàn)榧夹g(shù)部件的成熟, 比如硬件中的計(jì)算能力增強(qiáng), 大量的訓(xùn)練數(shù)據(jù)被標(biāo)記, 學(xué)習(xí)算法和網(wǎng)絡(luò)初始化方面的突破, 以及開放源碼軟件框架的可用性。

  下面是用深度學(xué)習(xí)系統(tǒng)的主要考慮因素。

  拓?fù)?/strong>

  深度學(xué)習(xí)是一個(gè)不斷發(fā)展的領(lǐng)域, 目前正在使用許多網(wǎng)絡(luò)拓?fù)鋄1]。其中一些網(wǎng)絡(luò)顯示了對(duì)控制和監(jiān)控物聯(lián)網(wǎng)應(yīng)用的承諾:

  深層神經(jīng)網(wǎng)絡(luò)(Deep Neural Network, DNN)是一種完全連接的人工神經(jīng)網(wǎng)絡(luò), 具有許多隱藏層(因此深層)。 這些網(wǎng)絡(luò)是極好的函數(shù)逼近器, 例如, 可用于電力行業(yè)中電子控制的應(yīng)用??刂葡到y(tǒng)的仿真模型可用于使用深度網(wǎng)絡(luò)構(gòu)建控制器, 并生成訓(xùn)練數(shù)據(jù)。通過這種方法, 可以探索通常難以使用傳統(tǒng)方法控制的狀態(tài)(邊界/交叉條件)

  卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, 簡稱 CNN)是利用輸入信號(hào)的二維結(jié)構(gòu), 如輸入圖像或語音信號(hào)。一個(gè)卷積網(wǎng)絡(luò)由一個(gè)或多個(gè)卷積層(過濾層)組成, 然后是一個(gè)完全連接的多層神經(jīng)網(wǎng)絡(luò)。 這些網(wǎng)絡(luò)在成像和目標(biāo)識(shí)別中的缺陷檢測等問題上取得了成功。它們也被用于駕駛員援助系統(tǒng)(ADAS)中的場景。

  循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)是基于利用順序(或歷史)信息進(jìn)行預(yù)測的算法。這些網(wǎng)絡(luò)有利于時(shí)間序列分析。傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)假設(shè)所有的輸入(和輸出)在時(shí)間或到達(dá)的順序上相互獨(dú)立。記錄狀態(tài)信息, 存儲(chǔ)過去的信息, 并使用迄今為止計(jì)算出來的信息進(jìn)行下一個(gè)預(yù)測。 在物聯(lián)網(wǎng)應(yīng)用中, RNN有利于學(xué)習(xí)歷史行為, 并用于預(yù)測未來的事件, 例如資產(chǎn)的剩余使用壽命。 長短期記憶(LSTM)網(wǎng)絡(luò)也適用于這類應(yīng)用[2]。

  深度強(qiáng)化學(xué)習(xí)(DRL)對(duì)于在復(fù)雜動(dòng)態(tài)環(huán)境中運(yùn)行的自適應(yīng)控制系統(tǒng)是有好處的。 考慮控制在倉庫操作中部署的機(jī)器人, 這些機(jī)器人必須動(dòng)態(tài)地適應(yīng)新的任務(wù)。 以強(qiáng)化學(xué)習(xí)為基礎(chǔ)的控制者學(xué)習(xí)一項(xiàng)任務(wù)時(shí), 它們通過執(zhí)行一個(gè)動(dòng)作, 使他們更接近目標(biāo)而獲得的獎(jiǎng)勵(lì)。例如, 控制器接收來自攝像機(jī)的圖像, 該照片顯示了機(jī)器人手臂的當(dāng)前位置, 并利用圖像中的信息來學(xué)習(xí)如何將手臂移近目標(biāo)(圖6)[3]。 基于DLC的控制器可以通過機(jī)器人模擬器或者通過觀察實(shí)際的機(jī)器人來訓(xùn)練。

  圖6 機(jī)器人控制應(yīng)用的深度強(qiáng)化學(xué)習(xí)

  訓(xùn)練

  DNN需要大量的訓(xùn)練數(shù)據(jù), 這些數(shù)據(jù)最好包括來自學(xué)習(xí)所需要的所有不同狀態(tài)或條件的數(shù)據(jù)。對(duì)于大多數(shù)應(yīng)用而言, 現(xiàn)有數(shù)據(jù)主要來自系統(tǒng)的正常工作狀態(tài), 其中包括從其他狀態(tài)獲取的少量數(shù)據(jù)。

  數(shù)據(jù)增強(qiáng)/泛化是一種用來改善數(shù)據(jù)不平衡的技術(shù), 可以從現(xiàn)有的小樣本集開始, 通過數(shù)據(jù)轉(zhuǎn)換創(chuàng)建額外的合成版本,還可以使用該系統(tǒng)的模擬模型來創(chuàng)建訓(xùn)練數(shù)據(jù)。

  另一個(gè)挑戰(zhàn)是難以收集訓(xùn)練這些網(wǎng)絡(luò)所需的大量數(shù)據(jù)。轉(zhuǎn)移學(xué)習(xí)是可以用來緩解這個(gè)問題的方法之一。 使用轉(zhuǎn)移學(xué)習(xí), 可以從預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)開始(大多數(shù)深度學(xué)習(xí)框架提供了可以下載的經(jīng)過完全訓(xùn)練的模型) , 并用應(yīng)用中的數(shù)據(jù)對(duì)其進(jìn)行微調(diào)。

  硬件

  訓(xùn)練深度網(wǎng)絡(luò)有著巨大的處理要求。GPU已經(jīng)成為訓(xùn)練深度網(wǎng)絡(luò)的主要選擇。由于計(jì)算性能高, 內(nèi)存大, 以及編程工具的選擇, GPU很有吸引力, 幾乎成為訓(xùn)練的必要條件。

  此外, FPGA是部署訓(xùn)練網(wǎng)絡(luò)的良好目標(biāo)。FPGA提供了更低的延遲, 更好的功率效率,特別是在嵌入式設(shè)備上部署這些網(wǎng)絡(luò), 用于與I/O緊密操作的控制系統(tǒng)。

  軟件

  快速采用和成功的一個(gè)原因是成熟軟件框架的可用性。 一些常見的框架有 TensorFlow, Caffe, Keras 和 Computational Network Toolkit (CNTK)[4,5,6,7]。 這些框架支持不同的操作系統(tǒng), 如 Windows 和 Linux, 以及 Python 和 C語言。 大多數(shù)這些框架都有支持或?qū)嵗齺韺?shí)施最新的深度網(wǎng)絡(luò),也支持GPU的使用。

  深度學(xué)習(xí): IoT 控制設(shè)計(jì)的新方向

  深度學(xué)習(xí)是人工智能領(lǐng)域中一個(gè)令人興奮的新方向, 也是解決工業(yè)控制設(shè)計(jì)應(yīng)用中一個(gè)有前途的技術(shù)。

  快速開始掌握深度學(xué)習(xí)的方法是下載前面提到的開源框架, 并且用教程示例進(jìn)行實(shí)驗(yàn)。 從一個(gè)類似于應(yīng)用程序的示例開始, 然后使用轉(zhuǎn)移學(xué)習(xí)來快速操作。