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