新聞中心

EEPW首頁 > 設(shè)計應(yīng)用 > Cortex-M:網(wǎng)絡(luò)邊緣的機器學(xué)習(xí)

Cortex-M:網(wǎng)絡(luò)邊緣的機器學(xué)習(xí)

作者:John Leonard 時間:2019-09-25 來源:電子產(chǎn)品世界 收藏

  摘?要:介紹ML,特別是ML如何從云滲透到網(wǎng)絡(luò)的

本文引用地址:http://m.butianyuan.cn/article/201909/405205.htm

  關(guān)鍵詞:;;

1570672987640354.png

  (AI)及其子集(ML)均代表著人類生存的重要發(fā)展里程碑。雖然人們?nèi)匀辉跔幷撘恍┑赖聠栴},但AI和ML所提供的潛在好處實在令人難以抗拒。

  AI是一個非常廣泛的主題(如圖1),在這里詳細介紹ML,特別是ML如何從云滲透到網(wǎng)絡(luò)的。

微信截圖_20191010100302.png

  1 什么是?

  “機器能夠思考嗎?”這個問題促使偉大的科學(xué)家Alan Turing開發(fā)了“圖靈測試(Turing test)”,今天這仍然是回答這個問題的基準。如果機器可以學(xué)習(xí),那么他們在考慮必須證明事項(QED)嗎?這仍然是關(guān)于“思考”定義的諸多爭論的主題。機器需要一個開始學(xué)習(xí)的基礎(chǔ),不過隨著時間的推移,它們正在進行自主學(xué)習(xí)并發(fā)展出更強的理解能力。

  真正引發(fā)ML爆炸的是云計算和大數(shù)據(jù)中幾乎無限的容量和訪問。后端系統(tǒng)可以提供數(shù)據(jù),然后在云服務(wù)器上運行算法。從云,我們可以獲得見解并做出決策。 因此,ML收集數(shù)據(jù),通過基于云的算法和訓(xùn)練集處理數(shù)據(jù),并且采取行動。ML在整個過程中創(chuàng)建新的學(xué)習(xí)路徑,人手操作并非絕對必要。

  ML有4類操作:監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)、半監(jiān)督學(xué)習(xí)和強化學(xué)習(xí)。

  1)監(jiān)督學(xué)習(xí)。監(jiān)督學(xué)習(xí)使用帶有特征和標記的數(shù)據(jù)集,然后在訓(xùn)練過程中將其提供給學(xué)習(xí)算法,其中,ML將會弄清楚所選特征與標簽之間的關(guān)系。而后,人們使用學(xué)習(xí)結(jié)果對新的未標記數(shù)據(jù)進行分類。

  2)無監(jiān)督學(xué)習(xí)。當(dāng)不知道正確答案是什么時,就會發(fā)生無監(jiān)督學(xué)習(xí),因此數(shù)據(jù)集是未經(jīng)標記的。在這種情況下,預(yù)計會找到數(shù)據(jù)本身所表明的自然分組的模式。答案并不明顯。此外,正確答案可能有許多組合,這取決于所考慮的變量。

  3)半監(jiān)督學(xué)習(xí)。對于僅有部分標記的大型數(shù)據(jù)集可以做些什么呢?要么完成標記其余數(shù)據(jù)的過程,要么嘗試使用半監(jiān)督學(xué)習(xí)算法。許多現(xiàn)實世界的機器學(xué)習(xí)問題都屬于這種類型,因為將整個數(shù)據(jù)集進行標記然后進行完全監(jiān)督學(xué)習(xí)的方法通常過于昂貴和耗時。另一方面,可能不一定需要無監(jiān)督學(xué)習(xí)方法。因此,通過結(jié)合這兩種學(xué)習(xí)方法,理論上應(yīng)該可以提供兩全其美的優(yōu)勢。研究表明,同時使用標記和未標記數(shù)據(jù)實際上提供了最佳的學(xué)習(xí)長期結(jié)果。

  4)強化學(xué)習(xí)。強化學(xué)習(xí)是最復(fù)雜的方法,這與人類實際學(xué)習(xí)的方式最相似,這種復(fù)雜的學(xué)習(xí)方式受到博弈論和行為心理學(xué)的啟發(fā)。

  這種學(xué)習(xí)方法通常涉及代理、正在進行操作的機器和解釋器,代理將會暴露于執(zhí)行操作的環(huán)境中,然后,解釋器將根據(jù)該操作的成功與否來獎勵或懲罰代理。

  代理的目標是通過以不同的方式與環(huán)境迭代交互,從而找到最大化獎勵的最佳方式,數(shù)據(jù)科學(xué)家在這種學(xué)習(xí)方法唯一為代理提供的,就是量化績效的方法。

  這種方法已被許多開發(fā)機器人和自動駕駛車輛的企業(yè)所采用。它通常與監(jiān)督學(xué)習(xí)等其他學(xué)習(xí)技術(shù)一起部署,創(chuàng)建一個集合學(xué)習(xí)模型。這是因為很難將強化學(xué)習(xí)應(yīng)用于環(huán)境、行動和規(guī)則變化的場景。

  2 數(shù)據(jù)分組和分類

  所獲取的數(shù)據(jù)需要分類為相關(guān)的對象,二項分類是指數(shù)據(jù)分為兩類中的一類,例如:“在溫度范圍內(nèi)”和“超出溫度范圍”。多級分類則允許多種分類,例如對于溫度分類,它可以讀作:“在范圍內(nèi)”、“關(guān)斷高”、“臨界高”、“高警報”、“低警報”、“臨界低”和“關(guān)斷低”。

  異常檢測是單一類型分類算法,其唯一目標是查找數(shù)據(jù)集中的異常值或出現(xiàn)在正態(tài)分布之外的異常對象。這可用于檢測故障設(shè)備中的奇怪瞬變之類事件。

  3 學(xué)習(xí)模型

  1)線性回歸

  這項技巧長期以來一直是統(tǒng)計學(xué)家的主要工具,而數(shù)據(jù)科學(xué)和統(tǒng)計學(xué)在各個領(lǐng)域都具有很多的相似之處。線性回歸已經(jīng)應(yīng)用于機器學(xué)習(xí),作為在自變量變化時顯示因變量和自變量之間關(guān)系的標準方法。

  學(xué)習(xí)方法:監(jiān)督學(xué)習(xí)(如圖2)。

微信截圖_20191010100319.png

  2)決策樹

  這種算法具有很高的可解釋性,可以很好地處理異常值和缺失觀察結(jié)果??梢詫⒍鄠€決策樹協(xié)同工作以創(chuàng)建稱為合奏樹的模型。合奏樹可以提高預(yù)測準確度,同時在一定程度上減少過度擬合。

  學(xué)習(xí)方法:監(jiān)督學(xué)習(xí)(如圖3)。

微信截圖_20191010100335.png

  3)支持向量機

  支持向量機(SVM)通常用于分類,但也可以轉(zhuǎn)換為回歸算法。通過找到最佳超平面(不同數(shù)據(jù)類型之間的劃分),SVM便可以在分類問題上帶來更高的準確度。為了找到最佳超平面,這個算法將在數(shù)據(jù)類型之間繪制多個超平面。然后,算法將會計算從超平面到最近向量點的距離,通常稱為余量。然后,它會選擇使用產(chǎn)生最大余量的超平面,即最優(yōu)超平面。最后在分類過程中利用最優(yōu)超平面。

  學(xué)習(xí)方法:監(jiān)督學(xué)習(xí)(如圖4)。

微信截圖_20191010100351.png

  4)K-Means聚類算法

  K-Means聚類算法用于查找數(shù)據(jù)點之間的相似性并將它們分類為多個不同的組別,K是組別的數(shù)量。

  學(xué)習(xí)方法:無監(jiān)督學(xué)習(xí)(如圖5)。

微信截圖_20191010100408.png

  5)分層聚類

  分層聚類是沿著分層樹來創(chuàng)建已知數(shù)量的不同大小的重疊群集以形成分類系統(tǒng),這種聚類算法可以通過各種方法來實現(xiàn),最常見的方法是凝聚和分裂。重復(fù)分裂過程,直到獲得所需數(shù)量的群集。

  學(xué)習(xí)方法:無監(jiān)督學(xué)習(xí)。

  6)神經(jīng)網(wǎng)絡(luò)算法

  神經(jīng)網(wǎng)絡(luò)(NN)與機器人和神經(jīng)科學(xué)高度相關(guān),因此,它自然成為最令人興奮的探索算法。神經(jīng)網(wǎng)絡(luò),特別是人工神經(jīng)網(wǎng)絡(luò),由3個層級組成:輸入層、輸出層和一個或多個隱藏層,用于檢測數(shù)據(jù)中的模式,通過在每次處理一組數(shù)據(jù)時為隱藏層內(nèi)的神經(jīng)元分配權(quán)重來實現(xiàn)。

  學(xué)習(xí)方法:無監(jiān)督學(xué)習(xí)(如圖6)。

微信截圖_20191010100428.png

  4 將機器學(xué)習(xí)帶到網(wǎng)絡(luò)邊緣

  那么,我們現(xiàn)在對于ML究竟是什么有了一點基礎(chǔ),這與在遍布各處的數(shù)十億個產(chǎn)品中的小型嵌入式單元里的微控制器(MCU)有什么關(guān)系呢?

  當(dāng)ML科學(xué)以一日千里的速度快速發(fā)展時,其效率也相應(yīng)提高,ML的調(diào)整元素也適用于越來越多用例。那些先前不得不在云完成的工作,現(xiàn)在已有可能在具有1 MB閃存和256 kB RAM的MCU,比如來自Nordic的nRF52840 SoC上完成了。沒有人說應(yīng)當(dāng)在這類空間受限設(shè)備中這么做,但它已被證明是可行的,而一流的無線嵌入式SoC具有更大的處理能力,ML工具和算法更適用于這樣的平臺。這當(dāng)然存在著局限性,nRF52840之類器件永遠無法及得上基于云的系統(tǒng)的絕對優(yōu)勢。但是,它能夠做到在沒有云連接的情況下執(zhí)行實時的本地化的專用機器學(xué)習(xí)。當(dāng)然,它可以與基于云的系統(tǒng)(如Matillion或許多其他系統(tǒng))結(jié)合使用,以提供具有眾多優(yōu)勢的混合ML學(xué)習(xí)方法。

  5 用于嵌入式 MCU的ML工具

  現(xiàn)在有某些工具可以為ML創(chuàng)建學(xué)習(xí)集 。Tensorflow與其相關(guān)的Tensorflow Lite可能是最廣為人知的工具。這款工具是谷歌開發(fā)的,是為ML用途設(shè)計的開源庫框架。谷歌將其用于自己的用途,具有足夠強大的圖像識別功能。工作流程沿襲使用python和程序庫來構(gòu)建模型和訓(xùn)練集的多個階段。而后,Tensorflow將生成在設(shè)備或系統(tǒng)上實施的C++代碼。用戶可從Apache MXNET、Microsoft CNTK和Pytorch獲取其他ML程序庫。

  6 目前發(fā)展?fàn)顩r和未來展望

  迄今為止,ML仍然是一個前沿領(lǐng)域,還有很多的道路要走。但筆者認為,預(yù)計未來數(shù)年我們將看到ML出現(xiàn)在大量的嵌入式系統(tǒng)中,有些是相當(dāng)粗淺的,有些是非常復(fù)雜的。聲音和語音識別應(yīng)用顯然具有吸引力,機器中的音頻識別也是如此。在這些機器應(yīng)用中,可以通過音頻識別發(fā)現(xiàn)軸承或電機可能接近使用壽命,并需要更換。

  就在2019年的Google I/O 2019活動中,Arm和谷歌宣布針對Tensorflow Lite和 μTensor項目建立合作伙伴關(guān)系,這些項目將在Tensorflow Lite Micro Project下進行合并?,F(xiàn)有一個在Arm mbed上使用ML進行關(guān)鍵詞搜索(KWS)的開源項目 [1] ,如果你有興趣,請在這里查看。

  機器學(xué)習(xí)的發(fā)展如日中天,日后我們會繼續(xù)為你更多有關(guān)和Nordic器件之ML應(yīng)用的信息。

  參考文獻

  [1]ML-KWS-for-MCU[EB/OL].https://github.com/ARM-software/ML-KWS-for-MCU/blob/master/Deployment/README.md

  本文來源于科技期刊《電子產(chǎn)品世界》2019年第10期第27頁,歡迎您寫論文時引用,并注明出處。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉