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