TinyML很強(qiáng)大是因?yàn)樗鼛椭⑿驮O(shè)備基于大量數(shù)據(jù)采集制定決策方法,而不會(huì)浪費(fèi)時(shí)間和精力傳輸數(shù)據(jù)。假設(shè)你正在追蹤非洲大草原的動(dòng)物行為,你想知道獅子在一天中不同時(shí)間咆哮的頻率。
你可以選擇以下方法收集數(shù)據(jù):
?躲在草叢中,用記事本和鉛筆記錄每次聽(tīng)到的吼聲。
?用設(shè)置好的帶電池的錄音機(jī)記錄,每隔幾星期去更換存儲(chǔ)卡。
?通過(guò)數(shù)據(jù)連接(如蜂窩網(wǎng)絡(luò))傳輸音頻。
以上所有方法都有以下缺點(diǎn):
?將人員留在現(xiàn)場(chǎng)是非常昂貴的,同時(shí)還需考慮他們的安全問(wèn)題
?駕車(chē)去收集存儲(chǔ)卡需要耗費(fèi)時(shí)間和錢(qián),而且每隔幾周才可以獲得新數(shù)據(jù)。
?傳輸數(shù)據(jù)會(huì)消耗大量能量和錢(qián),并且大部分地區(qū)的網(wǎng)絡(luò)帶寬也受到限制。這種方法可能會(huì)更快地獲得數(shù)據(jù),但仍需定期開(kāi)車(chē)去更換電池。
除了這些缺點(diǎn)以外,在錄音中數(shù)出獅子的吼聲真的很無(wú)聊,而且還需要花費(fèi)寶貴的資金。訓(xùn)練機(jī)器學(xué)習(xí)模型來(lái)識(shí)別錄音中的獅子吼聲并自動(dòng)計(jì)數(shù)可以減輕這一煩惱。為此需要先收集一組帶標(biāo)簽的數(shù)據(jù)輸入到算法中,然后創(chuàng)建一個(gè)模型來(lái)識(shí)別音頻中的吼叫聲。
這將解決需要花費(fèi)數(shù)小時(shí)收聽(tīng)Savanna音頻的問(wèn)題。但是這樣仍然保留了上述缺點(diǎn)。
在過(guò)去,機(jī)器學(xué)習(xí)模型只能存在于強(qiáng)大的大型硬件上,導(dǎo)致它們大多數(shù)時(shí)候只能在實(shí)驗(yàn)室的服務(wù)器上運(yùn)行。但是近年來(lái)機(jī)器學(xué)習(xí)算法和低功耗硬件已經(jīng)發(fā)展到可以在嵌入式設(shè)備上運(yùn)行復(fù)雜模型的階段。
如果我們采用獅吼計(jì)數(shù)模型應(yīng)用在嵌入式設(shè)備中并部署到野外,我們會(huì)獲得以下優(yōu)勢(shì):
?我們的設(shè)備無(wú)需通過(guò)昂貴的高帶寬網(wǎng)絡(luò)來(lái)發(fā)送記錄到的音頻,而是可以當(dāng)場(chǎng)計(jì)算聽(tīng)到的吼聲數(shù)量,并發(fā)送極低功率的遠(yuǎn)程無(wú)線(xiàn)電,像LoRa那樣。
?獲得咆哮聲的數(shù)量就夠了,所以不需要存儲(chǔ)音頻以及收集存儲(chǔ)卡。
?此設(shè)備很便宜且功耗極低,僅用一個(gè)電池即可運(yùn)行數(shù)年。
?沒(méi)有人需要聽(tīng)100小時(shí)的野生動(dòng)植物混合錄音帶了。
這聽(tīng)起來(lái)是一個(gè)很好的解決方案。我們解決了一些實(shí)際問(wèn)題,并獲得了比以前更便宜更可靠的解決方案。
但是機(jī)器學(xué)習(xí)是一個(gè)令人生畏的主題。它技術(shù)性很強(qiáng)并涉及許多新概念,它也存在很多陷阱,可以很容易地訓(xùn)練一個(gè)看似有用但無(wú)法工作的模型。
更重要的是,在嵌入式設(shè)備上運(yùn)行機(jī)器學(xué)習(xí)代碼非常困難。除了需要了解機(jī)器學(xué)習(xí)和信號(hào)處理算法的知識(shí)外,通常還會(huì)受制于硬件性能的限制,可能要運(yùn)用書(shū)中的所有技巧才能發(fā)揮給定類(lèi)型芯片的全部性能。
當(dāng)我們寫(xiě)《TinyML》這本書(shū)時(shí),我意識(shí)到盡管任何人都可以輕松地開(kāi)始學(xué)習(xí)基于嵌入式設(shè)備的機(jī)器學(xué)習(xí)。但想要構(gòu)建出可用于生產(chǎn)的東西卻會(huì)困難得多。對(duì)于專(zhuān)注解決實(shí)際問(wèn)題的普通工程師來(lái)說(shuō),一天中沒(méi)有足夠的時(shí)間來(lái)學(xué)習(xí)機(jī)器學(xué)習(xí),更不用說(shuō)要為特定的微控制器架構(gòu)優(yōu)化底層ML代碼了。機(jī)器學(xué)習(xí)聽(tīng)起來(lái)是一個(gè)不錯(cuò)的解決方案,但是它需要大量的投入來(lái)學(xué)習(xí)和使用。
這就是為什么我對(duì)Edge Impulse感到非常感興趣的原因(事實(shí)上我因?yàn)樘信d趣而加入了這個(gè)團(tuán)隊(duì))。它是一組用于處理機(jī)器學(xué)習(xí)中繁瑣部分的工具,使開(kāi)發(fā)人員可以專(zhuān)注于他們要解決的問(wèn)題。Edge Impulse讓收集數(shù)據(jù)集,選擇正確的機(jī)器學(xué)習(xí)算法,訓(xùn)練生產(chǎn)級(jí)模型以及測(cè)試的過(guò)程變得容易。然后它將整個(gè)內(nèi)容導(dǎo)出為可以輕松放入項(xiàng)目中的高效,高度優(yōu)化的C ++庫(kù)。
使用Edge Impulse創(chuàng)建咆哮計(jì)數(shù)模型的步驟很簡(jiǎn)單:
1.收集少量音頻數(shù)據(jù),給他們標(biāo)記為“吼”或“非吼”,整個(gè)過(guò)程只需幾分鐘就可以完成。
2.使用Edge Impulse CLI將數(shù)據(jù)上傳到Edge Impulse。
3.按照說(shuō)明訓(xùn)練簡(jiǎn)單模型。
4.添加更多數(shù)據(jù)并調(diào)整模型的設(shè)置直到獲得所需的精準(zhǔn)度。
5.將模型導(dǎo)出為C ++庫(kù),并將其添加到嵌入式項(xiàng)目中去。
整個(gè)過(guò)程可以在幾分鐘內(nèi)完成,你不必親自參觀(guān)非洲大草原。
由于現(xiàn)實(shí)中沒(méi)有獅子,所以本教程訓(xùn)練了一個(gè)可以識(shí)別家庭聲音的模型:即水龍頭發(fā)出的自來(lái)水聲。 要訓(xùn)練的模型大小約為18Kb并且體積小巧,卻可以運(yùn)用在復(fù)雜應(yīng)用的同時(shí)為應(yīng)用程序代碼留出大量空間。
如果你有一個(gè)基于Arm Cortex-M4的STM32 IoT Node Discovery Kit套件開(kāi)發(fā)板,就可以通過(guò)WiFi或串行捕獲自己的數(shù)據(jù)集。如果你沒(méi)有或者正在等待一個(gè)板子,可以下載我從Sunnyvale公寓收集的數(shù)據(jù)集。Edge Impulse構(gòu)建了一個(gè)可以?xún)?nèi)置到任何Cortex-M或Cortex-A設(shè)備中緊湊獨(dú)立的C ++庫(kù)。我們自動(dòng)使用FPU,矢量擴(kuò)展,CMSIS-DSP和CMSIS-NN來(lái)優(yōu)化性能,并最大程度地減少RAM和閃存的使用。
除獅子和水龍頭外,TinyML還有很多不同應(yīng)用。想象一下可以識(shí)別語(yǔ)音命令的微型設(shè)備:當(dāng)機(jī)器出現(xiàn)故障時(shí)進(jìn)行識(shí)別,根據(jù)周?chē)穆曇袅私夥课葜邪l(fā)生的活動(dòng)。它最大的優(yōu)點(diǎn)是借助設(shè)備上的推理功能可以保護(hù)用戶(hù)隱私-無(wú)需將任何音頻發(fā)送到云上。
通過(guò)使用Edge Impulse任何開(kāi)發(fā)人員都可以輕松構(gòu)建ML應(yīng)用程序,Edge Impulse為所有想把驚人想法應(yīng)用在硬件領(lǐng)域的人實(shí)現(xiàn)了夢(mèng)想。我們隨著技術(shù)的發(fā)展不斷改進(jìn)我們的平臺(tái),因此每個(gè)人都將從最新的算法和技術(shù)中受益。
審核編輯:劉清
-
微控制器
+關(guān)注
關(guān)注
48文章
7496瀏覽量
151085 -
RAM
+關(guān)注
關(guān)注
8文章
1367瀏覽量
114541 -
Cortex-M4
+關(guān)注
關(guān)注
6文章
89瀏覽量
46516
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論