編譯 | bluemin
編輯 | 陳彩嫻
在過去的十年中,由于處理器速度的提高和大數(shù)據(jù)的來臨,我們見證了機(jī)器學(xué)習(xí)算法的規(guī)模呈指數(shù)增長(zhǎng)的過程。
最初,模型很小,可以使用中央處理器(CPU)中的一個(gè)或多個(gè)內(nèi)核在本地計(jì)算機(jī)上運(yùn)行。
不久之后,使用圖形處理單元(GPU)進(jìn)行計(jì)算成為處理大型數(shù)據(jù)集的必要條件,并且由于像谷歌聯(lián)合實(shí)驗(yàn)室的SaaS平臺(tái)和IaaS(例如亞馬遜彈性計(jì)算云系統(tǒng))等云服務(wù)的引入,GPU資源的獲取變得更加容易。此時(shí),算法仍然可以在單機(jī)上運(yùn)行。
近期,我們見證了專業(yè)化的專用集成電路(ASIC)和張量處理單元(TPU)的發(fā)展,性能相當(dāng)于疊加8塊GPU。這些設(shè)備已經(jīng)增強(qiáng)了在多個(gè)系統(tǒng)之間進(jìn)行分布式學(xué)習(xí)的能力,使訓(xùn)練規(guī)模更龐大的模型成為可能。
隨著GPT-3算法于2020年5月發(fā)布,更加印證了這一趨勢(shì)。GPT-3算法號(hào)稱擁有驚人的1750億個(gè)參數(shù)的網(wǎng)絡(luò)結(jié)構(gòu),是人腦中神經(jīng)元數(shù)量的兩倍多(約850億),是有史以來第二大神經(jīng)網(wǎng)絡(luò)——圖靈NLG(于2020年2月發(fā)布,包含約175億個(gè)參數(shù))神經(jīng)元數(shù)目的10倍。一些人估計(jì),訓(xùn)練該模型一次約耗費(fèi)數(shù)百萬美元,耗電量約為3GWh(大約相當(dāng)于3座核電站1小時(shí)的發(fā)電量)。
盡管GPT-3和Turing-NLG的成就可圈可點(diǎn),但自然而然地,這引發(fā)了一些業(yè)內(nèi)人士對(duì)AI行業(yè)日益增長(zhǎng)的能耗的批評(píng),但是這也有助于激發(fā)AI界探索節(jié)能計(jì)算的興趣。而更高效的算法、數(shù)據(jù)表示和計(jì)算,一直是微型機(jī)器學(xué)習(xí)領(lǐng)域的關(guān)注重點(diǎn)。
1
微型機(jī)器學(xué)習(xí)是什么?
微型機(jī)器學(xué)習(xí)(TinyML)是機(jī)器學(xué)習(xí)與嵌入式物聯(lián)網(wǎng)(IoT)設(shè)備的交叉方向。該領(lǐng)域是一門新興的工程學(xué)科,具有革新許多行業(yè)的潛力。
TinyML的主要行業(yè)受益者是邊緣計(jì)算和節(jié)能計(jì)算。TinyML源自物聯(lián)網(wǎng)(IoT)的概念,物聯(lián)網(wǎng)的傳統(tǒng)思想是將數(shù)據(jù)從本地設(shè)備發(fā)送到云端進(jìn)行處理。但有些人對(duì)此概念表示擔(dān)憂,如隱私泄露、消息延遲、數(shù)據(jù)存儲(chǔ)和能源效率等等。
1、能源效率
(通過有線或無線方式)傳輸數(shù)據(jù)非常耗能,比機(jī)載計(jì)算(特別是乘積累加單元)要高大約一個(gè)數(shù)量級(jí)。開發(fā)能夠自己進(jìn)行數(shù)據(jù)處理的物聯(lián)網(wǎng)系統(tǒng)是最節(jié)能的方法。 人工智能的先驅(qū)們已經(jīng)討論了“以數(shù)據(jù)為中心”的計(jì)算思想(相對(duì)于云模型的“以計(jì)算為中心”的思想),現(xiàn)在我們開始看到它正在發(fā)揮作用。
2、隱私泄露
傳輸數(shù)據(jù)可能會(huì)導(dǎo)致隱私泄露。 此類數(shù)據(jù)可能被惡意行為者攔截,并且當(dāng)存儲(chǔ)在單個(gè)位置(例如云端)時(shí),其固有的安全性會(huì)降低。通過將數(shù)據(jù)主要保留在設(shè)備上并最大程度地減少通信,可以提高數(shù)據(jù)安全性以及保護(hù)隱私信息。
3、數(shù)據(jù)存儲(chǔ)
對(duì)于許多物聯(lián)網(wǎng)設(shè)備而言,它們獲取的數(shù)據(jù)毫無價(jià)值。想象一下,一個(gè)安保攝像頭24小時(shí)記錄著一棟大廈的入口情況。在這一天的大部分時(shí)間里,攝像機(jī)鏡頭沒有派上用場(chǎng),因?yàn)榇髲B內(nèi)外一切正常。 通過設(shè)立僅在必要時(shí)才激活的更智能化的系統(tǒng),會(huì)降低存儲(chǔ)容量需求,并減少了傳輸?shù)皆贫怂璧臄?shù)據(jù)量。
4、消息延遲
對(duì)于標(biāo)準(zhǔn)物聯(lián)網(wǎng)設(shè)備,這些設(shè)備將數(shù)據(jù)傳輸?shù)皆浦羞M(jìn)行處理,然后根據(jù)算法的輸出返回響應(yīng)。從這個(gè)意義上講,該設(shè)備只是通向云模型的便捷網(wǎng)關(guān)。這樣的設(shè)備非常笨拙,輸出結(jié)果的快慢完全取決于互聯(lián)網(wǎng)的速度。如果你的網(wǎng)速很慢,設(shè)備的速度也會(huì)變慢。對(duì)于具有機(jī)載自動(dòng)語音識(shí)別功能的智能物聯(lián)網(wǎng)設(shè)備,由于減少了(如果不是沒有)對(duì)外部通信的依賴性,可以降低延遲。
這些問題催生了邊緣計(jì)算的發(fā)展,即在邊緣設(shè)備(云的“邊緣”設(shè)備)上執(zhí)行處理工作的想法。這些設(shè)備在內(nèi)存空間、計(jì)算能力和功耗方面都受到資源的高度限制,從而激發(fā)相關(guān)工作者開發(fā)更高效的算法、數(shù)據(jù)結(jié)構(gòu)以及計(jì)算方法。
這種改進(jìn)也適用于較大的模型,在不影響模型精度的前提下,將機(jī)器學(xué)習(xí)模型的效率提高幾個(gè)數(shù)量級(jí)。例如,Microsoft開發(fā)的Bonsai算法可以小到2 KB,但比典型的40 MB kNN算法或4 MB神經(jīng)網(wǎng)絡(luò)具有更好的性能。這個(gè)結(jié)果聽起來可能微不足道,但是模型的規(guī)模縮減到萬分之一時(shí),與縮減前的精度依然保持相同,著實(shí)令人嘆為觀止。 如此小的模型可以在具有2 KB RAM的Arduino Uno上運(yùn)行——簡(jiǎn)而言之,你現(xiàn)在可以利用5美元的微控制器構(gòu)建上述機(jī)器學(xué)習(xí)模型。
機(jī)器學(xué)習(xí)現(xiàn)在正處于兩種計(jì)算范式之間的分岔路口:以算力為中心的計(jì)算和以數(shù)據(jù)為中心的計(jì)算。在以算力為中心的范式中,由數(shù)據(jù)中心的實(shí)例對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)和分析;而在以數(shù)據(jù)為中心的范式中,處理是在數(shù)據(jù)源本地完成的。盡管我們似乎正在迅速邁向以算力為中心的范式上限,但是以數(shù)據(jù)為中心的范式的工作才剛剛開始。
物聯(lián)網(wǎng)設(shè)備和嵌入式機(jī)器學(xué)習(xí)模型在現(xiàn)代世界中變得比比皆是(預(yù)計(jì)到2020年底,活躍設(shè)備將超過200億臺(tái))。其中許多設(shè)備你甚至可能都沒有注意到。智能門鈴、智能恒溫器、智能手機(jī),只要你說幾句話甚至“拿起手機(jī)”就可以“喚醒”。
圖注:云服務(wù)“金字塔”(圖片來源:eBizSolutions)
2
TinyML實(shí)例
先前,復(fù)雜電路是設(shè)備執(zhí)行各種命令所必需的?,F(xiàn)在,機(jī)器學(xué)習(xí)使此類硬件“智能”抽象成軟件的可能性越來越大,使得嵌入式設(shè)備變得越來越簡(jiǎn)單、輕巧和靈活。
使用嵌入式設(shè)備進(jìn)行機(jī)器學(xué)習(xí)所帶來的挑戰(zhàn)是相當(dāng)大的,但是在這方面也已經(jīng)取得了很大的進(jìn)展。在微控制器上部署神經(jīng)網(wǎng)絡(luò)的關(guān)鍵挑戰(zhàn)是如何實(shí)現(xiàn)低內(nèi)存占用率,以及利用有限的功率和算力資源訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型。
TinyML最顯而易見的應(yīng)用實(shí)例也許就是智能手機(jī)。這些設(shè)備會(huì)持續(xù)積極地聆聽“喚醒詞”,例如Android智能手機(jī)的“ Hey Google”或iPhone的“ Hey Siri”。利用智能手機(jī)的主中央處理器(CPU)運(yùn)行程序?qū)崿F(xiàn)上述功能,對(duì)于現(xiàn)代iPhone來說,其主處理器頻率為1.85 GHz,將在短短幾個(gè)小時(shí)內(nèi)耗盡電量。即使對(duì)于大多數(shù)人一天最多使用幾次的應(yīng)用程序來說,這種耗電速度也難以接受。
為了解決這個(gè)問題,開發(fā)人員創(chuàng)建了專用的低功耗硬件,該硬件可以用小電池(例如CR2032環(huán)形“紐扣”電池)供電。
這些功能使電路即使在CPU未運(yùn)行時(shí)(基本上在屏幕不亮?xí)r)也保持運(yùn)行狀態(tài)。這些電路消耗的功率僅為1毫瓦,使用標(biāo)準(zhǔn)的CR2032電池可供電長(zhǎng)達(dá)一年。
看起來好像不太可能,但考慮如何節(jié)能確實(shí)迫在眉睫。能量是許多電子設(shè)備的限制因素。任何需要市電的設(shè)備都被限制在有線路的地方,當(dāng)同一位置有十幾個(gè)設(shè)備運(yùn)轉(zhuǎn)時(shí),供電系統(tǒng)可能會(huì)很快不堪重負(fù)。市電也效率低下且價(jià)格昂貴。將電源電壓(在美國(guó)約為120v)轉(zhuǎn)換為典型的電路電壓范圍(通常約為5 V)會(huì)浪費(fèi)大量能量。任何有筆記本電腦充電器的人在拔掉充電器插頭時(shí)都可能知道這一點(diǎn)。充電器內(nèi)變壓器的熱量在電壓轉(zhuǎn)換過程中被浪費(fèi)掉了。
即使是帶電池的設(shè)備,由于電池壽命也很有限,因此需要頻繁對(duì)接。許多消費(fèi)類設(shè)備的設(shè)計(jì)使得電池僅能維持一個(gè)工作日。TinyML設(shè)備可以用硬幣大小的電池持續(xù)工作一年,這意味著可以把它們置于遠(yuǎn)程環(huán)境中,只在必要時(shí)進(jìn)行通信,從而節(jié)省能源。
喚醒詞并不是我們看到的唯一無縫嵌入智能手機(jī)中的TinyML。加速計(jì)數(shù)據(jù)用于確定是否有人剛剛拿起手機(jī),這會(huì)喚醒CPU并打開屏幕。
顯然,這些并不是TinyML唯一可能的應(yīng)用場(chǎng)景。事實(shí)上,TinyML為企業(yè)和愛好者提供了許多扣人心弦的機(jī)會(huì),可借此生產(chǎn)更智能的物聯(lián)網(wǎng)設(shè)備。當(dāng)今世界,數(shù)據(jù)的重要性日益凸顯,將機(jī)器學(xué)習(xí)資源分配到偏遠(yuǎn)地區(qū)內(nèi)存受限的設(shè)備上,可能會(huì)對(duì)農(nóng)業(yè)、天氣預(yù)報(bào)或地震學(xué)等數(shù)據(jù)密集型行業(yè)的發(fā)展大有裨益。
毫無疑問,賦予邊緣設(shè)備執(zhí)行數(shù)據(jù)驅(qū)動(dòng)處理的能力,將引發(fā)工業(yè)過程的范式轉(zhuǎn)變。例如,監(jiān)測(cè)作物生長(zhǎng)過程的設(shè)備在監(jiān)測(cè)到土壤濕度、特定氣體(例如,蘋果成熟時(shí)釋放出乙烷)或特定大氣條件(如大風(fēng)、低溫或高濕度)等異常特征信息時(shí),適時(shí)發(fā)送“求助”信息,將極大地促進(jìn)作物生長(zhǎng),從而提高作物產(chǎn)量。
另一個(gè)示例是裝有攝像頭智能門鈴,該攝像頭可以通過面部識(shí)別確定哪些人在場(chǎng)。這可以用于安防,或者甚至只是當(dāng)有人在場(chǎng)時(shí),門鈴上的攝像機(jī)信號(hào)會(huì)傳輸?shù)椒课堇锏碾娨暽?,這樣居民們就知道誰在門口。
目前,TinyML的兩個(gè)主要關(guān)注領(lǐng)域如下:
1、關(guān)鍵詞識(shí)別
大多數(shù)人對(duì)這個(gè)應(yīng)用程序了如指掌。“Hey Siri”和“Hey Google”是關(guān)鍵字的示例(通常與“熱詞”或“喚醒詞”同義)。這類設(shè)備連續(xù)收聽來自麥克風(fēng)的音頻輸入,并被訓(xùn)練成只對(duì)特定的聲音序列做出響應(yīng),這些聲音序列與所學(xué)的關(guān)鍵詞相對(duì)應(yīng)。這些設(shè)備比自動(dòng)語音識(shí)別(ASR)應(yīng)用程序更簡(jiǎn)單,并且相應(yīng)地占用了更少的資源。某些設(shè)備(例如Google智能手機(jī))利用級(jí)聯(lián)架構(gòu)來提供揚(yáng)聲器驗(yàn)證以確保安全性。
2、視覺喚醒詞
視覺喚醒詞是一種基于圖像的喚醒詞的類比。將其視為圖像的二進(jìn)制分類,以表示存在或不存在。例如,智能照明系統(tǒng)可以被設(shè)計(jì)成當(dāng)它檢測(cè)到人的存在時(shí)開啟,當(dāng)人們離開時(shí)關(guān)閉。類似地,野生動(dòng)物攝影師可以利用智能系統(tǒng)在特定動(dòng)物出現(xiàn)時(shí)拍照,而當(dāng)他們監(jiān)測(cè)到人類時(shí),可以使用安全攝像機(jī)拍攝照片。下圖更廣泛地概述了TinyML在當(dāng)前機(jī)器學(xué)習(xí)中的用例。
圖注:TinyML的機(jī)器學(xué)習(xí)用例(圖片來源:NXP)
3
TinyML如何運(yùn)作?
TinyML算法的工作原理與傳統(tǒng)的機(jī)器學(xué)習(xí)模型非常相似。通常情況下,在用戶的計(jì)算機(jī)上或云端訓(xùn)練模型。后訓(xùn)練是真正的TinyML工作的開始,這個(gè)過程通常被稱為“深度壓縮”。
圖注:深度壓縮過程圖(圖片來源:https://arxiv.org/pdf/1510.00149.pdf)
3.1 模型蒸餾
后訓(xùn)練,即以更緊湊的表征形式創(chuàng)建模型,對(duì)模型進(jìn)行修改。剪枝和知識(shí)蒸餾就是實(shí)現(xiàn)這一目的的兩種技術(shù)。
知識(shí)蒸餾的基本思想是,較大的網(wǎng)絡(luò)內(nèi)部會(huì)存在一些稀疏或冗余特征。雖然大型網(wǎng)絡(luò)具有較高的表示能力,但是如果網(wǎng)絡(luò)容量未達(dá)到飽和,則可以在具有較低表示能力的較小網(wǎng)絡(luò)(即較少的神經(jīng)元)中進(jìn)行表示。2015年Hinton等人將教師模型中嵌入的信息稱為“暗知識(shí)”,遷移給學(xué)生模型。
下圖闡釋了知識(shí)蒸餾的過程。
圖注:深度壓縮過程示意圖(資料來源:https://arxiv.org/pdf/1510.00149.pdf)
在此圖中,“老師”是“訓(xùn)練有素”的卷積神經(jīng)網(wǎng)絡(luò)模型。老師的任務(wù)是將其“知識(shí)”遷移到參數(shù)較少的較小的卷積網(wǎng)絡(luò)模型中,即“學(xué)生”。此過程稱為“知識(shí)蒸餾”,用于將相同的知識(shí)包含在較小的網(wǎng)絡(luò)中,從而提供了一種網(wǎng)絡(luò)壓縮的思路,以便可以將其用于更多受內(nèi)存限制的設(shè)備上。
同樣,剪枝可以使模型的表示更加緊湊。 廣義上講,修剪嘗試刪除對(duì)輸出預(yù)測(cè)幾乎沒有用的神經(jīng)元。這通常與較小的神經(jīng)權(quán)重相關(guān)聯(lián),而由于在推理過程中它們的重要性較高,因此會(huì)保留較大的權(quán)重。然后,再訓(xùn)練剪枝后的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),對(duì)輸出結(jié)果進(jìn)行微調(diào)。
圖注:模型剪枝示意圖
3.2 量化
蒸餾的后續(xù)步驟是模型量化,將模型后訓(xùn)練成與嵌入式設(shè)備的架構(gòu)兼容的格式。為什么需要量化? 想象一下使用ATmega328P微控制器的Arduino Uno,該微控制器使用8位算術(shù)編碼。要在Uno上運(yùn)行模型,理想情況下,模型權(quán)重必須存儲(chǔ)為8位整數(shù)值(而許多臺(tái)式機(jī)和筆記本電腦使用32位或64位浮點(diǎn)表示法)。通過對(duì)模型進(jìn)行量化,權(quán)重的存儲(chǔ)占用空間將減少4倍(對(duì)于從32位到8位值的量化),準(zhǔn)確率通常受到的影響很小(通常為1-3%)。
圖注:8位編碼(用于重構(gòu)32位浮點(diǎn)數(shù))過程中的量化誤差示意圖。(圖片來源:https://tinymlbook.com/)
由于量化誤差的存在,某些信息可能會(huì)在量化過程中丟失(例如,在基于整數(shù)的平臺(tái)上,浮點(diǎn)表示形式的值為3.42可能會(huì)被截?cái)酁?)。 為了解決此問題,人們還提出了將量化感知(QA)訓(xùn)練作為替代方案。QA訓(xùn)練實(shí)質(zhì)上是在訓(xùn)練期間將網(wǎng)絡(luò)限制為僅使用量化設(shè)備上可用的值。
3.3 霍夫曼編碼
編碼是一個(gè)可選步驟,有時(shí)會(huì)通過以最大有效的方式存儲(chǔ)數(shù)據(jù)——通常通過著名的霍夫曼編碼,進(jìn)一步減小模型大小。
3.4 編譯
一旦模型被量化和編碼,它就被轉(zhuǎn)換成一種被某種形式的輕量級(jí)神經(jīng)網(wǎng)絡(luò)解釋器可解釋的格式,其中最流行的可能是TF-Lite(大小約500kb)和TF-Lite Micro(大小約20kb)。然后將模型編譯為C或C ++代碼(大多數(shù)微控制器使用的語言以有效利用內(nèi)存),并由解釋器在設(shè)備上運(yùn)行。
圖注:TinyML應(yīng)用程序的工作流程(來源:Pete Warden和Daniel Situnayake撰寫的TinyML書)
tinyML的大部分技能都用于處理復(fù)雜的微控制器領(lǐng)域的問題。TF Lite和TF Lite Micro非常小,因?yàn)槿魏尾槐匾墓δ芏家驯粍h除。然而,其中包括了一些有用的功能,如調(diào)試和可視化。這意味著,如果在部署期間出現(xiàn)錯(cuò)誤,很難辨別問題出在哪里。
此外,當(dāng)模型必須存儲(chǔ)在設(shè)備上時(shí),模型還必須能夠具備推理能力。這意味著微控制器必須有足夠大的內(nèi)存來運(yùn)行(1)其操作系統(tǒng)和相關(guān)庫,(2)神經(jīng)網(wǎng)絡(luò)解釋器,如TF-Lite,(3)存儲(chǔ)的神經(jīng)網(wǎng)絡(luò)權(quán)重和神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),以及(4)推理過程中的中間結(jié)果。因此,量化算法的峰值內(nèi)存使用率、內(nèi)存占用量、乘法累加單元(MACs)數(shù)量和精度等經(jīng)常在tinyML研究論文中被引用。
3.5 為什么不在設(shè)備上訓(xùn)練呢?
在設(shè)備上進(jìn)行訓(xùn)練會(huì)引發(fā)額外的問題。由于數(shù)值精度降低,訓(xùn)練網(wǎng)絡(luò)以確保達(dá)到所需的精度水平通常極為困難。標(biāo)準(zhǔn)臺(tái)式計(jì)算機(jī)上的自動(dòng)微分方法近似精確到機(jī)器精度。導(dǎo)數(shù)計(jì)算精確到10^-16是難以實(shí)現(xiàn)的,但是僅利用8位值的自動(dòng)微分將導(dǎo)致糟糕的結(jié)果。在反向傳播過程中,這些導(dǎo)數(shù)將被組合并最終用于更新神經(jīng)網(wǎng)絡(luò)的參數(shù)。
也就是說,神經(jīng)網(wǎng)絡(luò)是用16位和8位浮點(diǎn)數(shù)訓(xùn)練的。
“Deep Learning with Limited Numerical Precision”是Suyog Gupta及其同事于2015年發(fā)表的第一篇關(guān)于在深度學(xué)習(xí)中降低數(shù)值精度的論文。本文的結(jié)果很有趣,表明32位浮點(diǎn)表示可以簡(jiǎn)化為16位定點(diǎn)表示,而精度基本上沒有下降。然而,這是使用隨機(jī)四舍五入的唯一情況,因?yàn)槠骄?,它?huì)產(chǎn)生無偏的結(jié)果。
2018年,Naigang Wang和同事在他們的論文“Training Deep Neural Networks with 8-bitFloating Point Numbers”中使用8位浮點(diǎn)數(shù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
由于需要在反向傳播過程中保持梯度計(jì)算的保真度(在使用自動(dòng)微分時(shí)能夠達(dá)到機(jī)器精度),使用8位浮點(diǎn)數(shù)來訓(xùn)練神經(jīng)網(wǎng)絡(luò)(而不是推理)更具挑戰(zhàn)性。
3.6 計(jì)算效率如何?
我們還可以對(duì)模型進(jìn)行裁剪,使其計(jì)算效率更高。廣泛部署在MobileNetV1和MobileNetV2等移動(dòng)設(shè)備上的模型架構(gòu)就是很好的例子,其本質(zhì)是卷積神經(jīng)網(wǎng)絡(luò),它們重塑了卷積運(yùn)算以使其具有更高的計(jì)算效率。這種更有效的卷積形式稱為深度可分離卷積。還可以使用基于硬件的評(píng)測(cè)和神經(jīng)架構(gòu)搜索針對(duì)延遲優(yōu)化架構(gòu)。
4
下一代AI革命
能夠在資源受限的設(shè)備上運(yùn)行機(jī)器學(xué)習(xí)模型,將為許多新的可能性打開大門。
TinyML也許有助于使標(biāo)準(zhǔn)機(jī)器學(xué)習(xí)更加節(jié)能,從而減少人們對(duì)數(shù)據(jù)科學(xué)引發(fā)環(huán)境問題的擔(dān)憂。此外,TinyML賦予嵌入式設(shè)備基于數(shù)據(jù)驅(qū)動(dòng)算法的新智能,可以用于從預(yù)防性維護(hù)到森林中的鳥鳴聲檢測(cè)等許多方面。
盡管某些機(jī)器學(xué)習(xí)從業(yè)者無疑將繼續(xù)擴(kuò)大模型的規(guī)模,機(jī)器學(xué)習(xí)算法朝著內(nèi)存占用率低、計(jì)算加速和能源利用率更高的方向發(fā)展的趨勢(shì)正如火如荼。
TinyML仍處于起步階段,有關(guān)該主題的專家很少。我建議有興趣的讀者閱讀參考文獻(xiàn)中的一些論文,這是TinyML領(lǐng)域中的一些重要論文。這一領(lǐng)域正在蓬勃發(fā)展,并將在未來幾年內(nèi)成為人工智能在工業(yè)領(lǐng)域的一個(gè)新的重要應(yīng)用。敬請(qǐng)關(guān)注!
參考鏈接:
[1] Hinton, Geoffrey & Vinyals, Oriol & Dean, Jeff. (2015). Distilling the Knowledge in a Neural Network.
[2] D. Bankman, L. Yang, B. Moons, M. Verhelst and B. Murmann, “An always-on 3.8μJ/86% CIFAR-10 mixed-signal binary CNN processor with all memory on chip in 28nm CMOS,” 2018 IEEE International Solid-State Circuits Conference — (ISSCC), San Francisco, CA, 2018, pp. 222–224, doi: 10.1109/ISSCC.2018.8310264.
[3] Warden, P. (2018). Why the Future of Machine Learning is Tiny. Pete Warden’s Blog.
[4] Ward-Foxton, S. (2020). AI Sound Recognition on a Cortex-M0: Data is King. EE Times.
[5] Levy, M. (2020). Deep Learning on MCUs is the Future of Edge Computing. EE Times.
[6] Gruenstein, Alexander & Alvarez, Raziel & Thornton, Chris & Ghodrat, Mohammadali. (2017). A Cascade Architecture for Keyword Spotting on Mobile Devices.
[7] Kumar, A., Saurabh Goyal, and M. Varma. (2017). Resource-efficient Machine Learning in 2 KB RAM for the Internet of Things.
[8] Zhang, Yundong & Suda, Naveen & Lai, Liangzhen & Chandra, Vikas. (2017). Hello Edge: Keyword Spotting on Microcontrollers.
[9] Fedorov, Igor & Stamenovic, Marko & Jensen, Carl & Yang, Li-Chia & Mandell, Ari & Gan, Yiming & Mattina, Matthew & Whatmough, Paul. (2020). TinyLSTMs: Efficient Neural Speech Enhancement for Hearing Aids.
[10] Lin, Ji & Chen, Wei-Ming & Lin, Yujun & Cohn, John & Gan, Chuang & Han, Song. (2020). MCUNet: Tiny Deep Learning on IoT Devices.
[11] Chen, Tianqi & Moreau, Thierry. (2020). TVM: An Automated End-to-End Optimizing Compiler for Deep Learning.
[12] Weber, Logan, and Reusch, Andrew (2020). TinyML — How TVM is Taming Tiny.
[13] Krishnamoorthi, Raghuraman. (2018). Quantizing deep convolutional networks for efficient inference: A whitepaper.
[14] Yosinski, Jason & Clune, Jeff & Bengio, Y. & Lipson, Hod. (2014). How transferable are features in deep neural networks?.
[15] Lai, Liangzhen & Suda, Naveen & Chandra, Vikas. (2018). CMSIS-NN: Efficient Neural Network Kernels for Arm Cortex-M CPUs.
[16] Chowdhery, Aakanksha & Warden, Pete & Shlens, Jonathon & Howard, Andrew & Rhodes, Rocky. (2019). Visual Wake Words Dataset.
[17] Warden, Pete. (2018). Speech Commands: A Dataset for Limited-Vocabulary Speech Recognition.
[18] Zemlyanikin, Maxim & Smorkalov, Alexander & Khanova, Tatiana & Petrovicheva, Anna & Serebryakov, Grigory. (2019). 512KiB RAM Is Enough! Live Camera Face Recognition DNN on MCU. 2493–2500. 10.1109/ICCVW.2019.00305.
原文鏈接:https://towardsdatascience.com/tiny-machine-learning-the-next-ai-revolution-495c26463868
(轉(zhuǎn)載)