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