新一代神經網路瞄準邊緣應用
隨著人工智慧(AI)、神經網路(neural network)以及機器學習領域的快速發展,系統開發工程師致力於為系統增加更多智能功能,未來發展不可限量。然而,運算需求會因不同應用而有所差異。對數據中心而言,神經網路主要用於執行圖像識別,例如「經訓練的」神經網路通過大量圖像與分配輸入權重進行學習後,能夠正確識別物體。如同人們獲取知識的過程,當接收到新數據時,人們能夠依據過去經驗進行推理,並做出決策,系統則必須將「推理技術」應用於神經網路,並針對新數據進行結果推理。
建立數據架構與分配推論所需的權重需要兆位元組(TB)級的數據與百萬兆次浮點運算(ExaFLOP/s)能力。因此,為滿足大量運算需求,數據中心常用的深度學習技術往往採用大型且高效能的圖形處理器(GPU)。
對於欲將AI優勢擴展至網路邊緣(Edge)的設計工程師而言,採用高效能GPU的成本與功耗較高。在網路邊緣,採用浮點運算的深度學習技術部署數據中心實際上較不可行。設計工程師必須開發運算效率高的解決方案,除了滿足精確度目標,還要能符合消費電子市場對設備功耗、尺寸與成本的限制。儘管設備已在數據中心經過訓練,一旦落實於網路邊緣應用,仍必須儘可能採用最少位的運算來執行推理。
為了簡化運算流程,設計工程師會捨棄浮點運算,選擇採用定點運算,甚至是最基本的整數運算。設計工程師可通過改變訓練方式填補浮點到定點數值量化的差異,進一步開發可實現更快速訓練與高精度的解決方案,從而使定點/低精確度整數運算神經網路的效能提升至浮點運算神經網路的水平。為了建構最簡易的網路邊緣設備,訓練必須實現加權與啟動1-bit數據的神經網路模型,此模型稱為「二進位神經網路」(binarized neural network;BNN)。
例如,萊迪思半導體(Lattice Semiconductor)與VectorBlox Computing的工程師共同開發的新組件,即利用該二進位神經網路模型的優勢——通過二進位方法優化神經網路的尺寸、成本、功耗與效能,大幅降低了內存需求,並使功效極大化。同時,搭配低功耗FPGA組件(如iCE40 UltraPlus),可提供具備充裕內存、邏輯與DSP資源的靈活平台。
開發團隊將上述全新概念稱為「微型二進位神經網路」(Tiny Binarized Neural Network;TinBiNN)。二進位神經網路無需使用乘法和除法運算,可降低對於內存的需求,而且僅使用加法和減法進行卷積運算。開發團隊將TinBiNN定義為使用少於5,400個4-input查找表(LUT)資源的BiNN。本文重點討論使用少於5,000個4-input LUT的輕量型TinBiNN,以及搭配低功耗FPGA方案的優勢。
二進位神經網路以卷積神經網路(CNN)為基礎的機器學習應用中,運算核心屬於卷積核心,為3×3窗口權重乘以輸入數據,然後總和成純量的結果。輸入數值、權重與結果通常使用浮點系統。即使硬體優化能夠支持窄定點數值,乘法仍佔據主導地位。
有關的最新發展如M. Courbariaux、Y. Bengio和J.-P. David等學者在《BinaryConnect: Training Deep Neural Networks with Binary Weights During Propagations》文中的介紹,使用二進位權重代表+1或-1,而無需使用乘法運算。這項研究使用浮點數,於CIFAR 10圖像識別數據中實現8.3%的誤差率。
萊迪思和VectorBlox的開發工程師針對BinaryConnect方法進行三項改進:首先,將網路結構縮減了一半,其方式是將(2x128 C3)–MP2–(2x256C3)–MP2(2x512C3)–MP2–(2x1024FC)-10SFC的結構,簡化為(2x64C3)-MP2–(2x128C3)-MP2-(2x256C3)–MP2–(2x256FC)-10SFC。其中,C3是3×3 ReLU卷積層,MP2是2×2最大池化(max-pooling)層,而FC是完全互連層。
圖1:全新的微型二進位網路實現10.8%誤差率和零誤報率。
接著,開發工程師針對所有輸入數據採用8-bit符號定點數值,進一步優化網路。使用32-bit符號數據累加器防止溢位,然後在數據傳遞至下一層之前,通過飽和功能轉換為8-bit。新系統的誤差率達到了10.8%。而當神經網路的規模縮小至48-48-96-96-128-128和64-128-10,誤差率增加至11.5%。
圖2:二進位CNN自定義向量指令集提高效能
第二項改進是為二進位神經網路建置硬體加速器。開發工程師使用加速器作為ORCA RISC-V軟處理器中的算數邏輯單元(ALU)。RISC-V軟處理器具備RV32IM指令集的高效率優勢,讓開發工程師能以更少資源進行更多運算。在此情況下,開發工程師使用一組自定義輕量型向量擴展(LVE)指令增強ORCA處理器。通過從RISC-V ALU傳輸矩陣數據,LVE減少或消除了循環、內存存取以及地址產生成本,從而提高了矩陣運算的效率。將CNN加速器作為自定義向量指令(CVI)(見圖2)增加至LVE,能夠進一步提升運算效率。
第三項改進是在超低功耗FPGA(以iCE40 UltraPlus為例)中實現增強的RISC-V處理器。為了在網路邊緣執行推理任務,設計工程師需要能夠提供高度平行架構的解決方案,以超低功耗實現每秒大量運算。對於期望通過語音或圖像識別技術為網路邊緣應用增加更多智能功能的設計工程師而言,iCE40 UltraPlus FPGA提供連接影像感測器所需的靈活I/O,以及豐富的邏輯資源,可縮減和處理所採集的圖像數據。iCE40 UltraPlus還具備8個DSP模塊,能支持較複雜的演算法,而單晶元內存可在低功耗狀態下緩衝數據。LVE直接運行於128kB暫存RAM上,該緩存器RAM提供三倍超頻,可在每個CPU頻率周期內進行兩次讀取與一次寫入。二進位權重即儲存於內部RAM中,若正在進行任何LVE操作,DMA引擎可以高效地將這些數值轉移至緩存器,而不必佔用CPU頻率周期。
開發工程師使用iCE40 UltraPlus行動開發平台,針對FPGA組件的關鍵互連功能進行評估,快速實現原型設計和測試。概念驗證展示可幫助工程師快速開發驅動程序和介面等解決方案。該平台可提供速率高達108Mbps的1個MIPI DSI介面、4個麥克風橋接以及多個感測器。在此平台上,FPGA可通過板載SPI快閃記憶體或USB埠進行編程。
開發團隊採用Omnivision OVM7692 RGB攝像頭(640x480像素),並使用RGB565在硬體層將圖像壓縮至40x30像素。DMA用於將RGBA8888像素寫入緩存器。軟體對RGBA8888像素進行解交錯,並將結果輸入至尺寸為40x34的單獨R8、G8和B8像素平面,其中僅32x32像素的資料具有重要性。
開發工程師創建人臉識別器,採用更新的CIFAR-10數據集,針對10-category分類器進行訓練,在CIFAR-100中以重複的「人」圖像取代「鹿」的圖像。為了提高效能,開發團隊進一步縮小網路結構,並使用175,000個臉部和非臉部圖像的專用資料庫,為全新的1-category分類器進行訓練。這個專用資料庫涵蓋各種人臉圖像,包括各種年齡、種族、是否戴眼鏡、帽子和太陽眼鏡等信息。
低誤差率與低功耗初步分析結果十分良好。在開發平台上,10-category分類器運行時間為1,315ms。這款小尺寸CPU的工作頻率為24MHz,使用iCE40 UltraPlus 5K組件中5,280個4-input LUT中的4,895個。同時,也使用了FPGA中8個16x16 DSP模塊的其中4個,30個4kb(0.5kB)BRAM的其中26個以及全部4個32kB SPRAM。ORCA RISC-V上的加速器提升了73倍卷積層運行效率,LVE則提升8倍密集層運行效率。最終整體結果為提升了71倍整體速度。
1-category分類器運行時間為230ms,誤差為0.4%,功耗為21.8mW。低功耗版本設計運行速率為1f/s,而功耗僅4.4mW。上述兩個分類器的誤差率主要歸因於訓練,並未導致精準度降低。儘管低功耗圖像感測器能以1-2mW的功耗實現上述畫面更新速率,但在分析中並不包括圖像感測器的功耗。
潛在應用
基於TinBiNN神經網路的小尺寸、低功耗解決方案可於網路邊緣實現各類應用。例如,智能門鈴可通過嵌入式AI功能自動進入待機模式,直到感應到有人出現;智能電視在沒有觀眾觀看的情況下自動關機。相同地,智能安全攝像頭使用嵌入式人工智慧功能,只在出現入侵者時才發送警報,能夠減少或避免狗、貓等其他動物經過而出現於攝像頭前的錯誤回報。
搭載臉部識別的移動設備和平板電腦需要用戶在進行臉部識別前喚醒裝置。該解決方案讓這一類設備能夠在低功耗的狀況下持續偵測人臉,再喚醒高功耗應用處理器執行深度識別任務。
總結將AI優勢擴展至網路邊緣同時具有挑戰與機會。如本文所示,通過FPGA和RISC-V處理器為設備建構AI功能,取代以雲端為基礎的資源,能夠大幅降低功耗,同時縮短反應時間。同時,本地數據儲存和處理不僅提高安全性,更節省寶貴的帶寬。通過將AI整合至組件中,即使在網路關閉以節省功耗的情況下,設計工程師也能實現實時工作的智能功能。
本文來自《電子工程專輯》2018年2月刊,版權所有,謝絕轉載


※摩爾定律越來越慢,晶元架構工程師成香饃饃
※英飛凌新型數字全集成穩壓器如何以最小尺寸實現最高效率供電?
TAG:EET電子工程專輯 |