Cortex-M:網絡邊緣的機器學習
摘?要:介紹ML,特別是ML如何從云滲透到網絡的邊緣。
本文引用地址:http://cafeforensic.com/article/201909/405205.htm人工智能(AI)及其子集機器學習(ML)均代表著人類生存的重要發(fā)展里程碑。雖然人們仍然在爭論一些道德問題,但AI和ML所提供的潛在好處實在令人難以抗拒。
AI是一個非常廣泛的主題(如圖1),在這里詳細介紹ML,特別是ML如何從云滲透到網絡的邊緣。
1 什么是機器學習?
“機器能夠思考嗎?”這個問題促使偉大的科學家Alan Turing開發(fā)了“圖靈測試(Turing test)”,今天這仍然是回答這個問題的基準。如果機器可以學習,那么他們在考慮必須證明事項(QED)嗎?這仍然是關于“思考”定義的諸多爭論的主題。機器需要一個開始學習的基礎,不過隨著時間的推移,它們正在進行自主學習并發(fā)展出更強的理解能力。
真正引發(fā)ML爆炸的是云計算和大數據中幾乎無限的容量和訪問。后端系統(tǒng)可以提供數據,然后在云服務器上運行算法。從云,我們可以獲得見解并做出決策。 因此,ML收集數據,通過基于云的算法和訓練集處理數據,并且采取行動。ML在整個過程中創(chuàng)建新的學習路徑,人手操作并非絕對必要。
ML有4類操作:監(jiān)督學習、無監(jiān)督學習、半監(jiān)督學習和強化學習。
1)監(jiān)督學習。監(jiān)督學習使用帶有特征和標記的數據集,然后在訓練過程中將其提供給學習算法,其中,ML將會弄清楚所選特征與標簽之間的關系。而后,人們使用學習結果對新的未標記數據進行分類。
2)無監(jiān)督學習。當不知道正確答案是什么時,就會發(fā)生無監(jiān)督學習,因此數據集是未經標記的。在這種情況下,預計會找到數據本身所表明的自然分組的模式。答案并不明顯。此外,正確答案可能有許多組合,這取決于所考慮的變量。
3)半監(jiān)督學習。對于僅有部分標記的大型數據集可以做些什么呢?要么完成標記其余數據的過程,要么嘗試使用半監(jiān)督學習算法。許多現實世界的機器學習問題都屬于這種類型,因為將整個數據集進行標記然后進行完全監(jiān)督學習的方法通常過于昂貴和耗時。另一方面,可能不一定需要無監(jiān)督學習方法。因此,通過結合這兩種學習方法,理論上應該可以提供兩全其美的優(yōu)勢。研究表明,同時使用標記和未標記數據實際上提供了最佳的學習長期結果。
4)強化學習。強化學習是最復雜的方法,這與人類實際學習的方式最相似,這種復雜的學習方式受到博弈論和行為心理學的啟發(fā)。
這種學習方法通常涉及代理、正在進行操作的機器和解釋器,代理將會暴露于執(zhí)行操作的環(huán)境中,然后,解釋器將根據該操作的成功與否來獎勵或懲罰代理。
代理的目標是通過以不同的方式與環(huán)境迭代交互,從而找到最大化獎勵的最佳方式,數據科學家在這種學習方法唯一為代理提供的,就是量化績效的方法。
這種方法已被許多開發(fā)機器人和自動駕駛車輛的企業(yè)所采用。它通常與監(jiān)督學習等其他學習技術一起部署,創(chuàng)建一個集合學習模型。這是因為很難將強化學習應用于環(huán)境、行動和規(guī)則變化的場景。
2 數據分組和分類
所獲取的數據需要分類為相關的對象,二項分類是指數據分為兩類中的一類,例如:“在溫度范圍內”和“超出溫度范圍”。多級分類則允許多種分類,例如對于溫度分類,它可以讀作:“在范圍內”、“關斷高”、“臨界高”、“高警報”、“低警報”、“臨界低”和“關斷低”。
異常檢測是單一類型分類算法,其唯一目標是查找數據集中的異常值或出現在正態(tài)分布之外的異常對象。這可用于檢測故障設備中的奇怪瞬變之類事件。
3 學習模型
1)線性回歸
這項技巧長期以來一直是統(tǒng)計學家的主要工具,而數據科學和統(tǒng)計學在各個領域都具有很多的相似之處。線性回歸已經應用于機器學習,作為在自變量變化時顯示因變量和自變量之間關系的標準方法。
學習方法:監(jiān)督學習(如圖2)。
2)決策樹
這種算法具有很高的可解釋性,可以很好地處理異常值和缺失觀察結果。可以將多個決策樹協(xié)同工作以創(chuàng)建稱為合奏樹的模型。合奏樹可以提高預測準確度,同時在一定程度上減少過度擬合。
學習方法:監(jiān)督學習(如圖3)。
3)支持向量機
支持向量機(SVM)通常用于分類,但也可以轉換為回歸算法。通過找到最佳超平面(不同數據類型之間的劃分),SVM便可以在分類問題上帶來更高的準確度。為了找到最佳超平面,這個算法將在數據類型之間繪制多個超平面。然后,算法將會計算從超平面到最近向量點的距離,通常稱為余量。然后,它會選擇使用產生最大余量的超平面,即最優(yōu)超平面。最后在分類過程中利用最優(yōu)超平面。
學習方法:監(jiān)督學習(如圖4)。
4)K-Means聚類算法
K-Means聚類算法用于查找數據點之間的相似性并將它們分類為多個不同的組別,K是組別的數量。
學習方法:無監(jiān)督學習(如圖5)。
5)分層聚類
分層聚類是沿著分層樹來創(chuàng)建已知數量的不同大小的重疊群集以形成分類系統(tǒng),這種聚類算法可以通過各種方法來實現,最常見的方法是凝聚和分裂。重復分裂過程,直到獲得所需數量的群集。
學習方法:無監(jiān)督學習。
6)神經網絡算法
神經網絡(NN)與機器人和神經科學高度相關,因此,它自然成為最令人興奮的探索算法。神經網絡,特別是人工神經網絡,由3個層級組成:輸入層、輸出層和一個或多個隱藏層,用于檢測數據中的模式,通過在每次處理一組數據時為隱藏層內的神經元分配權重來實現。
學習方法:無監(jiān)督學習(如圖6)。
4 將機器學習帶到網絡邊緣
那么,我們現在對于ML究竟是什么有了一點基礎,這與在遍布各處的數十億個產品中的小型嵌入式單元里的微控制器(MCU)有什么關系呢?
當ML科學以一日千里的速度快速發(fā)展時,其效率也相應提高,ML的調整元素也適用于越來越多用例。那些先前不得不在云完成的工作,現在已有可能在具有1 MB閃存和256 kB RAM的MCU,比如來自Nordic的nRF52840 SoC上完成了。沒有人說應當在這類空間受限設備中這么做,但它已被證明是可行的,而一流的無線嵌入式SoC具有更大的處理能力,ML工具和算法更適用于這樣的平臺。這當然存在著局限性,nRF52840之類器件永遠無法及得上基于云的系統(tǒng)的絕對優(yōu)勢。但是,它能夠做到在沒有云連接的情況下執(zhí)行實時的本地化的專用機器學習。當然,它可以與基于云的系統(tǒng)(如Matillion或許多其他系統(tǒng))結合使用,以提供具有眾多優(yōu)勢的混合ML學習方法。
5 用于嵌入式Cortex-M MCU的ML工具
現在有某些工具可以為ML創(chuàng)建學習集 。Tensorflow與其相關的Tensorflow Lite可能是最廣為人知的工具。這款工具是谷歌開發(fā)的,是為ML用途設計的開源庫框架。谷歌將其用于自己的人工智能用途,具有足夠強大的圖像識別功能。工作流程沿襲使用python和程序庫來構建模型和訓練集的多個階段。而后,Tensorflow將生成在設備或系統(tǒng)上實施的C++代碼。用戶可從Apache MXNET、Microsoft CNTK和Pytorch獲取其他ML程序庫。
6 目前發(fā)展狀況和未來展望
迄今為止,ML仍然是一個前沿領域,還有很多的道路要走。但筆者認為,預計未來數年我們將看到ML出現在大量的嵌入式系統(tǒng)中,有些是相當粗淺的,有些是非常復雜的。聲音和語音識別應用顯然具有吸引力,機器中的音頻識別也是如此。在這些機器應用中,可以通過音頻識別發(fā)現軸承或電機可能接近使用壽命,并需要更換。
就在2019年的Google I/O 2019活動中,Arm和谷歌宣布針對Tensorflow Lite和 μTensor項目建立合作伙伴關系,這些項目將在Tensorflow Lite Micro Project下進行合并?,F有一個在Arm mbed上使用ML進行關鍵詞搜索(KWS)的開源項目 [1] ,如果你有興趣,請在這里查看。
機器學習的發(fā)展如日中天,日后我們會繼續(xù)為你更多有關Cortex-M和Nordic器件之ML應用的信息。
參考文獻
[1]ML-KWS-for-MCU[EB/OL].https://github.com/ARM-software/ML-KWS-for-MCU/blob/master/Deployment/README.md
本文來源于科技期刊《電子產品世界》2019年第10期第27頁,歡迎您寫論文時引用,并注明出處。
評論