展會信息港展會大全

MIT開發(fā)出輕量級MCU神經(jīng)網(wǎng)絡(luò)系統(tǒng)MCUNet
來源:互聯(lián)網(wǎng)   發(fā)布日期:2020-11-19 08:47:17   瀏覽:21030次  

導(dǎo)讀:深度學(xué)習(xí)無處不在。人工智能的這一分支可以管理你的社交媒體并為谷歌搜索結(jié)果提供最準(zhǔn)確的服務(wù)。很快,深度學(xué)習(xí)還可以檢查你的生命體征或設(shè)置你的恒溫器。麻省理工學(xué)院的研究人員開發(fā)了一種系統(tǒng),可以將深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)帶到新的、小得多的地方,比如可穿...

深度學(xué)習(xí)無處不在。人工智能的這一分支可以管理你的社交媒體并為谷歌搜索結(jié)果提供最準(zhǔn)確的服務(wù)。很快,深度學(xué)習(xí)還可以檢查你的生命體征或設(shè)置你的恒溫器。麻省理工學(xué)院的研究人員開發(fā)了一種系統(tǒng),可以將深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)帶到新的、小得多的地方,比如可穿戴醫(yī)療設(shè)備、家用電器中的微型計算機芯片,以及構(gòu)成“物聯(lián)網(wǎng)”(IoT)的2500億個物體。

這個名為MCUNet的系統(tǒng)設(shè)計了緊湊的神經(jīng)網(wǎng)絡(luò),盡管內(nèi)存和處理能力有限,但它為物聯(lián)網(wǎng)設(shè)備上的深度學(xué)習(xí)提供了前所未有的速度和精度。這項技術(shù)可以促進物聯(lián)網(wǎng)領(lǐng)域的擴展,同時節(jié)約能源和提高數(shù)據(jù)安全性。

這項研究將在下個月的神經(jīng)信息處理系統(tǒng)會議(Conference on Neural Information Processing Systems)上發(fā)表。本文的主要作者是Lin Ji,他是麻省理工學(xué)院電子工程和計算機科學(xué)系韓松實驗室的博士生。合著者包括麻省理工學(xué)院的韓松和Lin Yu Jun,麻省理工學(xué)院和臺灣國立大學(xué)的Chen Wei Ming,以及麻省理工-IBM沃森人工智能實驗室的John Cohn和Gan Chuang。

物聯(lián)網(wǎng)的發(fā)展

物聯(lián)網(wǎng)誕生于20世紀(jì)80年代初,卡內(nèi)基梅隆大學(xué)的研究生,Mike Kazar將一臺可樂機連接到互聯(lián)網(wǎng)上。這個小組的動機很簡單:懶惰。他們想先用電腦確認(rèn)機器是否有存貨,然后再從辦公室前去購買它是世界上第一臺聯(lián)網(wǎng)的物聯(lián)網(wǎng)設(shè)備,F(xiàn)在是微軟工程師的Kazar說:“這在很大程度上被看作是一個笑話的笑料,沒人料到如今互聯(lián)網(wǎng)上會有幾十億臺設(shè)備。”

自從那臺可樂機以來,日常用品已經(jīng)越來越多地進入物聯(lián)網(wǎng)市常這包括從可穿戴的心臟監(jiān)護儀到智能冰箱可以告訴你何時牛奶需要補充。物聯(lián)網(wǎng)設(shè)備通常運行在微控制器上,微控制器是一種簡單的計算機芯片,沒有操作系統(tǒng),最小的處理能力,內(nèi)存不到普通智能手機的千分之一。因此,像深度學(xué)習(xí)這樣的模式識別任務(wù)很難在物聯(lián)網(wǎng)設(shè)備上進行本地運行。對于復(fù)雜的分析,物聯(lián)網(wǎng)收集的數(shù)據(jù)通常被發(fā)送到云端,使其容易受到黑客攻擊,并且容易受到網(wǎng)絡(luò)延遲及速率的影響。

“我們?nèi)绾螌⑸窠?jīng)網(wǎng)絡(luò)直接部署在這些微小的設(shè)備上?這是一個非常熱門的新研究領(lǐng)域。”韓松說,“像谷歌和ARM這樣的公司都在朝這個方向努力。”

圍繞MCUNet一起,韓松團隊共同設(shè)計了“微小深度學(xué)習(xí)”所需的兩個組件微控制器上神經(jīng)網(wǎng)絡(luò)的操作。其中一個組件是TinyEngine,它是一個類似于操作系統(tǒng)的、指導(dǎo)資源管理的推理引擎。TinyEngine被優(yōu)化為運行特定的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),它是由MCUNet的另一個組件TinyNAS選擇的,TinyNAS是一種神經(jīng)結(jié)構(gòu)搜索算法。

系統(tǒng)算法協(xié)同設(shè)計

為微控制器設(shè)計一個深層網(wǎng)絡(luò)并不容易,F(xiàn)有的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索技術(shù)首先從一個預(yù)先定義的模板中提取大量可能的網(wǎng)絡(luò)結(jié)構(gòu),然后逐步找到一個精度高、成本低的網(wǎng)絡(luò)結(jié)構(gòu)。雖然這個方法有效,但不是最有效的。Lin Ji說道:“它可以很好地工作在GPU或智能手機上,但是很難將這些技術(shù)直接應(yīng)用到微型微控制器上,因為它們太小了。”

因此,開發(fā)了TinyNAS,一種神經(jīng)結(jié)構(gòu)搜索方法,可以創(chuàng)建自定義大小的網(wǎng)絡(luò)。“我們有很多微控制器,它們具有不同的功率容量和不同的內(nèi)存大校”Lin Ji說“所以我們開發(fā)了算法TinyNAS來優(yōu)化不同微控制器的搜索空間。”TinyNAS的定制特性意味著它可以生成緊湊的神經(jīng)網(wǎng)絡(luò),在排除不必要的參數(shù)的情況下,為給定的微控制器提供最佳性能。“然后我們將最終、高效的模型交付給微控制器。”Lin Ji說。

為了運行這個微小的神經(jīng)網(wǎng)絡(luò),微控制器還需要一個精簡的推理機制。一個典型的推理機會為它很少運行的任務(wù)攜帶一些死板的指令。這些額外的代碼對筆記本電腦或智能手機來說沒有問題,但它很容易壓倒微控制器。“它沒有片外存儲器,也沒有磁盤,”韓說。“所有的東西放在一起只是一兆字節(jié)的閃存,所以我們必須非常小心地管理這么小的資源。”Cue TinyEngine。

研究人員與TinyNAS一起開發(fā)了他們的推理機。TinyEngine生成運行TinyNAS定制神經(jīng)網(wǎng)絡(luò)所需的基本代碼。任何不用的代碼都會被丟棄,這會減少編譯時間。“我們只保留我們需要的,”韓松說。“自從我們開始設(shè)計神經(jīng)網(wǎng)絡(luò),我們就知道我們需要什么。這就是系統(tǒng)算法協(xié)同設(shè)計的優(yōu)勢。”在小組對TinyEngine的測試中,編譯后的二進制代碼的大小相對Google和ARM的可比微控制器推理引擎縮小1.9到5倍。TinyEngine還包含減少運行時的創(chuàng)新,包括深度卷積,它將峰值內(nèi)存使用量減少了近一半。在開發(fā)了TinyNAS和TinyEngine之后,韓松的團隊對MCUNet進行了測試。

MCUNet的第一個挑戰(zhàn)是圖像分類。研究人員使用ImageNet數(shù)據(jù)庫對帶有標(biāo)簽的圖像進行訓(xùn)練,然后測試其對新圖像進行分類的能力。在他們測試的一個商業(yè)微控制器上,MCUNet成功地對70.7%的新穎圖像進行了分類之前最先進的神經(jīng)網(wǎng)絡(luò)和推理機組合的準(zhǔn)確率僅為54%。“即使是1%的改進也被認(rèn)為是顯著的,所以這是微控制器人工智能的一個巨大飛躍。”Lin Ji說道。

研究小組在另外三個微控制器的ImageNet測試中發(fā)現(xiàn)了類似的結(jié)果。在速度和準(zhǔn)確性上,MCUNet擊敗了競爭對手,即用戶通過喚醒音(例如“Hey,Siri”)或簡單地進入一個房間就可以與計算機進行交互。這些實驗突出了MCUNet對多種應(yīng)用的適應(yīng)性。

“潛力巨大”

令人期待的測試結(jié)果給了韓松希望,它將成為微控制器的新行業(yè)標(biāo)準(zhǔn)。“它有巨大的潛力,”他說。

加州大學(xué)伯克利分校的計算機科學(xué)家Kurt Keutzer表示,這一進展“將深度神經(jīng)網(wǎng)絡(luò)設(shè)計的前沿領(lǐng)域進一步擴展到小型節(jié)能微控制器的計算領(lǐng)域。MCUNet可以為最簡單的廚房設(shè)備帶來智能計算機視覺功能,或者啟用更智能的運動傳感器。”

MCUNet還可以使物聯(lián)網(wǎng)設(shè)備更加安全。“一個關(guān)鍵的優(yōu)勢是保護隱私,您不需要將數(shù)據(jù)傳輸?shù)皆贫恕?rdquo;韓松說道。

本地分析數(shù)據(jù)可降低個人信息(包括個人健康數(shù)據(jù))被盜的風(fēng)險。韓松設(shè)想使用MCUNet的智能手表不僅可以感知用戶的心跳、血壓和氧氣水平,還可以分析和幫助他們理解這些信息。MCUNet還可以為互聯(lián)網(wǎng)接入受限的車輛和農(nóng)村地區(qū)的物聯(lián)網(wǎng)設(shè)備帶來深度學(xué)習(xí)。

另外,MCUNet的計算能力很小,需求的功耗很校“我們的最終目標(biāo)是用更少的計算資源、更少的人力資源和更少的數(shù)據(jù)來實現(xiàn)高效、微型的人工智能,”韓松說。

附:極術(shù)社區(qū)發(fā)布并分析了韓松等人的詳細論文:

【Happy導(dǎo)語】MIT韓松團隊提出了一種適用于IoT設(shè)備的模型設(shè)計方案,它將NAS與Engine進行了協(xié)同設(shè)計,從而確保了模型可以更好的在微型處理器上運行,同時具有更高的精度。該文的研究成果將進一步加速IoT設(shè)備端的AI應(yīng)用,這個方向具有非常大的市場前景,期待各位同學(xué)能在該領(lǐng)域取得更多的成果。

Abstract

基于單片機(Microcontroller Units, MCU)的微型IoT設(shè)備上的機器學(xué)習(xí)應(yīng)用是非常有價值的,但同時也極具挑戰(zhàn):單片機的內(nèi)存要比手機內(nèi)存小的多(比如ARM Cortex-M7 MCU僅有320kb SRAM與1MB Flash存儲)。

作者提出了MCUNet,一種高效網(wǎng)絡(luò)架構(gòu)搜索(TinyNAS)與輕量推理引擎(TinyEngine)聯(lián)合設(shè)計的方案,它可以使得ImageNet級別的推理在微處理器上進行運行。TinyNAS采用了兩階段的網(wǎng)絡(luò)架構(gòu)索索,在第一階段優(yōu)化搜索空間以適配資源約束,在第二階段進行網(wǎng)絡(luò)架構(gòu)搜索。TinyNAS可以在低搜索復(fù)雜度下自適應(yīng)處理不同的約束問題(比如設(shè)備、延遲、功耗以及內(nèi)存等),并與TinyEngine協(xié)同設(shè)計。TinyEngine是一種內(nèi)存高效的推理庫,它按照整體網(wǎng)絡(luò)采用了內(nèi)存機制設(shè)計,而非傳統(tǒng)的layer模式,它可以降低2.7x的內(nèi)存占用并加速1.7-3.3x的推理速度(相比TF-Lite Micro與CMSIS-NN)。

MCUNet是首個在現(xiàn)有微處理器產(chǎn)品上達到70%精度的模型(ImageNet數(shù)據(jù)),相比MobileNetV2與ResNet18,它的更低的SRAM(3.6x)和Flash占用(6.6x)。在視覺&語音喚醒任務(wù)上,MCUNet取得了SOTA精度,比MobileNetV2和ProxylessNAS快2.4-3.4x,同時具有更低的SRAM占用(2.2-2.6x)。該研究意味著:永遠在線的IoT設(shè)備上微型機器學(xué)習(xí)時代已經(jīng)到來了。

Introduction

在我們的生活中,IoT設(shè)備已變得非常常見(據(jù)統(tǒng)計已達250B),并用于方方面面(比如智能制造、個性化醫(yī)療、農(nóng)業(yè)生產(chǎn)、自助零售等等)。這種低成本、低功耗的微處理器也為微型機器學(xué)習(xí)的應(yīng)用帶來了新的機會,如能在這類設(shè)備上運行AI算法,那么我們可以在端上直接進行數(shù)據(jù)分析,進而擴大了AI的應(yīng)用領(lǐng)域。

然而,微處理器具有非常有限的資源負載,尤其是SRAM和Flash,要比手機端或者GPU的資源小的多,這也使得深度學(xué)習(xí)在IoT設(shè)備上的部署具有挑戰(zhàn)性。下圖對比了GPU、手機端以及微處理器的資源信息,很明顯在微處理器上運行ResNet50、MobileNetV2是不可行的。峰值內(nèi)存占用遠遠超出微處理的最大內(nèi)存,兩者之間存在巨大的差距。

注:SRAM可以進行讀寫,約束了feature-map的大小;flash只可以進行讀,約束了模型大校

不同于云端或者手機端設(shè)備,微處理器是一種“裸設(shè)備”,它不具有操作系統(tǒng)。所以需要同時進行網(wǎng)絡(luò)架構(gòu)與推理庫的設(shè)計以更高效的管理有限的資源并是配合內(nèi)存與存儲負載。而現(xiàn)有的NAS或手工網(wǎng)絡(luò)架構(gòu)往往聚焦于GPU端或手機端,它們僅僅對FLOPs或者推理延遲進行優(yōu)化,所得模型并不適合于微處理器。

該文提出了一種系統(tǒng)-模型聯(lián)合設(shè)計的方案MCUNet,它可以在微處理器上處理ImageNet級別的任務(wù)。為解決微處理器上稀缺內(nèi)存問題,作者聯(lián)合優(yōu)化TinyNAS與TinyEngine以降低內(nèi)存占用。TinyNAS的設(shè)計基于這樣的一個假設(shè):a search space that can accommodate higher FLOPs under memory constraint can produce better model。為處理微處理器上非常緊張的資源約束,還需要設(shè)計一種內(nèi)存高效的推理庫以消除不必要的內(nèi)存占用。TinyEngine的改進為:TinyEngine improves over the existing inference lipary with code generator-based compilation method to eliminate memory overhead。它可以降低2.7x的內(nèi)存占用并提升22%推理速度。

Method

下圖給出了作者所設(shè)計MCUNet聯(lián)合設(shè)計方案與傳統(tǒng)方案的對比示意圖,相比傳統(tǒng)方案,MCUNet可以更好的利用微處理器的資源。

TinyNAS

TinyNAS是一種兩階段的NAS方法,它首先優(yōu)化搜索空間以適配不同的資源約束,然后在優(yōu)化空間上進行網(wǎng)絡(luò)架構(gòu)搜索。經(jīng)由該優(yōu)化空間,它可以顯著的提升最終模型的精度。在搜索空間方面,作者對輸入分辨率和網(wǎng)絡(luò)寬度方面進行搜索。輸入分辨率范圍,網(wǎng)絡(luò)寬度因子為。大概有108個可能的搜索空間配置,每個搜索空間配置包含個子網(wǎng)絡(luò)。第一階段的目的是尋找具有最高精度且可以滿足資源約束的搜索空間。下圖給出了不同配置搜索空間的FLOPs與CDF示意圖。

在完成搜索空間確認(rèn)后,第二階段的目的是進行網(wǎng)絡(luò)架構(gòu)的搜索。采用采用one-shotNAS技術(shù)進行網(wǎng)路架構(gòu)搜索。關(guān)于one-shot NAS部分建議各位同學(xué)去看一下Face++的《Single Path One-Shot Neural Architecture Search with Uniform Sampling》一文。

TinyEngine

研究人員往往假設(shè):不同的深度學(xué)習(xí)框架僅僅影響推理速度而不會影響模型精度。然而,對于TinyML而言,推理庫的高效性不僅影響推理速度,同時還會影響搜索到的模型精度。一個好的推理框架可以更充分的利用MUC的有效資源,避免內(nèi)存占用,從而允許更大的架構(gòu)設(shè)計空間,而更大的架構(gòu)設(shè)計空間也意味著更高精度模型。因此,作者將TinyNAS與TinyEngine進行協(xié)同設(shè)計,以獲得內(nèi)存高效的推理庫。

上圖給出了TinyEngine與現(xiàn)有推理框架在不同維度的對比,F(xiàn)有的TF-Lite Micro與CMSIS-NN是解釋型推理框架,它們易于跨平臺部署,但同時需要額外的內(nèi)存(在MCU上內(nèi)存是最昂貴的資源)保存架構(gòu)的元信息(比如網(wǎng)絡(luò)架構(gòu)參數(shù));相反TinyEngine僅僅聚焦于MCU設(shè)備,采用code generator-based進行編譯。它不僅避免了運行時解釋耗時,同時釋放了額外的內(nèi)存占用,從而允許更大的模型。相比CMSIS-NN,TinyEngine可以降低2.7x內(nèi)存占用,提升22%推理速度。

與此同時TinyEngine的庫文件非常輕量,這使得其非常適合于MCU。不同于TF-Lite Micro需要準(zhǔn)備所有的操作(比如conv、softmax)以支持跨模型推理;而TinyEngine僅僅需要編譯必要的操作。下圖給出了TF-Lite Micro、CMSIS-NN與TinyEngien的大小對比。

TinyEngine為不同層制作特定的核優(yōu)化方案:loops tiling is based on the kernel size and available memory; inner loop unrolling is also specialized for different kernel size。同時,TinyEngine還進行了操作合并,比如Conv+PAd+BN+ReLU。上述優(yōu)化方案可以為模型推理帶來22%的加速。

Experiments

在實驗方面,作者選用了ImageNet、Visual Wake Word以及Speech Command三個數(shù)據(jù)集。ImageNet代表了大尺度圖像分類任務(wù),VWW用于判別是否有人存在,而SC代表了主流的微處理器應(yīng)用場景:語音喚醒。

在模型部署方面,作者采用int8線性量化后部署。MCU選型為STM32F746,它具有320kb SRAM與1MB Flash。直接上結(jié)果咯。Table2的結(jié)果很震撼哦,最優(yōu)模型可達60.1%精度。

好了,全文到底結(jié)束。上面已經(jīng)對該文的核心進行了簡單的介紹。但美中不足的是:該文尚未開源。

Conclusion

作者提出了一種網(wǎng)絡(luò)架構(gòu)搜索與推理庫協(xié)同設(shè)計方案MCUNet,它可以使得深度學(xué)習(xí)在微型硬件設(shè)備(IoT)上運行。所提方案在現(xiàn)有微處理器產(chǎn)品中取得前所未有了70.2%(ImageNet)的精度,同時具有更快的推理速度。該研究意味著:永遠在線的IoT設(shè)備上微型機器學(xué)習(xí)時代已經(jīng)到來了。


贊助本站

相關(guān)內(nèi)容
AiLab云推薦
推薦內(nèi)容
展開

熱門欄目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能實驗室 版權(quán)所有    關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 公司動態(tài) | 免責(zé)聲明 | 隱私條款 | 工作機會 | 展會港