面向網(wǎng)絡(luò)邊緣應(yīng)用的新一代神經(jīng)網(wǎng)絡(luò)
作者 / Hussein Osman
本文引用地址:http://www.ex-cimer.com/article/201712/373604.htm萊迪思半導(dǎo)體
Hussein Osman,在半導(dǎo)體行業(yè)擁有14年的經(jīng)驗(yàn),其中包括13年的系統(tǒng)設(shè)計(jì)工作經(jīng)驗(yàn),目前擔(dān)任產(chǎn)品營銷經(jīng)理。在加入萊迪思之前,曾任賽普拉斯半導(dǎo)體公司的專家級(jí)系統(tǒng)工程師,致力于尖端的觸摸、電容式觸摸感應(yīng)和指紋技術(shù)產(chǎn)品定義和開發(fā)。
人工智能(AI)、神經(jīng)網(wǎng)絡(luò)和機(jī)器學(xué)習(xí)領(lǐng)域的發(fā)展十分迅速,開發(fā)工程師正不斷嘗試為系統(tǒng)添加更多智能功能,前景不可估量。其中各類應(yīng)用對(duì)于計(jì)算的需求是不同的。在數(shù)據(jù)中心領(lǐng)域,用于執(zhí)行圖像識(shí)別的神經(jīng)網(wǎng)絡(luò)是“經(jīng)過訓(xùn)練”的,舉個(gè)例子,通過向神經(jīng)網(wǎng)絡(luò)投喂成千上萬的圖像并分配權(quán)重直至神經(jīng)網(wǎng)絡(luò)能夠正確識(shí)別對(duì)象。就像人類從一張白紙到最后成為知識(shí)淵博的人,當(dāng)新數(shù)據(jù)出現(xiàn)時(shí),人們能夠根據(jù)過去的經(jīng)驗(yàn)進(jìn)行“推理”并做出決定,同樣,系統(tǒng)必須使用“推理技術(shù)”根據(jù)神經(jīng)網(wǎng)絡(luò)從新數(shù)據(jù)上學(xué)到的東西來進(jìn)行“推理”并得出結(jié)果。
建立數(shù)據(jù)架構(gòu)并計(jì)算推理所需的權(quán)重可能需要數(shù)TB的數(shù)據(jù)和大量的計(jì)算資源。因此,數(shù)據(jù)中心常用的深度學(xué)習(xí)技術(shù)通常使用大尺寸、高性能GPU來滿足如此大量的計(jì)算要求。
高功耗GPU對(duì)于想要將AI優(yōu)勢(shì)引入到網(wǎng)絡(luò)邊緣領(lǐng)域的設(shè)計(jì)工程師來說太過奢侈。在網(wǎng)絡(luò)邊緣領(lǐng)域,部署數(shù)據(jù)中心使用的基于浮點(diǎn)運(yùn)算的深度學(xué)習(xí)技術(shù)是不太現(xiàn)實(shí)的。設(shè)計(jì)工程師必須開發(fā)計(jì)算效率高的解決方案,不僅要達(dá)到精度要求,還要滿足消費(fèi)電子市場(chǎng)對(duì)于設(shè)備的功耗、尺寸和成本的限制。盡管設(shè)備在數(shù)據(jù)中心接受過訓(xùn)練,可是一旦部署到網(wǎng)絡(luò)邊緣領(lǐng)域,就要盡可能使用更少位數(shù)進(jìn)行計(jì)算來實(shí)現(xiàn)推理。為了簡(jiǎn)化計(jì)算流程,設(shè)計(jì)工程師從浮點(diǎn)數(shù)運(yùn)算轉(zhuǎn)為定點(diǎn)數(shù)運(yùn)算,如果可能的話,甚至使用最基本的整數(shù)運(yùn)算。通過改變訓(xùn)練的方式來補(bǔ)償浮點(diǎn)數(shù)到定點(diǎn)整數(shù)的數(shù)據(jù)量級(jí)上的差異,設(shè)計(jì)工程師得以開發(fā)解決方案來實(shí)現(xiàn)更快的訓(xùn)練速度和更高的精度,從而將定點(diǎn)/低精度整數(shù)運(yùn)算神經(jīng)網(wǎng)絡(luò)的性能提升至浮點(diǎn)數(shù)運(yùn)算神經(jīng)網(wǎng)絡(luò)的水平。為了最為簡(jiǎn)單地構(gòu)建的網(wǎng)絡(luò)邊緣設(shè)備,訓(xùn)練需要生成具有1位權(quán)重和激活的神經(jīng)網(wǎng)絡(luò)模型。這樣的模型被稱為二值神經(jīng)網(wǎng)絡(luò)。
VectorBlox Computing 和萊迪思半導(dǎo)體公司的工程師已經(jīng)合作開發(fā)了一種新器件,以充分利用二值神經(jīng)網(wǎng)絡(luò)的優(yōu)勢(shì)。該器件通過二值方法優(yōu)化了神經(jīng)網(wǎng)絡(luò)的尺寸、成本、功耗和性能,大大降低存儲(chǔ)器需求,同時(shí)最大限度降低了功耗。這可以使用低功耗FPGA器件,例如iCE40 UltraPlus?來實(shí)現(xiàn),該器件提供了具備充足存儲(chǔ)器、邏輯和DSP資源的靈活平臺(tái)。研究成果發(fā)表在第三屆關(guān)于FPGA資源重新整合(Overlay Architectures for FPGA, OLAF)年度研討會(huì)論文中。
開發(fā)團(tuán)隊(duì)將這個(gè)全新的概念稱為微型二值神經(jīng)網(wǎng)絡(luò)(Tiny Binarized Neural Network)或TinBiNN。二值神經(jīng)網(wǎng)絡(luò)(BNN)無需乘法和除法運(yùn)算,可降低對(duì)于存儲(chǔ)器的要求,并且僅使用加法和減法來計(jì)算卷積。開發(fā)團(tuán)隊(duì)將TinBiNN定義為可使用少于5400個(gè)4輸入查找表(LUT)資源實(shí)現(xiàn)的BiNN。本文討論的重點(diǎn)是基于少于5000個(gè)4輸入LUT的輕量級(jí)TinBiNN,以及如何使用萊迪思半導(dǎo)體的UltraPlus?FPGA實(shí)現(xiàn)。
1 二值神經(jīng)網(wǎng)絡(luò)
基于CNN的機(jī)器學(xué)習(xí)應(yīng)用中,計(jì)算內(nèi)核是一個(gè)卷積核,一個(gè)3×3窗口的權(quán)重與輸入數(shù)據(jù)相乘,然后求和成一個(gè)純量結(jié)果。輸入值、權(quán)重和結(jié)果通常使用浮點(diǎn)數(shù)系統(tǒng)。雖然硬件優(yōu)化支持窄定點(diǎn)值,但乘法仍占主導(dǎo)地位。
最新的理論,如M.Courbariaux,Y.Bengio和J.-P. David的“BinaryConnect: Training Deep Neural Networks with Binary Weights During Propagations”論文中使用二進(jìn)制權(quán)重來表示+1或-1,消除了乘法運(yùn)算[1]。該項(xiàng)目使用浮點(diǎn)數(shù)據(jù)在CIFAR 10圖像識(shí)別數(shù)據(jù)集上實(shí)現(xiàn)了8.3%的誤差率。
VectorBlox和萊迪思的開發(fā)工程師對(duì)BinaryConnect方法進(jìn)行了三項(xiàng)改進(jìn)。首先,他們把網(wǎng)絡(luò)結(jié)構(gòu)減小了一半。工程師們將(2x128 C3) – MP2 – (2x256C3) – MP2 (2 x 512C3) – MP2 – (2x1024FC) - 10SFC架構(gòu)簡(jiǎn)化為(2 x 64C3) - MP2 – (2 x 128C3) - MP2 - (2 x 256C3) – MP2 – (2 x 256FC) - 10SFC,其中C3是3×3 ReLU卷積層,MP2是2×2 max-pooling層,而FC是一個(gè)完全互連層。
然后團(tuán)隊(duì)通過對(duì)所有輸入數(shù)據(jù)使用8位有符號(hào)的定點(diǎn)數(shù)進(jìn)一步優(yōu)化網(wǎng)絡(luò)。累加器使用32位有符號(hào)數(shù)來防止溢出,然后在數(shù)據(jù)傳遞到下一層之前通過飽和操作變成8位。新系統(tǒng)的錯(cuò)誤率為10.8%。神經(jīng)網(wǎng)絡(luò)的規(guī)??s小至48-48-96-96-128-128和64-128-10,錯(cuò)誤率增加到11.5%。
第二項(xiàng)改進(jìn)是為二值神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)硬件加速器。然后開發(fā)工程師使用加速器作為ORCA軟RISC-V處理器中的ALU。RISC-V軟處理器以其高效率的RV32IM指令集聞名,使得開發(fā)工程師能夠以更少的資源進(jìn)行更多的計(jì)算。在這種情況下,開發(fā)工程師使用一組自定義輕量矢量擴(kuò)展(LVE)指令增強(qiáng)了ORCA處理器。通過RISC-V ALU傳輸矩陣數(shù)據(jù),LVE減少或消除循環(huán)、存儲(chǔ)器訪問和地址生成開銷,從而提高了矩陣運(yùn)算的效率。將CNN加速器作為自定義矢量指令(CVI)(見圖2)添加到LVE,進(jìn)一步提升了運(yùn)算效率。
第三項(xiàng)修改是在iCE40 UltraPlus FPGA中實(shí)現(xiàn)了增強(qiáng)的RISC-V處理器。為了在網(wǎng)絡(luò)邊緣執(zhí)行推理任務(wù),設(shè)計(jì)工程師需要一種能夠提供高度并行架構(gòu)的解決方案,支持以低功耗每秒進(jìn)行大量運(yùn)算。對(duì)于希望通過語音或圖像識(shí)別技術(shù)為網(wǎng)絡(luò)邊緣應(yīng)用添加更多智能功能的設(shè)計(jì)工程師而言,iCE40 UltraPlus可提供連接圖像傳感器所需的靈活I(lǐng)/O以及豐富的邏輯資源,用于縮放和處理捕獲的圖像數(shù)據(jù)。iCE40 UltraPlus還具備8個(gè)DSP模塊,支持更復(fù)雜的算法,而片上存儲(chǔ)器則可以在低功耗狀態(tài)下緩沖數(shù)據(jù)。LVE直接在128 kB暫存RAM上運(yùn)行,該暫存器RAM已經(jīng)三倍超頻,可以在每個(gè)CPU時(shí)鐘周期內(nèi)進(jìn)行兩次讀取和一次寫入。二進(jìn)制權(quán)重存儲(chǔ)在內(nèi)部RAM中,所以如果任何LVE操作正在進(jìn)行,DMA引擎都可以將這些值高效地轉(zhuǎn)移到暫存器中,不必占用CPU時(shí)鐘周期。
開發(fā)工程師使用iCE40 UltraPlus移動(dòng)開發(fā)平臺(tái),對(duì)FPGA器件的關(guān)鍵互連功能進(jìn)行評(píng)估,快速實(shí)現(xiàn)原型設(shè)計(jì)和測(cè)試。概念驗(yàn)證演示可幫助工程師快速開發(fā)驅(qū)動(dòng)和接口等解決方案。該平臺(tái)可提供速率高達(dá)108 Mbps的1個(gè)MIPI DSI接口、4個(gè)麥克風(fēng)橋接和多種傳感器。在這個(gè)平臺(tái)上,F(xiàn)PGA可以通過板載SPI閃存或USB端口進(jìn)行編程。
開發(fā)團(tuán)隊(duì)采用Omnivision OVM7692 RGB攝像頭(640 x 480像素),并使用RGB565在硬件層面將圖像壓縮至40 x 30像素。DMA用于將RGBA8888像素寫入暫存器。軟件對(duì)RGBA8888像素進(jìn)行去交錯(cuò),并將結(jié)果填充到尺寸為40 x 34的獨(dú)立R8、G8和B8像素平面,其中只有32 x 32像素的數(shù)據(jù)是重要的。
開發(fā)工程師創(chuàng)建了一個(gè)人臉檢測(cè)器,這是通過使用修改的CIFAR-10數(shù)據(jù)集對(duì)10類分類器進(jìn)行訓(xùn)練,用CIFAR-100中“人”的重復(fù)圖像替換“鹿”圖像實(shí)現(xiàn)的。為了提高性能,團(tuán)隊(duì)進(jìn)一步縮小網(wǎng)絡(luò)結(jié)構(gòu),并使用175,000個(gè)面部和非面部圖像的專用數(shù)據(jù)庫來訓(xùn)練全新的1類分類器。這個(gè)數(shù)據(jù)庫包括各種人臉圖像,涵蓋各個(gè)年齡、種族、是否戴眼鏡、帽子和太陽眼鏡等信息。
2 低錯(cuò)誤率,低功耗
初步結(jié)果很不錯(cuò)。在開發(fā)平臺(tái)上,10分類分類器運(yùn)行時(shí)間為1315 ms。 這款小尺寸CPU的工作頻率為24 MHz,并使用iCE40 UltraPlus 5K器件的5280個(gè)4輸入LUT中的4895個(gè)。它還使用FPGA的8個(gè)16x16 DSP模塊中的4個(gè),30個(gè)4 kb(0.5 kB)BRAM中的26個(gè)以及全部4個(gè)32 kB SPRAM。ORCA RISC-V上的加速器將卷積層的運(yùn)行效率提高了73倍,LVE將密集層的運(yùn)行效率提高了8倍。最終的結(jié)果是整體速度提高了71倍。
1分類分類器運(yùn)行時(shí)間為230 ms,誤差為0.4%,功耗為21.8 mW。低功耗版本設(shè)計(jì)運(yùn)行速率為1幀/秒,而功耗僅為4.4 mW。上述兩個(gè)分類器的錯(cuò)誤率主要?dú)w因于訓(xùn)練,而不是精度的降低。圖像傳感器的功耗不包括在該分析中,盡管低功耗圖像傳感器能夠以1-2 mW的功耗實(shí)現(xiàn)上述幀速率。
3 潛在的應(yīng)用
基于TinBiNN神經(jīng)網(wǎng)絡(luò)的小尺寸、低功耗解決方案可以在網(wǎng)絡(luò)邊緣領(lǐng)域?qū)崿F(xiàn)各類應(yīng)用。例如,智能門鈴可以使用嵌入式AI功能自動(dòng)進(jìn)入待機(jī)模式,直到有人出現(xiàn)。智能電視機(jī)可在沒有觀眾的情況下自動(dòng)關(guān)閉。同樣,智能安防攝像頭可使用嵌入式人工智能功能來減少或避免錯(cuò)誤報(bào)告,只有當(dāng)入侵者出現(xiàn)時(shí)才發(fā)送警報(bào),而不是在狗、貓或其他動(dòng)物出現(xiàn)在攝像頭面前時(shí)發(fā)出警報(bào)。
具備面部識(shí)別的移動(dòng)設(shè)備和平板電腦需要用戶在進(jìn)行面部識(shí)別之前喚醒設(shè)備。該解決方案使得這些設(shè)備能夠以低功耗持續(xù)偵測(cè)人臉,然后喚醒高功耗應(yīng)用處理器執(zhí)行深度識(shí)別任務(wù)。
4 結(jié)論
將AI引入網(wǎng)絡(luò)邊緣領(lǐng)域是挑戰(zhàn)與機(jī)遇并存的。正如本項(xiàng)目所展示的,使用FPGA和RISC-V處理器代替基于云的資源來構(gòu)建AI可以大幅降低功耗,同時(shí)縮短響應(yīng)時(shí)間。同時(shí),本地?cái)?shù)據(jù)保存和處理提高了安全性,節(jié)省了寶貴的帶寬。通過將AI集成到器件中,設(shè)計(jì)工程師即使在網(wǎng)絡(luò)關(guān)閉以節(jié)省功耗的情況下也能實(shí)現(xiàn)實(shí)時(shí)工作的智能功能。
參考文獻(xiàn): [1]Courbariaux M,Bengio Y,David J P.BinaryConnect: Training Deep Neural Networks with Binary Weights during Propagations.Advances in Neural Information Processing Systems 28(NIPS 2015).Curran Associates,Inc.,2015:3123-3131
本文來源于《電子產(chǎn)品世界》2018年第1期第79頁,歡迎您寫論文時(shí)引用,并注明出處。
評(píng)論