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

使用TinyML來預(yù)測與氣壓系統(tǒng)(APS)故障

什么是TinyML?它可以(也不能)用于什么?
通過Edge Impulse開始使用TinyML

評論