新聞中心

        EEPW首頁 > 設計應用 > Cortex-M:網絡邊緣的機器學習

        Cortex-M:網絡邊緣的機器學習

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

          摘?要:介紹ML,特別是ML如何從云滲透到網絡的。

        本文引用地址:http://www.104case.com/article/201909/405205.htm

          關鍵詞:;;

        1570672987640354.png

          (AI)及其子集(ML)均代表著人類生存的重要發展里程碑。雖然人們仍然在爭論一些道德問題,但AI和ML所提供的潛在好處實在令人難以抗拒。

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

        微信截圖_20191010100302.png

          1 什么是

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

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

          ML有4類操作:監督學習、無監督學習、半監督學習和強化學習。

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

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

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

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

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

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

          這種方法已被許多開發機器人和自動駕駛車輛的企業所采用。它通常與監督學習等其他學習技術一起部署,創建一個集合學習模型。這是因為很難將強化學習應用于環境、行動和規則變化的場景。

          2 數據分組和分類

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

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

          3 學習模型

          1)線性回歸

          這項技巧長期以來一直是統計學家的主要工具,而數據科學和統計學在各個領域都具有很多的相似之處。線性回歸已經應用于機器學習,作為在自變量變化時顯示因變量和自變量之間關系的標準方法。

          學習方法:監督學習(如圖2)。

        微信截圖_20191010100319.png

          2)決策樹

          這種算法具有很高的可解釋性,可以很好地處理異常值和缺失觀察結果。可以將多個決策樹協同工作以創建稱為合奏樹的模型。合奏樹可以提高預測準確度,同時在一定程度上減少過度擬合。

          學習方法:監督學習(如圖3)。

        微信截圖_20191010100335.png

          3)支持向量機

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

          學習方法:監督學習(如圖4)。

        微信截圖_20191010100351.png

          4)K-Means聚類算法

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

          學習方法:無監督學習(如圖5)。

        微信截圖_20191010100408.png

          5)分層聚類

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

          學習方法:無監督學習。

          6)神經網絡算法

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

          學習方法:無監督學習(如圖6)。

        微信截圖_20191010100428.png

          4 將機器學習帶到網絡邊緣

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

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

          5 用于嵌入式 MCU的ML工具

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

          6 目前發展狀況和未來展望

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

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

          機器學習的發展如日中天,日后我們會繼續為你更多有關和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頁,歡迎您寫論文時引用,并注明出處。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 霸州市| 浠水县| 固原市| 宜川县| 务川| 东乌珠穆沁旗| 灌云县| 东乡| 仁布县| 洛宁县| 凤冈县| 娱乐| 古田县| 德清县| 武穴市| 德庆县| 大邑县| 和硕县| 天水市| 井陉县| 闽侯县| 五寨县| 基隆市| 富源县| 邵阳县| 蚌埠市| 凌源市| 河间市| 江达县| 马鞍山市| 新竹县| 浦县| 文水县| 米林县| 介休市| 资源县| 乌什县| 和顺县| 洪湖市| 新丰县| 民勤县|