了解機器學習 (ML) 的一個子部分,稱為微型機器學習 (TinyML)、它是什么、它的應用程序、硬件和軟件要求以及它的優勢。
機器學習 (ML) 是一個動態而強大的計算機科學領域,它幾乎滲透到我們與之交互的所有數字事物中,無論是社交媒體、手機、汽車,甚至是家用電器。
盡管如此,ML還是想去很多地方,但很難到達。 這是因為許多最先進的機器學習模型需要大量的計算資源和功耗來執行推理,這是運行 ML
模型并對其輸入數據進行預測的行為。
對高性能計算資源的需求將許多 ML 應用程序限制在云中,在云中,數據中心級別的計算隨時可用。
為了讓 ML 擴大其覆蓋范圍,并在此過程中開啟應用的新時代,我們必須找到在更小、資源更有限的設備上促進 ML
推理的方法。 這種追求導致了被稱為微型機器學習或TinyML的領域(來自 TinyML基金會 這已成為該技術的代名詞)。
什么是Tiny Machine Learning or TinyML?
機器學習本身是一種利用稱為神經網絡的算法(示例如圖 1 所示)來教計算機識別模式的技術。 這被外推到各種應用,包括對象識別和自然語言處理。
圖1. 感知器神經網絡示例的可視化。 圖片來源 羅伯特·凱姆。
另一方面,TinyML可以定義為ML的一個子領域,它追求在廉價且資源和功率受限的設備上啟用ML應用程序。
TinyML的目標是以一種極端的方式將機器學習帶到邊緣,其中電池供電的,基于微控制器的嵌入式設備可以實時響應地執行ML任務。 這項工作是非常多學科的,需要從硬件、軟件、數據科學和機器學習等領域進行優化和最大化。
該領域在很大程度上是 近年來越來越受歡迎 由于作為其基礎的硬件和軟件生態系統的成熟。
TinyML 應用程序
無論您是否意識到這一點,TinyML在某種程度上可能是您日常生活的一部分。
TinyML的應用包括:
關鍵字發現
物體識別和分類
手勢識別
機器監控
TinyML應用程序在日常生活中的一個例子是Google和Android設備內部使用的音頻喚醒詞檢測模型。 喚醒字檢測組件的示例如圖 2 所示。
為了在聽到“OK Google”字樣時“打開”,Android設備使用在DSP上運行的14 kB語音檢測ML模型。 許多其他虛擬助手也是如此。
圖2. 喚醒字應用程序的組件。 圖片由 閆志彤、韓卓偉
其他 哈佛大學學生的TinyML應用示例 包括汽車的公路鹿檢測(物體檢測示例)、基于音頻的蚊子檢測(音頻識別示例)等等。
TinyML 應用程序中使用的硬件
當涉及到硬件方面的事情時,TinyML令人印象深刻,因為它的目標是在一些非常不起眼的硬件上工作。 從某種角度來看,TinyML的真正目標是以盡可能低的功耗執行ML推理。
皮特·沃登被廣泛認為是TinyML之父,在他的 關于該主題的開創性書籍 TinyML應該以 功耗低于 1 mW.這個看似任意的數字的原因是,1 mW
的功耗使設備能夠在標準紐扣電池上運行,其合理壽命為數月至一年。 因此,當您考慮TinyML的電源時,請考慮紐扣電池,小型Li-Po電池和能量收集設備。
從計算的角度來看,TinyML不像大多數ML應用程序那樣依賴于圖形處理單元(GPU),專用集成電路(ASIC)和微處理器。 使用 Arduino
的示例學習套件如圖 3 所示。
圖3. TinyML學習工具包的示例。 圖片由 阿杜伊諾
為了實現1 mW的崇高目標,我們幾乎完全局限于功能較弱的計算硬件,如微控制器(MCU)和數字信號處理器(DSP)。 這些設備通常基于
Cortex-M,預計不會超過幾百 kB 的 RAM、相似數量的閃存和數十 MHz 的時鐘速度。
除此之外,您可能希望在TinyML設備上找到的其他硬件包括傳感器(例如,相機,麥克風)和可能的一些BLE(藍牙低功耗)連接。
TinyML軟件:TensorFlow
在很多方面,TinyML背后的工具和概念背后的軟件是其最重要的功能。
一般來說,TinyML 開發最流行和構建的生態系統是 用于微控制器的TensorFlow Lite (TF Lite Micro)。 TF Lite
Micro 上 TinyML 的通用工作流程如圖 4 所示。
TF Lite Micro 專為資源受限設備上的 ML 任務而設計,MCU 是重點。
TF Lite Micro是一個基于Python的環境,充滿了內置庫和工具包,用于:
數據采集
預處理
模型體系結構
訓練
評估
優化
量化
圖4. TensorFlow Lite Micro 工作流程。 圖片由 索米特拉·賈格代爾
正如我們將在后面的文章中談到的, 量化真的是秘訣
這使得TinyML成為可能。 但簡而言之,量化是一個過程,通過該過程,您可以降低模型權重和偏差的精度(位大小),從而使模型占用更少的內存、運行速度更快、需要更少的功率
- 所有這些都對準確性的影響最小!
使用量化模型,大多數TinyML設備的應用程序都是用C / C++編寫的,以實現最小的開銷。
TinyML的優勢
TinyML的主要優點是它的可移植性。 在具有微型電池和低功耗的廉價微控制器上運行意味著,使用TinyML,人們可以輕松地以便宜的價格將ML集成到幾乎任何東西中。
除此之外,由于計算的本地性質,TinyML還具有提高安全性的好處,即數據不需要發送到云。 在物聯網等應用程序中處理個人數據時,這可能很重要。
通過對TinyML領域的扎實介紹,我們現在可以在下一篇文章中更深入地探討該領域的更多技術方面。
-
控制器
+關注
關注
112文章
16206瀏覽量
177428 -
ML
+關注
關注
0文章
146瀏覽量
34607 -
機器學習
+關注
關注
66文章
8378瀏覽量
132419 -
電池
+關注
關注
84文章
10468瀏覽量
129024
發布評論請先 登錄
相關推薦
評論